] = "Traugh",
  [3481] = "Barg",
  [3482] = "Tari\'qa",
  [3484] = "Kil\'hala",
  [3485] = "Wrahk",
  [3488] = "Uthrok",
  [3489] = "Zargh",
  [3490] = "Hula\'mahi",
  [3493] = "Grazlix",
  [3497] = "Kilxx",
  [3498] = "Jazzik",
  [3499] = "Ranik",
  [3500] = "Tarhus",
  [3501] = "部落守衛",
  [3503] = "異種保衛者",
  [3504] = "Gil",
  [3505] = "Pat",
  [3508] = "Mikey",
  [3509] = "Geoff",
  [3510] = "Twain",
  [3511] = "Steven",
  [3512] = "Jimmy",
  [3518] = "Thomas Miller",
  [3519] = "哨兵阿瑞尼亞·裂雲",
  [3521] = "Ak\'Zeloth",
  [3522] = "Constance Brisboise",
  [3523] = "Bowen Brisboise",
  [3525] = "[UNUSED]海龜訓練師",
  [3536] = "Kris Legace",
  [3537] = "Zixil",
  [3539] = "Ott",
  [3540] = "Hal McAllister",
  [3541] = "Sarah Raycroft",
  [3542] = "Jaysin Lanyda",
  [3543] = "Robert Aebischer",
  [3544] = "Jason Lemieux",
  [3545] = "Claude Erksine",
  [3546] = "Bernie Heisten",
  [3547] = "Hamlin Atkins",
  [3548] = "Selina Weston",
  [3549] = "Shelene Rhobart",
  [3550] = "Martine Tramblay",
  [3553] = "Sebastian Meloche",
  [3554] = "Andrea Boynton",
  [3555] = "Johan Focht",
  [3556] = "Andrew Hilbert",
  [3559] = "Temp Poisoning Vendor Dwarf",
  [3561] = "Kyrai",
  [3562] = "Alaindia",
  [3564] = "Temp Reagent Vendor Dwarf",
  [3570] = "被淨化的樹精",
  [3572] = "Zizzek",
  [3574] = "騎乘用蝙蝠",
  [3577] = "安伯米爾釀酒師",
  [3578] = "安伯米爾礦工",
  [3581] = "下水道猛獸",
  [3584] = "Therylune",
  [3585] = "Therysil",
  [3586] = "[UNUSED 4.x ]礦工強森",
  [3587] = "Lyrai",
  [3589] = "Keina",
  [3592] = "Andiss",
  [3593] = "Alyissia",
  [3594] = "弗拉胡恩·影語",
  [3595] = "Shanda",
  [3601] = "Dazalar",
  [3602]


s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"],
  "aws": [640, 512, [], "f375", "M180.41 203.01c-.72 22.65 10.6 32.6


 (weights != null) {
        $weights = Object(tensor_util_env["a" /* convertToTensor */])(weights, 'weights', 'hingeLoss');
    }
    Object(util["assertShapesMatch"])($labels.shape, $predictions.shape, 'Error in hingeLoss: ');
    const one = Object(tensor_ops["e" /* scalar */])(1);
    // Convert binary labels to (-1, 1)
    $labels = Object(tensor_ops["e" /* scalar */])(2).mul($labels).sub(one);
    const losses = one.sub($labels.mul($predictions)).relu();
    return computeWeightedLoss(losses, $weights, reduction);
}
/**
 * Computes the log loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param epsilon A small increment to avoid taking log of zero
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 */
/** @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'} */
function logLoss_(labels, predictions, weights, epsilon = 1e-7, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) {
    const $labels = Object(tensor_util_env["a" /* convertToTensor */])(labels, 'labels', 'logLoss');
    const $predictions = Object(tensor_util_env["a" /* convertToTensor */])(predictions, 'predictions', 'logLoss');
    let $weights = null;
    if (weights != null) {
        $weights = Object(tensor_util_env["a" /* convertToTensor */])(weights, 'weights', 'logLoss');
    }
    Object(util["assertShapesMatch"])($labels.shape, $predictions.shape, 'Error in logLoss: ');
    const one = Object(tensor_ops["e" /* scalar */])(1);
    const epsilonScalar = Object(tensor_ops["e" /* scalar */])(epsilon);
    const losses = $labels.mul($predictions.add(epsilonScalar).log())
        .neg()
        .sub(one.sub($labels).mul(one.sub($predictions).add(epsilonScalar).log()));
    return computeWeightedLoss(losses, $weights, reduction);
}
function sigmoidCrossEntropyWithLogits_(labels, logits) {
    const $labels = Object(tensor_util_env["a" /* convertToTensor */])(labels, 'labels', 'sigmoidCrossEntropyWithLogits');
    const $logits = Object(tensor_util_env["a" /* convertToTensor */])(logits, 'logits', 'sigmoidCrossEntropyWithLogits');
    Object(util["assertShapesMatch"])($labels.shape, $logits.shape, 'Error in sigmoidCrossEntropyWithLogits: ');
    /**
     * Implementation Details:
     *
     * For brevity, let `x = logits`, `z = labels`.  The logistic loss is
     *     z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x))
     *   = z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x)))
     *   = z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x)))
     *   = z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x))
     *   = (1 - z) * x + log(1 + exp(-x))
     *   = x - x * z + log(1 + exp(-x))
     *
     *   For x < 0, to avoid overflow in exp(-x), we reformulate the above
     *     x - x * z + log(1 + exp(-x))
     *   = log(exp(x)) - x


ersonate." : "Grupy te będą mogły wcielić się w użytkowników, którzy mogą zarządzać. Jeśli usuniesz wszystkie grupy, każdy administrator grupy będzie mógł wcielić się w inne osoby."
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
OC.L10N.register(
    "impersonate",
    {
    "Could not impersonate user" : "Nem sikerült a felhasználó megszemélyesítése",
    "Are you sure you want to impersonate \"{userId}\"?" : "Biztos, hogy meg akarja személyesíteni „{userId}” felhasználót?",
    "Impersonate user" : "Felhasználó megszemélyesítése",
    "Impersonate" : "Megszemélyesítés",
    "Could not log out, please try again" : "Nem sikerült kijelentkezni, próbálja újra",
    "Logged in as {name} ({uid})" : "Bejelentkezve mint {name} ({uid})",
    "User not found" : "Felhasználó nem található",
    "Insufficient permissions to impersonate user" : "Nincs elegendő jogosultsága a felhasználó megszemélyesítéséhez",
    "Cannot impersonate the user because it was never logged in" : "Nem lehet megszemélyesíteni a felhasználót mert még sosem jelentkezett be",
    "Cannot impersonate yourself" : "Nem személyesítheti meg saját magát",
    "Impersonate other users" : "Más felhasználók megszemélyesítése",
    "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud.\n2. Open users administration interface.\n3. Select the impersonate button on the affected user.\n4. Confirm the impersonation.\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.\n- You can limit which users/groups can use impersonation in Administration settings > Additional settings." : "A megszemélyesítés alkalmazás telepítése lehetővé teszi a Nextcloud adminisztrátorai számára, hogy más felhasználóknak adják ki magukat a Nextcloud kiszolgálón. Ez különösen hasznos a felhasználók által jelentett problémák megoldásakor.\n\nA felhasználó megszemélyesítéséhez a rendszergazdának egyszerűen a következő négy lépést kell végrehajtania:\n\n1. Jelentkezzen be rendszergazdaként a Nextcloudba.\n2. Nyissa meg a felhasználói adminisztrációs felületet.\n3. Válassza ki a megszemélyesítés gombot az érintett felhasználónál.\n4. Erősítse meg a megszemélyesíté


veal(NO_SOUND)
        WORLD_MAP_MANAGER:RefreshAllAntiquityDigSites()
    end
end

function ZO_WorldMap_OnShow()
    -- We really only want to ping the player pin when the map is opened...not every pin that's on the map.
    local playerPin = g_mapPinManager:GetPlayerPin()
    playerPin:PingMapPin(ZO_MapPin.PulseAnimation)

    ZO_WorldMap_ResetHistorySlider()
end

function ZO_WorldMapTitleBar_OnDragStart()
    local mapSize = WORLD_MAP_MANAGER:GetModeMapSize()
    if mapSize == CONSTANTS.WORLDMAP_SIZE_SMALL then
        ZO_WorldMap:SetMovable(true)
        ZO_WorldMap:StartMoving()
    end
end

function ZO_WorldMapTitleBar_OnMouseUp(button, upInside)
    ZO_WorldMap:SetMovable(false)
    SaveMapPosition()
end

function ZO_WorldMap_ToggleSize()
    if g_savedVars.userMode == MAP_MODE_SMALL_CUSTOM then
        WORLD_MAP_MANAGER:SetUserMode(MAP_MODE_LARGE_CUSTOM)
    else
        WORLD_MAP_MANAGER:SetUserMode(MAP_MODE_SMALL_CUSTOM)
    end
end

local function MapDragUpdate()
    local x, y = GetUIMousePosition()

    local diffX = x - g_mapDragX
    local diffY = y - g_mapDragY

    if g_dragging then
        g_mapPanAndZoom:AddTargetOffsetDelta(diffX, diffY)
        g_mapDragX = x
        g_mapDragY = y
    else
        local distSq = diffX * diffX + diffY * diffY
        if distSq > CONSTANTS.DRAG_START_DIST_SQ then
            g_mapDragX = x
            g_mapDragY = y
            g_dragging = true
            WINDOW_MANAGER:SetMouseCursor(MOUSE_CURSOR_PAN)
        end
    end
end

function ZO_WorldMap_MouseDown(button, ctrl, alt, shift)
    if IsInGamepadPreferredMode() then
        return
    end

    if button == MOUSE_BUTTON_INDEX_LEFT then
        local x, y = NormalizePreferredMousePositionToMap()

        if shift and not alt and not ctrl then
            PingMap(MAP_PIN_TYPE_RALLY_POINT, MAP_TYPE_LOCATION_CENTERED, x, y)
        elseif not shift and not alt and ctrl then
            PingMap(MAP_PIN_TYPE_PING, MAP_TYPE_LOCATION_CENTERED, x, y)
        else
            g_mapDragX, g_mapDragY = GetUIMousePosition()
            g_mapPanAndZoom:ClearTargetOffset()
            g_mapPanAndZoom:ClearLockPoint()
            g_mapPanAndZoom:AddTargetOffsetDelta(0, 0)

            g_dragging = not WouldProcessMapClick(x, y)
            if g_dragging then
                WINDOW_MANAGER:SetMouseCursor(MOUSE_CURSOR_PAN)
            end

            ZO_WorldMapContainer:SetHandler("OnUpdate", MapDragUpdate)
        end
    end

    WORLD_MAP_MANAGER:HandleMouseDown(button, ctrl, alt, shift)
end

function ZO_WorldMap_MouseUp(mapControl, mouseButton, upInside)
    ZO_WorldMapContainer:SetHandler("OnUpdate", nil)

    if g_dragging and not IsInGamepadPreferredMode() then
        g_dragging = false
        WINDOW_MANAGER:SetMouseCursor(MOUSE_CURSOR_DO_NOT_CARE)

        local lastFrameDeltaX, lastFrameDeltaY = GetUIMouseDeltas()

        g_mapPanAndZoom:AddTargetOffsetDelta(lastFrameDeltaX * 15, lastFrameDeltaY * 15)

        g_mapDragX = nil
        g_mapDragY = nil
    else
        -- If modifier keys are still pressed then ignore this click because modifier keys are used to ping the map
        -- The reason upInside needs to be passed is that the mouse may h


{ grid-template-columns: subgrid [x] [y] [z] [x] }  /* [x] [y] [z] [x] [] */
.fill-0r  { grid-template-columns: subgrid [x] [y] [z] [y] [z] }  /* [x] [y] [z] [y] [z] */

.fill-0s  {
  grid-column: 2 / span 5;
  grid-template-columns: subgrid [w] [y] [z] [y] [z] [x];  /* [w] [y] [z] [y] [z] [x] */
}

.fill-0t  {
  grid-column: 1 / span 6;
  grid-template-columns: subgrid [w] [y] [z] [y] [z] [x];  /* [w] [y] [z] [y] [z] [x] [] */
}

.subgrid > :nth-child(2n)   {  background: black; }
.subgrid > :nth-child(2n+1) {  background: pink; }

    </style>

  <div styl


'user_id': 15947431,
          'width': 3648
        },
        {
          'description': '',
          'excerpt': '',
          'height': 2736,
          'img_id': 202688013,
          'img_id_str': '202688013',
          'title': '001',
          'user_id': 15947431,
          'width': 3648
        },
        {
          'description': '',
          'excerpt': '',
          'height': 2736,
          'img_id': 223200942,
          'img_id_str': '223200942',
          'title': '001',
          'user_id': 15947431,
          'width': 3648
        },
        {
          'description': '',
          'excerpt': '',
          'height': 2736,
          'img_id': 178047037,
          'img_id_str': '178047037',
          'title': '001',
          'user_id': 15947431,
          'width': 3648
        }
      ],
      'is_favorite': false,
      'last_read': null,
      'parent_comments': '2',
      'passed_time': '01月18日',
      'post_id': 61804174,
      'published_at': '2020-01-18 08:13:21',
      'recommend': true,
      'recom_type': '',
      'rewardable': true,
      'reward_list_prefix': [],
      'rewards': '0',
      'rqt_id': '',
      'shares': 0,
      'site': {
        'description': '一期一会',
        'domain': '',
        'followers': 12,
        'has_everphoto_note': true,
        'icon':
            'https://sf3-tccdn-tos.pstatp.com/obj/tuchong-avatar/ll_15947431_1',
        'is_bind_everphoto': false,
        'is_following': false,
        'name': '巴茨先生',
        'site_id': '15947431',
        'type': 'user',
        'url': 'https://tuchong.com/15947431/',
        'verification_list': [],
        'verifications': 0,
        'verified': false
      },
      'site_id': '15947431',
      'sites': [],
      'tags': [
        '带我看看，你的城市',
        '华为摄影爱好者',
        '我们都是城市探险家',
        '图虫旅行摄影圈子',
        '极简主义，少即是多',
        '体育场'
      ],
      'title': '',
      'title_image': null,
      'type': 'multi-photo',
      'update': false,
      'url': 'https://tuchong.com/15947431/61804174/',
      'views': 427
    },
    {
      'author_id': '15938645',
      'collected': false,
      'comment_list_prefix': [],
      'comments': 2,
      'content':
          '一千四百多年历史的双林寺，距离平遥高铁站很近，高铁站始发的108路公交车只需一站地。在晋中热门人气排行榜上它排在20名开外，在这个看颜值的时代，它的确并不


iu  $a1, 4
    swr    $t0, 0($a0)
    swl    $t0, 3($a0)
    addiu  $a0, 4
    bltu   $a1, $a3, .Lmemcpy_loop4_unaligned
    addiu  $a2, -4

.Lmemcpy_last4:
    beqz   $a2, .Lmemcpy_done
    nop

    /* Copy the last few bytes */
.Lmemcpy_loop1:
    addiu  $a2, -1
    lb     $t0, 0($a1)
    addiu  $a1, 1
    sb     $t0, 0($a0)
    bnez   $a2, .Lmemcpy_loop1
    addiu  $a0, 1

.Lmemcpy_done:
    jr     $ra
    nop

    .size __wrap_memcpy, .-__wrap_memcpy

    .section .text_memcpy, "ax", @progbits
    .align 2
    .global memcpy
    .weak memcpy
    .type memcpy, @function
memcpy:
    beqz   $a2, 2f
    move   $v0, $a0
    addu   $a3, $a1, $a2

1:
    lbu    $v1, 0($a1)
    addiu  $a1, 1
    sb     $v1, 0($a0)
    bne    $a1, $a3, 1b
    addiu  $a0, 1

2:
    jr     $ra
    nop

    .size memcpy, .-memcpy

    .section .text___wrap_memset, "ax", @progbits
    .align 2
    .global __wrap_memset
    .type __wrap_memset, @function
__wrap_memset:
    bltu   $a2, 4, .Lmemset_last4
    move   $v0, $a0

    andi   $a1, 255


r m in range(num_markets):
            for r in range(num_customers):
                model.addCons(customer_covered[m, r] <= market_open[m], f"Market_{m}_Cover_{r}")

        # New Constraints: Capacity Limits of Markets
        for m in range(num_markets):
            model.addCons(quicksum(customer_covered[m, r] * demands[r] for r in range(num_customers)) <= coverages[m], f"Market_{m}_Capacity")

        # New Constraints: Total Market Coverage meets Total Demand
        total_demand = np.sum(demands)
        model.addCons(quicksum(coverages[m] * market_open[m] for m in range(num_markets)) >= total_demand, "TotalDemandCover")

        # New Constraints: Logistical Constraints based on graph weights
        for (u, v), weight in weighted_edges.items():
            model.addCons(market_open[u] * weight >= market_open[v], f"LogisticsConstraint_{u}_{v}")

        # New Constraints: Set Covering constraints to ensure each customer is covered by at least one market
        for r in range(num_customers):
            model.addCons(quicksum(customer_covered[m, r] for m in range(num_markets)) >= 1, f"Customer_{r}_Coverage")

        start_time = time.time()
        model.optimize()
        end_time = time.time()

        return model.getStatus(), end_time - start_time, model.getObjVal()

if __name__ == '__main__':
    seed = 42
    parameters = {
        'num_markets': 30,
        'num_customers': 1575,
        'min_customer_cost': 3000,
        'max_customer_cost': 5000,
        'min_management_cost': 2529,
        'max_management_cost': 3000,
        'min_market_coverage': 187,
        'max_market_coverage': 1800,
        'affinity': 10,
        'budget_constraint': 25000,
    }
    market_optimizer = FarmersMarketPlacement(parameters, seed)
    instance = market_optimizer.generate_instance()
    solve_status, solve_time, objective_value = market_optimizer.solve(instance)

    print(f"Solve Status: {solve_status}")
    print(f"Solve Time: {solve_time:.2f} seconds")
    print(f"Objective Value: {objective_value:.2f}")


{
    Forward(i64),
    Down(i64),
    Up(i64),
}

#[derive(Debug)]
enum MoveParseError {
    Int(std::num::ParseIntError),
    DirectionError(String),
    FormatError,
}

impl FromStr for Move {
    type Err = MoveParseError;

    fn from_str(s: &str) -> Result<Self, Self::Err> {
        let mut l = s.split_whitespace();
        let direction = l.next().ok_or(MoveParseError::FormatError)?;
        let value = l.next().ok_or(MoveParseError::FormatError)?;
        if l.next().is_some() {
            return Err(MoveParseError::FormatError);
        }
        let value = value.parse().map_err(MoveParseError::Int)?;
        match direction {
            "forward" => Ok(Move::Forward(value)),
            "down" => Ok(Move::Down(value)),
            "up" => Ok(Move::Up(value)),
            d => Err(MoveParseError::DirectionError(d.to_string())),
        }
    }
}

fn day02_part01(moves: &[Move]) -> i64 {
    let (h, v) = moves
        .into_iter()
        .fold((0, 0), |pos, movement| match movement {
            Move::Forward(v) => (pos.0 + *v, pos.1),
            Move::Up(v) => (pos.0, pos.1 - *v),
            Move::Down(v) => (pos.0, pos.1 + *v),
        });
    h * v
}

fn day02_part02(moves: &[Move]) -> i64 {
    let (h, v, _) = moves
        .into_iter()
        .fold((0, 0, 0), |pos, movement| match movement {
            Move::Forward(v) => (pos.0 + *v, pos.1 + v * pos.2, pos.2),
            Move::Up(v) => (pos.0, pos.1, pos.2 - *v),
            Move::Down(v) => (pos.0, pos.1, pos.2 + *v),
        });
    h * v
}

fn main() {
    let path = std::env::args()
        .nth(1)
        .unwrap_or_else(|| "inputs/day02".to_string());
    let moves: Vec<Move> = parse_file(path).unwrap();
    let p1 = day02_part01(&moves);
    println!("{}", p1);
    let p2 = day02_part02(&moves);
    println!("{}", p2);
}
use crate::prelude::*;

/// General function that can create any entry type.
///
/// This is used under the hood by `create_entry`, `create_cap_grant` and `create_cap_claim`.
///
/// The host builds a `Create` header for the passed entry value and commits a new element to the
/// chain.
///
/// Usually you don't need to use this function directly; it is the most general way to create an
/// entry and standardises the internals of higher level create functions.
///
/// @see create_entry
/// @see create_cap_grant
/// @see create_cap_claim
pub fn create<D: Into<EntryDefId>, E: Into<Entry>>(
    entry_def_id: D,
    entry: E,
) -> HdkResult<HeaderHash> {
    Ok(host_call::<CreateInput, CreateOutput>(
        __create,
        &CreateInput::new((entry_def_id.into(), entry.into())),
    )?
    .into_inner())
}
use std::io::{Read, Write};

use rbx_dom_weak::RbxValue;

use crate::{
    core::XmlType,
    deserializer::{DecodeError, XmlEventReader},
    serializer::{EncodeError, XmlWriteEvent, XmlEventWriter},
};

static TAG_NAMES: [&str; 12] = ["X", "Y", "Z", "R00", "R01", "R02", "R10", "R11", "R12", "R20", "R21", "R22"];

pub struct CFrameType;
type CFrameValue = [f32; 12];

impl XmlType<CFrameValue> for CFrameType {
    const XML_TAG_NAME: &'static str = "CoordinateFrame";

    fn write_xml<W: Write>(
        writer: &mut XmlEventWriter<W>,
        name: &str,
        value: &CFrameValue,
    ) -> Result<(), EncodeError> {


#!/usr/bin/env python3
"""
🔧 XTTS Model Health Monitor and Reset Tool
Monitor XTTS model health and perform manual resets
"""

import sys
import os
import time
import json

# Add core directory to path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'core'))

import config
from tts_manager import TTSManager

def print_model_health(tts_manager):
    """Print detailed model health information"""
    print("\n" + "="*60)
    print("🏥 XTTS MODEL HEALTH STATUS")
    print("="*60)

    health_info = tts_manager.get_model_health_info()
    status = tts_manager.get_status()

    # Health status with emoji
    health_status = health_info['health_status']
    health_emoji = "🟢" if health_status == "good" else "🟡" if health_status == "degraded" else "🔴"

    print(f"{health_emoji} Overall Health: {health_status.upper()}")
    print(f"🔢 Failure Count: {health_info['failure_count']}")
    print(f"⏱  Time Since Last Reset: {health_info['time_since_last_reset_minutes']:.1f} minutes")
    print(f"🧠 Model Loaded: {'✅ Yes' if health_info['model_loaded'] else '❌ No'}")
    print(f"🔊 TTS Enabled: {'✅ Yes' if status['enabled'] else '❌ No'}")
    print(f"🛡  Error Recovery: {'✅ Enabled' if status['cuda_recovery_enabled'] else '❌ Disabled'}")
    print(f"🔄 Auto-Reset: {'✅ Enabled' if status['reinitialization_enabled'] else '❌ Disabled'}")

    if health_info['next_proactive_reset_minutes'] >= 0:
        print(f"⏰ Next Proactive Reset: {health_info['next_proactive_reset_minutes']:.1f} minutes")
    else:
        print("⏰ Proactive Reset: Disabled")

    if health_info['cooldown_remaining_seconds'] > 0:
        print(f"❄  Reset Cooldown: {health_info['cooldown_remaining_seconds']:.1f} seconds remaining")
    else:
        print("❄  Reset Cooldown: Ready")

def main():
    """Main monitoring and reset tool"""
    print("🔧 XTTS Model Health Monitor")
    print("=" * 40)

    # Initialize TTS manager
    print("🔄 Initializing TTS Manager...")
    tts_manager = TTSManager()

    while True:
        try:
            # Display current health
            print_model_health(tts_manager)

            print("\n📋 Available Commands:")
            print("  [1] Refresh Status")
            print("  [2] Test Synthesis")
            print("  [3] Force Model Reset")
            print("  [4] Show Configuration")
            print("  [5] Simulate CUDA Error (for testing)")
            print("  [q] Quit")

            choice = input("\n🔍 Enter command: ").strip().lower()

            if choice == 'q' or choice == 'quit':
                print("\n👋 Goodbye!")
                break
            elif choice == '1':
                print("🔄 Refreshing status...")
                continue
            elif choice == '2':
                print("\n🧪 Testing synthesis...")
                test_text = "This is a test of the XTTS synthesis system."
                result = tts_manager.synthesize_text(test_text)
                if result is not None:
                    print(f"✅ Synthesis successful: {len(result)/tts_manager.sample_rate:.2f}s audio")
                else:
                    print("❌ Synthesis failed")
            elif choice == '3':
                print("\n🚨 Forcing model reset...")
                if tts_manager.force_model_reset():
                    print("✅ Model reset successful")
                else:
                    print("❌ Model reset failed")
            elif choice == '4':
                print("\n⚙ Current Configuration:")
                config_data = config.get_config()
                cuda_settings = {k: v for k, v in config_data.items() if 'CUDA' in k or 'XTTS' in k or 'MODEL' in k}
                print(json.dumps(cuda_settings, indent=2))
            elif choice == '5':
                print("\n🧪 Simulating CUDA error for testing...")
                # Increment failure count manually for testing
                tts_manager.model_failed_count += 1
                print(f"🔢 Failure count increased to: {tts_manager.model_failed_count}")
            else:
                print("❓ Invalid command, please try again.")

        except KeyboardInterrupt:
            print("\n\n🛑 Interrupted by user")
            break
        except Exception as e:
            print(f"\n❌ Error: {e}")
            time.sleep(1)

    # Cleanup
    try:
        tts_manager.cleanup()
        print("🧹 Cleanup completed")
    except:
        pass

if __nam


5fc3\u7ecf\u300b\u662f\u4f5b\u6559\u7ecf\u5178\u4e4b\u4e00\uff0c\u5305\u542b\u4e86\u5173\u4e8e\u7a7a\u6027\u548c\u667a\u6167\u7684\u6df1\u523b\u9053\u7406\u3002\u5b83\u63a2\u8ba8\u4e86\u7a7a\u6027\u4e0e\u667a\u6167\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5e76\u4f20\u8fbe\u4e86\u91cd\u8981\u7684\u6559\u4e49\u548c\u667a\u6167\u3002",
                    "category": "TEXT"
                },
                {
                    "name": "\u820d\u5229\u5b50",
                    "symbolSize": 10,
                    "value": "\u91ca\u5229\u5b50\u662f\u4f5b\u6559\u7ecf\u5178\u4e2d\u7684\u91cd\u8981\u89d2\u8272\uff0c\u8c61\u5f81\u667a\u6167\u4e0e\u89c9\u609f\u3002\u4ed6\u88ab\u89c6\u4e3a\u4f5b\u6559\u7684\u5723\u7269\uff0c\u627f\u8f7d\u7740\u91cd\u8981\u7684\u5b97\u6559\u610f\u4e49\uff0c\u5e76\u88ab\u5b89\u653e\u5728\u5854\u9876\u7684\u5b9d\u74f6\u4e2d\u3002",
                    "category": "ARTIFACT"
                },
                {
                    "name": "\u822c\u82e5\u6ce2\u7f57\u871c\u591a",
                    "symbolSize": 10,
                    "value": "\u822c\u82e5\u6ce2\u7f57\u871c\u591a\u662f\u4f5b\u6559\u4e2d\u7684\u667a\u6167\u4e0e\u7a7a\u6027\u7684\u91cd\u8981\u6559\u4e49\uff0c\u5f3a\u8c03\u65e0\u6211\u4e0e\u65e0\u5e38\u3002",
                    "category": "CONCEPT"
                },
                {
                    "name": "\u5510\u671d\u6cd5\u5e08",
                    "symbolSize": 10,
                    "value": "\u5510\u671d\u6cd5\u5e08\u662f\u4f20\u627f\u4f5b\u6559\u7ecf\u5178\u7684\u50e7\u4fa3\uff0c\u5177\u6709\u6df1\u539a\u7684\u4f5b\u6559\u77e5\u8bc6\u4e0e\u4fee\u884c\u7ecf\u9a8c\u3002",
                    "category": "PERSON"
                },
                {
                    "name":


             }
            }
            int tempflag = 0;
            if (effect < 0) {
                for (auto it = F.begin(); it != F.end();) {
                    if (IsExecutable(tmppi, *it)) {
                        int x = minSWAP.first, y = minSWAP.second;
                        int p = pi[gates[*it].q1], q = pi[gates[*it].q2];
                        // return VT<Gate>();
                        // add bridge gate
                        if ((p == x && D[q][y] == 1) || (p == y && D[q][x] == 1)) {
                            tempflag = 1;
                            if (p == x && D[q][y] == 1) {
                                ans.push_back({"CNOT", q, y, gates[*it].tag});
                                ans.push_back({"CNOT", y, p, gates[*it].tag});
                                ans.push_back({"CNOT", q, y, gates[*it].tag});
                                ans.push_back({"CNOT", y, p, gates[*it].tag});
                            } else if ((p == y && D[q][x] == 1)) {
                                ans.push_back({"CNOT", q, x, gates[*it].tag});
                                ans.push_back({"CNOT", x, p, gates[*it].tag});
                                ans.push_back({"CNOT", q, x, gates[*it].tag});
                                ans.push_back({"CNOT", x, p, gates[*it].tag});
                            }
                            it = F.erase(it);
                        }
                    }
                    it++;
                }
            }
            if (tempflag == 0) {
                // if not meet above conditions ,add swap gate
                int x = minSWAP.first, y = minSWAP.second;
                int p = rpi[x], q = rpi[y];
                if (p == -1) {
                    rpi[x] = num_of_qubits;
                    pi[num_of_qubits] = x;
                    p = num_of_qubits;
                    num_of_qubits++;
                }
                if (q == -1) {
                    rpi[y] = num_of_qubits;
                    pi[num_of_qubits] = y;
                    q = num_of_qubits;
                    num_of_qubits++;
                }
                std::swap(pi[p], pi[q]);
                std::swap(rpi[x], rpi[y]);
                ans.push_back({"SWAP", x, y, "SWAP" + std::to_string(++tot)});
            }
        }
    }
    return ans;
}

MQ_SABRE::MQ_SABRE(const VT<std::shared_ptr<BasicGate>>& circ, const std::shared_ptr<QubitsTopology>& coupling_graph,
                   const std::vector<std::pair<std::pair<int, int>, VT<double>>>& CnotErrrorRateAndGateLength) {
    auto tmp = GateToAbstractGate(circ);
    this->num_logical = tmp.first;
    this->gates = tmp.second;
    // Compress physical-qubit IDs to contiguous [0..num_physical-1]
    auto ids_set = coupling_graph->AllQubitID();
    VT<qbit_t> sorted_ids(ids_set.begin(), ids_set.end());
    std::sort(sorted_ids.begin(), sorted_ids.end());
    for (int i = 0; i < static_cast<int>(sorted_ids.size()); ++i) {
        old_to_new_[sorted_ids[i]] = i;
        new_to_old_.push_back(sorted_ids[i]);
    }
    this->num_physical = static_cast<int>(sorted_ids.size());
    if (this->


latest/useful_tools.html#id2)。

## 注意

### `NuScenesBox` 和我们的 `CameraInstanceBoxes` 之间的转换。

总的来说，`NuScenesBox` 和我们的 `CameraInstanceBoxes` 的主要区别主要体现在转向角（yaw）定义上。 `NuScenesBox` 定义了一个四元数或三个欧拉角的旋转，而我们的由于实际情况只定义了一个转向角（yaw），它需要我们在预处理和后处理中手动添加一些额外的旋转，例如[这里](https://github.com/open-mmlab/mmdetection3d/blob/master/mmdet3d/datasets/nuscenes_mono_dataset.py#L673)。

另外，请注意，角点和位置的定义在 `NuScenesBox` 中是分离的。例如，在单目 3D 检测中，框位置的定义在其相机坐标中（有关汽车设置，请参阅其官方[插图](https://www.nuscenes.org/nuscenes#data-collection)），即与[我们的](https://github.com/open-mmlab/mmdetection3d/blob/master/mmdet3d/core/bbox/structures/cam_box3d.py)一致。相比之下，它的角点是通过[惯例](https://github.com/nutonomy/nuscenes-devkit/blob/02e9200218977193a1058dd7234f935834378319/python-sdk/nuscenes/utils/data_classes.py#L527) 定义的，“x 向前， y 向左， z 向上”。它导致了与我们的 `CameraInstanceBoxes` 不同的维度和旋转定义理念。一个移除相似冲突的例子是 PR [#744](https://github.com/open-mmlab/mmdetection3d/pull/744)。同样的问题也存在于 LiDAR 系统中。为了解决它们，我们通常会在预处理和后处理中添加一些转换，以保证在整个训练和推理过程中框都在我们的坐标系系统里。
# 教程 5: 自定义运行时配置

## 自定义优化器设置

### 自定义 PyTorch 支持的优化器

我们已经支持使用所有 PyTorch 实现的优化器，且唯一需要修改的地方就是改变配置文件中的 `optimizer` 字段。
举个例子，如果您想使用 `ADAM` （注意到这样可能会使性能大幅下降），您可以这样修改：

```python
optimizer = dict(type='Adam', lr=0.0003, weight_decay=0.0001)
```

为了修改模型的学习率，用户只需要修改优化器配置中的 `lr` 字段。用户可以根据 PyTorch 的 [API 文档](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) 直接设置参数。

### 自定义并实现优化器

#### 1. 定义新的优化器

一个自定义优化器可以按照如下过程定义：

假设您想要添加一个叫 `MyOptimizer` 的，拥有参数 `a`，`b` 和 `c` 的优化器，您需要创建一个叫做 `mmdet3d/core/optimizer` 的目录。
接下来，应该在目录下某个文件中实现新的优化器，比如 `mmdet3d/core/optimizer/my_optimizer.py`：

```python
from mmcv.runner.optimizer import OPTIMIZERS
from torch.optim


L55_1 = _ENV
L56_1 = "C87113CC41B111F69"
L57_1 = _hx_e
L57_1 = L57_1()
L55_1[L56_1] = L57_1
L68_1 = _ENV["C87113CC41B111F69"]
L69_1 = "new"
L70_1 = {}
L68_1[L69_1] = L70_1
L68_1 = _ENV["C87113CC41B111F69"]
L69_1 = "__name__"
L70_1 = "C87113CC41B111F69"
L68_1[L69_1] = L70_1
_ENV["C87113CC41B111F69"]["SECA90E1DA6099E71"] = function()

  local L0_2, L1_2
  L0_2 = C87113CC41B111F69
  L1_2 = C87113CC41B111F69
  L1_2 = L1_2.S9806B25A7D0C189A
  L0_2.S01A2C7CEEED16B7F = L1_2
  L0_2 = C87113CC41B111F69
  L1_2 = C87113CC41B111F69
  L1_2 = L1_2.SC94223413741E507
  L0_2.SB9512EC00C387EE0 = L1_2
  L0_2 = C87113CC41B111F69
  L1_2 = C87113CC41B111F69
  L1_2 = L1_2.SD2B95D2724CD1EBB
  L0_2.S1D2D2A893289D632 = L1_2
end

_ENV["C87113CC41B111F69"]["S37C79C5AA76061F4"] = function()

  local L0_2, L1_2
  L0_2 = C87113CC41B111F69
  L0_2 = L0_2.S9806B25A7D0C189A
  if 1 ~= L0_2 then
    L0_2 = C87113CC41B111F69
    L0_2 = L0_2.S9806B25A7D0C189A
    if 7 ~= L0_2 then
      goto lbl_11
    end
  end
  L0_2 = false
  do return L0_2 end
  ::lbl_11::
  L0_2 = true
  return L0_2
end

_ENV["C87113CC41B111F69"]["S21738E70349B6593"] = function(A0_2)

  local L1_2, L2_2, L3_2, L4_2, L5_2, L6_2, L7_2
  function L1_2()
    local L0_3, L1_3
    L0_3 = nil
    L1_3 = A0_2
    if L1_3 then
      L1_3 = C87113CC41B111F69
      L0_3 = L1_3.S01A2C7CEEED16B7F
    else
      L1_3 = C87113CC41B111F69
      L0_3 = L1_3.S9806B25A7D0C189A
    end
    return L0_3
  end
  L1_2 = L1_2()
  function L2_2()
    local L0_3, L1_3
    L0_3 = nil
    L1_3 = A0_2
    if L1_3 then
      L1_3 = C87113CC41B111F69
      L0_3 = L1_3.SB9512EC00C387EE0
    else
      L1_3 = C87113CC41B111F69
      L0_3 = L1_3.SC94223413741E507
    end
    return L0_3
  end
  L2_2 = L2_2()
  if


Time GetCurrentTime() const { return mTime; }
  void GetTimeAsyncForPossibleBackwardsSkew(const TimeStamp& aNow) {}

 private:
  Time mTime;
};

// This is another mock implementation of the CurrentTimeGetter template
// type used in SystemTimeConverter, except this asserts that it will not be
// used. i.e. it should only be used in calls to SystemTimeConverter that we
// know will not invoke it.
template <typename Time>
class UnusedCurrentTimeGetter {
 public:
  Time GetCurrentTime() const {
    EXPECT_TRUE(false);
    return 0;
  }

  void GetTimeAsyncForPossibleBackwardsSkew(const TimeStamp& aNow) {
    EXPECT_TRUE(false);
  }
};

// This class provides a mock implementation of the TimeStampNowProvider
// template type used in SystemTimeConverter. It also has other things in it
// that allow the test to better control time for testing purposes.
class MockTimeStamp {
 public:
  // This should generally be called at the start of every test function, as
  // it will initialize this class's static fields to sane values. In particular
  // it will initialize the baseline TimeStamp against which all other
  // TimeStamps are compared.
  static void Init() {
    sBaseline = TimeStamp::Now();
    sTimeStamp = sBaseline;
  }

  // Advance the timestamp returned by `MockTimeStamp::Now()`
  static void Advance(double ms) {
    sTimeStamp += TimeDuration::FromMilliseconds(ms);
  }

  // Returns the baseline TimeStamp, that is used as a fixed reference point
  // in time against which other TimeStamps can be compared. This is needed
  // because mozilla::TimeStamp itself doesn't provide any conversion to
  // human-readable strings, and we need to convert it to a TimeDuration in
  // order to get that. This baseline TimeStamp can be used to turn an
  // arbitrary TimeStamp into a TimeDuration.
  static TimeStamp Baseline() { return sBaseline; }

  // This is the method needed for TimeStampNowProvider compatibility, and
  // simulates `TimeStamp::Now()`
  static TimeStamp Now() { return sTimeStamp; }

 private:
  static TimeStamp sTimeStamp;
  static TimeStamp sBaseline;
};

TimeStamp MockTimeStamp::sTimeStamp;
TimeStamp MockTimeStamp::sBaseline;

// Could have platform-specific implementations of this using DWORD, guint32,
// etc behind ifdefs. But this is sufficient for now.
using GTestTime = uint32_t;
using TimeConverter = SystemTimeConverter<GTestTime, MockTimeStamp>;

}  // namespace

// Checks the expectation that the TimeStamp `ts` is exactly `ms` milliseconds
// after the baseline timestamp. This is a macro so gtest still gives us useful
// line numbers for failures.
#define EXPECT_TS(ts, ms) \
  EXPECT_EQ((ts)-MockTimeStamp::Baseline(), TimeDuration::FromMilliseconds(ms))

#define EXPECT_TS_FUZZY(ts, ms) \
  EXPECT_DOUBLE_EQ(((ts)-MockTimeStamp::Baseline()).ToMilliseconds(), ms)

TEST(TimeConverter, SanityCheck)
{
  MockTimeStamp::Init();

  MockCurrentTimeGetter timeGetter(10);
  UnusedCurrentTimeGetter<GTestTime> unused;
  TimeConverter converter;

  // This call sets the reference time and timestamp
  TimeStamp ts = converter.GetTimeStampFromSystemTime(10, timeGetter);
  EXPECT_TS(ts, 0);

  // Advance "TimeStamp::Now" by 10ms, use the same event time and OS time.
  // Since the event time is the same as before, we expect to get back the
  // same TimeStamp as before too, despite Now() changing.
  Mo


  a1:setTag(1)
    local a = kathia:runAction(CCRepeatForever:create(seq3))
    a:setTag(1)

	layer:registerScriptHandler(SpriteEase_onEnterOrExit)

	Helper.titleLabel:setString("EaseIn - EaseOut - Stop")
	return layer
end

-----------------------------------
--	SpriteEaseInOut
-----------------------------------
local function SpriteEaseInOut()
	local layer = getBaseLayer()

	local move = createSimpleMoveBy()

    local move_ease_inout1 = CCEaseInOut:create(createSimpleMoveBy(), 0.65)
    local move_ease_inout_back1 = move_ease_inout1:reverse()

    local move_ease_inout2 = CCEaseInOut:create(createSimpleMoveBy(), 1.35)
    local move_ease_inout_back2 = move_ease_inout2:reverse()

    local move_ease_inout3 = CCEaseInOut:create(createSimpleMoveBy(), 1.0)
    local move_ease_inout_back3 = move_ease_inout3:reverse()

    local delay = createSimpleDelayTime()

	local arr1 = CCArray:create()
	arr1:addObject(move_ease_inout1)
	arr1:addObject(delay)
	arr1:addObject(move_ease_inout_back1)
	arr1:addObject(createSimpleDelayTime())
    local seq1 = CCSequence:create(arr1)

	local arr2 = CCArray:create()
	arr2:addObject(move_ease_inout2)
	arr2:addObject(createSimpleDelayTime())
	arr2:addObject(move_ease_inout_back2)
	arr2:addObject(createSimpleDelayTime())
    local seq2 = CCSequence:create(arr2)

	local arr3 = CCArray:create()
	arr3:addObject(move_ease_inout3)
	arr3:addObject(createSimpleDelayTime())
	arr3:addObject(move_ease_inout_back3)
	arr3:addObject(createSimpleDelayTime())
    local seq3 = CCSequence:create(arr3)

    tamara:runAction(CCRepeatForever:create(seq1))
    kathia:runAction(CCRepeatForever:create(seq2))
    grossini:runAction(CCRepeatForever:create(seq3))

	Helper.titleLabel:setString("EaseInOut and rates")
	return layer
end

-----------------------------------
--	SpriteEaseExponential
-----------------------------------
local function SpriteEaseExponential()
	local layer = getBaseLayer()

	local move = createSimpleMoveBy()
    local move_back = move:reverse()

    local move_ease_in = CCEaseExponentialIn:create(createSimpleMoveBy())
    local move_ease_in_back = move_ease_in:reverse()

    local move_ease_out = CCEaseExponentialOut:create(createSimpleMoveBy())
    local move_ease_out_back = move_ease_out:reverse()

    local delay = createSimpleDelayTime()

	local arr1 = CCArray:create()
	arr1:addObject(move)
	arr1:addObject(delay)
	arr1:addObject(move_back)

	arr1:addObject(createSimpleDelayTime())
    local seq1 = CCSequence:create(arr1)

	local arr2 = CCArray:create()
	arr2:addObject(move_ease_in)

	arr2:addObject(createSimpleDelayTime())
	arr2:addObject(move_ease_in_back)

	arr2:addObject(createSimpleDelayTime())
    local seq2 = CCSequence:create(arr2)

	local arr3 = CCArray:create()
	arr3:addObject(move_ease_out)

	arr3:addObject


namespace winPEAS._3rdParty.BouncyCastle.math.raw
{
    internal abstract class Interleave
    {
        private const ulong M32 = 0x55555555UL;
        private const ulong M64 = 0x5555555555555555UL;
        private const ulong M64R = 0xAAAAAAAAAAAAAAAAUL;

        /*
         * This expands 8 bit indices into 16 bit contents (high bit 14), by inserting 0s between bits.
         * In a binary field, this operation is the same as squaring an 8 bit number.
         */
        //private static readonly ushort[] INTERLEAVE2_TABLE = new ushort[]
        //{
        //    0x0000, 0x0001, 0x0004, 0x0005, 0x0010, 0x0011, 0x0014, 0x0015,
        //    0x0040, 0x0041, 0x0044, 0x0045, 0x0050, 0x0051, 0x0054, 0x0055,
        //    0x0100, 0x0101, 0x0104, 0x0105, 0x0110, 0x0111, 0x0114, 0x0115,
        //    0x0140, 0x0141, 0x0144, 0x0145, 0x0150, 0x0151, 0x0154, 0x0155,
        //    0x0400, 0x0401, 0x0404, 0x0405, 0x0410, 0x0411, 0x0414, 0x0415,
        //    0x0440, 0x0441, 0x0444, 0x0445, 0x0450, 0x0451, 0x0454, 0x0455,
        //    0x0500, 0x0501, 0x0504, 0x0505, 0x0510, 0x0511, 0x0514, 0x0515,
        //    0x0540, 0x0541, 0x0544, 0x0545, 0x0550, 0x0551, 0x0554, 0x0555,
        //    0x1000, 0x1001, 0x1004, 0x1005, 0x1010, 0x1011, 0x1014, 0x1015,
        //    0x1040, 0x1041, 0x1044, 0x1045, 0x1050, 0x1051, 0x1054, 0x1055,
        //    0x1100, 0x1101, 0x1104, 0x1105, 0x1110, 0x1111, 0x1114, 0x1115,
        //    0x1140, 0x1141, 0x1144, 0x1145, 0x1150, 0x1151, 0x1154, 0x1155,
        //    0x1400, 0x1401, 0x1404, 0x1405, 0x1410, 0x1411, 0x1414, 0x1415,
        //    0x1440, 0x1441, 0x1444, 0x1445, 0x1450, 0x1451, 0x1454, 0x1455,
        //    0x1500, 0x1501, 0x1504, 0x1505, 0x1510, 0x1511, 0x1514, 0x1515,
        //    0x1540, 0x1541, 0x1544, 0x1545, 0x1550, 0x1551, 0x1554, 0x1555,
        //    0x4000, 0x4001, 0x4004, 0x4005, 0x4010, 0x4011, 0x4014, 0x4015,
        //    0x4040, 0x4041, 0x4044, 0x4045, 0x4050, 0x4051, 0x4054, 0x4055,
        //    0x4100, 0x4101, 0x4104, 0x4105, 0x4110, 0x4111, 0x4114, 0x4115,
        //    0x4140, 0x4141, 0x4144, 0x4145, 0x4150, 0x4151, 0x4154, 0x4155,
        //    0x4400, 0x4401, 0x4404, 0x4405, 0x441


ew GetInventoryMessage
            {
                LastTimestampMs = DateTime.UtcNow.ToUnixTime()
            };
            var checkAwardedBadgesMessage = new CheckAwardedBadgesMessage();
            var downloadSettingsMessage = new DownloadSettingsMessage
            {
                Hash = "05daf51635c82611d1aac95c0b051d3ec088a930"
            };

            #endregion

            var serverRequest = RequestBuilder.GetInitialRequestEnvelope(
                new Request
                {
                    RequestType = RequestType.GetPlayer,
                    RequestMessage = getPlayerMessage.ToByteString()
                }, new Request
                {
                    RequestType = RequestType.GetHatchedEggs,
                    RequestMessage = getHatchedEggsMessage.ToByteString()
                }, new Request
                {
                    RequestType = RequestType.GetInventory,
                    RequestMessage = getInventoryMessage.ToByteString()
                }, new Request
                {
                    RequestType = RequestType.CheckAwardedBadges,
                    RequestMessage = checkAwardedBadgesMessage.ToByteString()
                }, new Request
                {
                    RequestType = RequestType.DownloadSettings,
                    RequestMessage = downloadSettingsMessage.ToByteString()
                });

            var serverResponse = await PostProto<Request>(Resources.RpcUrl, serverRequest);

            if (serverResponse.AuthTicket == null)
            {
                _client.AuthToken = null;
                throw new AccessTokenExpiredException();
            }

            _client.AuthTicket = serverResponse.AuthTicket;
            _client.ApiUrl = serverResponse.ApiUrl;
        }

    }
}


* zaman aşımına yolladı.`);
                member.timeout(5 * 60 * 1000);
            } else if(button.customId === "10m") {
                embeds = new EmbedBuilder()
                    .setAuthor({ name: member.displayName, iconURL: member.user.avatarURL({ dynamic: true })})
                    .setFooter({ text: message.author.tag, iconURL: message.author.avatarURL({ dynamic: true })})
                    .setTimestamp()
                    .setDescription(`${message.author}, ${member} kişisinin **10 Dakikalık** zaman aşımına yolladı.`);
                member.timeout(10 * 60 * 1000);
            } else if(button.customId === "1h") {
                embeds = new EmbedBuilder()
                    .setAuthor({ name: member.displayName, iconURL: member.user.avatarURL({ dynamic: true })})
                    .setFooter({ text: message.author.tag, iconURL: message.author.avatarURL({ dynamic: true })})
                    .setTimestamp()
                    .setDescription(`${message.author}, ${member} kişisinin **1 Saatlik** zaman aşımına yolladı.`);
                member.timeout(60 * 60 * 1000);
            } else if(button.customId === "1g") {
                embeds = new EmbedBuilder()
                    .setAuthor({ name: member.displayName, iconURL: member.user.avatarURL({ dynamic: true })})
                    .setFooter({ text: message.author.tag, iconURL: message.author.avatarURL({ dynamic: true })})
                    .setTimestamp()
                    .setDescription(`${message.author}, ${member} kişisinin **1 Günlük** zaman aşımına yolladı.`);
                member.timeout(24 * 60 * 60 * 1000);
            } else if(button.customId === "1hafta") {
                embeds = new EmbedBuilder()
                    .setAuthor({ name: member.displayName, iconURL: member.user.avatarURL({ dynamic: true })})
                    .setFooter({ text: message.author.tag, iconURL: message.author.avatarURL({ dynamic: true })})
                    .setTimestamp()
                    .setDescription(`${message.author}, ${member} kişisinin **1 Haftalık** zaman aşımına yolladı.`);
                member.timeout(7 * 24 * 60 * 60 * 1000);
            }

            msg.edit({
                embeds: [embeds],
                components : [row1]
            });
        });
    }
};
const { PermissionsBitField, EmbedBuilder } = require("discord.js");
const { green , red } = require("../../../settings/configs/emojis.json")
const ceza = require("../../../settings/schemas/ceza");
const ayar = require("../../../settings/configs/ayarName.json");

module.exports = {
  conf: {
    aliases: ["topceza","tc"],
    name: "topceza",
    help: "topceza",
    category: "cezalandırma",
  },

  run: async (client, message, args, embed) => {
    let kanallar = ayar.KomutKullanımKanalİsim;
    if (!message.member.permissions.has(PermissionsBitField.Flags.Administrator) && !kanallar.includes(message.channel.name)) return message.reply({ content: `${kanallar.map(x => `${client.channels.cache.find(chan => chan.name == x)}`)} kanallarında kullanabilirsiniz.`}).then((e) => setTimeout(() => { e.delete(); }, 10000));
    let cezaTop = await ceza.find({ guildID: message.guild.id }).sort({ top: -1 });
    if (!cezaTop.length)
    {
    message.react(red)
    message.reply({ embeds: [new EmbedBuilder()
     // .setAuthor({ name: uye.displayName, iconURL: uye.user.displayAvatarURL({ dynamic: true }) })
      .setThumbnail()
      .setDescription(`${red} Herhangi bir ceza verisi bulunamadı!`)


//
//  SuppressInteractionResponseAttribute.cs
//
//  Author:
//       Jarl Gullberg <jarl.gullberg@gmail.com>
//
//  Copyright (c) Jarl Gullberg
//
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU Lesser General Public License as published by
//  the Free Software Foundation, either version 3 of the License, or
//  (at your option) any later version.
//
//  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 Lesser General Public License for more details.
//
//  You should have received a copy of the GNU Lesser General Public License
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
//

using System;
usin


/plain:subtype'));
}, "getType(DOMString type) rejects correctly when querying for missing type");
</script>
<!DOCTYPE html>
<title>Test CSS selector :picture-in-picture</title>
<script src="/common/media.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="resources/picture-in-picture-helpers.js"></script>
<style>
  video {
    color: rgb(0, 0, 255);
  }
  :picture-in-picture {
    color: rgb(0, 255, 0);
  }
  /* illegal selector list */
  video, :picture-in-picture(*) {
    color: rgb(255, 0, 0);
  }
</style>
<body></body>
<script>
promise_test(async t => {
  const video = await loadVideo();
  document.body.appendChild(video);
  assert_equals(getComputedStyle(video).color, 'rgb(0, 0, 255)');

  await requestPictureInPictureWithTrustedClick(video);
  assert_equals(getComputedStyle(video).color, 'rgb(0, 255, 0)');

  await document.exitPictureInPicture();
  assert_equals(getComputedStyle(video).color, 'rgb(0, 0, 255)');
}, 'Entering and leaving Picture-in-Picture toggles CSS selector');
</script>
<!DOCTYPE html>
<meta charset="utf-8">
<title>Canvas's ImageBitmapRenderingContext test</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="help" href="https://html.spec.whatwg.org/multipage/scripting.html#the-imagebitmap-rendering-context">
<script>
var width = 10;
var height = 10;

function testImageBitmap(image, opts, expectedR, expectedG, expectedB, expectedA)
{
    var dstCanvas = document.createElement('canvas');
    dstCanvas.width = width;
    dstCanvas.height = height;
    var dstCtx = dstCanvas.getContext('bitmaprenderer', opts);
    dstCtx.transferFromImageBitmap(image);

    var myCanvas = document.createElement('canvas');
    myCanvas.width = width;
    myCanvas.height = height;
    var myCtx = myCanvas.getContext('2d');
    myCtx.drawImage(dstCanvas, 0, 0);
    var color = myCtx.getImageData(5, 5, 1, 1).data;
    assert_array_approx_equals(color, [expectedR, expectedG, expectedB, expectedA],1);
}

promise_test(function() {
    var srcCanvas = document.createElement('canvas');
    srcCanvas.width = width;
    srcCanvas.height = height;
    var ctx = srcCanvas.getContext('2d');
    ctx.fillStyle = 'rgba(0, 255, 0, 0.5)';
    ctx.fillRect(0, 0, width, height);
    return createImageBitmap(srcCanvas).then(function(image) {
        testImageBitmap(image, {alpha: false}, 0, 255, 0, 128);
    });
}, "Test that an ImageBitmapRenderingContext with alpha disabled makes the canvas opaque");

promise_test(function() {
    var srcCanvas = document.createElement('canvas');
    srcCanvas.width = width;
    srcCanvas.height = height;
    var ctx = srcCanvas.getContext('2d');
    ctx.fillStyle = 'rgba(0, 255, 0, 0.5)';
    ctx.fillRect(0, 0, width, height);
    return createImageBitmap(srcCanvas).then(function(image) {
        testImageBitmap(image, {alpha: true}, 0, 255, 0, 128);
    });
}, "Test that an ImageBitmapRenderingContext with alpha enabled preserves the alpha");

promise_test(function() {
    var srcCanvas = document.cre


: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var c=
a._x,d=a._y,e=a._z;a=a.order;var f=Math.cos,g=Math.sin,h=f(c/2),k=f(d/2);f=f(e/2);c=g(c/2);d=g(d/2);e=g(e/2);"XYZ"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f-c*d*e):"YXZ"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f+c*d*e):"ZXY"===a?(this._x=c*k*f-h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f-c*d*e):"ZYX"===a?(this._x=c*k*f-h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f+c*d*e):"YZX"===a?(this._x=c*k*f+
h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f-c*d*e):"XZY"===a&&(this._x=c*k*f-h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f+c*d*e);if(!1!==b)this.onChangeCallback();return this},setFromAxisAngle:function(a,b){b/=2;var c=Math.sin(b);this._x=a.x*c;this._y=a.y*c;this._z=a.z*c;this._w=Math.cos(b);this.onChangeCallback();return this},setFromRotationMatrix:function(a){var b=a.elements,c=b[0];a=b[4];var d=b[8],e=b[1],f=b[5],g=b[9],h=b[2],k=b[6];b=b[10];var m=c+f+b;0<m?(c=.5/
Math.sqrt(m+1),this._w=.25/c,this._x=(k-g)*c,this._y=(d-h)*c,this._z=(e-a)*c):c>f&&c>b?(c=2*Math.sqrt(1+c-f-b),this._w=(k-g)/c,this._x=.25*c,this._y=(a+e)/c,this._z=(d+h)/c):f>b?(c=2*Math.sqrt(1+f-c-b),this._w=(d-h)/c,this._x=(a+e)/c,this._y=.25*c,this._z=(g+k)/c):(c=2*Math.sqrt(1+b-c-f),this._w=(e-a)/c,this._x=(d+h)/c,this._y=(g+k)/c,this._z=.25*c);this.onChangeCallback();return this},setFromUnitVectors:function(){var a=new p,b;return function(c,d){void 0===a&&(a=new p);b=c.dot(d)+1;1E-6>b?(b=0,
Math.abs(c.x)>Math.abs(c.z)?a.set(-c.y,c.x,0):a.set(0,-c.z,c.y)):a.crossVectors(c,d);this._x=a.x;this._


Later { this.onAnimateEnd() }
    }
  }

  private fun stopTicker() {
    if (myTicker != null) {
      myTicker!!.cancel(false)
      myTicker = null
    }
  }

  protected open fun onAnimateEnd() {

  }

  fun suspend() {
    myStartDeltaTime = System.currentTimeMillis() - myStartTime
    myInitialStep = true
    stopTicker()
  }

  fun resume() {
    if (isDisposed) {
      stopTicker()
      return
    }
    if (skipAnimation()) {
      animationDone()
      return
    }

    if (myCycleDuration == 0) {
      myCurrentFrame = myTotalFrames - 1
      paint()
      animationDone()
    } else if (myTicker == null) {
      myTicker = EdtExecutorService.getScheduledExecutorInstance().scheduleWithFixedDelay(object : Runnable {
        override fun run() {
          onTick()
        }

        override fun toString(): String {
          return "Scheduled " + this@FlyingAnimator
        }
      }, 0, (myCycleDuration * 1000 / myTotalFrames).toLong(), TimeUnit.MICROSECONDS)
    }
  }

  private fun skipAnimation(): Boolean {
    if (GraphicsEnvironment.isHeadless()) {
      return true
    }
    val app = ApplicationManager.getApplication()
    return app != null && app.isUnitTestMode
  }

  abstract fun onValueUpdated(frame: Int, totalFrames: Int, cycle: Int)

  override fun dispose() {
    stopTicker()
    isDisposed = true
  }

  fun reset() {
    myCurrentFrame = 0
    myStartDeltaTime = 0
    myInitialStep = true
  }

  override fun toString(): String {
    val future = myTicker
    return "Animator '" + myName + "' @" + System.identityHashCode(this) +
        if (future == null || future.isDone) " (stopped)" else " (running $myCurrentFrame/$myTotalFrames frame)"
  }
}
package com.xiaopo.flying.layoutmaster.ui

import java.awt.event.KeyEvent
import javax.swing.JTextField

/**
 * Let it only support double number or Digital
 *
 * @author wupanjie on 2018/4/7.
 */
class FlyingJTextField(var onlySupportInteger: Boolean = false) : @JvmOverloads JTextField() {
  override fun processKeyEvent(e: KeyEvent) {
    if (e.keyCode == KeyEvent.VK_ENTER) {
      super.processKeyEvent(e)
      e.consume()
      return
    }

    val nextChar = e.keyChar
    val willBeText =
        if (selectedText != null && selectedText.isNotEmpty()) {
          val a = text.substring(0, selectionStart)
          val b = text.substring(selectionEnd, text.length)
          text.removeRange(selectionStart, selectionEnd)
          a + nextChar + b
        } else text + nextChar
    if (willBeText == "-") {
      super.processKeyEvent(e)
    } else {
      if (onlySupportInteger) {
        willBeText.toLongOrNull()?.let {
          if (nextChar.isDigit()) {
            super.processKeyEvent(e)
          }
        }
      } else {
        willBeText.toDoubleOrNull()?.let {
          if (nextChar.isDigit() || nextChar == '.') {
            super.processKeyEvent(e)
          }
        }
      }
    }
    e.consume()
  }
}package com.wuhenzhizao.adapter

import android.content.Context
import android.databinding.DataBindingUtil
import android.databinding.OnRebindCallback
import android.databinding.ViewDataBinding
import android.support.v7.widget.RecyclerView
import android.view.ViewGroup
import com.wuhenzhizao.adapter.holder.RecyclerViewBindingHolder
import kotlin.reflect.KClass

/**
 * Created by liufei on


able
        internalGetFieldAccessorTable() {
      return emu.grasscutter.net.proto.FungusFighterV2SettleInfoOuterClass.internal_static_FungusFighterV2SettleInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              emu.grasscutter.net.proto.FungusFighterV2SettleInfoOuterClass.FungusFighterV2SettleInfo.class, emu.grasscutter.net.proto.FungusFighterV2SettleInfoOuterClass.FungusFighterV2SettleInfo.Builder.class);
    }

    public static final int GOJKOCDIMEO_FIELD_NUMBER = 11;
    private int gOJKOCDIMEO_;
    /**
     * uint32 GOJKOCDIMEO = 11;
     * @return The gOJKOCDIMEO.
     */
    @java.lang.Override
    public int getGOJKOCDIMEO() {
      return gOJKOCDIMEO_;
    }

    public static final int LEVEL_ID_FIELD_NUMBER = 6;
    private int levelId_;
    /**
     * uint32 level_id = 6;
     * @return The levelId.
     */
    @java.lang.Override
    public int getLevelId() {
      return levelId_;
    }

    public static final int OGOLIHBAJDL_FIELD_NUMBER = 3;
    private int oGOLIHBAJDL_;
    /**
     * uint32 OGOLIHBAJDL = 3;
     * @return The oGOLIHBAJDL.
     */
    @java.lang.Override
    public int getOGOLIHBAJDL() {
      return oGOLIHBAJDL_;
    }

    public static final int IS_NEW_RECORD_FIELD_NUMBER = 8;
    private boolean isNewRecord_;
    /**
     * bool is_new_record = 8;
     * @return The isNewRecord.
     */
    @java.lang.Override
    public boolean getIsNewRecord() {
      return isNewRecord_;
    }

    public static final int COST_TIME_FIELD_NUMBER = 13;
    private int costTime_;
    /**
     * uint32 cost_time = 13;
     * @return The costTime.
     */
    @java.lang.Override
    public int getCostTime() {
      return costTime_;
    }

    public static final int IBJOJJBHKCF_FIELD_NUMBER = 15;
    private int iBJOJJBHKCF_;
    /**
     * uint32 IBJOJJBHKCF = 15;
     * @return The iBJOJJBHKCF.
     */
    @java.lang.Override
    public int getIBJOJJBHKCF() {
      return iBJOJJBHKCF_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (oGOLIHBAJDL_ != 0) {
        output.writeUInt32(3, oGOLIHBAJDL_);
      }
      if (levelId_ != 0) {
        output.writeUInt32(6, levelId_);
      }
      if (isNewRecord_ != false) {
        output.writeBool(8, isNewRecord_);
      }
      if (gOJKOCDIMEO_ != 0) {
        output.writeUInt32(11, gOJKOCDIMEO_);
      }
      if (costTime_ != 0) {
        output.writeUInt32(13, costTime_);
      }
      if (iBJOJJBHKCF_ != 0) {
        output.writeUInt32(15, iBJOJJBHKCF_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (oGOLIHBAJDL_ != 0) {


JavaScript

```js
const conn = flecs.connect("localhost");

conn.query("Position, ?Mass(up)", {
    query_info: true,
    field_info: true,
    results: false
  }, (reply) => {
    // ...
  });
```

C

```c
ecs_query_t *q = ecs_query(world, {
  .expr = "Position, ?Mass(up)"
});

ecs_iter_t it = ecs_query_iter(world, q);
ecs_iter_to_json_t desc = ECS_ITER_TO_JSON_INIT;
desc.serialize_query_info = true;
desc.serialize_field_info = true;
desc.serialize_results = true;
char *json = ecs_iter_to_json(&it, &desc);
// ...
ecs_os_free(json);
```

C++

```cpp
flecs::query<> q = world.query_builder()
  .expr("Position, ?Mass(up)")
  .build();

ecs_iter_to_json_t desc = ECS_ITER_TO_JSON_INIT;
desc.serialize_query_info = true;
desc.serialize_field_info = true;
desc.serialize_results = true;
auto json = q.iter().to_json(&desc);
```

```json
{
  "field_info": [
    {
      "id": "Position",
      "type": "Position",
      "symbol": "Position",
      "schema": {
        "x": [
          "float"
        ],
        "y": [
          "float"
        ]
      }
    },
    {
      "id": "Mass",
      "optional": true,
      "type": "Mass",
      "symbol": "Mass",
      "schema": {
        "value": [
          "float"
        ]
      }
    }
  ],
  "query_info": {
    "vars": [
      "this"
    ],
    "terms": [
      {
        "inout": "default",
        "has_value": true,
        "oper": "and",
        "src": {
          "var": "this"
        },
        "first": {
          "entity": "Position",
          "symbol": "Position",
          "type": true
        },
        "flags": [
          "self"
        ]
      },
      {
        "inout": "default",
        "has_value": true,
        "oper": "optional",
        "src": {
          "var": "this"
        },
        "first": {
          "entity": "Mass",
          "symbol": "Mass",
          "type": true
        },
        "trav": {
          "entity": "flecs.core.ChildOf",
          "symbol": "EcsChildOf"
        },
        "flags": [
          "up"
        ]
      }
    ]
  }
}
```

### GET world
Retrieve all serializable data in the world.

```
GET /world
```

#### Example

HTTP

```
GET /world
```

JavaScript

```js
const conn = flecs.connect("localhost");

conn.world((reply) => {
  // ...
});
```

C

```c
char *json = ecs_world_to_json(NULL);
// ...
ecs_os_free(json);
```

C++

```cpp
auto json = world.to_json();
```

The output of this endpoint is equivalent to requesting the following query on the query endpoint with `table=true`:

```
!ChildOf(self|up, flecs),
!Mod


message.guild.id).first() || message.guild.channels.cache.get(collected.first().content);
                if(!channel) throw { message: "You did not mentioned a valid Channel, where the Giveaway should start!" }
                giveawayChannel = channel;

                let giveawayDuration;
                await message.reply({
                    embeds: [new MessageEmbed()
                    .setColor(es.color).setThumbnail(es.thumb ? es.footericon && (es.footericon.includes("http://") || es.footericon.includes("https://")) ? es.footericon : client.user.displayAvatarURL() : null)
                    .setFooter(client.getFooter(es))
                    .setTitle(eval(client.la[ls]["cmds"]["administration"]["giveaway"]["variable11"]))
                    .setDescription(eval(client.la[ls]["cmds"]["administration"]["giveaway"]["variable12"]))
                ]})
                var collected = await message.channel.awaitMessages({filter: m=>m.author.id == originalowner,  max: 1, time: 60e3, errors: ['time'] })
                gargs = collected.first().content.split("+");
                giveawayDuration = 0;
                for(const a of gargs){
                    giveawayDuration += ms(a.split(" ").join(""))
                }
                if(!giveawayDuration || isNaN(giveawayDuration)) throw { message: "You added a not valid Time!" };

                let giveawayNumberWinners;
                await message.reply({
                    embeds: [new MessageEmbed()
                    .setColor(es.color).setThumbnail(es.thumb ? es.footericon && (es.footericon.includes("http://") || es.footericon.includes("https://")) ? es.footericon : client.user.displayAvatarURL() : null)
                    .setFooter(client.getFooter(es))
                    .setTitle(eval(client.la[ls]["cmds"]["administration"]["giveaway"]["variable17"]))
                    .setDescription(eval(client.la[ls]["cmds"]["administration"]["giveaway"]["variable18"]))
                ]})
                var collected = await message.channel.awaitMessages({filter: m=>m.author.id == originalowner,  max: 1, time: 60e3, errors: ['time'] })
                giveawayNumberWinners = collected.first().content;
                if(!giveawayNumberWinners || isNaN(giveawayNumberWinners) || (parseInt(giveawayNumberWinners) <= 0)) throw { message: "You added an invalid amount of Winners" };

                let giveawayPrize;
                await message.reply({
                    embeds: [new MessageEmbed()
                    .setColor(es.color).setThumbnail(es.thumb ? es.footericon && (es.footericon.includes("http://") || es.footericon.includes("https://")) ? es.footericon : client.user.displayAvatarURL() : null)
                    .setFooter(client.getFooter(es))
                    .setTitle(eval(client.la[ls]["cmds"]["administration"]["giveaway"]["variable23"]))
                    .setDescription(eval(client.la[ls]["cmds"]["administration"]["giveaway"]["variable24"]))
                ]})
                var collected = await message.channel.awaitMessages({filter: m=>m.author.id == originalowner,  max: 1, time: 60e3, errors: ['time'] })
                giveawayPrize = collected.first().content;

                giveawayNumberWinners = parseInt(giveawayNumberWinners);
                if(giveawayNumberWinners <= 0) giveawayNumberWinners = 1;
                let options = {
                    time: giveawayDuration,
                    duration: giveawayDuration,
                    prize: `<a:Gift:853993605868683285> ${g


指针中释放内存，因为一旦您有了纹理，就不再需要表面了。

# 向 HTML5 画布渲染纹理

在我们从虚拟文件系统加载一个字体，然后将该字体渲染到纹理之后，我们需要将该纹理复制到渲染器对象中的一个位置。完成之后，我们将需要使用该渲染器，并将其内容呈现给 HTML5 画布元素。

以下是将纹理渲染到画布上的源代码:

```cpp
SDL_QueryTexture( texture,
                    NULL, NULL,
                    &dest.w, &dest.h ); // query the width and height

dest.x -= dest.w / 2;
dest.y -= dest.h / 2;

SDL_RenderCopy( renderer, texture, NULL, &dest );
SDL_RenderPresent( renderer );
```

对`SDL_QueryTexture`函数的调用用于检索纹理的宽度和高度。我们需要在目标矩形中使用这些值，以便在不改变画布尺寸的情况下将纹理渲染到画布上。在那次调用之后，程序知道纹理的宽度和高度，因此它可以使用这些值来修改目标矩形的 *x* 和 *y* 变量，以便它可以将我们的文本放在画布的中心。因为`dest`(目的地)矩形的 *x* 和 *y* 值指定了该矩形的左上角，所以我们需要减去矩形的一半宽度和一半高度，以确保它居中。`SDL_RenderCopy`函数随后将这个纹理渲染到我们的渲染缓冲区中，`SDL_RenderPresent`将整个缓冲区移动到 HTML5 画布中。

此时，代码中剩下要做的就是`return`:

```cpp
return EXIT_SUCCESS;
```

返回一个值`EXIT_SUCCESS`告诉我们的 JavaScript 粘合代码，运行这个模块时一切都很顺利。

# 清理 SDL

您可能注意到这段代码中缺少了一些东西，这些东西可能在 SDL 应用的 Windows 或 Linux 版本中，是在程序结束时进行一些 SDL 清理的代码。例如，如果我们退出了 Windows 中的一个应用，并且没有进行清理工作，我们将在没有清除 SDL 分配的一些内存的情况下退出。如果这不是一个 WebAssembly 模块，那么在函数的末尾将包含以下几行:

```cpp
SDL_Delay(5000);
SDL_DestroyWindow(window);
SDL_Quit();
```

因为我们没有花时间进行游戏循环，所以我们希望通过调用`SDL_Delay(5000)``5000`将程序的清理和退出延迟 5 秒，T0 是在进行清理之前等待的毫秒数。我们想重申，因为我们正在编译到网络汇编，我们不想清理我们的 SDL。这样做在不同的浏览器上有不同的效果。

在 Firefox 中测试这段代码时，使用延迟是不必要的，因为即使在 WebAssembly 模块停止执行后，网页浏览器选项卡也将保持打开状态。然而，一旦 SDL 破坏了`window`对象，Chrome 浏览器标签就会显示一个错误页面。

如果这是一个 Windows 环境，`SDL_DestroyWindow`函数会破坏`window`对象。`SDL_Qu


Pattern});?(?<jump>${jumpPattern})?$`
    );

    const match = instruction.match(cInstRegex);
    if (match === null) {
      throw new Error(`Invalid C-instruction: ${instruction}`);
    }

    return {
      dest: (match.groups?.dest ?? "null") as DestMnemonicType,
      comp: match.groups!.comp as CompMnemonicType,
      jump: (match.groups?.jump ?? "null") as JumpMnemonicType,
    };
  }
}

export default Parser;
import { Injectable } from '@angular/core';

@Injectable()
export class CookieService {

    constructor() { }

    /*
    document.cookie = 'visits=3; path=/;';
    document.cookie = 'last-visit=Mon, 15 Oct 2012 19:36:00 GMT; expires=Wed, 31 Oct 2012 11:00:00 GMT;';
    */

    /**
     * @name createSingleCookie : Create single cookie item
     * @param name Name or Key of the cookie to identify it by
     * @param value Value of the key
     * @param expires Date and Time when cookie should expire
     * @param path Tell the browser what path the cookie belongs to. By default, the cookie belongs to the current page.
     * @param domain
     */
    public createSingleCookie(name, value, expires, path = '/', domain = '') {
        let cookie = name + '=' + JSON.stringify(value) + ';';

        if (expires) {
            // If it's a date
            if (expires instanceof Date) {
                // If it isn't a valid date
                if (isNaN(expires.getTime())) {
                    expires = new Date();
                }
            } else {
                expires = new Date(new Date().getTime() + this._window().parseInt(expires) * 1000 * 60 * 60 * 24);
            }

            cookie += 'expires=' + expires.toGMTString() + ';';
        }

        if (path) {
            cookie += 'path=' + path + ';';
        }
        if (domain) {
            cookie += 'domain=' + domain + ';';
        }

        document.cookie = cookie;
    }

    /**
     * @name createMultipleCookies Create multiple cookies by passing JSON object
     * @param cookieDataObj Takes JSON object with Key value pair
     */
    public createMultipleCookies(cookieDataObj) {
        Object.keys(cookieDataObj).map((cookieName) => {
            // console.log(cookie, ' : ', cookieDataObj[cookie]);
            this.createSingleCookie(cookieName, cookieDataObj[cookieName], new Date(new Date().getTime() + 10000));
        });
    }

    /**
     * @name getCookie get value of single cookie
     * @param cookieName
     */
    public getCookie(cookieName) {
        const name = cookieName + '=';
        const ca = document.cookie.split(';');

        for (let i = 0; i < ca.length; i++) {
            let c = ca[i];
            while (c.charAt(0) === ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(name) === 0) {
                return JSON.parse(c.substring(name.length, c.length));
            }
        }
        return '';
    }

    public checkCookie(cookieName) {
        const name = this.getCookie(cookieName);
        console.log(cookieName);
        if (name !== '') {
            return true;
        } else {
            return false;
        }
    }

    /**
     * @name deleteSingleCookie Remove cookie by name
     * @param cookieName Name or Key of the cookie
     */
    public deleteSingleCookie(cookieName) {
        this.createSingleCookie(cookie


 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 this program.  If not, see <http://www.gnu.org/licenses/>
*/

package console

import (
	"reflect"
	"strings"
	"testing"

	v1 "github.com/cgrates/cgrates/apier/v1"
	"github.com/cgrates/cgrates/utils"
)

func TestCmdCost(t *testing.T) {
	// commands map is initiated in init function
	command := commands["cost"]
	// verify if ApierSv1 object has method on it
	m, ok := reflect.TypeOf(new(v1.APIerSv1)).MethodByName(strings.Split(command.RpcMethod(), utils.NestingSep)[1])
	if !ok {
		t.Fatal("method not found")
	}
	if m.Type.NumIn() != 4 { // expecting 4 inputs
		t.Fatalf("invalid number of input parameters ")
	}
	// verify the type of input parameter
	if ok := m.Type.In(2).AssignableTo(reflect.TypeOf(command.RpcParams(true))); !ok {
		t.Fatalf("cannot assign input parameter")
	}
	// verify the type of output parameter
	if ok := m.Type.In(3).AssignableTo(reflect.TypeOf(command.RpcResult())); !ok {
		t.Fatalf("cannot assign output parameter")
	}
	// for coverage purpose
	if err := command.PostprocessRpcParams(); err != nil {
		t.Fatal(err)
	}
	// for coverage purpose
	formatedResult := command.GetFormatedResult(command.RpcResult())
	expected := GetFormatedResult(command.RpcResult(), utils.StringSet{
		utils.Usage:              {},
		utils.GroupIntervalStart: {},
		utils.RateIncrement:      {},
		utils.RateUnit:           {},
	})
	if !reflect.DeepEqual(formatedResult, expected) {
		t.Errorf("Expected <%+v>, Received <%+v>", expected, formatedResult)
	}
	// for coverage purpose
	result := command.ClientArgs()
	expected2 := []string{utils.Tenant, utils.Category, utils.Subject, utils.AnswerTime, utils.Destination, utils.Usage}
	if !reflect.DeepEqual(result, expected2) {
		t.Errorf("Expected <%+v>, Received <%+v>", expected2, result)
	}
}
/*
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
Copyright (C) ITsysCOM GmbH

This program 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.

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.

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

package console

import (
	v1 "github.com/cgrates/cgrates/apier/v1"
	"github.com/cgrates/cgrates/utils"
)

func init() {
	c := &CmdSetStorDBVersions{
		name:      "set_stordb_versions",
		rpcMethod: utils.APIerSv1SetStorDBVersions,
		rpcParams: &v1.SetVersionsArg{},
	}
	commands[c.Name()] = c
	c.CommandExecuter = &CommandExecuter{c}
}

type CmdSetStorDBVersions struct {
	name      string
	rpcMethod string
	rpcParams *v1.SetVersionsArg
	*CommandExecute


签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
    signType: string;
    // 支付签名
    paySign: string;
    // 支付成功后的回调函数
    success(res: any): any;
  }
}import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';
import { Location } from '../../game/Location';

@Component({
  selector: 'app-square',
  templateUrl: './square.component.html',
  styleUrls: ['./square.component.css']
})
export class SquareComponent implements OnInit {

  @Output() squareClickedEvent: EventEmitter<Location> = new EventEmitter<Location>();

  @Input() piece: number = 0;
  imageSrc: string = "./assets/";
  @Input() row: number = 0;
  @Input() col: number = 0;

  constructor() { }

  ngOnInit(): void {
    if(this.piece === 0){
      this.imageSrc = " ";
    }
    else {
    if (this.piece === -1) {
      this.imageSrc += "playerX.png";
    }
    if (this.piece === 1) {
      this.imageSrc += "playerO.png";
    }
  }
  }

  squareClicked(): void {
    this.squareClickedEvent.emit(
      { row: this.row, col: this.col }
      );
  }

}
import * as asn1js from "asn1js";
import * as pvutils from "pvutils";
import { EMPTY_STRING } from "./constants";
import { AsnError } from "./errors";
import { PkiObject, PkiObjectParameters } from "./PkiObject";
import * as Schema from "./Schema";

const ISSUER_DOMAIN_POLICY = "issuerDomainPolicy";
const SUBJECT_DOMAIN_POLICY = "subjectDomainPolicy";
const CLEAR_PROPS = [
  ISSUER_DOMAIN_POLICY,
  SUBJECT_DOMAIN_POLICY
];

export interface IPolicyMapping {
  issuerDomainPolicy: string;
  subjectDomainPolicy: string;
}

export interface PolicyMappingJson {
  issuerDomainPolicy: string;
  subjectDomainPolicy: string;
}

export type PolicyMappingParameters = PkiObjectParameters & Partial<IPolicyMapping>;

/**
 * Represents the PolicyMapping structure described in [RFC5280](https://datatracker.ietf.org/doc/html/rfc5280)
 */
export class PolicyMapping extends PkiObject implements IPolicyMapping {

  public static override CLASS_NAME = "PolicyMapping";

  public issuerDomainPolicy!: string;
  public subjectDomainPolicy!: string;

  /**
   * Initializes a new instance of the {@link PolicyMapping} class
   * @param parameters Initialization parameters
   */
  constructor(parameters: PolicyMappingParameters = {}) {
    super();

    this.issuerDomainPolicy = pvutils.getParametersValue(parameters, ISSUER_DOMAIN_POLICY, PolicyMapping.defaultValues(ISSUER_DOMAIN_POLICY));
    this.subjectDomainPolicy = pvutils.getParametersValue(parameters, SUBJECT_DOMAIN_POLICY, PolicyMapping.defaultValues(SUBJECT_DOMAIN_POLICY));

    if (parameters.schema) {
      this.fromSchema(parameters.schema);
    }
  }

  /**
   * Returns default values for all class members
   * @param memberName String name for a class member
   * @returns Default value
   */
  public static override defaultValues(memberName: typeof ISSUER_DOMAIN_POLICY): string;
  public static override defaultValues(memberName: typeof SUBJECT_DOMAIN_POLICY): string;
  public static override defaultValues(memberName: string): any {
    switch (memberName) {
      case ISSUE


56428C */  lw         $v0, %lo(g_DeltaTime)($v0)
/* 3B288 8004AA88 00000000 */  nop
/* 3B28C 8004AA8C 09004018 */  blez       $v0, .L8004AAB4
/* 3B290 8004AA90 21800000 */   addu      $s0, $zero, $zero
.L8004AA94:
/* 3B294 8004AA94 F90F010C */  jal        func_80043FE4
/* 3B298 8004AA98 21200002 */   addu      $a0, $s0, $zero
/* 3B29C 8004AA9C 0780023C */  lui        $v0, %hi(g_DeltaTime)
/* 3B2A0 8004AAA0 CC56428C */  lw         $v0, %lo(g_DeltaTime)($v0)
/* 3B2A4 8004AAA4 01001026 */  addiu      $s0, $s0, 0x1
/* 3B2A8 8004AAA8 2A100202 */  slt        $v0, $s0, $v0
/* 3B2AC 8004AAAC F9FF4014 */  bnez       $v0, .L8004AA94
/* 3B2B0 8004AAB0 00000000 */   nop
.L8004AAB4:
/* 3B2B4 8004AAB4 0880103C */  lui        $s0, %hi(g_Spyro + 0x100)
/* 3B2B8 8004AAB8 588B1026 */  addiu      $s0, $s0, %lo(g_Spyro + 0x100)
/* 3B2BC 8004AABC 21200002 */  addu       $a0, $s0, $zero
/* 3B2C0 8004AAC0 B25D000C */  jal        VecShiftRight
/* 3B2C4 8004AAC4 06000524 */   addiu     $a1, $zero, 0x6
/* 3B2C8 8004AAC8 8CFF0426 */  addiu      $a0, $s0, -0x74
/* 3B2CC 8004AACC 00FF1126 */  addiu      $s1, $s0, -0x100
/* 3B2D0 8004AAD0 C05D000C */  jal        VecCopy
/* 3B2D4 8004AAD4 21282002 */   addu      $a1, $s1, $zero
/* 3B2D8 8004AAD8 21202002 */  addu       $a0, $s1, $zero
/* 3B2DC 8004AADC 21288000 */  addu       $a1, $a0, $zero
/* 3B2E0 8004AAE0 D65D000C */  jal        VecAdd
/* 3B2E4 8004AAE4 21300002 */   addu      $a2, $s0, $zero
/* 3B2E8 8004AAE8 0780023C */  lui        $v0, %hi(g_DeltaTime)
/* 3B2EC 8004AAEC CC56428C */  lw         $v0, %lo(g_DeltaTime)($v0)
/* 3B2F0 8004AAF0 00000000 */  nop
/* 3B2F4 8004AAF4 0B004018 */  blez       $v0, .L8004AB24
/* 3B2F8 8004AAF8 21800000 */   addu      $s0, $zero, $zero
.L8004AAFC:
/* 3B2FC 8004AAFC 2322010C */  jal        func_8004888C
/* 3B300 8004AB00 01001026 */   addiu     $s0, $s0, 0x1
/* 3B304 8004AB04 0780023C */  lui        $v0, %hi(g_DeltaTime)
/* 3B308 8004AB08 CC56428C */  lw         $v0, %lo(g_DeltaTime)($v0)
/* 3B


/* Copyright 2024 The OpenXLA Authors.

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.
==============================================================================*/
#ifndef XLA_HLO_TRANSFORMS_SIMPLIFIERS_HOST_MEMORY_TRANSFER_ASYNCIFIER_H_
#define XLA_HLO_TRANSFORMS_SIMPLIFIERS_HOST_MEMORY_TRANSFER_ASYNCIFIER_H_

#include <cstdint>

#include "absl/container/flat_hash_set.h"
#include "absl/status/statusor.h"
#include "absl/strings/string_view.h"
#include "xla/hlo/pass/hlo_pass_interface.h"

namespace xla {

/*
This pass finds copies between the host memory and device memory and converts
them into the async ops. This includes, but is not limited to:
 - device to host DynamicUpdateSlice
 - host to device DynamicSlice
* The examples below are not yet supported *
 - host to device DynamicUpdateSlice
 - device to host DynamicSlice
 - host to device Copy
 - device to host Copy
*/
class HostMemoryTransferAsyncifier : public HloModulePass {
 public:
  explicit HostMemoryTransferAsyncifier(int64_t host_memory_space_color)
      : kHostMemorySpaceColor(host_memory_space_color) {}
  ~HostMemoryTransferAsyncifier() override = default;

  absl::string_view name() const override {
    return "host-memory-transfer-asyncifier";
  }

  using HloPassInterface::Run;
  absl::StatusOr<bool> Run(
      HloModule* module,
      const absl::flat_hash_set<absl::string_view>& execution_threads) override;

 private:
  const int64_t kHostMemorySpaceColor;
};

}  // namespace xla

#endif  // XLA_HLO_TRANSFORMS_SIMPLIFIERS_HOST_MEMORY_TRANSFER_ASYNCIFIER_H_


= year && year <= 2002);

            result
        } else {
            Ok(false)
        }
    }

    fn validate_issue_year(&self, value: &String) -> GenericResult<bool> {
        if value.len() == 4 {
            let year: i32 = value.parse()?;

            Ok(2010 <= year && year <= 2020)
        } else {
            Ok(false)
        }
    }

    fn validate_expiration_year(&self, value: &String) -> GenericResult<bool> {
        if value.len() == 4 {
            let year: i32 = value.parse()?;

            Ok(2020 <= year && year <= 2030)
        } else {
            Ok(false)
        }
    }

    fn validate_hair_color(&self, value: &String) -> GenericResult<bool> {
        lazy_static! {
            static ref RE: Regex = Regex::new(r"^#[0-9a-f]{6}$").unwrap();
        }
        let is_match = RE.is_match(value);

        Ok(is_match)
    }

    fn validate_eye_color(&self, value: &String) -> GenericResult<bool> {
        match value.as_str() {
            "amb" | "blu" | "brn" | "gry" | "grn" | "hzl" | "oth" => {
                Ok(true)
            },
            _ => Ok(false)
        }
    }

    fn validate_passport_id(&self, value: &String) -> GenericResult<bool> {
        lazy_static! {
            static ref RE: Regex = Regex::new(r"^[0-9]{9}$").unwrap();
        }

        let is_match = RE.is_match(value);

        Ok(is_match)
    }
}

impl Passport {
    pub fn new(fields: HashMap<PassportFields, String>) -> Passport {
        Passport {
            fields,
        }
    }

    pub fn parse_passport(key_value_pairs: &str) -> GenericResult<Passport> {
        let splits = key_value_pairs.split(" ");
        let mut fields = HashMap::new();

        for split in splits {
            let mut key_value = split.split(":");

            let key = key_value.next().ok_or("Did not find key.")?.trim();
            let value = key_value.next().ok_or("Did not find value.")?.trim();

            fields.insert(key.try_into()?, value.to_string());
        }

        Ok(Passport::new(fields))
    }
}

pub fn parse_passports(path: &str) -> GenericResult<Vec<Passport>> {
    let lines = aoc_common::read_raw_file_content(path)?;
    parse_passports_from_lines(&lines)
}

fn parse_passports_from_lines(lines: &Vec<String>) -> GenericResult<Vec<Passport>> {
    let mut first_line = 0;
    let mut passports = Vec::new();

    for (idx, line) in lines.iter().enumerate() {
        if line.is_empty() {
            let passport = Passport::parse_passport(&lines[first_line..idx].join(" "))?;
            passports.push(passport);
            first_line = idx + 1;
        }
    }

    if first_line < lines.len() {
        let passport = Passport::parse_passport(&lines[first_line..lines.len()].join(" "))?;
        passports.push(passport);
    }

    Ok(passports)
}

#[derive(Hash, Eq, PartialEq, Debug)]
pub enum PassportFields {
    BirthYear,
    IssueYear,
    ExpirationYear,
    Height,
    HairColor,
    EyeColor,
    PassportId,
    CountryId,
}

impl TryFrom<&str> for PassportFields {
    type Error = String;

    fn try_from(value: &str) -> Result<Self, Self::Error> {
        match value {
            "byr" => Ok(PassportFields::BirthYear),
            "iyr" =>


e.lyrics-lyricsContent-active {
    text-shadow: 0 0 10px var(--lyrics-color-background),
        -2px 1px 0 var(--spice-main), -3px 2px 0 var(--lyrics-color-background),
        2px -1px 0 var(--spice-main), 3px -2px 0 var(--lyrics-color-background);
    opacity: 1;
}

/*  ================================
    RIGHT SIDEBAR
    ================================ */

.Root__right-sidebar {
    border-left: var(--sidebar-border-width) solid var(--spice-sidebar-border);
}
.Root__right-sidebar aside::before {
    background-color: var(--spice-sidebar) !important;
}

/*  ================================
    NOW PLAYING BAR
    ================================ */

.Root__now-playing-bar {
    border-top: var(--player-border-width) solid var(--spice-player-border);
}
.main-nowPlayingBar-nowPlayingBar {
    /* customize now playing bar */
    height: var(--player-height);
    padding: var(--player-padding);
}
.main-nowPlayingBar-container {
    /* customize now playing bar*/
    border-top: none;
}
[dir="ltr"] .main-nowPlayingWidget-coverExpanded {
    transform: translateX(-76px);
}
.x-progressBar-fillColor {
    /* fluid progress bars */
    transition: transform, 0s, ease, 0.25s;
}
.progress-bar__slider {
    /* fluid progress bars */
    transition: left, 0s, ease, 0.25s;
}

/*  ================================
    MISC & FIXES
    ================================ */

/*  root
    -------------------------------- */
.Root {
    --panel-gap: 0 !important;
}
.spotify__container--is-desktop .Root__top-container {
    padding-top: 0 !important;
}

/*  scrollbar
    -------------------------------- */
.os-scrollbar-handle {
    /* customize scrollbar */
    border-radius: var(--scrollbar-border-radius) !important;
    width: var(--scrollbar-width) !important;
    margin: 0 6px !important;
}
.os-scrollbar-handle:hover {
    /* customize hovered scrollbar */
    border-radius: var(--scrollbar-border-radius) !important;
    width: var(--scrollbar-width-hover) !important;
}
.os-scrollbar-handle {
    /* increase size from right to left */
    position: absolute;
    top: 0;
    right: 0;
}

/*  tooltip
    -------------------------------- */
.main-contextMenu-tippy {
    /* position below the element */
    transform: translate(0, 65px);
}

/*  placeholder
    -------------------------------- */
.T7WHRub8pynnWPXERh8e,
.rOgsguaurlHVlgCTY0P7,
.eC25_w41L83mXDCqdm_A {
    /* playlists loading placeholder */
    opacity: 0.05;
    filter: contrast(0.1);
}

/*  color reassignment
    -------------------------------- */
.encore-dark-theme,
.encore-dark-theme .encore-base-set,
*[style*="subdued"] {
    /* song duration & queue button & folder arrow & settings desc text */
    --text-subdued: var(--spice-subtext) !important;
    --essential-subdued: var(--spice-subtext) !important;
}
.encore-dark-theme .encore-bright-accent-set {
    --background-highlight: var(--spice-button-active);
    --background-press: var(--spice-button-active);
    --background-elevated-base: var(--spice-button-active);
    --background-elevated-highlight: var(--spice-button-active);
    --background-elevated-


PP_ADD_O_I(x, y) (BOOST_PP_INC(x), BOOST_PP_DEC(y))
#
# /* BOOST_PP_ADD_D */
#
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
#    define BOOST_PP_ADD_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
# else
#    define BOOST_PP_ADD_D(d, x, y) BOOST_PP_ADD_D_I(d, x, y)
#    define BOOST_PP_ADD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
# endif
#
# endif
# /* Copyright (C) 2001
#  * Housemarque Oy
#  * http://www.housemarque.com
#  *
#  * Distributed under the Boost Software License, Version 1.0. (See
#  * accompanying file LICENSE_1_0.txt or copy at
#  * http://www.boost.org/LICENSE_1_0.txt)
#  */
#
# /* Revised by Paul Mensonides (2002) */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_SELECTION_MIN_HPP
# define BOOST_PREPROCESSOR_SELECTION_MIN_HPP
#
# include <boost/preprocessor/comparison/less_equal.hpp>
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/control/iif.hpp>
#
# /* BOOST_PP_MIN */
#
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
#    define BOOST_PP_MIN(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(y, x), y, x)
# else
#    define BOOST_PP_MIN(x, y) BOOST_PP_MIN_I(x, y)
#    define BOOST_PP_MIN_I(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(y, x), y, x)
# endif
#
# /* BOOST_PP_MIN_D */
#
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
#    define BOOST_PP_MIN_D(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, y, x), y, x)
# else
#    define BOOST_PP_MIN_D(d, x, y) BOOST_PP_MIN_D_I(d, x, y)
#    define BOOST_PP_MIN_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, y, x), y, x)
# endif
#
# endif
# /* Copyright (C) 2001
#  * Housemarque Oy
#  * http://www.housemarque.com
#  *
#  * Distributed under the Boost Software License, Version 1.0. (See
#  * accompanying file LICENSE_1_0.txt or copy at
#  * http://www.boost.org/LICENSE_1_0.txt)
#  */
#
# /* Revised by Paul Mensonides (2002) */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_DEBUG_ASSERT_HPP
# define BOOST_PREPROCESSOR_DEBUG_ASSERT_HPP
#
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/control/expr_iif.hpp>
# include <boost/preprocessor/control/iif.hpp>
# include <boost/preprocessor/logical/not


labels"], [13, 2, 1, "", "featurize"], [13, 2, 1, "", "implementors"]], "matminer.featurizers.dos.DosAsymmetry": [[13, 2, 1, "", "__init__"], [13, 2, 1, "", "citations"], [13, 2, 1, "", "feature_labels"], [13, 2, 1, "", "featurize"], [13, 2, 1, "", "implementors"]], "matminer.featurizers.dos.Hybridization": [[13, 2, 1, "", "__init__"], [13, 2, 1, "", "citations"], [13, 2, 1, "", "feature_labels"], [13, 2, 1, "", "featurize"], [13, 2, 1, "", "implementors"]], "matminer.featurizers.dos.SiteDOS": [[13, 2, 1, "", "__init__"], [13, 2, 1, "", "citations"], [13, 2, 1, "", "feature_labels"], [13, 2, 1, "", "featurize"], [13, 2, 1, "", "implementors"]], "matminer.featurizers.function": [[13, 1, 1, "", "FunctionFeaturizer"], [13, 3, 1, "", "generate_expressions_combinations"]], "matminer.featurizers.function.FunctionFeaturizer": [[13, 5, 1, "", "ILLEGAL_CHARACTERS"], [13, 2, 1, "", "__init__"], [13, 2, 1, "", "citations"], [13, 6, 1, "", "exp_dict"], [13, 2, 1, "", "feature_labels"], [13, 2, 1, "", "featurize"], [13, 2, 1, "", "fit"], [13, 2, 1, "", "generate_string_expressions"], [13, 2, 1, "", "implementors"]], "matminer.featurizers.site": [[16, 0, 0, "-", "bonding"], [16, 0, 0, "-", "chemical"], [16, 0, 0, "-", "external"], [16, 0, 0, "-", "fingerprint"], [16, 0, 0, "-", "misc"], [16, 0, 0, "-", "rdf"], [17, 0, 0, "-", "tests"]], "matminer.featurizers.site.bonding": [[16, 1, 1, "", "AverageBondAngle"], [16, 1, 1, "", "AverageBondLength"], [16, 1, 1, "", "BondOrientationalParameter"], [16, 3, 1, "", "get_wigner_coeffs"]], "matminer.featurizers.site.bonding.AverageBondAngle": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "citations"], [16, 2, 1, "", "feature_labels"], [16, 2, 1, "", "featurize"], [16, 2, 1, "", "implementors"]], "matminer.featurizers.site.bonding.AverageBondLength": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "citations"], [16, 2, 1, "", "feature_labels"], [16, 2, 1, "", "featurize"], [16, 2, 1, "", "implementors"]], "matminer.featurizers.site.bonding.BondOrientationalParameter": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "citations"], [16, 2, 1, "", "feature_labels"], [16, 2, 1, "", "featurize"], [16, 2, 1, "", "implementors"]], "matminer.featurizers.site.chemical": [[16, 1, 1, "", "ChemicalSRO"], [16, 1, 1, "", "EwaldSiteEnergy"], [16, 1, 1, "", "LocalPropertyDifference"], [16, 1, 1, "", "SiteElementalProperty"]], "matminer.featurizers.site.chemical.ChemicalSRO": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "citations"], [16, 2, 1, "", "feature_labels"], [


// Initialize interrupt controller
    bl      arm_interrupt_controller_init

    // Initialize timers
    bl      arm_timer_init

    // Initialize UART for debugging
    bl      arm_uart_init

    // Initialize GPIO
    bl      arm_gpio_init

    // Initialize other peripherals
    bl      arm_peripheral_init

    bx      lr

// ============================================================================
// CPU INITIALIZATION
// ============================================================================

.global arm_cpu_init
.type arm_cpu_init, %function

arm_cpu_init:
    // Initialize CPU features

    // Set up coprocessor access
    mov     r0, #0x00000000
    mcr     p15, 0, r0, c1, c0, 2

    // Enable NEON/VFP
    mrc     p15, 0, r0, c1, c0, 2
    orr     r0, r0, #0x0F00000
    mcr     p15, 0, r0, c1, c0, 2

    // Enable access to CP10 and CP11
    mov     r0, #0x00F00000
    mcr     p15, 0, r0, c1, c0, 2

    // Set up VFP
    fmrx    r0, FPEXC
    orr     r0, r0, #0x40000000
    fmxr    FPEXC, r0

    // Set up performance monitoring
    mov     r0, #0x00000000
    mcr     p15, 0, r0, c9, c12, 0

    // Enable cycle counter
    mov     r0, #0x00000001
    mcr     p15, 0, r0, c9, c12, 1

    // Enable performance counters
    mov     r0, #0x00000000
    mcr     p15, 0, r0, c9, c12, 2

    bx      lr

// ============================================================================
// MEMORY CONTROLLER INITIALIZATION
// ============================================================================

.global arm_memory_controller_init
.type arm_memory_controller_init, %function

arm_memory_controller_init:
    // Initialize memory controller
    // This is platform-specific

    // Set up memory timing
    // Set up memory size
    // Set up memory map

    bx      lr

// ============================================================================
// INTERRUPT CONTROLLER INITIALIZATION
// ============================================================================

.global arm_interrupt_controller_init
.type arm_interrupt_controller_init, %function

arm_interrupt_controller_init:
    // Initialize interrupt controller
    // This is platform-specific

    // Set up interrupt priorities
    // Set up interrupt routing
    // Enable interrupts

    bx      lr

// ============================================================================
// TIMER INITIALIZATION
// ============================================================================

.global arm_timer_init
.type arm_timer_init, %function

arm_timer_init:
    // Initialize system timers

    // Initialize ARM generic timer
    bl      arm_generic_timer_init

    // Initialize platform-specific timers
    bl      arm_platform_timer_init

    bx      lr

// ==================================================


, 37.967922f)
    cubicTo(40.685127f, 39.37734f, 37.540596f, 40.6824f, 32.41574f, 41.38893f)
    cubicTo(27.290888f, 42.095467f, 20.96915f, 42.095467f, 15.8442955f, 41.38893f)
    cubicTo(10.719441f, 40.6824f, 7.574909f, 39.37734f, 7.6013966f, 37.967922f)
    cubicTo(7.574909f, 36.558506f, 10.719441f, 35.253445f, 15.8442955f, 34.546913f)
    cubicTo(20.96915f, 33.840378f, 27.290888f, 33.840378f, 32.41574f, 34.546913f)
    cubicTo(37.540596f, 35.253445f, 40.685127f, 36.558506f, 40.65864f, 37.967922f)
    close()
}
shape = Outline.Generic(generalPath!!)
brush = Brush.radialGradient(0.0f to Color(0, 0, 0, 255), 1.0f to Color(0, 0, 0, 0), center = Offset(24.130018f, 37.96793f), radius = 16.52862f, tileMode = TileMode.Clamp)
drawOutline(outline = shape!!, style=Fill, brush=brush!!, alpha=alpha, blendMode = blendMode)
}
alpha = alphaStack.removeAt(0)
blendMode = blendModeStack.removeAt(0)
alphaStack.add(0, alpha)
alpha *= 1.0f
blendModeStack.add(0, BlendMode.SrcOver)
blendMode = BlendMode.SrcOver
// _0_2_1_1
if (generalPath == null) {
   generalPath = Path()
} else {
   generalPath!!.reset()
}
generalPath?.run {
    moveTo(18.62757f, 3.1435547f)
    cubicTo(10.488439f, 3.1435547f, 3.8827682f, 9.749226f, 3.8827682f, 17.888355f)
    cubicTo(3.8827682f, 26.027487f, 10.488439f, 32.63316f, 18.62757f, 32.63316f)
    cubicTo(22.107124f, 32.63316f, 25.17857f, 31.248766f, 27.701292f, 29.23051f)
    cubicTo(27.495914f, 30.237392f, 27.623257f, 31.265879f, 28.457436f, 31.990437f)
    lineTo(39.42152f, 41.517845f)
    cubicTo(40.654938f, 42.589176f, 42.508984f, 42.448807f, 43.58031f, 41.21539f)
    cubicTo(44.651638f, 39.98197f, 44.51127f, 38.127926f, 43.27785f, 37.0566f)
    lineTo(32.31377f, 27.529188f)
    cubicTo(31.642242f, 26.94591f, 30.82089f, 26.773218f, 30.00753f, 26.886465f)
    cubicTo(31.99423f, 24.374044f, 33.37237f, 21.337664f, 33.37237f, 17.888355f)
    cubicTo(33.37237f, 9.749226f, 26.766699f, 3.1435547f, 18.62757f, 3.1435547f)
    close()
    moveTo(18.55195