"""
# @Time    : 2021/6/30 10:07 下午
# @Author  : hezhiqiang
# @Email   : tinyzqh@163.com
# @File    : train.py
"""
import random

#  TODO env的seed需要设置，否则每次启动的env都是一样的，这样就无法进行对比了
#  TODO 环境更复杂
# !/usr/bin/env python
import sys
import os
import socket
import setproctitle
import numpy as np
from pathlib import Path
import torch
from metadrive.component.sensors.rgb_camera import RGBCamera
from metadrive.policy.idm_policy import ManualControllableIDMPolicy

# Get the parent directory of the current file
parent_dir = os.path.abspath(os.path.join(os.getcwd(), "."))

# Append the parent directory to sys.path, otherwise the following import will fail
sys.path.append(parent_dir)

from config import get_config
from envs.env_wrappers import DummyVecEnv

def parse_args(args, parser):
    parser.add_argument("--scenario_name", type=str, default="MyEnv", help="Which scenario to run on")
    # parser.add_argument("--num_landmarks", type=int, default=3)
    all_args = parser.parse_known_args(args)[0]
    return all_args

def main(args):
    parser = get_config()
    print("-------------------------content inside parser------------------------------------")
    print(parser)
    print("-------------------------------------------------------------")
    all_args = parse_args(args, parser)
    #修改下面的内容指定训练好的模型的目录
    all_args.model_dir = "results/MyEnv/MyEnv/mappo/check/run22/models"
    print("---------------------------content inside all_args----------------------------------")
    print(all_args)
    print("-------------------------------------------------------------")
    if all_args.algorithm_name == "rmappo":
        assert all_args.use_recurrent_policy or all_args.use_naive_recurrent_policy, "check recurrent policy!"
    elif all_args.algorithm_name == "mappo":
        assert (
            all_args.use_recurrent_policy == False and all_args.use_naive_recurrent_policy == False
        ), "check recurrent policy!"
    else:
        raise NotImplementedError

    assert (
        all_args.share_policy == True and all_args.scenario_name == "simple_speaker_listener"
    ) == False, "The simple_speaker_listener scenario can not use shared policy. Please check the config.py."

    # cuda
    if all_args.cuda and torch.cuda.is_available():
        print("choose to use gpu...")
        device = torch.device("cuda:0")
        torch.set_num_threads(all_args.n_training_threads)
        if all_args.cuda_deterministic:
            torch.backends.cudnn.benchmark = False
            torch.backends.cudnn.deterministic = True
    else:
        print("choose to use cpu...")
        device = torch.device("cpu")
        torch.set_num_threads(all_args.n_training_threads)

    # run dir
    run_dir = (
        Path(os.path.split(os.path.dirname(os.path.abspath(__file__)))[0] + "/results")
        / all_args.env_name
        / all_args.scenario_name
        / all_args.algorithm_name
        / all_args.experiment_name
    )
    if not run_dir.exists():
        os.makedirs(str(run_dir))

    if not run_dir.exists():
        curr_run = "run1"
    else:
        exst_run_nums = [
            int(str(folder.name).split("run")[1])
            for folder in run_dir.iterdir()
            if str(folder.name).startswith("run")
        ]
        if len(exst_run_nums) == 0:
            curr_run = "run1"
        else:
            curr_run = "run%i" % (max(exst_run_nums) + 1)
    run_dir = run_dir / curr_run
    if not run_dir.exists():
        os.makedirs(str(run_dir))

    setproctitle.setproctitle(
        str(all_args.algorithm_name)
        + "-"
        + str(all_args.env_name)
        + "-"
        + str(all_args.experiment_name)
        + "@"
        + str(all_args.user_name)
    )

    # seed
    torch.manual_seed(all_args.seed)
    torch.cuda.manual_seed_all(all_args.seed)
    np.random.seed(all_args.seed)

    # env init
    # envs = make_train_env(all_args)
    # eval_envs = make_eval_env(all_args) if all_args.use_eval else None
    num_agents = all_args.num_agents

    config_train=dict(
        random_spawn_lane_index=False,
        start_seed=0,
        use_render=all_args.use_render,
        crash_done= True,
        sensors=dict(rgb_camera=(RGBCamera, 512, 256)),
        # start_seed=random.randint(0, 1000),
        show_coordinates=True,
        image_observation=False,
        # interface_panel=["rgb_camera", "dashboard"],
        random_traffic=all_args.human_vehicle,
        traffic_density=all_args.traffic_density[all_args.env] if all_args.hum


		{
			CPU.CurrentDMAorHDMAChannel = i;

			DMA[i].Address = DMA[i].AAddress;

			if (!HDMAReadLineCount(i))
			{
				PPU.HDMA &= ~(1 << i);
				PPU.HDMAEnded |= (1 << i);
			}
		}
		else
			DMA[i].DoTransfer = FALSE;
	}

	CPU.InHDMA = FALSE;
	CPU.InDMAorHDMA = CPU.InDMA;
	CPU.HDMARanInDMA = CPU.InDMA ? PPU.HDMA : 0;
	CPU.CurrentDMAorHDMAChannel = tmpch;
}

uint8 S9xDoHDMA (uint8 byte)
{
	struct SDMA	*p = &DMA[0];

	uint32	ShiftedIBank;
	uint16	IAddr;
	bool8	temp;
	int32	tmpch;
	int		d = 0;

	CPU.InHDMA = TRUE;
	CPU.InDMAorHDMA = TRUE;
	CPU.HDMARanInDMA = CPU.InDMA ? byte : 0;
	temp = CPU.InWRAMDMAorHDMA;
	tmpch = CPU.CurrentDMAorHDMAChannel;

	// XXX: Not quite right...
	ADD_CYCLES(Timings.DMACPUSync);

	for (uint8 mask = 1; mask; mask <<= 1, p++, d++)
	{
		if (byte & mask)
		{
			CPU.InWRAMDMAorHDMA = FALSE;
			CPU.CurrentDMAorHDMAChannel = d;

			if (p->HDMAIndirectAddressing)
			{
				ShiftedIBank = (p->IndirectBank << 16);
				IAddr = p->IndirectAddress;
			}
			else
			{
				ShiftedIBank = (p->ABank << 16);
				IAddr = p->Address;
			}

			if (!HDMAMemPointers[d])
				HDMAMemPointers[d] = S9xGetMemPointer(ShiftedIBank + IAddr);

			if (p->DoTransfer)
			{
				// XXX: Hack for Uniracers, because we don't understand
				// OAM Address Invalidation
				if (p->BAddress == 0x04)
				{
					if (SNESGameFixes.Uniracers)
					{
						PPU.OAMAddr = 0x10c;
						PPU.OAMFlip = 0;
					}
				}

			#ifdef DEBUGGER
				if (Settings.TraceHDMA && p->DoTransfer)
				{
					sprintf(String, "H-DMA[%d] %s (%d) 0x%06X->0x21%02X %s, Count: %3d, Rep: %s, V-LINE: %3ld %02X%04X",
							p-DMA, p->ReverseTransfer? "read" : "write",
							p->TransferMode, ShiftedIBank+IAddr, p->BAddress,
							p->HDMAIndirectAddressing ? "ind" : "abs",
							p->LineCount,
							p->Repeat ? "yes" : "no ", (long) CPU.V_Counter,
							p->ABank, p->Address);
					S9xMessage(S9X_TRACE, S9X_HDMA_TRACE, String);
				}
			#endif

				if (!p->ReverseTransfer)
				{
					if ((IAddr & MEMMAP_MASK) + HDMA_ModeByteCounts[p->TransferMode] >= MEMMAP_BLOCK_SIZE)
					{
						// HDMA REALLY-SLOW PATH
						HDMAMemPointers[d] = NULL;

						#define DOBYTE(Addr, RegOff) \
							CPU.InWRAMDMAorHDMA = (ShiftedIBank == 0x7e0000 || ShiftedIBank == 0x7f0000 || \
								(!(ShiftedIBank & 0x400000) && ((uint16) (Addr)) < 0x2000)); \
							S9xSetPPU(S9xGetByte(ShiftedIBank + ((uint16) (Addr))),


using Grand.Domain.Localization;
using Grand.Services.Commands.Models.Catalog;
using Grand.Services.Messages;
using MediatR;
using System.Threading;
using System.Threading.Tasks;

namespace Grand.Services.Commands.Handlers.Catalog
{
    public class SendQuantityBelowStoreOwnerNotificationCommandHandler : IRequestHandler<SendQuantityBelowStoreOwnerNotificationCommand, bool>
    {
        private readonly IWorkflowMessageService _workflowMessageService;
        private readonly LocalizationSettings _localizationSettings;

        public SendQuantityBelowStoreOwnerNotificationCommandHandler(
            IWorkflowMessageService workflowMessageService,
            LocalizationSettings localizationSettings)
        {


// SPDX-FileCopyrightText: 2022 Paul Ritter <ritter.paul1@googlemail.com>
// SPDX-FileCopyrightText: 2024 Alice "Arimah" Heurlin <30327355+arimah@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Errant <35878406+Errant-4@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 HS <81934438+HolySSSS@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 PJBot <pieterjan.briers+bot@gmail.com>
// SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
// SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Rouge2t7 <81053047+Sarahon@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
// SPDX-FileCopyrightText: 2024 Truoizys <153248924+Truoizys@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Ubaser <134914314+UbaserB@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
// SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
// SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 osjarw <62134478+osjarw@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
// SPDX-FileCopyrightText: 2024 Арт <123451459+JustArt1m@users.noreply.github.com>
// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
// SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com>
// SPDX-FileCopyrightText: 2025 FaDeOkno <logkedr18@gmail.com>
// SPDX-FileCopyrightText: 2025 SX_7 <sn1.test.preria.2002@gmail.com>
// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
//
// SPDX-License-Identifier: AGPL-3.0-or-later

using Content.Shared.Database;
using Content.Share


  table.insert(v,", input wire ["..(types.lower(self.inputType):verilogBits()-1)..":0] "..fnname.."_input, output wire ["..(types.extractReady(self.inputType):verilogBits()-1)..":0] "..readyName)
  elseif self.inputType:isrv() then
    if self.inputType:lower():verilogBits()>0 then
      table.insert(v,", input wire ["..(self.inputType:lower():verilogBits()-1)..":0] "..fnname.."_input")
    end

    if self.stateful or (self.delay~=nil and self.delay>0) then
      table.insert(v,", input wire "..fnname.."_CE")
    end

    if self.stateful then
      table.insert(v,", input wire "..fnname.."_valid")
    end
  else
    print("vHeaderInOut NYI type: "..tostring(self.inputType))
    assert(false)
  end

  if self.outputType==types.Interface() then
  elseif types.isHandshakeAny(self.outputType) then
    local readyName = "ready_downstream"
    if fnname~="process" then readyName=fnname.."_ready_downstream" end

    table.insert(v,", output wire ["..(types.lower(self.outputType):verilogBits()-1)..":0] "..fnname.."_output, input wire ["..(types.extractReady(self.outputType):verilogBits()-1)..":0] "..readyName)
  elseif (self.outputType:isrv() or self.outputType:isS()) then
    if self.outputType:lower():verilogBits()>0 then
      table.insert(v,", output wire ["..(self.outputType:lower():verilogBits()-1)..":0] "..fnname.."_output")
    end
  else
    print("vHeaderInOut NYI",self.outputType)
    assert(false)
  end

  return table.concat(v,"")
end

function darkroomFunctionFunctions:vHeaderRequires()
  local v = {}
  for inst,fnmap in pairs(self.requires) do
    for fnname,_ in pairs(fnmap) do
      local fn = inst.module.functions[fnname]

      --table.insert(v,"/* HEADER REQUIRES "..inst.name..":"..fnname.."*/")

      if types.isHandshakeAny(fn.inputType) then
        table.insert(v,", output wire ["..(types.lower(fn.inputType):verilogBits()-1)..":0] "..inst.name.."_"..fnname.."_input, input wire ["..(types.extractReady(fn.inputType):verilogBits()-1)..":0] "..inst.name.."_"..fnname.."_ready")
      elseif fn.inputType==types.Interface() then
      else
        print("NYI - require of: "..tostring(inst.name),fn.inputType)
        assert(false)
      end

      if types.isHandshakeAny(fn.outputType) then
        table.insert(v,", input wire ["..(types.lower(fn.outputType):verilogBits()-1)..":0] "..inst.name.."_"..fnname.."_output, output wire "..inst.name.."_"..fnname.."_ready_downstream")
      elseif (fn.outputType:isrv() or fn.outputType:isS()) and fn.outputType:deInterface():isData() then
        table.insert(v,", input wire ["..(types.lower(fn.outputType:deInterface()):verilogBits()-1)..":0] "..inst.name.."_"..fnname.."_output")
      else
        print("NYI - require of: "..tostring(inst))
        assert(false)
      end
    end
  end

  return table.concat(v,"")
end

-- verilog header
function dark


 Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"
const ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd"
const ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"
const unicodeScriptValues = {
  9: ecma9ScriptValues,
  10: ecma10ScriptValues,
  11: ecma11ScriptValues
}

const data = {}
function buildUnicodeData(ecmaVersion) {
  let d = data[ecmaVersion] = {
    binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + " " + unicodeGeneralCategoryValues),
    nonBinary: {
      General_Category: wordsRegexp(unicodeGeneralCategoryValues),
      Script: wordsRegexp(unicodeScriptValues[ecmaVersion])
    }
  }
  d.nonBinary.Script_Extensions = d.nonBinary.Script

  d.nonBinary.gc = d.nonBinary.General_Category
  d.nonBinary.sc = d.nonBinary.Script
  d.nonBinary.scx = d.nonBinary.Script_Extensions
}
buildUnicodeData(9)
buildUnicodeData(10)
buildUnicodeData(11)

export default data
import {isIdentifierStart, isIdentifierChar} from "./identifier"
import {types as tt, keywords as keywordTypes} from "./tokentype"
import {Parser} from "./state"
import {SourceLocation} from "./locutil"
import {RegExpValidationState} from "./regexp"
import {lineBreak, lineBreakG, isNewLine, nonASCIIwhitespace} from "./whitespace"

// Object type used to represent tokens. Note that normally, tokens
// simply exist as properties on the parser object. This is only
// used for the onToken callback and the external tokenizer.

export class Token {
  constructor(p) {
    this.type = p.type
    this.value = p.value
    this.start = p.start
    this.end = p.end
    if (p.options.locations)
      this.loc = new SourceLocati


 (value != '') {
            this.card.visible = true;
            this.cover.visible = false;
            this.card.frameName = value.toLowerCase() + '.png';
        } else {
            this.card.visible = false;
            this.cover.visible = false;
        }
        if (hideBack)
            this.back.visible = false;
    }

    public playFX(){
        this.splash.playOnce();
    }
}
import * as _ from "lodash";
import { splitQName, TNS_PREFIX } from "./index";

interface IElement {
  [key: string]: any;
}

export default class Element {
  nsName: any;
  prefix: any;
  name: any;
  $name: any;
  children: any;
  xmlns: any;
  schemaXmlns: any;
  valueKey: any;
  $targetNamespace: any;
  xmlKey: any;
  ignoredNamespaces: any;
  allowedChildren: any = [];

  constructor(
    nsName: any,
    attrs: any = null,
    options: any = null,
    schemaAttrs: any = null
  ) {
    var parts = splitQName(nsName);

    this.nsName = nsName;
    this.prefix = parts.prefix;
    this.name = parts.name;
    this.children = [];
    this.xmlns = {};
    this.schemaXmlns = {};

    this._initializeOptions(options);

    for (var key in attrs) {
      var match = /^xmlns:?(.*)$/.exec(key);
      if (match) {
        this.xmlns[match[1] ? match[1] : TNS_PREFIX] = attrs[key];
      } else {
        if (key === "value") {
          (this as IElement)[this.valueKey] = attrs[key];
        } else {
          (this as IElement)["$" + key] = attrs[key];
        }
      }
    }
    for (var schemaKey in schemaAttrs) {
      var schemaMatch = /^xmlns:?(.*)$/.exec(schemaKey);
      if (schemaMatch && schemaMatch[1]) {
        this.schemaXmlns[schemaMatch[1]] = schemaAttrs[schemaKey];
      }
    }
    if (this.$targetNamespace !== undefined) {
      // Add targetNamespace to the mapping
      this.xmlns[TNS_PREFIX] = this.$targetNamespace;
    }
  }

  _initializeOptions(options: any) {
    if (options) {
      this.valueKey = options.valueKey || "$value";
      this.xmlKey = options.xmlKey || "$xml";
      this.ignoredNamespaces = options.ignoredNamespaces || [];
    } else {
      this.valueKey = "$value";
      this.xmlKey = "$xml";
      this.ignoredNamespaces = [];
    }
  }

  deleteFixedAttrs() {
    this.children && this.children.length === 0 && delete this.children;
    this.xmlns && Object.keys(this.xmlns).length === 0 && delete this.xmlns;
    delete this.nsName;
    delete this.prefix;
    delete this.name;
  }

  startElement(
    stack: any,
    nsName: any,
    attrs: any,
    options: any,
    schemaXmlns: any
  ) {
    if (!this.allowedChildren) {
      return;
    }

    var ChildClass = this.allowedChildren[splitQName(nsName).name],
      element = null;

    if (ChildClass) {
      stack.push(new ChildClass(nsName, attrs, options, schemaXmlns));
    } else {
      this.unexpected(nsName);
    }
  }

  endElement(stack: any, nsName: any) {
    if (this.nsName === nsName) {
      if (stack.length < 2) return;
      var parent = stack[stack.length - 2];
      if (this !== stack[0]) {
        _.defaultsDeep(stack[0].xmlns, this.xmlns);
        // delete this.x


,.2);
	border-right-color: rgba(#000,.2);
	border-bottom-color: rgba(#000,.2);
	border-left-color: #000;
}
.edd-loading-ajax.edd-loading {
	display: inline-block;
	position: relative;
	top: 0;
	left: 0.25em;
	vertical-align: middle;
}

// #edd_checkout_form_wrap .edd-cart-adjustment .edd-apply-discount.edd-submit {
// 	display: inline-block;
// }
.edd-discount-loader.edd-loading {
	display: inline-block;
	position: relative;
	left: auto;
	vertical-align: middle;
	width: 1.25em;
	height: 1.25em;
}

.edd-loading-ajax.edd-loading {
	opacity: 1;
}

@-webkit-keyframes edd-spinning {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
@keyframes edd-spinning {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
a.edd-add-to-cart .edd-add-to-cart-label,
.edd-loading {
	-webkit-transition: .1s opacity !important;
	-moz-transition: .1s opacity !important;
	-ms-transition: .1s opacity !important;
	-o-transition: .1s opacity !important;
	transition: .1s opacity !important;
}
.edd-add-to-cart[data-edd-loading] .edd-add-to-cart-label {
	opacity: 0;
	filter: alpha(opacity=0);
}
.edd-add-to-cart[data-edd-loading] .edd-loading,
.edd-discount-loader.edd-loading {
	opacity: 1;
	filter: alpha(opacity=100);
}
.edd-cart-added-alert {
	color: $green;
}

/* =Receipt Page
-------------------------------------------------------------- */
// body.edd_receipt_page {
// 	background-color: #fff;
// 	color: #141412;
// 	margin: 0;
// 	font-family: Helvetica, sans-serif;
// 	font-size: 12px;
// }
// body.edd_receipt_page:before {
// 	position: relative;
// }
// body.edd_receipt_page #edd_receipt_wrapper {
// 	width: 660px;
// 	margin: 0 auto;
// 	padding: 50px 0;
// }
// body.edd_receipt_page table {
// 	display: table;
// 	width: 100%;
// 	border-bottom: 1px solid #ededed;
// 	border-collapse: collapse;
// 	border-spacing: 0;
// 	font-size: 14px;
// 	line-height: 2;
// 	margin: 0 0 20px;
// }
// body.edd_receipt_page td,
// body.edd_receipt_page th {
// 	display: table-cell;
// 	text-align: left;
// 	border-top: 1px solid #ededed;
// 	padding: 6px 10px;
// 	font-weight: normal;
// }
// body.edd_receipt_page th {
// 	font-weight: bold;
// 	text-transform: uppercase;
// }
// body.edd_receipt_page h3 {
// 	font-size: 22px;
//


);
    final l2 = l.dot(l);
    if (s < 0 && l2 > r2) {
      return null;
    }
    final m2 = l2 - s * s;
    if (m2 > r2) {
      return null;
    }
    final q = math.sqrt(r2 - m2);

    return (l2 > r2) ? s - q : s + q;
  }

  // Some varaibles that are used for intersectsWithTriangle and
  // intersectsWithQuad. The performance is better in Dart and JS if we avoid
  // to create temporary instance over and over. Also reduce GC.
  static final _e1 = Vector3.zero();
  static final _e2 = Vector3.zero();
  static final _q = Vector3.zero();
  static final _s = Vector3.zero();
  static final _r = Vector3.zero();

  /// Return the distance from the origin of this to the intersection with
  /// [other] if this intersects with [other], or null if the don't intersect.
  double? intersectsWithTriangle(Triangle other) {
    const epsilon = 10e-6;

    final point0 = other._point0;
    final point1 = other._point1;
    final point2 = other._point2;

    _e1
      ..setFrom(point1)
      ..sub(point0);
    _e2
      ..setFrom(point2)
      ..sub(point0);

    _direction.crossInto(_e2, _q);
    final a = _e1.dot(_q);

    if (a > -epsilon && a < epsilon) {
      return null;
    }

    final f = 1 / a;
    _s
      ..setFrom(_origin)
      ..sub(point0);
    final u = f * (_s.dot(_q));

    if (u < 0.0) {
      return null;
    }

    _s.crossInto(_e1, _r);
    final v = f * (_direction.dot(_r));

    if (v < -epsilon || u + v > 1.0 + epsilon) {
      return null;
    }

    final t = f * (_e2.dot(_r));

    return t;
  }

  /// Return the distance from the origin of this to the intersection with
  /// [other] if this intersects with [other], or null if the don't intersect.
  double? intersectsWithQuad(Quad other) {
    const epsilon = 10e-6;

    // First triangle
    var point0 = other._point0;
    var point1 = other._point1;
    var point2 = other._point2;

    _e1
      ..setFrom(point1)
      ..sub(point0);
    _e2
      ..setFrom(point2)
      ..sub(point0);

    _direction.crossInto(_e2, _q);
    final a0 = _e1.dot(_q);

    if (!(a0 > -epsilon && a0 < epsilon)) {
      final f = 1 / a0;
      _s
        ..setFrom(_origin)
        ..sub(point0);
      final u = f * (_s.dot(_q));

      if (u >= 0.0) {
        _s.crossInto(_e1, _r);
        final v = f * (_direction.dot(_r));

        if (!(v < -epsilon || u + v > 1.0 + epsilon)) {
          final t = f * (_e2.dot(_r));

          return t;
        }
      }
    }

    // Second triangle
    point0 = other._point3;
    point1 = other._point0;
    point2 = other._point2;

    _e1
      ..setFrom(point1)
      ..sub(point0);
    _e2
      ..setFrom(point2)
      ..sub(point0);

    _direction.crossInto(_e2, _q);
    final a1 = _e1.dot(_q);

    if (!(a1 > -epsilon && a1 < epsilon)) {
      final f = 1 / a1;
      _s
        ..setFrom(_origin)
        ..sub(point0);
      final u = f * (_s.dot(_q));

      if (u >= 0.0) {
        _s.crossInto(_e1, _r);
        final v


wer (*rhaystack) != (int) a)
                        break;
                    if (a == '\0')
                        goto foundneedle;
                    ++rhaystack;
                    a = tolower (*++needle);
                }
                while (tolower (*rhaystack) == (int) a);

            needle = rneedle;/* took the register-poor approach */

            if (a == '\0')
                break;
        }
    }
  foundneedle:
    return (char*) haystack;
  ret0:
    return 0;
}
#endif


 work properly.
  void invokeOnSemanticsAction(
    int viewId,
    int nodeId,
    ui.SemanticsAction action,
    ByteData? args,
  ) {
    invoke1<ui.SemanticsActionEvent>(
      _onSemanticsActionEvent,
      _onSemanticsActionEventZone,
      ui.SemanticsActionEvent(
        type: action,
        nodeId: nodeId,
        viewId: viewId,
        arguments: args,
      ),
    );
  }

  // TODO(dnfield): make this work on web.
  // https://github.com/flutter/flutter/issues/100277
  ui.ErrorCallback? _onError;
  // ignore: unused_field
  late Zone _onErrorZone;
  @override
  ui.ErrorCallback? get onError => _onError;
  @override
  set onError(ui.ErrorCallback? callback) {
    _onError = callback;
    _onErrorZone = Zone.current;
  }

  /// The route or path that the embedder requested when the application was
  /// launched.
  ///
  /// This will be the string "`/`" if no particular route was requested.
  ///
  /// ## Android
  ///
  /// On Android, calling
  /// [`FlutterView.setInitialRoute`](/javadoc/io/flutter/view/FlutterView.html#setInitialRoute-java.lang.String-)
  /// will set this value. The value must be set sufficiently early, i.e. before
  /// the [runApp] call is executed in Dart, for this to have any effect on the
  /// framework. The `createFlutterView` method in your `FlutterActivity`
  /// subclass is a suitable time to set the value. The application's
  /// `AndroidManifest.xml` file must also be updated to have a suitable
  /// [`<intent-filter>`](https://developer.android.com/guide/topics/manifest/intent-filter-element.html).
  ///
  /// ## iOS
  ///
  /// On iOS, calling
  /// [`FlutterViewController.setInitialRoute`](/ios-embedder/interface_flutter_view_controller.html#a7f269c2da73312f856d42611cc12a33f)
  /// will set this value. The value must be set sufficiently early, i.e. before
  /// the [runApp] call is executed in Dart, for this to have any effect on the
  /// framework. The `application:didFinishLaunchingWithOptions:` method is a
  /// suitable time to set this value.
  ///
  /// See also:
  ///
  ///  * [Navigator], a widget that handles routing.
  ///  * [SystemChannels.navigation], which handles subsequent navigation
  ///    requests from the embedder.
  @override
  String get defaultRouteName {
    // TODO(mdebbar): What should we do in multi-view mode?
    //                https://github.com/flutter/flutter/issues/139174
    return _defaultRouteName ??=
        implicitView?.browserHistory.currentPath ?? '/';
  }

  /// Lazily initialized when the `defaultRouteName` getter is invoked.
  ///
  /// The reason for the lazy initialization is to give enough time for the app
  /// to set [locationStrategy] in `lib/initialization.dart`.
  String? _defaultRouteName;

  /// In Flutter, platform messages are exchanged between threads so the
  /// messages and responses have to be exchanged asynchronously. We simulate
  /// that by adding a zero-length delay to the reply.
  void replyToPlatformMessage(
    ui.PlatformMessageResponseCallback? callback,
    ByteData? data,
  ) {
    Future<void>.delayed(Duration.zero).then((_) {
      if (callback != null) {
        callback(data);
      }
    });
  }

  @override
  ui.FrameData get frameData => const ui.FrameData.webOnly();

  @override
  dou


poser .Assets_create_video h4 {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}
.Assets_NFT_preview_tool .Assets_create_video_footer {
    margin-top: 25%;
    margin-bottom: 30%;
}

/***create nft form css***/
.Assets_NFT_preview_composer .Assets_nft form {
    padding: 20px;
    background: #fff;
    font-size: 20px;
}

.Assets_NFT_preview_composer .Assets_nft label {
    color: #000;
}

.Assets_NFT_preview_composer .Assets_nft .Assets_nft_form_group {
    float: left;
    width: 100%;
    margin-bottom: 20px;
}
.Assets_NFT_preview_composer .Assets_NFT_attribute {
    white-space: nowrap;
}
.Assets_NFT_preview_composer .Assets_nft .Assets_nft_form_group[data-type=nft_attributes] button {
    margin-top: 5px;
    float: right;
}
.Assets_NFT_attribute .basic32_remove {
    width: 32px;
    display: inline-block;
    vertical-align: middle;
    cursor: pointer;
}
.Assets_NFT_preview_composer .Assets_nft[data-mode=series] .Assets_nft_form_market {
    display: none;
}
.Assets_NFT_preview_composer .Assets_nft_form_control {
    background: transparent;
    color: rgba(4, 4, 5, 0.8);
    font-weight: 500;
    font-family: inherit;
    overflow: hidden;
    outline: none;
    width: 100%;
    border-width: 0 0 2px;
    border-top-color: initial;
    border-right-color: initial;
    border-left-color: initial;
    border-image: initial;
    padding-top: 0;
    padding-bottom: 0;
    border-bottom-color: rgba(4, 4, 5, 0.07);
    border-style: solid !important;
}

.Assets_NFT_preview_composer .Assets_nft_picture {
    text-align: center;
    border: 2px dashed rgba(4, 4, 5, 0.1);
    min-height: 115px;
    position: relative;
    border-radius: 16px;
    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
    flex-direction: column;
    margin-top: 20px;
    padding: 5px;
}

.Assets_NFT_preview_composer .Assets_nft_picture .NFT_preview_icon {
    max-width: 100%;
}

.Assets_NFT_preview_composer .image_file {
    position: absolute;
    height: 110px;
    background: transparent;
    opacity: 0;
    left: 0;
}

.Assets_NFT_preview_composer .Assets_nft_picture_text {
    color: #000;
    font-size: 16px;
}

.Assets_NFT_preview_composer .Assets_nft_upload_button,
.Assets_NFT_preview_composer .Assets_nft_picture label {
    display: inline-block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
    color: rgb(0, 102, 255);
    background: rgba(0, 102, 255, 0.15);
    width: 160px;
    border: none;
    border-radius: 20px;
    font-weight: bold;
    cursor: pointer;
}
.Assets_NFT_preview_composer


// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0

// ----------------------------------------------------------------------------
// Reverse the order of bytes in a 64-bit word
//
//    extern uint64_t word_bytereverse(uint64_t a);
//
// Standard ARM ABI: X0 = a, returns X0
// ----------------------------------------------------------------------------

#include "_internal_s2n_bignum_arm.h"

        S2N_BN_SYM_VISIBILITY_DIRECTIVE(word_bytereverse)
        S2N_BN_FUNCTION_TYPE_DIRECTIVE(word_bytereverse)
        S2N_BN_SYM_PRIVACY_DIRECTIVE(word_bytereverse


ude72"
        + "\ud83b\ude74\ud83b\ude77"
        + "\ud83b\ude79\ud83b\ude7c"
        + "\ud83b\ude7e\ud83b\ude7e"
        + "\ud83b\ude80\ud83b\ude89"
        + "\ud83b\ude8b\ud83b\ude9b"
        + "\ud83b\udea1\ud83b\udea3"
        + "\ud83b\udea5\ud83b\udea9"
        + "\ud83b\udeab\ud83b\udebb"
        + "\ud840\udc00\ud869\uded6"
        + "\ud869\udf00\ud86d\udf34"
        + "\ud86d\udf40\ud86e\udc1d"
        + "\ud86e\udc20\ud873\udea1"
        + "\ud873\udeb0\ud87a\udfe0"
        + "\ud87e\udc00\ud87e\ude1d",
    // Unicode 10.0 property value: {sentencebreak=other}
    "\000\u0008"
        + "\u000e\u001f"
        + "\u0023\u0026"
        + "\u002a\u002b"
        + "\u002f\u002f"
        + "\u003b\u003e"
        + "\u0040\u0040"
        + "\\\\"
        + "\u005e\u0060"
        + "\u007c\u007c"
        + "\u007e\u0084"
        + "\u0086\u009f"
        + "\u00a1\u00a9"
        + "\u00ac\u00ac"
        + "\u00ae\u00b4"
        + "\u00b6\u00b9"
        + "\u00bc\u00bf"
        + "\u00d7\u00d7"
        + "\u00f7\u00f7"
        + "\u02c2\u02c5"
        + "\u02d2\u02df"
        + "\u02e5\u02eb"
        + "\u02ed\u02ed"
        + "\u02ef\u02ff"
        + "\u0375\u0375"
        + "\u0378\u0379"
        + "\u037e\u037e"
        + "\u0380\u0385"
        + "\u0387\u0387"
        + "\u038b\u038b"
        + "\u038d\u038d"
        + "\u03a2\u03a2"
        + "\u03f6\u03f6"
        + "\u0482\u0482"
        + "\u0530\u0530"
        + "\u0557\u0558"
        + "\u055a\u055c"
        + "\u055e\u0560"
        + "\u0588\u0588"
        + "\u058a\u0590"
        + "\u05be\u05be"
        + "\u05c0\u05c0"
        + "\u05c3\u05c3"
        + "\u05c6\u05c6"
        + "\u05c8\u05cf"
        + "\u05eb\u05ef"
        + "\u05f4\u05ff"
        + "\u0606\u060b"
        + "\u060e\u060f"
        + "\u061b\u061b"
        + "\u061d\u061e"
        + "\u066a\u066a"
        + "\u066d\u066d"
        + "\u06de\u0


= new Transform();
            var r = new Rotation();
            _chunk.Copy(index, t);
            _chunk.Copy(index, r);
        }

        // Backward delete all since forward does not work while keeping the array dense
        for (var index = _chunk.Count - 1; index >= 0; index--)
        {
            _chunk.Remove(index);
        }

        // Check if the first one was replaced with the last one correctly
        That(_chunk.Count, Is.EqualTo(0));
        That(_chunk.Entities[0].Id, Is.EqualTo(0)); // Needs to be 1, because it will be the last one getting removed and being moved to that position
    }

    /// <summary>
    ///     Checks if removing and setting an entity works correctly.
    /// </summary>
    [Test]
    public void ChunkRemoveAndSetAgain()
    {
        _chunk = new Chunk(1000, _types);

        var newEntity = new Entity(1, 0);
        var newEntityTwo = new Entity(2, 0);

        var firstIndex = _chunk.Add(newEntity);
        _chunk.Add(newEntityTwo);

        _chunk.Remove(firstIndex);
        _chunk.Add(newEntity);

        // Check if the first one was replaced with the last one correctly
        That(_chunk.Count, Is.EqualTo(2));
        That(_chunk.Entities[0].Id, Is.EqualTo(2)); // Needs to be 1, because it will be the last one getting removed and being moved to that position
        That(_chunk.Entities[1].Id, Is.EqualTo(1)); // Needs to be 1, because it will be the last one getting removed and being moved to that position
    }

    /// <summary>
    ///     Checks if chunk has a component.
    /// </summary>
    [Test]
    public void ChunkHas()
    {
        _chunk = new Chunk(1000, _types);

        for (var index = 0; index < _chunk.Capacity; index++)
        {
            var entity = new Entity(index, 0);
            _chunk.Add(entity);

            var t = new Transform();
            var r = new Rotation();
            _chunk.Copy(index, t);
            _chunk.Copy(index, r);
        }

        That(_chunk.Has<Transform>(), Is.True);
        That(_chunk.Has<Ai>(), Is.False);
        That(_chunk.Has<Rotation>(), Is.True);
    }
}


# -*- coding: utf-8 -*-
from __future__ import print_function, division

import torch
import torch.nn as nn
from pymic.loss.seg.abstract import AbstractSegLoss

class MumfordShahLoss(AbstractSegLoss):
    """
    Implementation of Mumford Shah Loss for weakly supervised learning.

    * Reference: Boah Kim and Jong Chul Ye: Mumford–Shah Loss Functional
      for Image Segmentation With Deep Learning. IEEE TIP, 2019.

    The oringial implementation is availabel at `Github.
    <https://github.com/jongcye/CNN_MumfordShah_Loss>`_
    Currently only 2D version is supported.

    The parameters should be written in the `params` dictionary, and it has the
    following fields:

    :param `loss_softmax`: (bool) Apply softmax to the prediction of network or not.
    :param `MumfordShahLoss_penalty`: (optional, str) `l1` or `l2`. Default is `l1`.
    :param `MumfordShahLoss_lambda`: (optional, float) Hyper-parameter lambda, default is 1.0.
    """
    def __init__(self, params = None):
        super(MumfordShahLoss, self).__init__()
        if(params is None):
            params = {}
        self.penalty = params.get('MumfordShahLoss_penalty', "l1")
        self.grad_w  = params.get('MumfordShahLoss_lambda', 1.0)

    def get_levelset_loss(self, output, target):
        """
        Get the level set loss value.

        :param `output`: (tensor) softmax output of a network.
        :param `target`: (tensor) the input image.
        :return: the level set loss.
        """
        outshape = output.shape
        tarshape = target.shape
        loss = 0.0
        for ich in range(tarshape[1]):
            target_ = torch.unsqueeze(target[:,ich], 1)
            target_ = target_.expand(tarshape[0], outshape[1], tarshape[2], tarshape[3])
            pcentroid = torch.sum(target_ * output, (2,3))/torch.sum(output, (2,3))
            pcentroid = pcentroid.view(tarshape[0], outshape[1], 1, 1)
            plevel = target_ - pcentroid.expand(tarshape[0], outshape[1], tarshape[2], tarshape[3])
            pLoss = plevel * plevel * output
            loss += torch.sum(pLoss)
        return loss

    def get_gradient_loss(self, pred, penalty = "l2"):
        dH = torch.abs(pred[:, :, 1:, :] - pred[:, :, :-1, :])
        dW = torch.abs(pred[:, :, :, 1:] - pred[:, :, :, :-1])
        if penalty == "l2":
            dH = dH * dH
            dW = dW * dW
        loss = torch.sum(dH) + torch.sum(dW)
        return loss

    def forward(self, loss_input_dict):
        """
        Forward pass for calculating the loss.
        The arguments should be written in the `loss_input_dict` dictionary,
        and it has the following fields:

        :param `prediction`: (tensor) Prediction of a network, with the
            shape of [N, C, D, H, W] or [N, C, H, W].
        :param `image`: (tensor) Image, with the
            shape of [N, C, D, H, W] or [N, C, H, W].

        :return: Loss function value.
        """
        predict = loss_input_dict['prediction']
        image   = loss_input_dict['image']
        if(isinstance(predict, (list, tuple))):
            predict = predict[0]
        if(self.acti_func is not None):
            predict = self.get_activated_prediction(predict, self.acti_func)

        pred_shape  = list(predict.shape)
        if(len(pred_shape) == 5):
                [N, C, D, H, W] = pred_shape
                new_shape  = [N*D, C, H, W]
                predict = torch.transpose(predict, 1, 2)
                predict = torch.reshape(predict, new_shape)
                [N, C, D, H, W] = list(image.shape)
                new_shape    = [N*D, C, H, W]
                image = torch.transpose(image, 1, 2)
                image = torch.reshape(image, new_shape)
        loss0 = self.get_levelset_loss(predict, image)
        loss1 = self.get_gradient_loss(predict, self.penalty)
        loss = loss0 + self.grad_w * loss1
        return loss/torch.numel(predict)


@TableField(value = "insert_time")
    private Date insertTime;

    /**
     * 创建时间 show3
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat

    @TableField(value = "create_time")
    private Date createTime;

    /**
	 * 设置：主键
	 */
    public Integer getId() {
        return id;
    }

    /**
	 * 获取：主键
	 */

    public void setId(Integer id) {
        this.id = id;
    }
    /**
	 * 设置：订单号
	 */
    public String getMeizhuangOrderUuidNumber() {
        return meizhuangOrderUuidNumber;
    }

    /**
	 * 获取：订单号
	 */

    public void setMeizhuangOrderUuidNumber(String meizhuangOrderUuidNumber) {
        this.meizhuangOrderUuidNumber = meizhuangOrderUuidNumber;
    }
    /**
	 * 设置：收货地址
	 */
    public Integer getAddressId() {
        return addressId;
    }

    /**
	 * 获取：收货地址
	 */

    public void setAddressId(Integer addressId) {
        this.addressId = addressId;
    }
    /**
	 * 设置：商品
	 */
    public Integer getMeizhuangId() {
        return meizhuangId;
    }

    /**
	 * 获取：商品
	 */

    public void setMeizhuangId(Integer meizhuangId) {
        this.meizhuangId = meizhuangId;
    }
    /**
	 * 设置：用户
	 */
    public Integer getYonghuId() {
        return yonghuId;
    }

    /**
	 * 获取：用户
	 */

    public void setYonghuId(Integer yonghuId) {
        this.yonghuId = yonghuId;
    }
    /**
	 * 设置：购买数量
	 */
    public Integer getBuyNumber() {
        return buyNumber;
    }

    /**
	 * 获取：购买数量
	 */

    public void setBuyNumber(Integer buyNumber) {
        this.buyNumber = buyNumber;
    }
    /**
	 * 设置：实付价格
	 */
    public Double getMeizhuangOrderTruePrice() {
        return meizhuangOrderTruePrice;
    }

    /**
	 * 获取：实付价格
	 */

    public void setMeizhuangOrderTruePrice(Double meizhuangOrderTruePrice) {
        this.meizhuangOrderTruePrice = meizhuangOrderTruePrice;
    }
    /**
	 * 设置：快递公司
	 */
    public String getMeizhuangOrderCourierName() {
        return meizhuangOrderCourierName;
    }

    /**
	 * 获取：快递公司
	 */

    public void setMeizhuangOrderCourierName(String meizhuangOrderCourierName) {
        this.meizhuangOrderCourierName = meizhuangOrderCourierName;
    }
    /**
	 * 设置：订单快递单号
	 */
    public String getMeizhuangOrderCourierNumber() {
        return meizhuangOrderCourierNumber;
    }

    /**
	 * 获取：订单快递单号
	 */

    public void setMeizhuangOrderCourierNumber(String meizhuangOrderCourierNumber) {
        this.meizhuangOrderCourierNumber = meizhuangOrderCourierNumber;
    }
    /**
	 * 设置：订单类型
	 */
    public Integer getMeizhuangOrderTypes() {
        return meizhuangOrderTypes;
    }

    /**
	 * 获取：订单类型
	 */

    public void setMeizhuangOrd


loadAction<QueryParams>> = (
  state
) => {
  delete state.AddLabes.error;
  state.AddLabes.fetching = true;
};

const addAddLabSuccess: CaseReducer<
  AddLabState,
  PayloadAction<ResponseState<AddLab>>
> = (state, { payload }) => {
  console.log('AddLab to delete==>reducer',payload)
  const _state = state.AddLabes.data
  console.log('AddLabes in local', _state)
  // const{id} = payload.data
  const new_state = _state.concat( payload.data)
  console.log('new AddLabes in local', new_state)

  state.AddLabes.data = [...new_state];
  state.AddLabes.fetching = false;
  state.AddLabes.meta = payload.meta;
};

const addAddLabFailed: CaseReducer<AddLabState, PayloadAction<string>> = (
  state,
  { payload }
) => {
  state.AddLabes.fetching = false;
  state.AddLabes.error = payload;
};

const deleteAddLabRequest: CaseReducer<AddLabState, PayloadAction<QueryParams>> = (
  state
) => {
  delete state.AddLabes.error;
  state.AddLabes.fetching = true;
};

const deleteAddLabSuccess: CaseReducer<
  AddLabState,
  PayloadAction<ResponseState<String>>
> = (state, { payload }) => {
  console.log('AddLab to delete==>reducer',payload)
  const _state = state.AddLabes.data
  console.log('AddLabes in local', _state)
  // const{id} = payload.data
  const new_state = _state.filter( AddLab => AddLab.category !== payload.data[0])
  console.log('new AddLabes in local', new_state.map((ad, index)=>{
    console.log(ad, index)
  }))

  state.AddLabes.data = [...new_state];
  state.AddLabes.fetching = false;
  state.AddLabes.meta = payload.meta;
};

const deleteAddLabFailed: CaseReducer<AddLabState, PayloadAction<string>> = (
  state,
  { payload }
) => {
  state.AddLabes.fetching = false;
  state.AddLabes.error = payload;
};

const AddLabReset: CaseReducer<
AddLabState,
PayloadAction<ResponseState<AddLab>>
> = (state, { payload }) => {
state.AddLabes.data = []
state.AddLabes.fetching = false;
};

const AddLabSlice = createSlice({
  name: "AddLab",
  initialState,
  reducers: {
    getAddLabRequest,
    getAddLabSuccess,
    getAddLabFailed,
    updateAddLabRequest,
    updateAddLabSuccess,
    updateAddLabFailed,
    AddLabReset,
    addAddLabRequest,
    addAddLabSuccess,
    addAddLabFailed,
    deleteAddLabRequest,
    deleteAddLabSuccess,
    deleteAddLabFailed,
  },
});

export const AddLabActions = AddLabSlice.actions;
export const AddLabReducer = AddLabSlice.reducer;
import { GLUtils } from '../utils/Utils';
import { Shader } from './Shader';

export class Program {
    private _program: WebGLProgram;
    private _attl: number[] = [];
    private _unil: WebGLUniformLocation[] = [];

    /**
     * WebGLプログラムをつくる
     * @param {WebGLRenderingContext} _gl
     * @param {Shader} _shader vertexシェーダーとfragmentシェーダーを持つオブジェクト
     * @param {string[]} _attName シェーダ内のattributeの名前
     * @param {number[]} _atts 各attributeの要素数
     * @param {string[]} _uniName シェーダ内のuniformの名前
     * @param


()
                        }
                    }
                }
            }
        )
    }
}/*
 * Copyright 2018-2025 SIP3.IO, Corp.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package io.sip3.commons.util

import kotlin.experimental.or

object IpUtil {

    fun convertToString(addr: ByteArray): String {
        return when (addr.size) {
            4 -> {
                convertIpv4ToString(addr)
            }
            16 -> {
                convertIpv6ToString(addr)
            }
            else -> throw UnsupportedOperationException("Unknown IP address format: $addr")
        }
    }

    @OptIn(ExperimentalUnsignedTypes::class)
    private fun convertIpv4ToString(addr: ByteArray): String {
        val sb = StringBuilder()

        (0 until 4).forEach { i ->
            val v = addr[i].toUByte()
            sb.append(v)

            if (i < 3) {
                sb.append(".")
            }
        }

        return sb.toString()
    }

    private fun convertIpv6ToString(addr: ByteArray): String {
        val sb = StringBuilder()

        val (j, l) = findTheLongestZeroSequence(addr)

        (0 until 8).forEach { i ->
            when {
                i == j -> {
                    sb.append("::")
                }
                i < j || i >= j + l -> {
                    val v1 = addr[i * 2]
                    val v2 = addr[i * 2 + 1]

                    if (v1 == 0.toByte()) {
                        sb.append("%x".format(v2))
                    } else {
                        sb.append("%x".format(v1))
                        sb.append("%02x".format(v2))
                    }

                    if (i != j - 1 && i < 7) {
                        sb.append(":")
                    }
                }
            }
        }

        return sb.toString()
    }

    private fun findTheLongestZeroSequence(addr: ByteArray): Pair<Int, Int> {
        // First zero sequence
        var j1 = -1
        var l1 = 0

        // Second zero sequence
        var j2 = -1
        var l2 = 0

        var isZeroSequence = false

        (0 until 8).forEach { i ->
            when (addr[i * 2] or addr[i * 2 + 1]) {
                0.toByte() -> {
                    if (!isZeroSequence) {
                        // New zero sequence
                        when {
                            j2 != -1 -> {
                                if (l1 < l2) {
                                    j1 = j2
                                    l1 = l2
                                }
                                j2 = i
                                l2 = 1
                            }
                            j1 != -1 -> {
                                j2 = i
                                l2++
                            }
                            else -> {
                                j1 = i
                                l1++
                            }
                        }

                        isZeroSequence = true
                    } else {
                        // Existing zero sequence
                        if (j2 != -1) l2++ else l1++
                    }
                }
                else -> {
                    isZeroSequence = false
                }


ValueStoreMgr().Delete(key_str);
}

bool PSOC6Config::ConfigValueExists(Key key)
{
    char key_str[MTB_KVSTORE_MAX_KEY_SIZE] = { 0 };
    key.to_str(key_str, MTB_KVSTORE_MAX_KEY_SIZE);
    if (PersistedStorage::KeyValueStoreMgr().Get(key_str, NULL, 0) == CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND)
    {
        return false;
    }

    return true;
}

// Clear out keys in config namespace
CHIP_ERROR PSOC6Config::FactoryResetConfig(void)
{
    CHIP_ERROR err            = CHIP_NO_ERROR;
    const Key * config_keys[] = { &kConfigKey_ServiceConfig,      &kConfigKey_PairedAccountId, &kConfigKey_ServiceId,
                                  &kConfigKey_LastUsedEpochKeyId, &kConfigKey_FailSafeArmed,   &kConfigKey_WiFiStationSecType,
                                  &kConfigKey_WiFiSSID,           &kConfigKey_WiFiPassword,    &kConfigKey_WiFiSecurity,
                                  &kConfigKey_WiFiMode,           &kConfigKey_SoftwareVersion };

    for (uint32_t i = 0; i < (sizeof(config_keys) / sizeof(config_keys[0])); i++)
    {
        err = ClearConfigValue(*config_keys[i]);
        // Something unexpected happened
        if (err != CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND && err != CHIP_NO_ERROR)
        {
            return err;
        }
    }

    // Erase all key-values including fabric info.
    err = PersistedStorage::KeyValueStoreMgrImpl().Erase();
    if (err != CHIP_NO_ERROR)
    {
        ChipLogError(DeviceLayer, "Clear Key-Value Storage failed");
    }

    return CHIP_NO_ERROR;
}

void PSOC6Config::RunConfigUnitTest() {}

} // namespace Internal
} // namespace DeviceLayer
} // namespace chip
/*
 *
 *    Copyright (c) 2020 Project CHIP Authors
 *    Copyright (c) 2019 Nest Labs, Inc.
 *
 *    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.
 */
/* this file behaves like a config.h, comes first */
#include <platform/internal/CHIPDeviceLayerInternal.h>

#include <platform/ConnectivityManager.h>

#include <platform/internal/GenericConnectivityManagerImpl_UDP.ipp>

#if INET_CONFIG_ENABLE_TCP_ENDPOINT
#include <platform/internal/GenericConnectivityManagerImpl_TCP.ipp>
#endif

#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
#include <platform/internal/GenericConnectivityManagerImpl_Thread.ipp>
#endif
#if CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE


local cfg = nil
local data = nil
local sectionData = nil

local time = 0
local timer = 0

function Update()
    if time > 0 and Time.time > timer then
        timer = Time.time + 1
        time = GlobalBossMgr:GetActiveTime()
        if time <= 0 then
            SetButtonState()
        end
    end
end

function Refresh(tab)
    cfg = tab.cfg
    data = tab.data
    sectionData = tab.sectionData
    if cfg then
        SetTime()
        SetButtonState()
        SetCount()
        SetRed()
    end
end

function SetTime()
    time = GlobalBossMgr:GetActiveTime()
end

function SetButtonState()
    LanguageMgr:SetText(txt_title, 70002, ":")
    if (GlobalBossMgr:IsKill() or GlobalBossMgr:GetCount() <= 0 or GlobalBossMgr:GetActiveTime() <= 0) then
        CSAPI.LoadImg(btnEnter, "UIs/GlobalBoss/btn_01_03.png", true, nil, true)
        CSAPI.LoadImg(btnSweep, "UIs/GlobalBoss/btn_01_04.png", true, nil, true)
    else
        CSAPI.LoadImg(btnEnter, "UIs/GlobalBoss/btn_01_01.png", true, nil, true)
        if GlobalBossMgr:CanSweep() then
            CSAPI.LoadImg(btnSweep, "UIs/GlobalBoss/btn_01_02.png", true, nil, true)
        else
            CSAPI.LoadImg(btnSweep, "UIs/GlobalBoss/btn_01_04.png", true, nil, true)
        end
    end
    CSAPI.SetGOActive(sweepLock,not GlobalBossMgr:CanSweep())
end

function SetCount()
    local bossData = GlobalBossMgr:GetData()
    local max = bossData and bossData:GetMaxCount() or 0
    CSAPI.SetText(txtCount, GlobalBossMgr:GetCount() .. "/" .. max)
end

function SetRed()
    UIUtil:SetRedPoint(btnEnter,GlobalBossMgr:IsDayRed(),154,34)
    if GlobalBossMgr:IsDayRed() then
        RedPointMgr:SetDayRedToday(RedPointDayOnceType.GloBalBoss)
        DungeonMgr:CheckRedPointData()
    end
end

function OnClickDirll()
    if GlobalBossMgr:IsClose() then
        LanguageMgr:ShowTips(47001)
        return
    end
    CSAPI.OpenView("TeamConfi


/* Code generated by IfcQuery EXPRESS generator, www.ifcquery.com */
#pragma once
#include "ifcpp/model/GlobalDefines.h"
#include "ifcpp/model/BasicTypes.h"
#include "ifcpp/model/BuildingObject.h"
namespace IFC4X3
{
	class IFCQUERY_EXPORT IfcRecurrenceTypeEnum;
	class IFCQUERY_EXPORT IfcDayInMonthNumber;
	class IFCQUERY_EXPORT IfcDayInWeekNumber;
	class IFCQUERY_EXPORT IfcMonthInYearNumber;
	class IFCQUERY_EXPORT IfcInteger;
	class IFCQUERY_EXPORT IfcTimePeriod;
	//ENTITY
	class IFCQUERY_EXPORT IfcRecurrencePattern : public BuildingEntity
	{
	public:
		IfcRecurrencePattern() = default;
		IfcRecurrencePattern( int id );
		virtual void getStepLine( std::stringstream& stream, size_t precision ) const;
		virtual void getStepParameter( std::stringstream& stream, bool is_select_type, size_t precision ) const;
		virtual void readStepArguments( const std::vector<std::string>& args, const BuildingModelMapType<int,shared_ptr<BuildingEntity> >& map, std::stringstream& errorStream, std::unordered_set<int>& entityIdNotFound );
		virtual void setInverseCounterparts( shared_ptr<BuildingEntity> ptr_self );
		virtual uint8_t getNumAttributes() const { return 8; }
		virtual void getAttributes( std::vector<std::pair<std::string, shared_ptr<BuildingObject> > >& vec_attributes ) const;
		virtual void getAttributesInverse( std::vector<std::pair<std::string, shared_ptr<BuildingObject> > >& vec_attributes ) const;
		virtual void unlinkFromInverseCounterparts();
		virtual uint32_t classID() const { return 3915482550; }

		// IfcRecurrencePattern -----------------------------------------------------------
		// attributes:
		shared_ptr<IfcRecurrenceTypeEnum>				m_RecurrenceType;
		std::vector<shared_ptr<IfcDayInMonthNumber> >	m_DayComponent;				//optional
		std::vector<shared_ptr<IfcDayInWeekNumber> >	m_WeekdayComponent;			//optional
		std::vector<shared_ptr<IfcMonthInYearNumber> >	m_MonthComponent;			//optional
		shared_ptr<IfcInteger>							m_Position;					//optional
		shared_ptr<IfcInteger>							m_Interval;					//optional
		shared_ptr<IfcInteger>							m_Occurrences;				//optional
		std::vector<shared_ptr<IfcTimePeriod> >			m_TimePeriods;				//optional
	};
}


adUpdateType.$unknown:
          throw UnimplementedError();
      }
    }
    if (stateOrNull != null) {
      state = currState;
    }
  }

  @override
  Map<int, DownloadDto> build() {
    ref.listen(downloadUpdatesProvider,
        (_, next) => updateDownloadStatus(next.valueOrNull));
    final downloadStatusDto = ref.watch(downloadStatusProvider).valueOrNull;
    return getStateFromUpdates(downloadStatusDto);
  }

  Map<int, DownloadDto> getStateFromUpdates(
      DownloadStatusDto? downloadStatusDto) {
    final downloadsMap = <int, DownloadDto>{};
    for (final element in [...?downloadStatusDto?.queue]) {
      downloadsMap[element.chapter.id] = element;
    }
    return downloadsMap;
  }

  void reorder(int chapterId, int to) async {
    final downloadStatusDto = await ref
        .read(downloadsRepositoryProvider)
        .reorderDownload(chapterId, to);
    state = getStateFromUpdates(downloadStatusDto);
  }
}

@riverpod
DownloadDto? downloadsFromId(Ref ref, int chapterId) =>
    ref.watch(downloadsMapProvider.select((map) => map[chapterId]));

@riverpod
List<int> downloadsChapterIds(Ref ref) {
  final downloads = ref.watch(downloadsMapProvider).values.toList();
  downloads.sort((a, b) => a.position.compareTo(b.position));
  return downloads.map((d) => d.chapter.id).toList();
}

@riverpod
AsyncValue<DownloaderState?> downloaderState(Ref ref) {
  return ref.watch(downloadUpdatesProvider
      .select((value) => value.copyWithData((data) => data?.state)));
}

@riverpod
bool showDownloadsFAB(Ref ref) {
  final downloads = ref.watch(downloadUpdatesProvider);
  return downloads.valueOrNull?.state == DownloaderState.STARTED ||
      (downloads.valueOrNull?.updates).isNotBlank &&
          downloads.valueOrNull!.updates.any(
            (element) =>
                element.download.state != DownloadState.ERROR ||
                element.download.tries != 3,
          );
}
// Copyright (c) 2022 Contributors to the Suwayomi project
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

import '../../../../../../constants/app_constants.dart';
import '../../../../../../constants/enum.dart';
import '../../../../../../utils/extensions/custom_extensions.dart';
import '../../../../../settings/presentation/reader/widgets/reader_invert_tap_tile/reader_invert_tap_tile.dart';
import '../../../../../settings/presentation/reader/widgets/reader_navigation_layout_tile/reader_navigation_layout_tile.dart';
import 'layouts/edge_layout.dart';
import 'layouts/kindlish_layout.dart';
import 'layouts/l_shaped_layout.dart';
import 'layouts/right_and_left_layout.dart';

class ReaderNavigationLayoutWidget extends HookConsumerWidget {
  const ReaderNavigationLayoutWidget({
    super.key,
    this.navigationLayout,
    required this.onPrevious,
    required this.onNext,
    this.showReaderLayoutAnimation = false,
  });
  final ReaderNavigationLayout? navigationLayout;
  final VoidCallback? onPrevious;
  final VoidCallback? onNext;
  final bool showReaderLayoutAnimation;
  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final animationController = useAnimationController(duration: kLongDuration);
    useAnimation(animationController);
    final nextColorTween = ColorTween


/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */

/*
 *  File-Roller
 *
 *  Copyright (C) 2005-2018 Free Software Foundation, Inc.
 *
 *  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 2 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/>.
 */

#include <config.h>
#include <glib.h>
#include "glib-utils.h"

static void
test_g_path_get_relative_basename_safe (const char *path,
					const char *base_dir,
					gboolean    junk_paths,
					const char *expected)
{
	const char *res;

	res = _g_path_get_relative_basename_safe (path, base_dir, FALSE);
	g_print ("%s + %s -> %s\n", base_dir, path, res);
	g_assert_cmpstr (res, == , expected);
}

static void
test_base_dir (void) {
	test_g_path_get_relative_basename_safe ("/home/user/a/file.txt", "/home/user", FALSE, "a/file.txt");
	test_g_path_get_relative_basename_safe ("/home/user/a/b/file.txt", "/home/user", FALSE, "a/b/file.txt");
	test_g_path_get_relative_basename_safe ("/home/user/../file.txt", "/home/user", FALSE, NULL);
	test_g_path_get_relative_basename_safe ("/home/user/a/../file.txt", "/home/user", FALSE, NULL);
	test_g_path_get_relative_basename_safe ("/home/user/a/../../file.txt", "/home/user", FALSE, NULL);
	test_g_path_get_relative_basename_safe ("/home/user/a/../../file.txt", "/home/user", FALSE, NULL);
	test_g_path_get_relative_basename_safe ("/home/user/a/b/../file.txt", "/home/user", FALSE, NULL);
}

static void
test_g_path_get_relative_basename (const char *path,
				   const char *base_dir,
				   gboolean    junk_paths,
				   const char *expected)
{
	const char *res;

	res = _g_path_get_relative_basename (path, base_dir, FALSE);
	g_print ("%s + %s -> %s\n", base_dir, path, res);
	g_assert_cmpstr (res, == , expected);
}

static void
test_relative_basename (void) {
	test_g_path_get_relative_basename ("/home/user1/file.txt", "/home/user1", FALSE, "/file.txt");
	test_g_path_get_relative_basename ("/home/user1/a/file.txt", "/home/user1", FALSE, "/a/file.txt");
	test_g_path_get_relative_basename ("/home/user1/../file.txt", "/home/user1", FALSE, "/../file.txt");
}

int
main (int   argc,
      char *argv[])
{
	g_test_init (&argc, &argv, NULL);
	g_test_add_func ("/_g_path_get_relative_basename", test_relative_basename);
	g_test_add_func ("/_g_path_get_relative_basename_safe/correct_base_dir", test_base_dir);

	return g_test_run ();
}


43.1 96 96 96h224c52.9 0 96-43.1 96-96 0-1.3-.3-2.6-.3-4-1.7-39.6-27.5-74-64.4-86.7zM320 352H96c-35.3 0-64-28.7-64-64 0-30.6 21.8-57 52-62.8l14.5-2.8-2-18c-.2-1.5-.4-2.9-.4-4.4 0-39.7 32.3-72 72-72 24.3 0 46.8 12.2 60.2 32.8l8.1 12.4 13-7.1c32.7-17.8 70.7 8.2 70.8 40.4l-.2 16.2 12.8 2.6c29.8 6 51.3 32.3 51.3 62.7-.1 35.3-28.8 64-64.1 64zm-149.8 66.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8zm192 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8zm96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8z'], 'cloud-music': [640, 512, [], 'f8ae', 'M571.69 238.8A112 112 0 0 0 464 96a110.64 110.64 0 0 0-48 10.8A175.82 175.82 0 0 0 272 32c-94.41 0-171.69 74.5-175.81 168.2A144 144 0 0 0 144 480h368a128 128 0 0 0 59.69-241.2zM512 448H144a112 112 0 0 1-15-223 139.16 139.16 0 0 1-1-17 144.05 144.05 0 0 1 277.41-54.41A80 80 0 0 1 527.09 257.2 96 96 0 0 1 512 448zM363.19 176.75l-128 47.25A16 16 0 0 0 224 239.25V338a69.34 69.34 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32 48-14.33 48-32V259.16l96-37.52V306a69.34 69.34 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48


 $b = !0 >> <$t>::MANTISSA_DIGITS;
                const EXP_OFFSET: $b = EXP_MASK / 2;

                if self >= 1.0 {
                    let bits = self.to_bits();
                    let exponent = ((bits >> M) & EXP_MASK) - EXP_OFFSET;
                    let mantissa = (bits & MAN_MASK) | MAN_ONE;
                    if exponent <= 52 {
                        U256::from(mantissa >> (52 - exponent))
                    } else if exponent >= 256 {
                        U256::MAX
                    } else {
                        U256::from(mantissa) << (exponent - 52)
                    }
                } else {
                    U256::ZERO
                }
            }
        }
    )*};
}

impl_as_u256_float! {
    f32[u32], f64[u64],
}

impl TryInto<u128> for U256 {
    type Error = TryFromIntError;

    #[inline]
    fn try_into(self) -> Result<u128, Self::Error> {
        let (hi, lo) = self.into_words();
        if hi != 0 {
            // NOTE: Work around not being able to construct an error.
            (-1isize).try_into()
        } else {
            Ok(lo)
        }
    }
}

macro_rules! impl_try_into {
    ($($t:ty),* $(,)?) => {$(
        impl TryInto<$t> for U256 {
            type Error = TryFromIntError;

            #[inline]
            fn try_into(self) -> Result<$t, Self::Error> {
                let x = TryInto::<u128>::try_into(self)?;
                x.try_into()
            }
        }
    )*};
}

impl_try_into! {
    i8, i16, i32, i64, i128,
    u8, u16, u32, u64,
    isize, usize,
}

macro_rules! impl_into_float {
    ($($t:ty => $f:ident),* $(,)?) => {$(
        impl Into<$t> for U256 {
            #[inline]
            fn into(self) -> $t {
                self.$f()
            }
        }
    )*};
}

impl_into_float! {
    f32 => as_f32, f64 => as_f64,
}
use std::path::Path;
use std::str::FromStr;
use std::{fs, ops::Deref};

use serde::{Deserialize, Serialize};
use tempfile::NamedTempFile;

use ckb_fixed_hash::H256;
use ckb_hash::new_blake2b;
use ckb_jsonrpc_types as rpc_types;
use ckb_resource::CODE_HASH_SECP256K1_DATA;
use ckb_sdk::{
    calc_max_mature_number,
    constants::{CELLBASE_MATURITY, MIN_SECP_CELL_CAPACITY, ONE_CKB},
    Address, AddressPayload, GenesisInfo, HttpRpcClient, HumanCapacity, SECP256K1,
};
use ckb_types::{
    bytes::{Bytes, BytesMut},
    core::{
        BlockView, Capacity, DepType, EpochNumberWithFraction, ScriptHashType, TransactionBuilder,
        TransactionView,
    },
    packed as ckb_packed,
    prelude::Builder as CKBBuilder,
    prelude::Pack as CKBPack,
    prelude::Unpack as CKBUnpack,
};
use gw_config::GenesisConfig;
use gw_generator::genesis::build_genesis;
use gw_types::{
    packed as gw_packed, packed::RollupConfig, prelude::Entity as GwEntity,
    prelude::Pack as GwPack, prelude::PackVec as GwPackVec,
};

use super::deploy_scripts::ScriptsDep


 be restored) and then
// after the user brings the process to foreground, user might continue to work
// with interrupted program (for which, terminal settings must be again restored
// to whose, which must be saved before stopping the program).
class StopSignalHandler
{
public:
    StopSignalHandler()
    {
        // Save original terminal settings (to restore after pressing Ctrl-Z)
        // and set SIGTSTP handler (to catch Ctrl-Z). It's assumed, that
        // Linenoise is still not reconfigured terminal at this moment.
        orig_ts_valid = tcgetattr(STDIN_FILENO, &orig_ts) == 0;
        set_handler(&orig_handler);
    }

    ~StopSignalHandler()
    {
        // Restore original SIGTSTP handler (typically SIG_DFL) on exit
        // (it's assumed, that Linenoise restored terminal settings in that moment).
        sigaction(SIGTSTP, &orig_handler, NULL);
    }

private:
    static bool orig_ts_valid;              // true if `orig_ts` is valid
    static struct termios orig_ts;          // initial terminal settings
    static struct sigaction orig_handler;   // initial SIGTSTP handler

    // This function sets own SIGTSTP handler and, optionally, returns
    // the handler, which was set originally (if `orig` isn't NULL).
    static void set_handler(struct sigaction *orig)
    {
        struct sigaction sa;
        sigemptyset(&sa.sa_mask);
        sa.sa_flags = SA_RESTART;
        sa.sa_handler = signal_handler;
        sigaction(SIGTSTP, &sa, orig);
    }

    static void signal_handler(int)
    {
        // errno might be corrupted by following functions
        int saved_errno = errno;

        // save currently set terminal settings (raw mode)
        struct termios ts;
        bool ts_valid = tcgetattr(STDIN_FILENO, &ts) == 0;

        // restore initially set terminal settings (canonical mode)
        if (orig_ts_valid)
            tcsetattr(STDIN_FILENO, TCSAFLUSH, &orig_ts);

        // set original SIGTSTP handler, unmask and raise signal again
        sigaction(SIGTSTP, &orig_handler, NULL);
        raise(SIGTSTP);
        sigset_t mask;
        sigemptyset(&mask);
        sigaddset(&mask, SIGTSTP);
        sigprocmask(SIG_UNBLOCK, &mask, NULL);

        // execution will stop here and continues with SIGCONT after using bring process to foreground

        sigprocmask(SIG_BLOCK, &mask, NULL);  // this is needed?
        set_handler(NULL);  // again set own SIGTSTP handler

        // restore previously saved terminal settings
        if (ts_valid)
            tcsetattr(STDIN_FILENO, TCSAFLUSH, &ts);

        errno = saved_errno;
    }
}; // StopSignalHandler

bool StopSignalHandler::orig_ts_valid;              // true if `orig_ts` is valid
struct termios StopSignalHandler::orig_ts;          // initial terminal settings
struct sigaction StopSignalHandler::orig_handler;   // initial SIGTSTP handler

#endif  // !_WIN32

CLIProtocol::TermSettings::TermSettings(CLIProtocol& protocol)
{
#ifdef WIN32
    auto in = GetStdHandle(STD_INPUT_HANDLE);
    auto out = GetStdHandle(STD_OUTPUT_HANDLE);

    std::pair<DWORD, DWORD> modes;

    if (!GetConsoleMode(in, &modes.first))
        retu


call to {@code setDecodeTables}, or
     * {@code null} if tables are not currently set.
     *
     * @return an array of {@code JPEGHuffmanTable} objects, or
     * {@code null}.
     *
     * @see #setDecodeTables
     */
    public JPEGHuffmanTable[] getDCHuffmanTables() {
        return (DCHuffmanTables != null)
            ? DCHuffmanTables.clone()
            : null;
    }

    /**
     * Returns a copy of the array of AC Huffman tables set on the
     * most recent call to {@code setDecodeTables}, or
     * {@code null} if tables are not currently set.
     *
     * @return an array of {@code JPEGHuffmanTable} objects, or
     * {@code null}.
     *
     * @see #setDecodeTables
     */
    public JPEGHuffmanTable[] getACHuffmanTables() {
        return (ACHuffmanTables != null)
            ? ACHuffmanTables.clone()
            : null;
    }
}
/*
 * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code 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
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */
package javax.imageio.plugins.tiff;

import java.util.StringTokenizer;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.sun.imageio.plugins.tiff.TIFFFieldNode;
import com.sun.imageio.plugins.tiff.TIFFIFD;

/**
 * A class representing a field in a TIFF 6.0 Image File Directory.
 *
 *
 A field in a TIFF Image File Directory (IFD) is defined as a
 * tag number accompanied by a sequence of values of identical data type.
 * TIFF 6.0 defines 12 data types; a 13th type {@code IFD} is
 * defined in TIFF Tech Note 1 of TIFF Specification Supplement 1. These
 * TIFF data types are referred to by Java constants and mapped internally
 * onto Java language data types and type names as follows:
 *
 *

 *
TIFF Data Type to Java Data Type Mapping

 *

 *

 *     TIFF Data Type
 *     Java Constant
 *     Java Data Type
 *     Java Type Name
 *

 *

 *

 *     {@code BYTE}
 *     {@link TIFFTag#TIFF_BYTE}
 *     {@code byte}
 *     {@code "Byte"}
 *

 *     {@code ASCII}
 *     {@link TIFFTag#TIFF_ASCII}
 *     {@code String}
 *     {@code "Ascii"}
 *

 *     {@code SHORT}
 *     {@link TIFFTag#TIFF_SHORT}
 *     {@code char}
 *     {@code "Short"}
 *

 *


]{margin-bottom:7px}.gj-editor-md [role=toolbar] .gj-button-md{min-width:54px;margin-right:5px}.gj-editor-md [role=toolbar] .gj-button-md .gj-icon{width:24px;height:24px}.gj-editor-bootstrap,.gj-editor-bootstrap [role=body]{border:1px solid #eceeef}.gj-editor-md p{margin:0;padding:0}.gj-editor-md blockquote{font-size:14px}.gj-editor-bootstrap{padding:7px}.gj-editor-bootstrap [role=toolbar]{margin-bottom:7px}.gj-editor-bootstrap [role=toolbar] .btn-group{margin-right:10px}.gj-editor-bootstrap [role=toolbar] button{height:36px}.gj-editor-bootstrap p{margin:0;padding:0}.gj-editor-bootstrap blockquote{font-size:14px}.gj-datepicker-md,.gj-dropdown-md [role=presenter]{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:16px;font-weight:400;letter-spacing:.04em}.gj-dropdown{position:relative;border-collapse:separate}.gj-dropdown [role=presenter]{display:table;cursor:pointer;outline:0;position:relative}.gj-dropdown [role=presenter] [role=display]{display:table-cell;text-align:left;width:100%}.gj-dropdown [role=presenter] [role=expander]{display:table-cell;vertical-align:middle;text-align:center;width:24px;height:24px}.gj-dropdown-md [role=presenter]{line-height:1;color:rgba(0,0,0,.87);padding:0;border:0;border-bottom:1px solid rgba(0,0,0,.42);background:0 0}.gj-dropdown-md [role=presenter]:active,.gj-dropdown-md [role=presenter]:focus{border-bottom:2px solid rgba(0,0,0,.42)}.gj-dropdown-md [role=presenter] [role=display]{padding:4px 0;line-height:18px}.gj-dropdown-md [role=presenter] [role=display] .placeholder{color:#8e8e8e}.gj-dropdown-list-md{position:absolute;top:0;left:0;background-color:#f5f5f5;color:#000;margin:0;z-index:1203}.gj-dropdown-list-md li.active,.gj-dropdown-list-md li:hover{background-color:#eee}.gj-dropdown-bootstrap [role=presenter] [role=display]{padding-right:5px}.gj-dropdown-bootstrap [role=presenter] [role=expander]{padding-left:5px}.gj-dropdown-bootstrap [role=presenter] [role=expander].gj-dropdown-expander-mi{width:24px}.gj-dropdown-bootstrap-3 [role=presenter] [role=display]{line-height:20px}.gj-dropdown-bootstrap-3 [role=presenter] [role=display] .placeholder{color:#9999b3}.gj-dropdown-bootstrap-3 [role=presenter] [role=expander]{width:20px;height:20px}.gj-dropdown-bootstrap-3 [role=presenter] [role=expander].gj-dropdown-expander-mi .gj-icon,.gj-dropdown-bootstrap-3 [role=presenter] [role=expander].gj-dropdown-expander-mi .material-icons{top:5px;right:10px;position:absolute}.gj-dropdown-bootstrap-4 [role=presenter]{border:1px solid #ced4da}.gj-dropdown-bootstrap-4 [role=presenter] [role=display]{line-height:24px}.gj-dropdown-bootstrap-4 [role=presenter] [role=expander].gj-dropd


,0x02,0x01
,0x06,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23
,0x04,0x18,0x30,0x16,0x80,0x14,0x6a,0x79
,0x7e,0x91,0x69,0x46,0x18,0x13,0x0a,0x02
,0x77,0xa5,0x59,0x5b,0x60,0x98,0x25,0x0e
,0xa2,0xf8,0x30,0x1d,0x06,0x03,0x55,0x1d
,0x0e,0x04,0x16,0x04,0x14,0x6a,0x79,0x7e
,0x91,0x69,0x46,0x18,0x13,0x0a,0x02,0x77
,0xa5,0x59,0x5b,0x60,0x98,0x25,0x0e,0xa2
,0xf8,0x30,0x0c,0x06,0x03,0x55,0x1d,0x13
,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30
,0x19,0x06,0x09,0x2a,0x86,0x48,0x86,0xf6
,0x7d,0x07,0x41,0x00,0x04,0x0c,0x30,0x0a
,0x1b,0x04,0x56,0x34,0x2e,0x30,0x03,0x02
,0x04,0x90,0x30,0x0d,0x06,0x09,0x2a,0x86
,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05
,0x00,0x03,0x81,0x81,0x00,0x22,0x12,0xd8
,0x7a,0x1d,0xdc,0x81,0x06,0xb6,0x09,0x65
,0xb2,0x87,0xc8,0x1f,0x5e,0xb4,0x2f,0xe9
,0xc4,0x1e,0xf2,0x3c,0xc1,0xbb,0x04,0x90
,0x11,0x4a,0x83,0x4e,0x7e,0x93,0xb9,0x4d
,0x42,0xc7,0x92,0x26,0xa0,0x5c,0x34,0x9a
,0x38,0x72,0xf8,0xfd,0x6b,0x16,0x3e,0x20
,0xee,0x82,0x8b,0x31,0x2a,0x93,0x36,0x85
,0x23,0x88,0x8a,0x3c,0x03,0x68,0xd3,0xc9
,0x09,0x0f,0x4d,0xfc,0x6c,0xa4,0xda,0x28
,0x72,0x93,0x0e,0x89,0x80,0xb0,0x7d,0xfe
,0x80,0x6f,0x65,0x6d,0x18,0x33,0x97,0x8b
,0xc2,0x6b,0x89,0xee,0x60,0x3d,0xc8,0x9b
,0xef,0x7f,0x2b,0x32,0x62,0x73,0x93,0xcb
,0x3c,0xe3,0x7b,0xe2,0x76,0x78,0x45,0xbc
,0xa1,0x93,0x04,0xbb,0x86,0x9f,0x3a,0x5b
,0x43,0x7a,0xc3,0x8a,0x65};
const unsigned int  NptTlsTrustAnchor_Base_0009_Size = 813;
/*****************************************************************
|
|   Neptune - Trust Anchors
|
|   This file is automatically generated by a script, do not edit!
|
| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
| All rights reserved.
|
| Redistribution and use in source and binary forms, with or without
| modification, are permitted provided that the following conditions are met:
|     * Redistributions of source code must retain the above copyright
|       notice, this list of conditions and the f


ary>

岗位职责:

1.负责CRM方向的数据口径及相关数仓模型的建设和设计，并根据需求变化和业务发展，持续优化模型；

2.提升CRM方向数据质量和运营效率，参与相关事件应急响应；

3.协同数据产品，构建应用数据集，提供更直观的数据服务能力。

岗位要求：

1.计算机或信息技术相关专业，大学本科及以上学历;

2.4年以上大数据数仓开发相关工作经验；

3.有扎实的数据仓库理论功底和丰富的数据治理实战经验，望通过对业务的深入理解，进行数据仓库、数据体系和数据价值的建设和优化；

4.熟悉大数据系统组件(如Hive、MapReduce、Spark、HBase等)，具备编写、优化复杂SQL的能力；

5.了解实时处理技术相关组件(如Kafka、Flink等)；

6.负责过大型数据平台或数据仓库设计优先；

7.熟悉Python/Java/Shell其中一种语言；

8.具备CRM、广告系统业务相关经验、ABT相关经验的加分;

---

#### [高级/资深测试工程师](https://app.mokahr.com/social-recruitment/shein/2933#/job/a503e929-9645-4713-94e6-92e9b1287200)

📍 深圳市

职位描述

岗位职责：

1、负责电商业务数据质量保证工作，以及各类算法测试工具 的开发和探索；

2、根据实际测试业务需求进行数据产品和算法产品的测试工 作；

3、能够根据实际业务需求产出完备的测试方案并制定可执行 测试计划，保证数据和算法的正确性以及合理性；

4、能够根据测试需求快速开发测试工具或平台；

任职资格：

1、 本科或以上学历，计算机、数学、统计学、机器学习等相 关专业，2年以上数据测试经验；

2、 熟练掌握golang、python等语言；

3、 熟练sql，了解Hadoop、Spark、Hive等常用大数据技术；

4、 了解数据仓库基本概念


,  ″S".grade from dept″D″ join(select top2
> deptno,  avg(sa1)    as″avg_sa1″ from emp where sa1 > 1500 group by
> deptno having avg(sa1)  > 2000 order by″avg_sa1″ desc )  ″T″
> on″D″.deptno=″T″.deptno Join salgrade″S" on″T".″avg_sa1″
> between″S″.1osa1 nd″S″,hisal

**6. 习题**

- 判断以下语句输出是几行
```select'l: from emp, dept where emp.deptno= 10```
```select* from emp, dept where dept.deptno= 10 ```

- -一过滤条件不是连接条件

考虑如何把
selelit:* from emp, dept where dept.dept:lio= 10 以sq199标准来输出

1>求出每个员工的姓名部门编号薪水和薪水的等级
2>査找每个部门的编号该部门所有员工的平均工资平均工资的等级
3>査找每个部门的编号部门名称该部门所有员工的平均工资平均工资的等级
4>求出emp表中所有领导的信息
5> 求出平均薪水最高的部门的编号和部门的平均工资
6>把工资大于所有员工中工资最低的前3个人的姓名工资部门编号部门名称工资等级输出

**自连接**

- 定义
 - 一张表自己和自己连接起来査询数据

 **例子**

- 不准用聚合函数求薪水最高的员工的信息

**联合**

- 定义
 - 表和表之间的数据以纵向的方式连接在一起
 - **注意:** 我们以前讲的所有的连接是以横向的方式连接在一起的

**例子:**

- 输出每个员工的姓名工资上司的姓名

```select"E1″,enae,″E1″.sa1,   ″E2″.en訓e″上司的姓名″
from emp″E1″
Join emp″磁″
on"E1".m解 =″E2″.empno
uni on
select ename, sa1, '已是最大老板' from emp where mgr is nul1```

**注意:**

- 若干个select子句要联合成功的话,必须的满足两个条件
 - 这若干个select子句输出的列数必须是相等的
 - 这若干个se1 ect子句输出列的数据类型至少是兼容的

`identity`【主键自动增长,用户不需要为identity修饰的主键赋值】
用户如何手动给被i dent i ty修饰的主键赋值不重要

表中删除数据后又插入数据会导致主键不连续递增 怎么办?
主键是否连续增长不十分重要

**视图**

- 为什么需要视图

**示例**

- 求出平均工资最高的部门的编号和部门的平均工资

- **总结:**

 - 简化査询
 - 避免了代码的冗余
 - 避免了书写大量重复的sq1语句

- 什么是视图
- 视图从代码上看是一个select语句
- 视图从逻辑上看被当做一个虚拟表看�


l scope for node or in the window for browsers
import { Car, Person } from '../fixture.factory';
import { expectOclRuleValidatesToFalse, expectOclRuleValidatesToTrue } from '../matcher';

describe('Example', () => {
    describe('Car', () => {
        const person = new Person(29);
        person.fleet = [];

        const redCar = new Car('red');
        redCar.owner = person;

        const greenCar = new Car('green');
        greenCar.owner = person;

        person.fleet.push(redCar);
        person.fleet.push(redCar);
        person.fleet.push(redCar);
        person.fleet.push(greenCar);

        it('All cars a person owns are red.', () => {
            const oclExpression = `
            context Person inv:
                self.fleet->forAll(c|c.color = "red")
        `;

            expectOclRuleValidatesToFalse(oclExpression, person);
        });

        it('The owner of a car is at least 18 years old.', () => {
            const oclExpression = `
            context Car inv:
                self.owner.age >= 18
        `;

            expectOclRuleValidatesToTrue(oclExpression, redCar);
        });
    });
});
import { parse, PgParseError } from "pg-query-emscripten";
import {
	isPgDeleteStmt,
	isPgInsertStmt,
	isPgSelectStmt,
	isPgUpdateStmt,
	isPgRawStmt,
} from "./pg-query-emscripten-type-guards";
import {
	getParamMapForDelete,
	getParamMapForInsert,
	getParamMapForSelect,
	getParamMapForUpdate,
	Parameter,
} from "./params";
import { notSupported, Warning } from "./utils";

export interface Analysis {
	warnings: Warning[];
	parameters: Parameter[];
}

export class ParseError extends Error {
	public cursorPosition: number;

	constructor(error: PgParseError) {
		super(error.message);
		this.cursorPosition = error.cursorpos;
	}
}

export const analyze = (query: string): Analysis => {
	const warnings: Warning[] = [];
	const result = parse(query);
	if (result.error) {
		throw new ParseError(result.error);
	} else if (result.parse_tree) {
		const stmt = result.parse_tree[0];
		let parameters: Parameter[];
		if (isPgRawStmt(stmt) && stmt.RawStmt.stmt) {
			const innerStmt = stmt.RawStmt.stmt;
			if (isPgUpdateStmt(innerStmt)) {
				parameters = getParamMapForUpdate(innerStmt, warnings);
			} else if (isPgInsertStmt(innerStmt)) {
				parameters = getParamMapForInsert(innerStmt, warnings);
			} else if (isPgSelectStmt(innerStmt)) {
				parameters = getParamMapForSelect(innerStmt, warnings);
			} else if (isPgDeleteStmt(innerStmt)) {
				parameters = getParamMapForDelete(innerStmt, warnings);
			} else {
				warnings.push(notSupported("statement", innerStmt));
				parameters = [];
			}
		} else {
			warnings.push(notSupported("statement", stmt));
			parameters = [];
		}

		return {
			warnings,
			parameters,
		};
	} else {
		throw new Error("Got no result");
	}
};
import { Intent, entities } from "narratory"

export const Yes: Intent = {
    examples: ["yeah", "yes", "of course", "absolutely"]
}

export const No: Intent = {
    examples: ["no", "never", "nope", "I don't think so"]
}

export const travel: Intent = {
    examples: [
        "I want to book a flight",
        "I want to book tickets",
        "_toCity",
        "to _toCity",
        "to _toCity from _fromCity",
        "to _toCity from _fromCity for _tickets",
        "book a flight",
        "book tickets to _toCity",
        "book _tickets tickets to _toCity",
        "book tickets to _toCity from _fromCity",
        "book _


",
		[173024] = "杜佛斯回收店",
		[177120] = "费伍德森林",
		[178144] = "食人妖的箱子",
		[22530] = "木椅",
		[173025] = "荆棘谷水果进口公司",
		[2849] = "破损的箱子",
		[143333] = "铜壶铁罐",
		[177121] = "永夜港",
		[2913] = "冰蹄水井",
		[11714] = "粗柄蘑菇",
		[173026] = "烤肉架",
		[2977] = "纳拉其营地",
		[143334] = "皮甲用品店",
		[32385] = "军事区",
		[178146] = "古尔达的伐木机",
		[12354] = "奥达希尔",
		[175075] = "火盆",
		[58623] = "急救",
		[25346] = "旧城区",
		[111095] = "联盟宝箱",
		[3233] = "大兽穴",
		[175076] = "火盆",
		[143336] = "铁炉堡医师协会",
		[177124] = "冬泉谷",
		[164838] = "红水晶1",
		[149480] = "辛耶尔符文",
		[143337] = "矮人火盆",
		[177125] = "费伍德森林",
		[153576] = "大锅",
		[173030] = "火焰",
		[149481] = "贝萨玛拉符文",
		[175078] = "铁砧",
		[143338] = "草须魔法用品店",
		[177126] = "冬泉谷",
		[153577] = "大锅",
		[173031] = "火焰",
		[149482] = "玛克雷符文",
		[177127] = "永夜港",
		[153578] = "邮箱",
		[147435] = "长椅",
		[181223] = "浮空城",
		[149483] = "萨尔哈符文",
		[3761] = "营火",
		[177128] = "费伍德森林",
		[153579] = "大锅",
		[3841] = "火焰余烬",
		[3857] = "烈火",
		[61952] = "营火",
		[22915] = "木椅",
		[3905] = "炽热的火焰",
		[38147] = "木椅",
		[153580] = "营火",
		[147437] = "长椅",
		[181225] = "冰霜巨龙瀑布之门",
		[143342] = "矮人火盆",
		[177130] = "怒风兽穴",
		[153581] = "营火",
		[147438] = "长椅",
		[173035] = "火焰",
		[1433


, R7\n0x4305c: MOV             R1, #0x33 ; '3'\n0x43060: BL              sub_2B6F4\n0x43064: CMP             R0, #1\n0x43068: BNE             loc_43088\n0x4306c: MOV             R9, #0x33 ; '3'\n0x43070: B               loc_42628\n0x43074: MOV             R0, R7; jumptable 00041DDC case 6\n0x43078: MOV             R1, #0\n0x4307c: BL              sub_2B6F4\n0x43080: CMP             R0, #1\n0x43084: BEQ             loc_4363C\n0x43088: MOVW            R6, #0x1F5\n0x4308c: B               loc_41F1C\n0x43090: MOV             R0, R7; jumptable 00041DDC case 7\n0x43094: MOV             R1, #0x47 ; 'G'\n0x43098: BL              sub_2B6F4\n0x4309c: CMP             R0, #1\n0x430a0: BEQ             loc_44030\n0x430a4: MOV             R0, R7\n0x430a8: MOV             R1, #0x48 ; 'H'\n0x430ac: BL              sub_2B6F4\n0x430b0: CMP             R0, #1\n0x430b4: BEQ             loc_435EC\n0x430b8: MOV             R0, R7\n0x430bc: MOV             R1, #0x49 ; 'I'\n0x430c0: BL              sub_2B6F4\n0x430c4: CMP             R0, #1\n0x430c8: BEQ             loc_443AC\n0x430cc: MOV             R0, R7\n0x430d0: MOV             R1, #0x4A ; 'J'\n0x430d4: BL              sub_2B6F4\n0x430d8: CMP             R0, #1\n0x430dc: BEQ             loc_44640\n0x430e0: MOV             R0, R7\n0x430e4: MOV             R1, #0x4B ; 'K'\n0x430e8: BL              sub_2B6F4\n0x430ec: CMP             R0, #1\n0x430f0: BEQ             loc_44810\n0x430f4: MOV             R0, R7\n0x430f8: MOV             R1, #0x4C ; 'L'\n0x430fc: BL              sub_2B6F4\n0x43100: CMP             R0, #1\n0x43104: BEQ             loc_448EC\n0x43108: MOV             R0, R7\n0x4310c: MOV             R1, #0x4D ; 'M'\n0x43110: BL              sub_2B6F4\n0x43114: CMP             R0, #1\n0x43118: BNE             loc_43088\n0x4311c: MOV             LR, #0x4D ; 'M'\n0x43120: MOV             R10, #0xFFFFFFFF\n0x43124: STR             LR, [SP,#0x310+s1]\n0x43128: B               loc_43138\n0x4312c: MOV             R10, #0xFFFFFFFF\n0x43130: MOV             R0, #0\n0x43134: STR             R0, [SP,#0x310+s1]\n0x43138: LDR             R3, [SP,#0x310+var_2F8]\n0x4313c: MOV


Employee(emp: Employee) {
    console.log(emp);
    const params = new HttpParams().set('EmployeeId', emp.EmployeeId.toString());
    const headers = new HttpHeaders().set('content-type', 'application/json');
    var body = {
      EmployeeId: emp.EmployeeId, FirstName: emp.FirstName, LastName: emp.LastName, DateOfBirth : emp.DateOfBirth, PhoneNumber : emp.PhoneNumber, Email: emp.Email, gender: emp.Gender
    }
    return this.http.put<Employee>(environment.API_URL + '/employee/' + emp.EmployeeId, body, { headers, params })

  }

  DeleteEmployee(employeeId : string) {
    return this.http.delete<Employee>(environment.API_URL + '/employee/' + employeeId)
  }
}
import * as Sequelize from "sequelize";

export interface DealAttriubutes {
  id?: string;
  maker: string;
  taker: string;
  makerAsset: string;
  takerAsset: string;
  makerAmount: number;
  takerAmount: number;
  createdAt?: string;
  updatedAt?: string;
}

export interface DealInstance extends Sequelize.Instance<DealAttriubutes> {}

export default (
  sequelize: Sequelize.Sequelize,
  DataTypes: Sequelize.DataTypes
) => {
  const Deal = sequelize.define(
    "Deal",
    {
      maker: DataTypes.STRING,
      taker: DataTypes.STRING,
      makerAsset: DataTypes.STRING,
      takerAsset: DataTypes.STRING,
      makerAmount: DataTypes.INTEGER,
      takerAmount: DataTypes.INTEGER
    },
    {}
  );
  Deal.associate = _ => {
    // associations can be defined here
  };
  return Deal;
};
export type Movie = {
  title: string;
  code: MovieCode;
};

export enum MovieCode {
  Regular = 1,
  NewRelease = 2,
  Children = 3,
}
import * as Discord from "discord.js";
import { IBotCommand } from "../api";

export default class say implements IBotCommand {

    private readonly _command = "say"

    help(): string {
        return "Dit command is om berichten naar channels of gebruikers te sturen.";
    }

    isThisCommand(command: string): boolean {
        return command === this._command;
    }

    async runCommand(args: string[], msgObject: Discord.Message, client: Discord.Client): Promise<void> {

        //Command
        let mentionedUser = msgObject.mentions.users.first();
        let channel = msgObject.mentions.channels.first();
        let message = args.slice(2).join(" ");
        let type = args[0]
        let userID = "561613647596748819"

        if(msgObject.member.hasPermission("ADMINISTRATOR")) {
            if (type === "dm") {
                mentionedUser.sendMessage(message)
                msgObject.author.sendMessage(`(${message}) is verzonden naar ${mentionedUser}`)
                msgObject.channel.send(`(${message}) is verzonden naar ${channel}`)
                return;
            }
            if (type === "channel") {
                channel.send(message)
                msgObject.author.send(`(${message}) is verzonden naar ${channel}`)
                msgObject.channel.send(`(${message}) is verzonden naar ${channel}`)
                return;
            }
        } else {
            msgObject.author.sendMessage("Je moet Admin of hoger zijn om dit command te gebruiken.")
            msgObject.channel.send("Je moet Admin of hoger zijn om dit command te gebruiken.")
        }

    }
}import { Action, applyMiddleware, compose, createStore } from "redux";
import { persistReducer } from "redux-persist";
import localStorage from "redux-persist/lib/storage";
import thunk from "redux-thunk";
import { Message } from "../domain/Message";

export interface


width:100%;margin-top:10px;justify-content:space-between}.grid-itemscount{display:inline-flex;margin-top:6px}.grid-itemscount-label{margin-left:5px;margin-right:5px}.grid-pager-sizer{display:inline-flex}.grid-pager ul{padding:0}.grid-page-link:focus{box-shadow:none}.grid-page-item:first-child .grid-page-link{border-radius:4px 0 0 4px}div[dir="rtl"] .grid-page-item:first-child .grid-page-link{border-radius:0 4px 4px 0}.grid-page-item:last-child .grid-page-link{border-radius:0 4px 4px 0}div[dir="rtl"] .grid-page-item:last-child .grid-page-link{border-radius:4px 0 0 4px}.subgrid-caret{cursor:pointer;user-select:none}.subgrid-caret::after{content:"▷"}div[dir="rtl"] .subgrid-caret::after{content:"◁"}.subgrid-caret-down{cursor:pointer;user-select:none}.subgrid-caret-down::after{content:"◢"}div[dir="rtl"] .subgrid-caret-down::after{content:"◣"}.grid-button{height:34px;color:#333;border:1px solid #aaa;border-radius:4px;background-color:#333}.grid-button:hover{border-color:#666}.grid-buttons{display:inline-flex;width:100%;justify-content:space-between}.grid-header-buttons{display:inline-flex}.grid-search{margin-top:10px;margin-bottom:10px}button.grid-search-apply{padding-left:20px;border-radius:4px 0 0 4px;background-repeat:no-repeat,no-repeat;background-position-x:8px,0;background-position-y:8px,0;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 8 8"><path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5c.59 0 1.17-.14 1.66-.41a1 1 0 0 0 .13.13l1 1a1.02 1.02 0 1 0 1.44-1.44l-1-1a1 1 0 0 0-.16-.13c.27-.49.44-1.06.44-1.66 0-1.93-1.57-3.5-3.5-3.5zm0 1c1.39 0 2.5 1.11 2.5 2.5 0 .66-.24 1.27-.66 1.72-.01.01-.02.02-.03.03a1 1 0 0 0-.13.13c-.44.4-1.04.63-1.69.63-1.39 0-2.5-1.11-2.5-2.5s1.11-2.5 2.5-2.5z"/></svg>'),linear-gradient(#ddd,#eee)}div[dir="rtl"] button.grid-search-apply{border-radius:0 4px 4px 0}button.grid-search-clear{padding-left:22px;border-radius:0 4px 4px 0;background-repeat:no-repeat,no-repeat;background-position-x:8px,0;background-position-y:8px,0;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 8 8"><path d="M1.41 0l-1.41 1.41.72.72 1.78 1.81-1.78 1.78-.72.69 1.41 1.44.72-.72 1.81-1.81 1.78 1.81.69.72 1.44-1.44-.72-.69-1.81-1.78 1.81-1.81.72-.72-1.44-1.41-.69.72-1.78 1.78-1.81-1.78-.72-.72z" /></svg>'),line


itle {
  fill: #E0E0E3;
}

.highcharts-navigator .highcharts-navigator-handle {
  fill: #666;
  stroke: #aaa;
}

.highcharts-navigator .highcharts-navigator-outline {
  stroke: #CCC;
}

.highcharts-navigator .highcharts-navigator-xaxis .highcharts-grid-line {
  stroke: #505053;
}

.highcharts-scrollbar .highcharts-scrollbar-rifles {
  stroke: #fff;
}

.highcharts-scrollbar .highcharts-scrollbar-button {
  stroke: #606063;
  fill: #606063;
}

.highcharts-scrollbar .highcharts-scrollbar-arrow {
  fill: #CCC;
}

.highcharts-scrollbar .highcharts-scrollbar-thumb {
  fill: #808083;
  stroke: #808083;
}

.highcharts-contextbutton .highcharts-button-symbol {
  stroke: #DDDDDD;
}

/**
 * @license Highcharts
 *
 * (c) 2009-2016 Torstein Honsi
 *
 * License: www.highcharts.com/license
 */
.highcharts-container {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  text-align: left;
  line-height: normal;
  z-index: 0;
  /* #1072 */
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  font-family: "Unica One", Arial, Helvetica, sans-serif;
  font-size: 12px;
}

.highcharts-root {
  display: block;
}

.highcharts-root text {
  stroke-width: 0;
}

.highcharts-strong {
  font-weight: bold;
}

.highcharts-emphasized {
  font-style: italic;
}

.highcharts-anchor {
  cursor: pointer;
}

.highcharts-background {
  fill: #2a2a2b;
}

.highcharts-plot-border, .highcharts-plot-background {
  fill: none;
}

.highcharts-label-box {
  fill: none;
}

.highcharts-button-box {
  fill: inherit;
}

.highcharts-tracker-line {
  stroke-linejoin: round;
  stroke: rgba(192, 192, 192, 0.0001);
  stroke-width: 22;
  fill: none;
}

.highcharts-tracker-area {
  fill: rgba(192, 192, 192, 0.0001);
  stroke-width: 0;
}

/* Titles */
.highcharts-title {
  fill: #E0E0E3;
  font-size: 20px;
}

.highcharts-subtitle {
  fill: #E0E0E3;
}

/* Axes */
.highcharts-axis-line {
  fill: none;
  stroke: #707073;
}

.highcharts-yaxis .highcharts-axis-line {
  stroke-width: 0;
}

.highcharts-axis-title {
  fill: #E0E0E3;
}

.highcharts-axis-labels {
  fill: #E0E0E3;
  cursor: default;
  font-size: 0.9em;
}

.highcharts-grid-line {
  fill: none;
  stroke: #707073;
}

.highcharts-xaxis-grid .highcharts-grid-line {
  stroke-width: 0px;
}

.highcharts-tick {
  stroke: #707073;
}

.highcharts-yaxis .highcharts-tick {
  stroke-width: 0;
}

.highcharts-minor-grid-line {
  stroke: #505053;
}

.highcharts-crosshair-thin {
  stroke-width: 1px;
  stroke: #606063;
}

.highcharts-crosshair-category {
  stroke: #707073;
  stroke-opacity: 0.25;
}

/* Credits */
.highcharts-credits {
  cursor


 * can be consumed at runtime.
 */
export interface FileAssetLocation {
  /**
   * The name of the Amazon S3 bucket.
   */
  readonly bucketName: string;

  /**
   * The Amazon S3 object key.
   */
  readonly objectKey: string;

  /**
   * The HTTP URL of this asset on Amazon S3.
   *
   * @example https://s3-us-east-1.amazonaws.com/mybucket/myobject
   */
  readonly s3Url: string;
}

/**
 * The location of the published docker image. This is where the image can be
 * consumed at runtime.
 */
export interface DockerImageAssetLocation {
  /**
   * The URI of the image in Amazon ECR.
   */
  readonly imageUri: string;

  /**
   * The name of the ECR repository.
   */
  readonly repositoryName: string;
}
/**
 * @author happygrammer
 */
class EagerLogger {
    // #1 부지런한 초기화
    private static uniqueObject: EagerLogger = new EagerLogger();

    // #2 private을 붙여 객체로 생성되지 않도록 함
    private constructor() { }

    // #3 static을 붙여 외부 접근을 가능케 함
    public static getLogger(): EagerLogger {
        return this.uniqueObject;
    }

    // #4 정보 로그를 출력
    public info(message: string) {
        console.log(`[info] ${message}`);
    }

    // #5 경고 로그를 출력
    public warnning(message: string) {
        console.log(`[warn] ${message}`);
    }
}

// #6 유일한 객체를 얻고 메서드(info, warning)를 사용함
let eagerLogger: EagerLogger = EagerLogger.getLogger();
let eagerLogger2: EagerLogger = EagerLogger.getLogger();
eagerLogger.info("1번 : 정보 log");
eagerLogger.warnning("2번 : 경고 log");
eagerLogger.info(`3번 : ${eagerLogger === eagerLogger2}`);import { first } from 'lodash';

import { Backend } from '@src/integrations/backend/types';

export const isWord = (token: Backend.ConlluTokenViewModel) =>
  !(
    token.upos === 'PUNCT' ||
    (token.upos === 'NUM' && /[0-9]/.test(token.normalisedToken.form)) ||
    token.upos === 'SYM' ||
    !token.normalisedToken.form.trim()
  );

export const isProperNoun = (token: Backend.ConlluTokenViewModel) =>
  token.upos === 'PROPN';

export const getSpacesAfter = (token: Backend.ConlluTokenViewModel) =>
  (
    token.sparvPipelineMisc?.tail ??
    token.misc.match(/\|?Spaces?After=(.+)\|?/)?.[1] ??
    ' '
  )
    .replace(/^No$/, '')
    .replace(/\\s/g, ' ')
    .replace(/\\n/g, '\n');

export const getCompoundAndLemmaForTranslation = (
  token: Backend.ConlluTokenViewModel,
) => {
  const compound = first(token.sparvPipelineMisc?.compwf)?.join(' + ');
  const { lemma } = token.normalisedToken;

  // Lemma is rendered along with compound
  // because sometimes the quality of compound analysis isn't that good.
  return compound ? `${lemma}, ${compound}` : lemma;
};
import * as TokenAST from './tokensAst'
import { Memory } from '../../logic/runtime/memory'
import { Value, Decode } from '../../logic/runtime/value'

let getField = (key: string, fields: Memory) => {
  if (fields.type !== 'record') {
    return


 "test": {
                    "my_var": "TESTING",
                }
            },
            "seeds": {
                "quote_columns": False,
            },
        }

list_schema_yml = """
- name: my_name
- name: alt_name
"""

class TestListSchemaFile:
    @pytest.fixture(scope="class")
    def models(self):
        return {
            "my_model.sql": "select 1 as id",
            "schema.yml": list_schema_yml,
        }

    def test_list_schema(self, project):
        with pytest.raises(ParsingError) as excinfo:
            run_dbt(["run"])
        assert "Dictionary expected" in str(excinfo.value)