here was a TX interrupt, call the callback.
	 */
	if (TxCompleteIntr == TRUE) {

		/*
		 * Call the TX callback.
		 */
		EmacLitePtr->SendHandler(EmacLitePtr->SendRef);

	}
}

/*****************************************************************************/
/**
*
* Sets the callback function for handling received frames in interrupt mode.
* The upper layer software should call this function during initialization.
* The callback is called when a frame is received. The callback function
* should communicate the data to a thread such that the processing is not
* performed in an interrupt context.
*
* The callback is invoked by the driver within interrupt context, so it needs
* to do its job quickly. If there are other potentially slow operations
* within the callback, these should be done at task-level.
*
* @param	InstancePtr is a pointer to the XEmacLite instance..
* @param	CallBackRef is a reference pointer to be passed back to the
*		application in the callback. This helps the application
*		correlate the callback to a particular driver.
* @param	FuncPtr is the pointer to the callback function.
*
* @return	None.
*
* @note		None.
*
******************************************************************************/
void XEmacLite_SetRecvHandler(XEmacLite *InstancePtr, void *CallBackRef,
			      XEmacLite_Handler FuncPtr)
{
	Xil_AssertVoid(InstancePtr != NULL);
	Xil_AssertVoid(FuncPtr != NULL);
	Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);

	InstancePtr->RecvHandler = FuncPtr;
	InstancePtr->RecvRef = CallBackRef;
}

/*****************************************************************************/
/**
*
* Sets the callback function for handling transmitted frames in interrupt mode.
* The upper layer software should call this function during initialization.
* The callback is called when a frame is transmitted. The callback function
* should communicate the data to a thread such that the processing is not
* performed in an interrupt context.
*
* The callback is invoked by the driver within interrupt context, so it needs
* to do its job quickly. If there are other potentially slow operations
* within the callback, these should be done at task-level.
*
* @param	InstancePtr is a pointer to the XEmacLite instance.
* @param	CallBackRef is a reference pointer to be passed back to the
*		application in the callback. This helps the application
*		correlate the callback to a particular driver.
* @param	FuncPtr is the pointer to the callback function.
*
* @return	None.
*
* @note		None.
*
******************************************************************************/
void XEmacLite_SetSendHandler(XEmacLite *InstancePtr, void *CallBackRef,
			      XEmacLite_Handler FuncPtr)
{
	Xil_AssertVoid(InstancePtr != NULL);
	Xil_AssertVoid(FuncPtr != NULL);
	Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);

	InstancePtr->SendHandler = FuncPtr;
	InstancePtr->SendRef = CallBackRef;
}
/** @} */


ck CBLoginRcv_ModifyUserResult

/*!
 \brief	 Receive the status of the user modifycation request
 \par       Description:
  This callback will be called when the client receive a response from the
	router after sending a user info modification request

  \par Related Function:
	LoginSend_ModifyAccount()

  \par Errors:
    ERRORSECURE_PASSWORDMALFORMED: The password does not match the format
	                               rules ^.{2,16}$.

	ERRORSECURE_PASSWORDFORBIDDEN: The password contains the username

	ERRORSECURE_DATABASEFAILED: There is a problem with the database.

 \param	ubType	The status of the message received back (GSSUCCESS or GSFAIL)
 \param	iReason	The reason of failure if ubType is GSFAIL

*/
//============================================================================
typedef GSvoid (__stdcall *CBLoginRcv_ModifyUserResult)(GSubyte ubType,
		GSint iReason);

//============================================================================
// Callback DBLoginRcv_RequestMOTD

/*!
 \brief	 Receive the message of the day
 \par       Description:
  This callback will be called when the client receives the MOTDs from the
	server.  The messages will never be greater the MOTDLENGTH.

  \par Related function:
	LoginSend_RequestMOTD()

	\par Errors:
	ERRORROUTER_DBPROBLEM: There is a problem with the database.

 \param	ubType	The status of the message received back (GSSUCCESS or GSFAIL)
 \param szUbiMOTD The message of the day for the Ubi.com Game Service
 \param szGameMOTD The message of the day for the game.
 \param	iReason	The reason for the failure if ubType is GSFAIL

*/
//============================================================================
typedef GSvoid (__stdcall *CBLoginRcv_RequestMOTD)(GSubyte ubType,
		GSchar *szUbiMOTD, GSchar *szGameMOTD, GSint iReason);

/*! @} end of group_LoginCB */

#endif //__GSLOGINCB_H_


段经常帮助同学们解答计算机的常识性问
题。进入福州大学后，我努力准备转专业考试，询问计算机学院新生的生活以及学
习进度。尽管到目前为止我没有什么编程基础，但我相信通过接下来一段时间的学习能够补足乃至超越。我未来的理想是做有关于人工智能方面的工作，以上就是我的自我介绍，谢谢老师。（有点磕巴）

**Q**：你的高考成绩是多少？

**A**：597

**Q**：数学多少：

**A**：120

**Q**：英语？

**A**：127

**Q**：你觉得计算机未来有哪些研究方向？

**A**：其实我觉得，和导论考的那几道题差不多，据我了解，计算机未来有以下研究方向：硬件方向，软件方向，人机交互方向，数据库方向之类的，差不多就是这样。（导论上有7点）

**Q**：你对计算机有什么了解？

**A**：到目前为止，我对计算机的了解仅仅局限于书本（被打断）

**Q**：就是导论上的内容没错吧。

**A**：是这样的（微笑）

**Q**：那么同学，你觉得原专业课的难度怎么样？

**A**：我原专业是车辆工程嘛，到目前为止的专业课只有机械制图c。我个人认
为这门课的难度在可接受的范围之内。

**Q**：同学，我想问一下，你对计算机专业了解吗？

**A**：不是很了解。

**Q**：同学这就不对。不了解计算机后续课程就报计算机，等下你学了一年之后后悔了怎么办？（一个开始笑，并且有人开始附和“是啊，确实”）难道你转计算机只是因为原专业太差吗？（众人笑）所以......（大于等于4个连续问题，记得不是很清楚了，抱歉）

**A**：（主动打断）我申明，我对计算机专业的不了解仅仅是对编程，硬件等专业知识的不了解，而并非是对前景的不了解。在转专业之前，我便向计算机专业的同学们要过课表以及后续的培养计划，知道他们未来要学什么。同时我在转计算机之前便已经做好了详细的规划，未来想要参加哪些竞赛。并且我将会以计算机为跳板，冲击人工智能的研究生。（情绪有


  self.item:AddTag("outofreach")

        if self.onitemgivenfn ~= nil then
            self.onitemgivenfn(self.inst, self.item, giver)
        end
    else
        self.item = nil
    end

    return true
end

function InventoryItemHolder:TakeItem(taker)
    if not self:CanTake(taker) then
        return false
    end

    local pos = self.inst:GetPosition()

    self.inst:RemoveChild(self.item)

    self.item.components.inventoryitem:InheritWorldWetnessAtTarget(self.inst)

    self.item:RemoveTag("outofreach")

    if taker ~= nil and taker:IsValid() and taker.components.inventory ~= nil then
        taker.components.inventory:GiveItem(self.item, nil, pos)
    else
        self.item.Transform:SetPosition(pos:Get())
        self.item.components.inventoryitem:OnDropped(true)
    end

    self.item = nil

    if self.onitemtakenfn ~= nil then
        self.onitemtakenfn(self.inst, self.item, taker)
    end

    return true
end

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

function InventoryItemHolder:OnSave()
    local data = {}
    local references = nil

    if self.item ~= nil and self.item:IsValid() and self.item.persists then
        data.item, references = self.item:GetSaveRecord()
    end

    return next(data) ~= nil and data or nil, references
end

function InventoryItemHolder:OnLoad(data, newents)
    if data.item ~= nil then
        local item = SpawnSaveRecord(data.item, newents)

        if item ~= nil then
            self:GiveItem(item, self.inst)
        end
    end
end

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

function InventoryItemHolder:OnRemoveFromEntity()
    self:TakeItem()

    self.inst:RemoveTag("inventoryitemholder_give")
    self.inst:RemoveTag("inventoryitemholder_take")
end

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

function InventoryItemHolder:GetDebugString()
    return string.format(
        "Item:  %s   |   Allowed Tags:   %s",
        tostring(self.item),
        self.allowed_tags ~= nil and table.concat(self.allowed_tags, ", ") or "NO RESTRICTIONS"
    )
end

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

return InventoryItemHolder


9,170,221,170,119 -- transparent background
    -- 85,34,85,136,85,34,85,136 -- transparent foreground
}
-- playdate.graphics.setPattern(bayerDither10)

local bayerDither11 <const> = {
    0xAA, --  ░▓░▓░▓░▓
    0xDD, --  ░░▓░░░▓░
    0xAA, --  ░▓░▓░▓░▓
    0xFF, --  ░░░░░░░░
    0xAA, --  ░▓░▓░▓░▓
    0xDD, --  ░░▓░░░▓░
    0xAA, --  ░▓░▓░▓░▓
    0xFF, --  ░░░░░░░░
    -- 170,221,170,255,170,221,170,255 -- transparent background
    -- 85,34,85,0,85,34,85,0 -- transparent foreground
}
-- playdate.graphics.setPattern(bayerDither11)

local bayerDither12 <const> = {
    0xAA, --  ░▓░▓░▓░▓
    0xFF, --  ░░░░░░░░
    0xAA, --  ░▓░▓░▓░▓
    0xFF, --  ░░░░░░░░
    0xAA, --  ░▓░▓░▓░▓
    0xFF, --  ░░░░░░░░
    0xAA, --  ░▓░▓░▓░▓
    0xFF, --  ░░░░░░░░
    -- 170,255,170,255,170,255,170,255 -- transparent background
    -- 85,0,85,0,85,0,85,0 -- transparent foreground
}
-- playdate.graphics.setPattern(bayerDither12)

local bayerDither13 <const> = {
    0xEE, --  ░░░▓░░░▓
    0xFF, --  ░░░░░░░░
    0xAA, --  ░▓░▓░▓░▓
    0xFF, --  ░░░░░░░░
    0xEE, --  ░░░▓░░░▓
    0xFF, --  ░░░░░░░░
    0xAA, --  ░▓░▓░▓░▓
    0xFF, --  ░░░░░░░░
    -- 238,255,170,255,238,255,170,255 -- transparent background
    -- 17,0,85,0,17,0,85,0 -- transparent foreground
}
-- playdate.graphics.setPattern(bayerDither13)

local bayerDither14 <const> = {
    0xEE, --  ░░░▓░░░▓
    0xFF, --  ░░░░░░░░
    0xBB, --  ░▓░░░▓░░
    0xFF, --  ░░░░░░░░
    0xEE, --  ░░░▓░░░▓
    0xFF,


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

namespace UnityRoyale
{
    public class HealthBar : MonoBehaviour
    {
        public RectTransform bar;
        public GameObject wholeWidget;

        private bool isHidden = true;
        private float originalHP;
        private float currentHP;
        private Transform transformToFollow;

		private Color red = new Color32(252, 35, 13, 255);
		private Color blue = new Color32(31, 132, 255, 255);

        public void Initialise(ThinkingPlaceable p)
        {
            originalHP = currentHP = p.hitPoints;
            transformToFollow = p.transform;

            bar.GetComponent<Image>().color = (p.faction == Placeable.Faction.Player) ? red : blue;

            wholeWidget.transform.local


2310] = {"제이미 노어",nil},
[2311] = {"도린 벨티스",nil},
[2314] = {"사반 블러드섀도우",nil},
[2315] = {"마켈 이본우드",nil},
[2316] = {"골디르",nil},
[2317] = {"엘리사",nil},
[2318] = {"아르거스재림회 어둠마법사",nil},
[2319] = {"비밀결사대 마술사",nil},
[2320] = {"나가즈",nil},
[2321] = {"새끼 숲타조",nil},
[2322] = {"숲타조",nil},
[2323] = {"거대한 숲타조",nil},
[2324] = {"검은나무일족 풍수사",nil},
[2326] = {"탐네르 폴","전문 응급치료사"},
[2327] = {"샤이나 풀러","전문 응급치료사"},
[2329] = {"미셸 벨르","전문 응급치료사"},
[2330] = {"칼리 채디스",nil},
[2331] = {"페이지 채디스",nil},
[2332] = {"발드레드 모레이",nil},
[2333] = {"심복 발릭",nil},
[2334] = {"이벤트 생성기 001",nil},
[2335] = {"집정관 번사이드",nil},
[2336] = {"암흑이교도 광신자",nil},
[2337] = {"암흑이교도 소환사",nil},
[2338] = {"황혼의망치단 신도",nil},
[2339] = {"황혼의망치단 암살단원",nil},
[2344] = {"던 가록 산악경비대",nil},
[2345] = {"던 가록 소총병",nil},
[2346] = {"던 가록 사제",nil},
[2347] = {"야생 그리핀",nil},
[2348] = {"덩치큰 이끼거미",nil},
[2349] = {"거대한 이끼거미",nil},
[2350] = {"숲이끼거미",nil},
[2351] = {"회색곰",nil},
[2352] = {"여관주인 앤더슨","여관주인"},
[2354] = {"흉포한 회색곰",nil},
[2356] = {"덩치큰 회색곰",nil},
[2357] = {"�


UCT(cancelled, USBRedirDevice, 1,
                       usbredir_ep_packet_id_queue_vmstate,
                       struct PacketIdQueue),
        VMSTATE_STRUCT(already_in_flight, USBRedirDevice, 1,
                       usbredir_ep_packet_id_queue_vmstate,
                       struct PacketIdQueue),
        VMSTATE_STRUCT(device_info, USBRedirDevice, 1,
                       usbredir_device_info_vmstate,
                       struct usb_redir_device_connect_header),
        VMSTATE_STRUCT(interface_info, USBRedirDevice, 1,
                       usbredir_interface_info_vmstate,
                       struct usb_redir_interface_info_header),
        VMSTATE_END_OF_LIST()
    }
};

static Property usbredir_properties[] = {
    DEFINE_PROP_CHR("chardev", USBRedirDevice, cs),
    DEFINE_PROP_UINT8("debug", USBRedirDevice, debug, usbredirparser_warning),
    DEFINE_PROP_STRING("filter", USBRedirDevice, filter_str),
    DEFINE_PROP_END_OF_LIST(),
};

static void usbredir_class_initfn(ObjectClass *klass, void *data)
{
    USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
    DeviceClass *dc = DEVICE_CLASS(klass);

    uc->realize        = usbredir_realize;
    uc->product_desc   = "USB Redirection Device";
    uc->handle_destroy = usbredir_handle_destroy;
    uc->cancel_packet  = usbredir_cancel_packet;
    uc->handle_reset   = usbredir_handle_reset;
    uc->handle_data    = usbredir_handle_data;
    uc->handle_control = usbredir_handle_control;
    uc->flush_ep_queue = usbredir_flush_ep_queue;
    uc->ep_stopped     = usbredir_ep_stopped;
    uc->alloc_streams  = usbredir_alloc_streams;
    uc->free_streams   = usbredir_free_streams;
    dc->vmsd           = &usbredir_vmstate;
    dc->props          = usbredir_properties;
    set_bit(DEVICE_CATEGORY_MISC, dc->categories);
}

static void usbredir_instance_init(Object *obj)
{
    USBDevice *udev = USB_DEVICE(obj);
    USBRedirDevice *dev = DO_UPCAST(USBRedirDevice, dev, udev);

    device_add_bootindex_property(obj, &dev->bootindex,
                                  "bootindex", NULL,
                                  &udev->qdev, NULL);
}

static const TypeInfo usbredir_dev_info = {
    .name          = "usb-redir",
    .parent        = TYPE_USB_DEVICE,
    .instance_size = sizeof(USBRedirDevice),
    .class_init    = usbredir_class_initfn,
    .instance_init = usbredir_instance_init,
};

static void usbredir_register_types(void)
{
    type_register_static(&usbredir_dev_info);
}

type_init(usbredir_register_types)


d_work_sync(&data->debug_work);
	free_irq(data->irq, data);
	gpio_free(data->gpio_nirq);

	wake_lock_destroy(&data->grip_wake_lock);
	sensors_unregister(data->factory_device, sensor_attrs);
	sensors_remove_symlink(data->input);
	sysfs_remove_group(&data->input->dev.kobj, &sx9360_attribute_group);
	input_unregister_device(data->input);
	mutex_destroy(&data->mode_mutex);
	mutex_destroy(&data->read_mutex);

	kfree(data);

	return 0;
}

static int sx9360_suspend(struct device *dev)
{
	struct sx9360_p *data = dev_get_drvdata(dev);
	int cnt = 0;

	pr_info("[SX9360]: %s\n", __func__);
	/* before go to sleep, make the interrupt pin as high*/
	while ((sx9360_get_nirq_state(data) == 0) && (cnt++ < 3)) {
		sx9360_read_irqstate(data);
		msleep(20);
	}
	if (cnt >= 3)
		pr_err("[SX9360]: %s - s/w reset fail(%d)\n", __func__, cnt);

	sx9360_set_debug_work(data, OFF, 1000);

	return 0;
}

static int sx9360_resume(struct device *dev)
{
	struct sx9360_p *data = dev_get_drvdata(dev);

	pr_info("[SX9360]: %s\n", __func__);
	sx9360_set_debug_work(data, ON, 1000);

	return 0;
}

static void sx9360_shutdown(struct i2c_client *client)
{
	struct sx9360_p *data = i2c_get_clientdata(client);

	pr_info("[SX9360]: %s\n", __func__);
	sx9360_set_debug_work(data, OFF, 1000);
	if (atomic_read(&data->enable) == ON)
		sx9360_set_enable(data, OFF);

	sx9360_set_mode(data, SX9360_MODE_SLEEP);
}

static struct of_device_id sx9360_match_table[] = {
	{ .compatible = "sx9360",},
	{},
};

static const struct i2c_device_id sx9360_id[] = {
	{ "sx9360_match_table", 0 },
	{ }
};

static const struct dev_pm_ops sx9360_pm_ops = {
	.suspend = sx9360_suspend,
	.resume = sx9360_resume,
};

static struct i2c_driver sx9360_driver = {
	.driver = {
		.name	= MODEL_NAME,
		.owner	= THIS_MODULE,
		.of_match_table = sx9360_match_table,
		.pm = &sx9360_pm_ops
	},
	.probe		= sx9360_probe,
	.remove		= sx9360_remove,
	.shutdown	= sx9360_shutdown,
	.id_table	= sx9360_id,
};

static int __init sx9360_init(void)
{
	return i2c_add_driver(&sx9360_driver);
}

static void __exit sx9360_exit(void)
{
	i2c_del_driver(&sx9360_driver);
}

module_init(sx9360_init);
module_exit(sx9360_exit);

MODULE_DESCRIPTION("Semtech Corp. SX9360 Capacitive Touch Controller Driver");
MODULE_AUTHOR("Samsung Electronics");
MODULE_LICENSE("GPL");


 = "M12.5 6.25a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Zm1.25 0a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Zm-8.372 7c.355-.472.91-.75 1.5-.75h4.372v-1.25H6.878c-.983 0-1.91.463-2.5 1.25l-1.5 2c-.927 1.236-.045 3 1.5 3h6.872v-1.25H4.378a.625.625 0 0 1-.5-1l1.5-2Zm13.372 1.125a.625.625 0 0 0-.625-.625h-4.741l1.433-1.433a.625.625 0 1 0-.884-.884l-2.323 2.323a.875.875 0 0 0 0 1.238l2.323 2.323a.625.625 0 1 0 .884-.884L13.384 15h4.741c.345 0 .625-.28.625-.625Z";

    protected override string IconGeometry24 { get; }
        = "M15 7.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm1.5 0a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0ZM6.454 15.9a2.25 2.25 0 0 1 1.8-.9H13.5v-1.5H8.254a3.75 3.75 0 0 0-3 1.5l-1.8 2.4C2.342 18.883 3.4 21 5.254 21H13.5v-1.5H5.254a.75.75 0 0 1-.6-1.2l1.8-2.4ZM22.5 17.25a.75.75 0 0 0-.75-.75h-5.69l1.72-1.72a.75.75 0 1 0-1.06-1.06l-2.788 2.787a1.05 1.05 0 0 0 0 1.485l2.788 2.788a.75.75 0 1 0 1.06-1.06L16.06 18h5.69a.75.75 0 0 0 .75-.75Z";

    protected override string IconGeometry32 { get; }
        = "M20 10a4 4 0 1 1-8 0 4 4 0 0 1 8 0Zm2 0a6 6 0 1 1-12 0 6 6 0 0 1 12 0ZM8.605 21.2a3 3 0 0 1 2.4-1.2H18v-2h-6.995a5 5 0 0 0-4 2l-2.4 3.2c-1.483 1.978-.072 4.8 2.4 4.8H18v-2H7.005a1 1 0 0 1-.8-1.6l2.4-3.2ZM30 23a1 1 0 0 0-1-1h-7.586l2.293-2.293a1 1 0 0 0-1.414-1.414l-3.717 3.717a1.4 1.4 0 0 0 0 1.98l3.717 3.717a1 1 0 0 0 1.414-1.414L21.414 24H29a1 1 0 0 0 1-1Z";
}


n Dược Hậu Giang")
       }

       _binding.s2.setOnClickListener {
           dialogStores(R.drawable.r, "Công Ty Cổ Phần Dược Phẩm Gia Nguyễn")
       }

       _binding.s3.setOnClickListener {
           dialogStores(R.drawable.p, "Công Ty Cổ Phần Dược Phẩm Trung Ương I - Pharbaco")
       }

       _binding.s4.setOnClickListener {
           dialogStores(R.drawable.dmc, "Công Ty Cổ Phần Xuất Nhập Khẩu y tế Domesco")
       }

        return _binding.root

    }

    private fun dialogStores(imageResource: Int, companyName: String) {
        val dialogBinding = layoutInflater.inflate(R.layout.dialog_drug_s1, null)
        val myDialog = Dialog(requireContext())
        myDialog.setContentView(dialogBinding)
        myDialog.setCancelable(true)
        dialogBinding.findViewById<ImageView>(R.id.im_company).setImageResource(imageResource)
        dialogBinding.findViewById<TextView>(R.id.companyName).text = companyName
        myDialog.window?.setLayout(Screen.width, Screen.height)
        myDialog.show()

        dialogBinding.findViewById<CustomToolbar>(R.id.customToolbar).onStartIconClick = {
            myDialog.dismiss()
        }
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        viewModel = ViewModelProvider(this).get(DrugStoreViewModel::class.java)
        // TODO: Use the ViewModel
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

    }
}package com.example.drugbank.ui.record.RecordDetail

import android.content.Context
import android.text.Layout
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import androidx.core.content.ContextCompat
import androidx.navigation.findNavController
import androidx.recyclerview.widget.RecyclerView
import com.example.drugbank.R
import com.example.drugbank.common.constant.Constant
import com.example.drugbank.databinding.BaseProfileListBinding
import com.example.drugbank.databinding.BaseProfiledetailistBinding
import com.example.drugbank.respone.ProfileDetailRespone
import com.example.drugbank.respone.ProfileListRespone
import com.example.drugbank.ui.activity.main.MainActivity
import com.example.drugbank.ui.record.RecordAdapter
import com.google.android.material.card.MaterialCardView
import com.squareup.picasso.Picasso

class ProfileDetailAdapter(private val parentItemList: List<ProfileDetailRespone.ProfileDetail?>?,  val context: Context, val activity: MainActivity): RecyclerView.Adapter<ProfileDetailAdapter.MainViewHolder>() {

    var onItemClick: ((ProfileDetailRespone.ProfileDetail) -> Unit)? = null
    inner class MainViewHolder(val itemBinding: BaseProfiledetailistBinding) :
        RecyclerView.ViewHolder(itemBinding.root) {
        fun bindItem(item: ProfileDetailRespone.ProfileDetail?) {
            itemBinding.statusProfileDetial.text = item?.status.toString()
            if (item?.status == "REJECTED" || item?.status == "REJECTED BY SYSTEM") {
                itemBinding.statusProfileDetial.setBackgroundColor(ContextCompat.getColor(context, R.color.red_light))
            } else  itemBinding.statusProfileDetial.setBackgroundColor(ContextCompat.getColor(context, R.color.i_blue))
            itemBinding.nameProfileDetail.text = item?.productResponseDTO?.name.toString()
            if (item?.productResponseDTO?.image.toString().isNullOrEmpty()) {
                itemBinding.imageView2.setImageResource(R.drawable.defultdrug_base)
            } else {
                Picasso.get()
                    .load(item!!.productResponseDTO?.image.toString()) // Assuming item.img is the URL string


#!/usr/bin/python2.7 -OOBRtt
import os
import sys

from pysec import alg
from pysec.io import fd
from pysec import strings
from pysec.xsplit import xlines

BUFSIZE = 4096

if __name__ == '__main__':
    path = os.path.abspath(sys.argv[1])
    offset = 0 if len(sys.argv) < 3 else int(sys.argv[2])
    size = None if len(sys.argv) < 4 else int(sys.argv[3])
    with fd.File.open(path, fd.FO_READEX) as fb:
        if size is None:
            size = len(fb) - offset
        print "=== Repr visible characters ==="
        for chunk in fb.chunks(BUFSIZE, start=offset, stop=offset+size):
            sys.stdout.write(strings.erepr(chunk))
        print
        print "=== Repr visible characters and split lines ==="
        for line in xlines(fb, eol='\n', keep_eol=1, start=offset, stop=offset+size, find=alg.knp_first):
            sys.stdout.write(strings.erepr(line))
            sys.stdout.write('\n')
        print
        print "=== Only printable characters and split lines ==="
        for line in xlines(fb, eol='\n', keep_eol=0, start=offset, stop=offset+size, find=alg.knp_first):
            sys.stdout.write(strings.only_printable(line))
            sys.stdout.write('\n')
        print


["1b8","12g"]});1a.1u4(a,"12g",a.12g,1p 0)}1b ny(a,b,c){Ed.4G(1a,a,b,c)}1b 6DS(a){1a.id=a;1a.1kE=1a.6e=1a.1b7=1a.1VB=1a.1Nc=1a.9V=1p 0}1b Ml(a,b){fd.4G(1a,{12Z:a,4r:b,1WD:1g 6DS(a),1WC:"2Cs",1WB:["1b8","2Cs"]});1a.1u4(a,"2Cs",a.2Cs,1p 0)}1b oy(a,b,c){Ed.4G(1a,a,b,c)}1b 6DR(a){1a.id=a;1a.8J=1a.5S=1a.15K=1a.6e=1a.9h=1a.1D=1a.3h=1a.9V=1p 0}1b Nl(a,b){Nb.4G(1a,{12Z:a,4r:b,1WD:1g 6DR(a),1WC:"3h",1WB:["1b8","3h"]});1a.1u4(a,"3h",a.3h,1p 0)}1b py(a,b,c){Ed.4G(1a,a,b,c)}1b Tm(a,b,c,d,e,f,h){1a.11s=b;1a.2hL=c;1a.2q8=d;1a.1oL=e;1a.1qV=1p 0;1a.1ob=f;1a.6x=h;1a.13w=a;1a.23j=1a.1eS=!1;1a.19f=1a.9k=1p 0;1a.3z=1g Ja;1a.1eB=1g Ja;1a.1sE=1g Ja;1a.2y=1g Ja;1a.1sF=1g Ja;1a.1nC=1g Ja;1a.23i=[];1a.234=!1;1d l;g(e)&&(l=e.13z.7N(Tm.1i.2CW,1a));1a.2q5=l}1b tk(a,b,c,d,e){1a.2D6=[];1a.2D5=[];1a.15F=a;1a.2D4=b;1a.39O=c;1a.1z4=d;1a.1kG=e}1b m7(a,b){1j(1d c=a.1h-1;0<=c;c--){1d d=a[c];if(d.3S(b))1f 0===d.1eB.1h&&(a.6z(c,1),d.1M()),!0}1f!1}1b n7(a,b,c){1j(1d d=!1,e=b.1h,f=0;f<e;++f){1d h=b[f],l=h.23i,g=l.1h;if(0<g)1j(f=0;f<g;f++)d=l[f],h.3S(d),a.add(c,d),d=!0}1f d}1b gI(a,b,c,d){1d e=b.1h,f;1j(f=e-1;0<=f;f--)if(e=b[f],e.234){b.6z(f,1);1j(1d h=e.1eB.2a,l=h.1h,g=0;g<l;g++)a.add(c,


/* -----------------------------------------------------------------------------

	Copyright (c) 2006 Simon Brown                          si@sjbrown.co.uk

	Permission is hereby granted, free of charge, to any person obtaining
	a copy of this software and associated documentation files (the
	"Software"), to	deal in the Software without restriction, including
	without limitation the rights to use, copy, modify, merge, publish,
	distribute, sublicense, and/or sell copies of the Software, and to
	permit persons to whom the Software is furnished to do so, subject to
	the following conditions:

	The above copyright notice and this permission notice shall be included
	in all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
	OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
	MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
	IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
	CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
	TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
	SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

   -------------------------------------------------------------------------- */

#ifndef SQUISH_ALPHA_H
#define SQUISH_ALPHA_H

#include "squish.h"

namespace squish {

void CompressAlphaDxt3( u8 const* rgba, void* block );
void CompressAlphaDxt5( u8 const* rgba, void* block );

void DecompressAlphaDxt3( u8* rgba, void const* block );
void DecompressAlphaDxt5( u8* rgba, void const* block );

} // namespace squish

#endif // ndef SQUISH_ALPHA_H


ld(
            model_name='purchaseorder',
            old_name='lastmodification',
            new_name='last_modification',
        ),
        migrations.RenameField(
            model_name='purchaseorder',
            old_name='lastmodifiedby',
            new_name='last_modified_by',
        ),
        migrations.RenameField(
            model_name='purchaseorder',
            old_name='lastPricingDate',
            new_name='last_pricing_date',
        ),
        migrations.RenameField(
            model_name='quote',
            old_name='validuntil',
            new_name='valid_until',
        ),
        migrations.RenameField(
            model_name='salescontract',
            old_name='dateofcreation',
            new_name='date_of_creation',
        ),
        migrations.RenameField(
            model_name='salescontract',
            old_name='externalReference',
            new_name='external_reference',
        ),
        migrations.RenameField(
            model_name='salescontract',
            old_name='lastCalculatedPrice',
            new_name='last_calculated_price',
        ),
        migrations.RenameField(
            model_name='salescontract',
            old_name='lastCalculatedTax',
            new_name='last_calculated_tax',
        ),
        migrations.RenameField(
            model_name='salescontract',
            old_name='lastmodification',
            new_name='last_modification',
        ),
        migrations.RenameField(
            model_name='salescontract',
            old_name='lastmodifiedby',
            new_name='last_modified_by',
        ),
        migrations.RenameField(
            model_name='salescontract',
            old_name='lastPricingDate',
            new_name='last_pricing_date',
        ),
    ]


            t[&ii] = t2.data[i];
        }
        t
    }

}
<gh_stars>0
use std::env;
use std::fs::File;
use std::io::{stdin, BufRead, BufReader};
use itertools::Itertools;

fn main() {

    let args: Vec<String> = env::args().collect();

    let depth_vector: Vec<u32> = if args.len() > 1 && args[1] != "-" {
        let file = File::open(&args[1]).unwrap();
        let reader = BufReader::new(file);

        reader.lines()
              .map(|depth| depth.unwrap()
                                .trim()
                                .parse()
                                .unwrap())
              .collect()
    } else {
        stdin().lock()
               .lines()
               .map(|depth| depth.unwrap()
                                 .trim()
                                 .parse()
                                 .unwrap())
               .collect()
    };

    println!("Answer to Part One : {}", get_increments(&depth_vector));

    let window_sums_vector = get_window_sums(&depth_vector);
    println!("Answer to Part Two : {}", get_increments(&window_sums_vector));
}

fn get_increments(depth_vector: &Vec<u32>) -> u32 {

    let mut increments = 0;

    for (prev_depth, depth) in depth_vector.iter().tuple_windows() {
        if prev_depth < depth {
            increments += 1;
        }
    }

    increments
}

fn get_window_sums(depth_vector: &Vec<u32>) -> Vec<u32> {

    let mut window_sums = Vec::new();

    for (first, second, third) in depth_vector.iter().tuple_windows() {
        window_sums.push(first + second + third);
    }

    window_sums
}
use crate::auto::traits::{TileInfo, TilemapCache};
use bevy::prelude::{Changed, Commands, Entity, EventReader, Query, With};
use bevy_ecs_tilemap::{GPUAnimated, MapQuery, Tile, TileParent, TilePos};
use bevy_tileset::auto::{AutoTileId, AutoTileRequest, AutoTiler};
use bevy_tileset::prelude::{TileIndex, Tilesets};
use std::cell::RefCell;

/// An event used to notify the system of a removed/replaced auto tile
pub struct RemoveAutoTileEvent {
	pub entity: Entity,
	pub pos: TilePos,
	pub parent: TileParent,
	pub auto_id: AutoTileId,
}

/// __\[SYSTEM\]__ Handles the creation/modification of an auto tile
///
/// This system chooses the appropriate texture based on its surrounding neighbors,
/// and updates any neighbors of the same type in a similar manner
pub(crate) fn on_change_auto_tile(
	mut commands: Commands,
	changed_tiles: Query<
		(Entity, &TilePos, &TileParent, &AutoTileId),
		(Changed<AutoTileId>, With<Tile>),
	>,
	all_tiles: Query<(Entity, &TilePos, &TileParent, &AutoTileId), With<Tile>>,
	mut working_tiles: Query<(
		Entity,
		&TilePos,
		&mut Tile,
		&TileParent,
		&AutoTileId,
		Option<&mut GPUAnimated>,
	)>,
	tilesets: Tilesets,
	map_query: MapQuery,
) {
	// Ensure a change happened
	if changed_tiles.iter().count() < 1 {
		return;
	}

	let mut map_query_cell = RefCell::new(map_query);
	let mut cache = TilemapCache {
		tiles_que


 ImageUri GetIcon(PerDatabaseTableLootSolutionItem icon)
    {
        return new ImageUri("Icons/document_loot_big.png");
    }

    public IDocument GetEditor(PerDatabaseTableLootSolutionItem item)
    {
        var doc = containerProvider.Resolve<StandaloneLootEditorViewModel>((typeof(PerDatabaseTableLootSolutionItem), item));
        doc.CanChangeLootType = false;
        return doc;
    }

    public IRemoteCommand[] GenerateCommand(PerDatabaseTableLootSolutionItem item)
    {
        return new IRemoteCommand[] { new AnonymousRemoteCommand($"reload {lootEditorFeatures.GetTableNameFor(item.Type)}") };
    }

    public string GetName(PerDatabaseTableLootSolutionItem item)
    {
        return item.Type + " loot editor";
    }

    public ISmartScriptProjectItem? Serialize(PerDatabaseTableLootSolutionItem item, bool forMostRecentlyUsed)
    {
        return new AbstractSmartScriptProjectItem()
        {
            Type = 46,
            Value = 0,
            Value2 = (int)item.Type,
        };
    }

    public bool TryDeserialize(ISmartScriptProjectItem projectItem, out ISolutionItem? solutionItem)
    {
        if (projectItem.Type != 46 || !projectItem.Value2.HasValue)
        {
            solutionItem = null;
            return false;
        }

        solutionItem = new PerDatabaseTableLootSolutionItem((LootSourceType)projectItem.Value2.Value);
        return true;
    }
}


0" to "ui",
        "ao1" to "āo", "ao2" to "áo", "ao3" to "ǎo", "ao4" to "ào", "ao0" to "ao",
        "ou1" to "ōu", "ou2" to "óu", "ou3" to "ǒu", "ou4" to "òu", "ou0" to "ou",
        "iu1" to "iū", "iu2" to "iú", "iu3" to "iǔ", "iu4" to "iù", "iu0" to "iu",
        "ie1" to "iē", "ie2" to "ié", "ie3" to "iě", "ie4" to "iè", "ie0" to "ie",
        "üe1" to "üē", "üe2" to "üé", "üe3" to "üě", "üe4" to "üè", "üe0" to "üe",
        "u:e1" to "üē", "u:e2" to "üé", "u:e3" to "üě", "u:e4" to "üè", "u:e0" to "üe",
        "ve1" to "üē", "ve2" to "üé", "ve3" to "üě", "ve4" to "üè", "ve0" to "üe",

        // 复韵母 - 特殊
        "er1" to "ēr", "er2" to "ér", "er3" to "ěr", "er4" to "èr", "er0" to "er",

        // 复韵母 - 前鼻韵母
        "an1" to "ān", "an2" to "án", "an3" to "ǎn", "an4" to "àn", "an0" to "an",
        "en1" to "ēn", "en2" to "én", "en3" to "ěn", "en4" to "èn", "en0" to "en",
        "in1" to "īn", "in2" to "ín", "in3" to "ǐn", "in4" to "ìn", "in0" to "in",
        "un1" to "ūn", "un2" to "ún", "un3" to "ǔn", "un4" to "ùn", "un0" to "un",
        "ün1" to "ǖn", "ün2" to "ǘn", "ün3" to "ǚn", "ün4" to "ǜn", "ün0" to "ün",
        "u:n1" to "ǖn", "u:n2" to "ǘn", "u:n3" to "ǚn", "u:n4" to "ǜn", "u:n0" to "ün",
        "vn1" to "ǖn", "vn2" to "ǘn", "vn3" to "ǚn", "vn4" to "ǜn", "vn0" to "ün",

        // 复韵母 - 后鼻韵母
        "ang1" to "āng", "ang2" to "áng", "ang3" to "ǎng", "ang4" to "àng", "ang0" to "ang",
        "eng1" to "ēng", "eng2" to "éng", "eng3" to "ěng", "eng4" to "èng", "eng0" to "eng",
        "ing1" to "īng", "ing2" to "íng", "ing3" to "ǐng", "ing4" to "ìng", "ing0" to "ing",
        "ong1" to "ōng", "ong2" to "óng", "ong3" to "ǒng", "ong4" to "òng", "ong0" to "ong"
    )

    override val selfAssignmentFunctions = listOf(
        ::`as`.name,
        ::of.name,
    )

    @RhinoSingletonFunctionInterface
    override fun invoke(args: Array<out Any?>): String = ensureArgumentsLengthInRange(args, 1..2) { argList ->
        of(argList)
    }

    @RhinoSingletonFunctionInterface
    fun of(args: Array<out Any?>): String = ensureArgumentsLengthInRange(args, 1..2) { argList ->
        val (string, options) = argList

        val str = coerceString(string, "").takeIf { it.isNotEmpty() } ?: return@ensureArgumentsLengthInRange ""
        var separator = DEFAULT_SEPARATOR
        val opt = when (options) {
            is String -> newNativeObject().also { separator = options }
            is NativeObject -> options
            else -> newNativeObject()
        }


00 08 */	lwz r0, 8(r31)
/* 801980AC 001935EC  90 1C 00 08 */	stw r0, 8(r28)
/* 801980B0 001935F0  48 37 F4 D1 */	bl func_80517580
/* 801980B4 001935F4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801980B8 001935F8  7C 08 03 A6 */	mtlr r0
/* 801980BC 001935FC  38 21 00 20 */	addi r1, r1, 0x20
/* 801980C0 00193600  4E 80 00 20 */	blr
/* 801980C4 00193604  4E 80 00 20 */	blr

.global func_801980C8
func_801980C8:
/* 801980C8 00193608  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801980CC 0019360C  7C 08 02 A6 */	mflr r0
/* 801980D0 00193610  90 01 00 14 */	stw r0, 0x14(r1)
/* 801980D4 00193614  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801980D8 00193618  7C 7F 1B 78 */	mr r31, r3
/* 801980DC 0019361C  48 0C 90 81 */	bl func_8026115C
/* 801980E0 00193620  3C 80 80 57 */	lis r4, lbl_805779E4@ha
/* 801980E4 00193624  7F E3 FB 78 */	mr r3, r31
/* 801980E8 00193628  38 84 79 E4 */	addi r4, r4, lbl_805779E4@l
/* 801980EC 0019362C  90 9F 00 00 */	stw r4, 0(r31)
/* 801980F0 00193630  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801980F4 00193634  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801980F8 00193638  7C 08 03 A6 */	mtlr r0
/* 801980FC 0019363C  38 21 00 10 */	addi r1, r1, 0x10
/* 80198100 00193640  4E 80 00 20 */	blr

.global func_80198104
func_80198104:
/* 80198104 00193644  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80198108 00193648  7C 08 02 A6 */	mflr r0
/* 8019810C 0019364C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80198110 00193650  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80198114 00193654  7C 7F 1B 78 */	mr r31, r3
/* 80198118 00193658  4B FC D0 ED */	bl func_80165204
/* 8019811C 0019365C  3C 80 80 57 */	lis r4, lbl_80577AC8@ha
/* 80198120 00193660  38 7F 00 8C */	addi r3, r31, 0x8c
/* 80198124 00193664  38 84 7A C8 */	addi r4, r4, lbl_80577AC8@l
/* 80198128 00193668  90 9F 00 8C */	stw r4, 0x8c(r31)
/* 8019812C 0019366C  81 9F 00 8C */	lwz r12, 0x8c(r31)
/* 80198130 00193670  81 8C 00 08 */	lwz r12, 8(r12)
/* 80198134 00193674  7D 89 03 A6 */	mtctr r12
/* 8


gOnInit() {
    const rockets = await this.apiService.get<Rocket>("rockets");
    this.rockets = {
      active: rockets.filter(({ active }) => active),
      inactive: rockets.filter(({ active }) => !active)
    };
  }
  switchRocketType(rocketType: "active" | "inactive") {
    this.currentRockets = [...this.rockets[rocketType]];
  }
}
export class Todo {

  public id: number;
  public title: string;
  public complete: boolean;

  constructor( title: string, complete: boolean) {
    this.title = title;
    this.complete = complete;
  }

}
import '../utils';

describe('Switch', () => {
  test('switch statement without default', () => {
    expect(/* cpp */ `
      void main() {
        int a = 2;
        int b;

        switch (a) {
          case 3:
          b = 6;
          break;

          case 4:
          b = 7;
          break;
        }
      }
    `).toCompiledAsmBeEqual(`
      cpu 386
      ; def main():
      @@_fn_main:
      push bp
      mov bp, sp
      sub sp, 4
      mov word [bp - 2], 2      ; *(a{0}: int*2B) = store %2: int2B
      ; Case #1
      cmp word [bp - 2], 3      ; %t{1}: i1:zf = icmp %t{0}: int2B equal %3: char1B
      jnz @@_L3                 ; br %t{1}: i1:zf, false: L3
      mov word [bp - 4], 6      ; *(b{0}: int*2B) = store %6: char1B
      jmp @@_L4                 ; jmp L4
      @@_L3:
      ; Case #2
      cmp word [bp - 2], 4      ; %t{2}: i1:zf = icmp %t{0}: int2B equal %4: char1B
      jnz @@_L4                 ; br %t{2}: i1:zf, false: L4
      mov word [bp - 4], 7      ; *(b{0}: int*2B) = store %7: char1B
      @@_L4:
      mov sp, bp
      pop bp
      ret
    `);
  });

  test('switch statement with default', () => {
    expect(/* cpp */ `
      void main() {
        int a = 2;
        int b;

        switch (a) {
          case 3:
          b = 6;
          break;

          case 4:
          b = 7;
          break;

          default:
          b = 8;
        }
      }
    `).toCompiledAsmBeEqual(`
      cpu 386
      ; def main():
      @@_fn_main:
      push bp
      mov bp, sp
      sub sp, 4
      mov word [bp - 2], 2      ; *(a{0}: int*2B) = store %2: int2B
      ; Case #1
      cmp word [bp - 2], 3      ; %t{1}: i1:zf = icmp %t{0}: int2B equal %3: char1B
      jnz @@_L3                 ; br %t{1}: i1:zf, false: L3
      mov word [bp - 4], 6      ; *(b{0}: int*2B) = store %6: char1B
      jmp @@_L1                 ; jmp L1
      @@_L3:
      ; Case #2
      cmp word [bp - 2], 4      ; %t{2}: i1:zf = icmp %t{0}: int2B equal %4: char1B
      jnz @@_L4                 ; br %t{2}: i1:zf, false: L4
      mov word [bp - 4], 7      ; *(b{0}: int*2B) = store %7: char1B
      jmp @@_L1                 ; jmp L1
      @@_L4:
      mov word [bp - 4], 8      ; *(b{0}: int*2B) = store %8: char1B
      @@_L1:
      mov sp, bp
      pop bp
      ret
    `);
  });
});
import * as blob  from '@azure/storage-blob'
const uuidv1 = require('uuid/v1');

async function main() {
    console.log


IFT)), m_DQ_FRACBITS_OUT - 2 - 2 - 15);
    *(pcm + 2*16 + 1) = ClipToShort((int)SAR64(sum1R, (32-m_CSHIFT)), m_DQ_FRACBITS_OUT - 2 - 2 - 15);

    /* main convolution loop: sum1L = samples 1, 2, 3, ... 15   sum2L = samples 31, 30, ... 17 */
    coef = coefBase + 16;
    vb1 = vbuf + 64;
    pcm += 2;

    /* right now, the compiler creates bad asm from this... */
    for (i = 15; i > 0; i--) {
        sum1L = sum2L = rndVal;
        sum1R = sum2R = rndVal;

        for(int j=0; j<8; j++){
            c1=*coef; coef++; c2=*coef; coef++; vLo=*(vb1+(j)); vHi = *(vb1+(23-(j)));
            sum1L=MADD64(sum1L, vLo,  c1); sum2L=MADD64(sum2L, vLo,  c2);
            sum1L=MADD64(sum1L, vHi, -c2); sum2L=MADD64(sum2L, vHi,  c1);
            vLo=*(vb1+32+(j));  vHi=*(vb1+32+(23-(j)));
            sum1R=MADD64(sum1R, vLo,  c1); sum2R=MADD64(sum2R, vLo,  c2);
            sum1R=MADD64(sum1R, vHi, -c2); sum2R=MADD64(sum2R, vHi,  c1);
        }
        vb1 += 64;
        *(pcm + 0)         = ClipToShort((int)SAR64(sum1L, (32-m_CSHIFT)), m_DQ_FRACBITS_OUT - 2 - 2 - 15);
        *(pcm + 1)         = ClipToShort((int)SAR64(sum1R, (32-m_CSHIFT)), m_DQ_FRACBITS_OUT - 2 - 2 - 15);
        *(pcm + 2*2*i + 0) = ClipToShort((int)SAR64(sum2L, (32-m_CSHIFT)), m_DQ_FRACBITS_OUT - 2 - 2 - 15);
        *(pcm + 2*2*i + 1) = ClipToShort((int)SAR64(sum2R, (32-m_CSHIFT)), m_DQ_FRACBITS_OUT - 2 - 2 - 15);
        pcm += 2;
    }
}
#include <iostream>
#include <cstdio>
#define maxm 20000
#define maxn 5000
int n;//顶点个数
int top;//栈顶
struct node
{
	int to,next;
}edge[maxm];
int ansi;
int head[maxn];
int sta[maxn],top1;
int stack[maxn],top2;
int belg[maxn];
int low[maxn];
void init()
{
	memset(head,0,sizeof(haed));
	memset(belg,0,sizeof(belg));
	memset(low,0,sizeof(low));
	ansi=0;
	top1=0;
	top2=0;
}
void add(int a,int b)
{
	edge[ansi].to=b;
	edge[ansi].next=head[a];
	haed[a]=ansi++;
}
int bfs(int cur,int lay,int &scc_num)
{
	sta[++top1]=cur;
	stack[++top2]=cur;
	for(int i=head[cur];i!=-1;i=edge[i].next)
	{
		if(!low[edge[i].to])
		{
			bfs(edge[i].to,lay,scc_num);
		}
		else if(belg[edge[i].to]==0)
		{
			while(low[stack[top2]]>low[edge[i].to])
				--top2;
		}
	}
	if(stack[top2]==cur)
	{
		top2--;
		scc_num++;
		do
		{
			belg[sta[top1]]==scc_num;
		}while(sta[top1--]!=cur);
	}
	return 0;
}
int garbow(int n)
{
	int scc_num


-lottie__animation',
        caption: '.e-lottie__caption'
      },
      classes: {
        caption: 'e-lottie__caption'
      }
    };
  }
  getDefaultElements() {
    const {
      selectors
    } = this.getSettings();
    return {
      $widgetWrapper: this.$element,
      $container: this.$element.find(selectors.container),
      $containerLink: this.$element.find(selectors.containerLink),
      $animation: this.$element.find(selectors.animation),
      $caption: this.$element.find(selectors.caption),
      $sectionParent: this.$element.closest('.elementor-section'),
      $columnParent: this.$element.closest('.elementor-column'),
      $containerParent: this.$element.closest('.e-con')
    };
  }
  onInit() {
    super.onInit(...arguments);
    this.lottie = null;
    this.state = {
      isAnimationScrollUpdateNeededOnFirstLoad: true,
      isNewLoopCycle: false,
      isInViewport: false,
      loop: false,
      animationDirection: 'forward',
      currentAnimationTrigger: '',
      effectsRelativeTo: '',
      hoverOutMode: '',
      hoverArea: '',
      caption: '',
      playAnimationCount: 0,
      animationSpeed: 0,
      linkTimeout: 0,
      viewportOffset: {
        start: 0,
        end: 100
      }
    };
    this.intersectionObservers = {
      animation: {
        observer: null,
        element: null
      },
      lazyload: {
        observer: null,
        element: null
      }
    };
    this.animationFrameRequest = {
      timer: null,
      lastScrollY: 0
    };
    this.listeners = {
      collection: [],
      elements: {
        $widgetArea: {
          triggerAnimationHoverIn: null,
          triggerAnimationHoverOut: null
        },
        $container: {
          triggerAnimationClick: null
        }
      }
    };
    this.initLottie();
  }
  initLottie() {
    const lottieSettings = this.getLottieSettings();
    if (lottieSettings.lazyload) {
      this.lazyloadLottie();
    } else {
      this.generateLottie();
    }
  }
  lazyloadLottie() {
    const bufferHeightBeforeTriggerLottie = 200;
    this.intersectionObservers.lazyload.observer = elementorModules.utils.Scroll.scrollObserver({
      offset: `0px 0px ${bufferHeightBeforeTriggerLottie}px`,
      callback: event => {
        if (event.isInViewport) {
          this.generateLottie();
          this.intersectionObservers.lazyload.observer.unobserve(this.intersectionObservers.lazyload.element);
        }
      }
    });
    this.intersectionObservers.lazyload.element = this.elements.$container[0];
    this.intersectionObservers.lazyload.observer.observe(this.intersectionObservers.lazyload.element);
  }
  generateLottie() {
    this.createLottieInstance();
    this.setLottieEvents();
  }
  createLottieInstance() {
    const lottieSettings = this.getLottieSettings();
    this.lottie = bodymovin.loadAnimation({
      container: this.elements.$animation[0],
      path: this.getAnimationPath(),
      renderer: lottieSettings.renderer,
      autoplay: false,
      // We always want to trigger the animation manually for considering start/end frame.
      name: 'lottie-widget'
    });

    // Expose the lottie instance in the frontend


f.labelmaps3D[n]){var h=f.labelmaps3D[n].segmentsHidden;return h[t]=!h[t],!h[t]}d.warn("No labelmap3D of labelmap index ".concat(n," on stack."))}else d.warn("brushStackState is undefined")}}}},"./store/modules/segmentationModule/setLabelmap3D.js":function(e,t,n){"use strict";n.r(t),n.d(t,"setLabelmap3DByFirstImageId",(function(){return x})),n.d(t,"setLabelmap3DForElement",(function(){return y}));var r=n("./store/modules/segmentationModule/getElement.js"),o=n("./stateManagement/toolState.js"),l=n("./store/modules/segmentationModule/state.js"),c=n("./store/modules/segmentationModule/getSegmentsOnPixeldata.js"),d=n("./util/segmentation/index.js"),f=n("./store/modules/segmentationModule/arrayTypes.js"),h=n("./store/index.js"),m=f.default.UINT_16_ARRAY,v=f.default.FLOAT_32_ARRAY;function y(e,t,n){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],c=arguments.length>4?arguments[4]:void 0,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,element=Object(r.default)(e);if(element){var h=Object(o.getToolState)(element,"stack"),m=h.data[0].imageIds.length,v=h.data[0].imageIds[0];x(v,t,n,l,m,c,f),Object(d.triggerLabelmapModifiedEvent)(element,n)}}function x(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=arguments.length>4?arguments[4]:void 0,d=arguments.length>5?arguments[5]:void 0,f=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,y=Object(h.getModule)("segmentation"),x=y.configuration,j=l.default.series[e];j||(l.default.series[e]={activeLabelmapIndex:n,labelmaps3D:[]},j=l.default.series[e]),j.labelmaps3D[n]={buffer:t,labelmaps2D:[],metadata:r,activeSegmentIndex:1,colorLUTIndex:f,segmentsHidden:[],undo:[],redo:[]};for(var w=j.labelmaps3D[n].labelmaps2D,T=t.byteLength/o,i=0;i<o;i++){var E=void 0;switch(x.arrayType){case m:E=new Uint16Array(t,T*i,T/2);break;case v:E=new Float32Array(t,T*i,T/4);break;default:throw new Error("Unsupported Array Type ".concat(x.arrayType))}var O=d?d[i]:Object(c.default)(E);O&&O.some((function(e){return e}))&&(w[i]={pixelData:E,segmentsOnLabelmap:O})}}},"./store/modules/segmentationModule/setRadius.js":function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return o}));var r=n("./store/index.js");function o(e){var t=Object(r.getModule)("segmentation").configuration;t.radius=Math.min(Math.max(e,t.minRadius),t.maxRadius)}},"./store/modules/segmentationModule/state.js":function(e,t,n){"use strict";n.r(t),t.default={series:{},colorLutTables:[]}},"./store/removeTool.js":function(e,t,n){"use strict";n.r(t),n.d(t,"removeTool",(function(){return l})),n.d(t


// Revit API
using Autodesk.Revit.UI.Selection;
using View = Autodesk.Revit.DB.View;

// The class belongs to the utility namespace
// using gSel = geeWiz.Utilities.Select_Utils
namespace geeWiz.Utilities
{
    /// <summary>
    /// Methods of this class generally relate to selection based operations.
    /// </summary>
    public static class Select_Utils
    {
        #region ISelectionFilters

        /// <summary>
        /// ISelectionFilter that filters by provided builtincategory.
        /// </summary>
        public class ISF_ByBuiltInCategory : ISelectionFilter
        {
            // Private variable to store and give access to Id
            private ElementId _builtinCategoryId;

            // Default constructor, internalize the builtin category
            public ISF_ByBuiltInCategory(BuiltInCategory builtInCategory)
            {
                _builtinCategoryId  = new ElementId(builtInCategory);
            }

            // Condition for allowing elements by category
            public bool AllowElement(Element element)
            {
                // Check if the element has a category
                if (element.Category is Category category)
                {
                    return category.Id == _builtinCategoryId;
                }
                // False if category is null
                else
                {
                    return false;
                }
            }

            // Do not allow reference selection
            public bool AllowReference(Reference reference, XYZ posi


verbs":["*"]},{"apiGroups":["apps"],"resources":["deployments"],"verbs":["*"]},{"apiGroups":[""],"resources":["secrets"],"verbs":["get"]}],"serviceAccountName":"etcd-operator"}]},"strategy":"deployment"},"keywords":["etcd","key value","database","coreos","open source"],"labels":{"alm-owner-etcd":"etcdoperator","alm-status-descriptors":"etcdoperator.v0.6.1","operated-by":"etcdoperator"},"links":[{"name":"Blog","url":"https://coreos.com/etcd"},{"name":"Documentation","url":"https://coreos.com/operators/etcd/docs/latest/"},{"name":"etcd Operator Source Code","url":"https://github.com/coreos/etcd-operator"}],"maintainers":[{"email":"support@coreos.com","name":"CoreOS, Inc"}],"maturity":"alpha","provider":{"name":"CoreOS, Inc"},"selector":{"matchLabels":{"alm-owner-etcd":"etcdoperator","operated-by":"etcdoperator"}},"version":"0.6.1"}}`
	insert := "insert into operatorbundle(name, csv, bundle, version) values(?, ?, ?, ?)"
	_, err = tx.Exec(insert, "etcdoperator.v0.6.1", testCSV, testBundle, "0.6.1")
	require.NoError(t, err)
	_, err = tx.Exec("insert into package(name, default_channel) values(?,?)", "etcd", "alpha")
	require.NoError(t, err)
	_, err = tx.Exec("insert into channel(name, package_name, head_operatorbundle_name) values(?,?,?)", "alpha", "etcd", "etcdoperator.v0.6.1")
	require.NoError(t, err)
	_, err = tx.Exec("insert into channel_entry(channel_name, package_name, operatorbundle_name, depth) values(?, ?, ?, ?)", "alpha", "etcd", "etcdoperator.v0.6.1", 0)
	require.NoError(t, err)
	_, err = tx.Exec("insert into api(group_name, version, kind, plural) values(?, ?, ?, ?)", "etcd.database.coreos.com", "v1alpha1", "EtcdClusters", "etcdclusters")
	require.NoError(t, err)
	_, err = tx.Exec("insert into api(group_name, version, kind, plural) values(?, ?, ?, ?)", "etcd.database.coreos.com", "v1alpha1", "EtcdBackups", "etcdbackups")
	require.NoError(t, err)
	_, err = tx.Exec("insert into api(group_name, version, kind, plural) values(?, ?, ?, ?)", "etcd.database.coreos.com", "v1alpha1", "EtcdRestores", "etcdrestores")
	require.NoError(t, err)
	_, err = tx.Exec("insert into api_provider(group_name, version, kind, operatorbundle_name, operatorbundle_version, operatorbundle_path) values(?, ?, ?, ?, ?, ?)", "etcd.database.coreos.com", "v1alpha1", "EtcdClusters", "etcdoperator.v0.6.1", "0.6.1", nil)
	require.NoError(t, err)
	_, err = tx.Exec("insert into api_provider(group_name, version, kind, operatorbundle_name, operatorbundle_version, operatorbundle_path) values(?, ?, ?, ?, ?, ?)", "etcd.database.coreos.com", "v1alpha1", "EtcdBackups", "etcdoperator.v0.6.1", "0.6.1", nil)
	require.NoError(t, err)
	_, err = tx.Exec("insert into api_provider(group_name, version, kind, operatorbundle_name, operatorbundle_version, operatorbundle_path) values(?, ?, ?, ?, ?, ?)", "etcd.database.coreos.com", "v1alpha1", "EtcdRestores", "etcdoperator.v0.6.1", "0.6.1", nil)
	require.NoError(t, err)
	require.NoError(t, tx.Commit())
	_, err = db.Exec(`PRAGMA foreign_keys = 1`)
	require.N


TCP"}}),
		makeBasePod(t, nodeName, "test-1", "100m", "500", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}),
		makeBasePod(t, nodeName, "test-2", "200m", "1Ki", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 8080, Protocol: "TCP"}}),
		makeBasePod(t, nodeName, "test-nonzero", "", "", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}),
		makeBasePod(t, nodeName, "test", "100m", "500", "example.com/foo:3", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}),
		makeBasePod(t, nodeName, "test-2", "200m", "1Ki", "example.com/foo:5", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 8080, Protocol: "TCP"}}),
		makeBasePod(t, nodeName, "test", "100m", "500", "random-invalid-extended-key:100", []v1.ContainerPort{{}}),
	}

	tests := []struct {
		pods []*v1.Pod

		wNodeInfo *schedulernodeinfo.NodeInfo
	}{{
		pods: []*v1.Pod{testPods[0]},
		wNodeInfo: newNodeInfo(
			&schedulernodeinfo.Resource{
				MilliCPU: 100,
				Memory:   500,
			},
			&schedulernodeinfo.Resource{
				MilliCPU: 100,
				Memory:   500,
			},
			[]*v1.Pod{testPods[0]},
			newHostPortInfoBuilder().add("TCP", "127.0.0.1", 80).build(),
			make(map[string]*schedulernodeinfo.ImageStateSummary),
		),
	}, {
		pods: []*v1.Pod{testPods[1], testPods[2]},
		wNodeInfo: newNodeInfo(
			&schedulernodeinfo.Resource{
				MilliCPU: 300,
				Memory:   1524,
			},
			&schedulernodeinfo.Resource{
				MilliCPU: 300,
				Memory:   1524,
			},
			[]*v1.Pod{testPods[1], testPods[2]},
			newHostPortInfoBuilder().add("TCP", "127.0.0.1", 80).add("TCP", "127.0.0.1", 8080).build(),
			make(map[string]*schedulernodeinfo.ImageStateSummary),
		),
	}, { // test non-zero request
		pods: []*v1.Pod{testPods[3]},
		wNodeInfo: newNodeInfo(
			&schedulernodeinfo.Resource{
				MilliCPU: 0,
				Memory:   0,
			},
			&schedulernodeinfo.Resource{
				MilliCPU: schedutil.DefaultMilliCPURequest,
				Memory:   schedutil.DefaultMemoryRequest,
			},
			[]*v1.Pod{testPods[3]},
			newHostPortInfoBuilder().add("TCP", "127.0.0.1", 80).build(),
			make(map[string]*schedulernodeinfo.ImageStateSummary),
		),
	}, {
		pods: []*v1.Pod{testPods[4]},
		wNodeInfo: newNodeInfo(
			&schedulernodeinfo.Resource{
				MilliCPU:        100,
				Memory:          500,
				ScalarResources: map[v1.ResourceName]int64{"example.com/foo": 3},
			},
			&schedulernodeinfo.Resource{
				MilliCPU: 100,
				Memory:   500,
			},
			[]*v1.Pod{testPods[4]},
			newHostPortInfoBuilder().add("TCP", "127.0.0.1", 80).build(),
			make(map[string]*schedulernode


30 */  andi       $v0, $v0, 0xF
/* 3D875BC 80088FF4 83180300 */  sra        $v1, $v1, 2
/* 3D875C0 80088FF8 21186200 */  addu       $v1, $v1, $v0
/* 3D875C4 80088FFC F8FF6324 */  addiu      $v1, $v1, -0x8
/* 3D875C8 80089000 CB89010C */  jal        rand
/* 3D875CC 80089004 060043A6 */   sh        $v1, 0x6($s2)
/* 3D875D0 80089008 02000324 */  addiu      $v1, $zero, 0x2
/* 3D875D4 8008900C 0F004230 */  andi       $v0, $v0, 0xF
/* 3D875D8 80089010 0800648E */  lw         $a0, 0x8($s3)
/* 3D875DC 80089014 01000824 */  addiu      $t0, $zero, 0x1
/* 3D875E0 80089018 100040A6 */  sh         $zero, 0x10($s2)
/* 3D875E4 8008901C 120040A6 */  sh         $zero, 0x12($s2)
/* 3D875E8 80089020 140040A6 */  sh         $zero, 0x14($s2)
/* 3D875EC 80089024 0A0043A2 */  sb         $v1, 0xA($s2)
/* 3D875F0 80089028 83200400 */  sra        $a0, $a0, 2
/* 3D875F4 8008902C 21208200 */  addu       $a0, $a0, $v0
/* 3D875F8 80089030 F8FF8424 */  addiu      $a0, $a0, -0x8
/* 3D875FC 80089034 09008812 */  beq        $s4, $t0, .Llevel_43_8008905C
/* 3D87600 80089038 080044A6 */   sh        $a0, 0x8($s2)
/* 3D87604 8008903C 09008016 */  bnez       $s4, .Llevel_43_80089064
/* 3D87608 80089040 00000000 */   nop
/* 3D8760C 80089044 0880023C */  lui        $v0, %hi(g_Spyro + 0x164)
/* 3D87610 80089048 BC8B428C */  lw         $v0, %lo(g_Spyro + 0x164)($v0)
/* 3D87614 8008904C 00000000 */  nop
/* 3D87618 80089050 03004228 */  slti       $v0, $v0, 0x3
/* 3D8761C 80089054 03004014 */  bnez       $v0, .Llevel_43_80089064
/* 3D87620 80089058 00000000 */   nop
.Llevel_43_8008905C:
/* 3D87624 8008905C 2C240208 */  j          .Llevel_43_800890B0
/* 3D87628 80089060 0C0057A2 */   sb        $s7, 0xC($s2)
.Llevel_43_80089064:
/* 3D8762C 80089064 CB89010C */  jal        rand
/* 3D87630 80089068 00000000 */   nop
/* 3D87634 8008906C 07004330 */  andi       $v1, $v0, 0x7
/* 3D87638 80089070 0800622C */  sltiu      $v0, $v1, 0x8
/* 3D8763C 80089074 21004010 */  beqz       $v0, .Llevel_43_800890FC
/* 3D87640 80089078 80100300 */


      "tag_count_meta": 1,
                "has_large": true,
                "has_visible_children": false,
                "media_asset": {
                    "id": 30919583,
                    "created_at": "2025-08-07T03:02:37.285-04:00",
                    "updated_at": "2025-08-07T03:02:38.864-04:00",
                    "md5": "b3c448861c60fbe54e2aa13d9d56f7bd",
                    "file_ext": "jpg",
                    "file_size": 260316,
                    "image_width": 1536,
                    "image_height": 2048,
                    "duration": null,
                    "status": "active",
                    "file_key": "xbUZ6jEOQ",
                    "is_public": true,
                    "pixel_hash": "05d3e53f510fed97e4c4f3854a013ffc",
                    "variants": [
                        {
                            "type": "180x180",
                            "url": "https://cdn.donmai.us/180x180/b3/c4/b3c448861c60fbe54e2aa13d9d56f7bd.jpg",
                            "width": 135,
                            "height": 180,
                            "file_ext": "jpg"
                        },
                        {
                            "type": "360x360",
                            "url": "https://cdn.donmai.us/360x360/b3/c4/b3c448861c60fbe54e2aa13d9d56f7bd.jpg",
                            "width": 270,
                            "height": 360,
                            "file_ext": "jpg"
                        },
                        {
                            "type": "720x720",
                            "url": "https://cdn.donmai.us/720x720/b3/c4/b3c448861c60fbe54e2aa13d9d56f7bd.webp",
                            "width": 540,
                            "height": 720,
                            "file_ext": "webp"
                        },
                        {
                            "type": "sample",
                            "url": "https://cdn.donmai.us/sample/b3/c4/sample-b3c448861c60fbe54e2aa13d9d56f7bd.jpg",
                            "width": 850,
                            "height": 1133,
                            "file_ext": "jpg"
                        },
                        {
                            "type": "original",
                            "url": "https://cdn.donmai.us/original/b3/c4/b3c448861c60fbe54e2aa13d9d56f7bd.jpg",
                            "width": 1536,
                            "height": 2048,
                            "file_ext": "jpg"
                        }
                    ]
                },
                "tag_string_general": "2girls barefoot blush breasts cloak collarbone couple english_text facial_mark halo height_difference long_hair multiple_girls open_mouth virtual_youtuber",
                "tag_string_character": "mori_calliope takanashi_kiara",
                "tag_string_copyright": "hololive hololive_english",
                "tag_string_artist": "jasper_xandros",
                "tag_string_meta": "highres",
                "file_url": "https://cdn.donmai.us/original/b3/c4/b3c448861c60fbe54e2aa13d9d56f7bd.jpg",
                "large_file_url": "https://cdn.donmai.us/sample/b3/c4/sample-b3c448861c60fbe54e2aa13d9d56f7bd.jpg",
                "preview_file_url": "https://cdn.donmai.us/180x180/b3/c4/b3c448861c60fbe54e2aa13d9d56f7bd.jpg"
            },
            ...
        ]
        ```

        获取在起始页码与结束页码范围内，指定标签的帖子列表；若 all_page 为 True，则获取当前查询标签下所有页码的帖子列表

        Args:
            limit (int, optional): 每页返回的结果数量。对于 /posts.json 最大限制为 200，其他情况为 1000. Defaults to 20.
            start_page (int, optional): 查询起始页码. Defaults to 1.
            end_page (int, optional): 查询结束页码. Defaults to 1.
            all_page (bool, optional): 是否获取当前查询标签下所有页码的帖子列表，若为 True，则忽略 start_page 与 end_page 参数. Defaults to False.
            tags (str, optional): 使用标签和元标签进行搜索的帖子查询 (Help:Cheatsheet)，post[tag] 也可以使用。要组合的不同标签使用空格连接，同一标签中的空格使用 _ 替换. Defaults to ''. 表示搜索全站
            random (bool, optional): 在帖子查询下选择随机抽样。若设置为 True，则仅返回 1 页内容. Defaults to False.
            md5 (str, optional): 搜索 MD5 匹配项。优先于所有其他参数. Defaults to ''.
            concurrency (int, optional): 并发下载的数量. Defaults to 8.

        Note:
            danbooru post 页面展示策略受 limit 参数影响，会自动根据 limit 参数与实际帖子数量调整 html 分页器中的最大页码
            page 受账号等级影响 (see help:users)，对普通无账户或会员用户，每次搜索的最大页数为 1000
            否则在 https://danbooru.donmai.us/posts?limit=1000&page=1001 网页中会弹出 Search Error. You cannot go beyond page 1000


e Valiente",
[33344] = "Bengala de Valiente",
[33345] = "Pergamino de ascensión vrykul",
[33346] = "Pergamino de ascensión vrykul",
[33347] = "Planes de ataque de Gjalerbron",
[33348] = "Plumón de hipogrifo moteado",
[33349] = "Viales de peste",
[33350] = "Frostmourne Art Demo",
[33351] = "Cuerno de carnero sin estropear",
[33352] = "Carne de carnero dura",
[33354] = "Hoja maleficio maldita de Wub",
[33355] = "Tablilla de Calavermis",
[33356] = "Yelmo de regeneración natural",
[33357] = "Escarpines de locura",
[33358] = "Cinturón de tela gastada",
[33359] = "Botas de tela gastada",
[33360] = "Brazales de tela gastada",
[33361] = "Guantes de tela gastada",
[33362] = "Pantalones de tela gastada",
[33363] = "Hombreras de tela gastada",
[33364] = "Jubón de tela gastada",
[33365] = "Cinturón de tela ribeteada con escarcha",
[33366] = "Botas de tela ribeteada con escarcha",
[33367] = "Brazales de tela ribeteada con escarcha",
[33368] = "Guantes de tela ribeteada con escarcha",
[33369] = "Pantalones de tela ribeteada con escarcha",
[33370] = "Hombreras de tela ribeteada con escarcha",
[33371] = "Jubón de tela ribeteada con escarcha",
[33372] = "Armadura forrada de pieles",
[33373] = "Cinturón forrado de pieles",
[33374] = "Botas forradas de pieles",
[33375] = "Brazales forrados de pieles",
[33376] = "Guantes forrados de pieles",
[33377] = "Pantalones forrados de pieles",
[33378] = "Hombreras forradas de pieles",
[33379] = "Armadura congelada",
[33380] = "Cinturón congelado",
[33381] = "Botas congeladas",
[33382] = "Brazales congelados",
[33383] = "Guantes congelados",
[33384] = "Pantalones congelados",
[33385] = "Hombreras congeladas",
[33386] = "Cinturón de Man'kin'do",
[33387] = "Paquete de Glorenfeld",
[33388] = "Despiadada",
[33389] = "Daga de mojo malo",
[33390] = "Armadura de malla helada",
[33391] = "Cinturón de malla helada",
[33392] = "Botas de malla helada",
[33393] = "Brazales de malla helada",
[33394] = "Guantes de malla helada",
[33395] = "Pantalones de malla helada",
[33396] = "Hombreras de malla helada",
[33397] = "Armadura de malla gélida",
[33398] = "Cinturón de malla gélido",
[33399] = "Botas de malla gélidas",
[33400] = "Brazales de malla gélidos",
[33401] = "Guantes de malla gélidos",
[33402] = "Pantalones de malla gélidos",
[33403] = "Hombreras de malla gélidas",
[33404] = "Cint


ockhash).
They are implemented as a Solana Program, the mechanics of which can be read
about in the [proposal](../../implemented-proposals/durable-tx-nonces.md).

## Usage Examples

Full usage details for durable nonce CLI commands can be found in the
[CLI reference](../usage.md).

### Nonce Authority

Authority over a nonce account can optionally be assigned to another account. In
doing so the new authority inherits full control over the nonce account from the
previous authority, including the account creator. This feature enables the
creation of more complex account ownership arrangements and derived account
addresses not associated with a keypair. The
`--nonce-authority <AUTHORITY_KEYPAIR>` argument is used to specify this account
and is supported by the following commands

- `create-nonce-account`
- `new-nonce`
- `withdraw-from-nonce-account`
- `authorize-nonce-account`

### Nonce Account Creation

The durable transaction nonce feature uses an account to store the next nonce
value. Durable nonce accounts must be
[rent-exempt](../../implemented-proposals/rent.md#two-tiered-rent-regime), so need
to carry the minimum balance to achieve this.

A nonce account is created by first generating a new keypair, then create the
account on chain

- Command

```bash
solana-keygen new -o nonce-keypair.json
solana create-nonce-account nonce-keypair.json 1
```

- Output

```text
2SymGjGV4ksPdpbaqWFiDoBz8okvtiik4KE9cnMQgRHrRLySSdZ6jrEcpPifW4xUpp4z66XM9d9wM48sA7peG2XL
```

> To keep the keypair entirely offline, use the
> [Paper Wallet](../wallets/paper.md) keypair generation
> [instructions](../wallets/paper.md#seed-phrase-generation) instead

> [Full usage documentation](../usage.md#solana-create-nonce-account)

### Querying the Stored Nonce Value

Creating a durable nonce transaction requires passing the stored nonce value as
the value to the `--blockhash` argument upon signing and submission. Obtain the
presently stored nonce value with

- Command

```bash
solana nonce nonce-keypair.json
```

- Output

```text
8GRipryfxcsxN8mAGjy8zbFo9ezaUsh47TsPzmZbuytU
```

> [Full usage documentation](../usage.md#solana-get-nonce)

### Advancing the Stored Nonce Value

While not typically needed outside a more useful transaction, the stored nonce
value can be advanced by

- Command

```bash
solana new-nonce nonce-keypair.json
```

- Output

```text
44jYe1yPKrjuYDmoFTdgPjg8LFpYyh1PFKJqm5SC1PiSyAL8iw1bhadcAX1SL7KDmREEkmHpYvreKoNv6fZgfvUK
```

> [Full usage documentation](../usage.md#solana-new-nonce)

### Display Nonce Account

Inspect a nonce account in a more human friendly format with

- Command

```bash
solana nonce-account nonce-keypair.json
```

- Output

```text
balance: 0.5 SOL
minimum balance required: 0.00136416 SOL
nonce: DZar6t2EaCFQTbUP4DHKwZ1wT8gCPW2aRfkVWhydkBvS
```

> [Full usage documentation](../usage.md#solana-nonce-account)

### Withdraw Funds from a Nonce Account

Withdraw funds from a nonce account with

- Command

```bash
solana withdraw-from-nonce-account nonce-keypair.json ~/.config/solana/id.json 0.5
```

- Output

```text
3foNy1SBqwXSsfSfTdm


ludes('RuntimeError') || error.includes('ImportError')) {
          dialog.showErrorBox(
            'Python Error',
            `An error occurred in the Python backend:\n\n${error}\n\nCheck logs/python_stderr.log for details.`
          );
        }
      });

      pythonProcess.on('close', (code) => {
        console.log(`Python process exited with code ${code}`);
        if (code !== 0 && code !== null) {
          dialog.showErrorBox(
            'Python Server Error',
            `The Python server exited unexpectedly with code ${code}.\n\nCheck logs/python_stderr.log for details.`
          );
          app.quit();
        }
      });
    });
  });
}

// Wait for app to be ready
app.whenReady().then(() => {
  // Create window and start Python server
  createWindow();
  startPythonServer();
  console.log('Electron window created, loading production build');

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow();
    }
  });
});

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('before-quit', () => {
  if (pythonProcess) {
    pythonProcess.kill();
  }
});

// IPC handlers
ipcMain.handle('get-app-version', () => {
  return app.getVersion();
});

ipcMain.handle('show-open-dialog', async (event, options) => {
  const result = await dialog.showOpenDialog(mainWindow, options);
  return result;
});

ipcMain.handle('show-save-dialog', async (event, options) => {
  const result = await dialog.showSaveDialog(mainWindow, options);
  return result;
});

ipcMain.handle('get-store-value', (event, key) => {
  return store.get(key);
});

ipcMain.handle('set-store-value', (event, key, value) => {
  store.set(key, value);
});

ipcMain.handle('open-external', (event, url) => {
  shell.openExternal(url);
});

// Window controls
ipcMain.handle('minimize-window', () => {
  if (mainWindow) {
    mainWindow.minimize();
  }
});

ipcMain.handle('maximize-window', () => {
  if (mainWindow) {
    if (mainWindow.isMaximized()) {
      mainWindow.unmaximize();
    } else {
      mainWindow.maximize();
    }
  }
});

ipcMain.handle('close-window', () => {
  if (mainWindow) {
    mainWindow.close();
  }
});

// Cleanup function for temp files (only on app exit)
function cleanupTempFiles() {
  console.log('App exiting - cleaning up temporary files and frame directories...');
  const glob = require('glob');
  // Only clean up INPUT files automatically, preserve OUTPUT files for user
  const patterns = ['input_*.mp4', 'bg_*.*', 'temp_video_*.mp4'];

  patterns.forEach(pattern => {
    glob.sync(pattern).forEach(file => {
      try {
        fs.unlinkSync(file);
        console.log(`Deleted input file: ${file}`);
      } catch (err) {
        console.error(`Failed to delete ${file}:`, err);
      }
    });
  });

  // Clean up frame directories
  const frameDirs = glob.sync('frames_*');
  frameDirs.forEach(dir => {
    try {
      if (fs.existsSync(dir)) {
        const frameCount = fs.readdirSync(dir).filter(f => f.endsWith('.png')).length;
        // Use recursive removal for directories
        fs.rmSync(dir, { recursive: true, force: true });
        console.


rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

/* Toast customization */
.toast {
    max-width: 350px;
}

/* Modal adjustments with glass effect */
.modal-content {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 20px;
    box-shadow: var(--shadow-primary);
}

.modal-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 20px 20px 0 0;
}

.modal-footer {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0 0 20px 20px;
}

.modal-lg {
    max-width: 900px;
}

#wallpaperPreviewLarge {
    max-height: 400px;
    width: 100%;
    object-fit: contain;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* Modal table styling */
.modal-body .table {
    background: rgba(255, 255, 255, 0.8);
    border-radius: 10px;
    overflow: hidden;
}

.modal-body .table td {
    border-color: rgba(255, 255, 255, 0.3);
    vertical-align: middle;
}

.modal-body .table td:first-child {
    width: 80px;
    font-weight: 600;
    color: #495057;
}

#wallpaperDetailPath {
    word-break: break-all;
    font-family: 'Courier New', monospace;
    font-size: 0.8rem;
}

/* Enhanced buttons */
.btn {
    border-radius: 10px;
    font-weight: 500;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.5s;
}

.btn:hover::before {
    left: 100%;
}

.btn-primary {
    background: var(--primary-gradient);
    border: none;
    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(102, 126, 234, 0.6);
}

/* Form controls */
.form-control,
.form-select {
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: all 0.3s ease;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
    background: white;
}

.input-group-text {
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 10px 0 0 10px;
}

/* Navigation tabs */
.nav-tabs {
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}

.nav-tabs .nav-link {
    border: none;
    bord


:Call("OpenYostarHelp")
end

function slot0.OnAppPauseForSDK(slot0, slot1)
	slot0:Call("OnAppPauseForSDK", slot1)
end

function slot0.UserEventUpload(slot0, slot1)
	slot0:Call("UserEventUpload", slot1)
end

function slot0.CheckAiriCanBuy(slot0)
	if PLATFORM_CODE == PLATFORM_US or PLATFORM_CODE == PLATFORM_JP then
		return slot0:Get("CheckAiriCanBuy")
	else
		return true
	end
end

function slot0.CheckHadAccountCache(slot0)
	if PLATFORM_CODE == PLATFORM_JP then
		return slot0:Get("CheckHadAccountCache")
	else
		return true
	end
end

AIRI_LAST_GEN_TIME = 0
AIRI_GEN_LIMIT_TIME = 30

function GetAiriGenCodeTimeRemain()
	if AIRI_GEN_LIMIT_TIME < Time.realtimeSinceStartup - AIRI_LAST_GEN_TIME or AIRI_LAST_GEN_TIME == 0 then
		return 0
	else
		return math.floor(AIRI_GEN_LIMIT_TIME - slot0)
	end
end

function slot0.UserCenter(slot0)
	slot0:Call("UserCenter")
end

function slot0.BugReport(slot0)
	slot0:Call("BugReport")
end

function slot0.StoreReview(slot0)
	slot0:Call("StoreReview")
end

function slot0.QueryWithProduct(slot0)
	slot0:Call("QueryWithProduct")
end

function slot0.ShareImg(slot0, slot1, slot2)
	slot0:Call("ShareImg", slot1, slot2)
end

function slo


L.value, 0.4493372678309748, atol=1e-5)
    assert np.isclose(gfit[1].amplitude_L.value, 0.09824894900965533, atol=1e-5)
    assert np.isclose(gfit[2].amplitude_L.value, 0.049188333571838126, atol=1e-5)

    assert np.isclose(gfit[0].fwhm_L.value, 0.007149662717096372, atol=1e-5)
    assert np.isclose(gfit[1].fwhm_L.value, 0.010284275703270292, atol=1e-5)
    assert np.isclose(gfit[2].fwhm_L.value, 0.02030658150200352, atol=1e-5)

# %%

def _run_testcases(
    plot=True,
    close_plots=False,
    verbose=True,
    debug=False,
    warnings=True,
    *args,
    **kwargs,
):
    """Test procedures

    Parameters
    ----------

    debug: boolean
        swamps the console namespace with local variables. Default ``False``

    """

    # Test all Spectrum methods
    # -------------------------
    test_spectrum_creation_method(*args, **kwargs)
    test_spectrum_get_methods(
        debug=debug,
        verbose=verbose,
        plot=plot,
        close_plots=close_plots,
        *args,
        **kwargs,
    )
    test_copy(verbose=verbose, *args, **kwargs)
    test_trimming(*args, **kwargs)
    test_populations(
        verbose=verbose, plot=plot, close_plots=close_plots, *args, **kwargs
    )
    test_store_functions(verbose=verbose, *args, **kwargs)
    test_argmax_argmin(*args, **kwargs)

    # Test populations
    # ----------
    test_populations(verbose=verbose, *args, **kwargs)

    # Test conversion of intensity cm-1 works
    # -------------
    test_intensity_conversion(debug=debug, verbose=verbose, *args, **kwargs)
    test_emisscoeff_conversion(debug=debug, verbose=verbose, *args, **kwargs)

    # Test updating / rescaling functions (no self absorption)
    # ---------
    test_rescaling_function(debug=debug, *args, **kwargs)

    test_resampling_function(
        debug=debug, plot=plot, close_plots=close_plots, *args, **kwargs
    )
    test_resampling_nan_function(verbose=verbose, *args, **kwargs)

    test_normalization(*args, **kwargs)

    # Test plot firewalls:
    test_noplot_different_quantities(*args, **kwargs)

    # Test plot by parts
    test_plot_by_parts(plot=plot, *args, **kwargs)
    test_sort()

    # Test spectrum fitting
    test_fitting_lineshape(plot=plot, *args, **kwargs)

if __name__ == "__main__":
    print(("Test spectrum: ", _run_testcases(debug=False, close_plots=False)))

    # import radis

    # s = radis.spectrum_test()
    # assert s.c["default_output_unit"] == "cm-1"

    # assert (s.get("abscoeff")[0] == s.get_wavenumber()).all()

    # s.c["default_output_unit"] = "nm"

    # assert (s.get("abscoeff")[0] == s.get_wavelength()).all()
    # s.c["default_output_unit"] = "nm_vac"
    # assert (s.get("abscoeff")[0] == s.get_wavelength(medium="vacuum")).all()

    # #%%
    # from radis import load_spec
    # from radis.test.utils import getTestFile

    # s_exp = load_spec(getTestFile("CO2_measured_spectrum_4-5um.spec"), binary=True)


nderlying recurring event) will still be included if showDeleted and
     * singleEvents are both False. If showDeleted and singleEvents are both True, only single instances of
     * deleted events (but not the underlying recurring events) are returned. Optional. The default is False.
     */
    showDeleted?: boolean;
    /**
     * Whether to include hidden invitations in the result. Optional. The default is False.
     */
    showHiddenInvitations?: boolean;
    /**
     * Whether to expand recurring events into instances and only return single one-off events and
     * instances of recurring events, but not the underlying recurring events themselves. Optional.
     * The default is False.
     */
    singleEvents?: boolean;
    /**
     * Token obtained from the nextSyncToken field returned on the last page of results from the previous list request.
     * It makes the result of this list request contain only entries that have changed since then.
     */
    syncToken?: string;
    /**
     * Upper bound (exclusive) for an event's start time to filter by. Optional.
     * The default is not to filter by start time. Must be an RFC3339 timestamp with
     * mandatory time zone offset, e.g., 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z.
     * Milliseconds may be provided but will be ignored.
     */
    timeMax?: string;
    /**
     * Lower bound (inclusive) for an event's end time to filter by. Optional.
     * The default is not to filter by end time. Must be an RFC3339 timestamp
     * with mandatory time zone offset, e.g., 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z.
     * Milliseconds may be provided but will be ignored.
     */
    timeMin?: string;
    /**
     * Time zone used in the response. Optional. The default is the time zone of the calendar.
     */
    timeZone?: string;
    /**
     * Lower bound for an event's last modification time (as a RFC3339 timestamp) to
     * filter by. When specified, entries deleted since this time will always be included
     * regardless of showDeleted. Optional. The default is not to filter by last modification time.
     */
    updatedMin?: string;
}

@Injectable()
export class EventsService {
    /**
     * relative url to the calendars api
     * @type {string}
     */
    private api = '/calendar/v3/calendars/';

    /**
     * Creates the EventsService
     * @param service Injected internal http service for interacting with google apis
     */
    constructor(private service: BaseService) {
    }

    /**
     * Returns events on the specified calendar.
     * @param authToken token of the authenticated user
     * @param calendar Calendar identifier. To retrieve calendar IDs call the calendarList.list method.
     * If you want to access the primary calendar of the currently logged in user, use the "primary" keyword.
     * @param options Optional query parameters
     * @return {Observable<R>} Events on the specified calendar
     */
    public list(authToken: string, calendar: string, options?: EventsQueryOptions): Observable<Array<Event>> {
        return this.service.get(this.api + calendar + '/events', authToken, {params: options})
            .map(res => <ResponseType>res.json())
            .map(res => <Array<Event>>res.items);
    }

}
/*
  index.ts
*/

import { forth, Context, createEmptyContext } from "./sallied-forth";

let context:Context = createEmptyContext();

let program = `

99 100 * .

" what does it do?" .

`

let result = forth(program, context);

console.log(result);import * as _ from 'underscore';

export class Utils {
    static getDeepValue(obj: Object, path: string|string[]): any {
        let pathArr = _.isArray(path) ? path : path.split(/\/|\./g);
        let value = obj[pathArr.shift()];
        if (value && pathArr.length > 0) {
            return Utils.getDeepValue(value, pathArr);
        }
        return value;


ted.getUTCMonth() + 1;
                const re = /\d{4}/;
                if (re.test(year.toString()) && month >= 1 && month <= 12) {
                    DateTimeShortcuts.calendars[num].drawDate(month, year, selected);
                }
            }

            // Recalculate the clockbox position
            // is it left-to-right or right-to-left layout ?
            if (window.getComputedStyle(document.body).direction !== 'rtl') {
                cal_box.style.left = findPosX(cal_link) + 17 + 'px';
            }
            else {
                // since style's width is in em, it'd be tough to calculate
                // px value of it. let's use an estimated px for now
                cal_box.style.left = findPosX(cal_link) - 180 + 'px';
            }
            cal_box.style.top = Math.max(0, findPosY(cal_link) - 75) + 'px';

            cal_box.style.display = 'block';
            document.addEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]);
        },
        dismissCalendar: function(num) {
            document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none';
            document.removeEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]);
        },
        drawPrev: function(num) {
            DateTimeShortcuts.calendars[num].drawPreviousMonth();
        },
        drawNext: function(num) {
            DateTimeShortcuts.calendars[num].drawNextMonth();
        },
        handleCalendarCallback: function(num) {
            const format = get_format('DATE_INPUT_FORMATS')[0];
            return function(y, m, d) {
                DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format);
                DateTimeShortcuts.calendarInputs[num].focus();
                document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none';
            };
        },
        handleCalendarQuickLink: function(num, offset) {
            const d = DateTimeShortcuts.now();
            d.setDate(d.getDate() + offset);
            DateTimeShortcuts.calendarInputs[num].value = d.strftime(get_format('DATE_INPUT_FORMATS')[0]);
            DateTimeShortcuts.calendarInputs[num].focus();
            DateTimeShortcuts.dismissCalendar(num);
        }
    };

    window.addEventListener('load', DateTimeShortcuts.init);
    window.DateTimeShortcuts = DateTimeShortcuts;
}
/* global QUnit, SelectFilter */
'use strict';

QUnit.module('admin.SelectFilter2');

QUnit.test('init', function(assert) {
    const $ = django.jQuery;
    $('<form id="test"></form>').appendTo('#qunit-fixture');
    $('Test').appendTo('#test');
    $('
This is helpful.
').appendTo('#test');
    $('<select id="id"><option value="0">A</option></select>').appendTo('#test');
    SelectFilter.init('id', 'things', 0);
    assert.equal($('#test').children().first().prop("tagName"), "DIV");
    assert.equal($('#test').children().first().attr("class"), "selector");
    assert.equal($('.selector-available h2').text().trim(), "Available things");
    assert.equal($('.selector-chosen h2').text().trim(), "Chosen things");
    assert.equal($('.selector-chosen select')[0].getAttribute('multiple'), '');
    assert.equal($('.selector-chooseall').text(), "Choose all");
    assert.equal($('.selector-add').text(), "Choose");
    assert.equal($('.selector-remove').text(), "Remove");
    assert.equal($('.selector-clearall').text(), "Remove all");
});

QUnit.test('filtering available options', function(assert) {
    const $ = django.jQuery;
    $('<form><select multiple id="select"></select></form>').appendTo('#qunit-fixture');
    $('<option value="1" title="Red">Red</option>').appendTo('#select');
    $('<option value="2" title="Blue">


AE14FDCBE1D9C848446C18E22C09(_thisAdjusted, ___format0, ___provider1, method);
}
// System.Int32 System.Int32::Parse(System.String)
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR int32_t Int32_Parse_m5807B6243415790250FC25168F767C08FC16FDEA (String_t* ___s0, const RuntimeMethod* method)
{
	{
		String_t* L_0 = ___s0;
		NumberFormatInfo_tFDF57037EBC5BC833D0A53EF0327B805994860A8 * L_1 = NumberFormatInfo_get_CurrentInfo_m595DF03E32E0C5B01F1EC45F7264B2BD09BA61C9(/*hidden argument*/NULL);
		int32_t L_2 = Number_ParseInt32_mF4B8DA28891C736EAC85641489780C2E91F8AECF(L_0, 7, L_1, /*hidden argument*/NULL);
		return L_2;
	}
}
// System.Int32 System.Int32::Parse(System.String,System.IFormatProvider)
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR int32_t Int32_Parse_m9FD0A75E9C7A9BFC26070A60A420D77CD629CC58 (String_t* ___s0, RuntimeObject* ___provider1, const RuntimeMethod* method)
{
	{
		String_t* L_0 = ___s0;
		RuntimeObject* L_1 = ___provider1;
		NumberFormatInfo_tFDF57037EBC5BC833D0A53EF0327B805994860A8 * L_2 = NumberFormatInfo_GetInstance_m713D298B436F3765F059FEA6C446F0A6ABF0A89A(L_1, /*hidden argument*/NULL);
		int32_t L_3 = Number_ParseInt32_mF4B8DA28891C736EAC85641489780C2E91F8AECF(L_0, 7, L_2, /*hidden argument*/NULL);
		return L_3;
	}
}
// System.Int32 System.Int32::Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR int32_t Int32_Parse_m17BA45CC13A0E08712F2EE60CC1356291D0592AC (String_t* ___s0, int32_t ___style1, RuntimeObject* ___provider2, const RuntimeMethod* method)
{
	{
		int32_t L_0 = ___style1;
		NumberFormatInfo_ValidateParseStyleInteger_m5BD1C04C26D5589F0DFA5953294B72E1DDC2B7E3(L_0, /*hidden argument*/NULL);
		String_t* L_1 = ___s0;
		int32_t L_2 = ___style1;
		RuntimeObject* L_3 = ___provider2;
		NumberFormatInfo_tFDF57037EBC5BC833D0A53EF0327B805994860A8 * L_4 = NumberFormatInfo_GetInstance_m713D298B436F3765F059FEA6C446F0A6ABF0A89A(L_3, /*hidden argument*/NULL);
		int32_t L_5 = Number_ParseInt32_mF4B8DA28891C736EAC85641489780C2E91F8AECF(L_1, L_2, L_4, /*hidden argument*/NULL);
		return L_5;
	}
}
// System.Boolean System.Int32::TryParse(System.String,System.Int32&)
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR bool Int32_TryParse_m03D31CAB7050E8286A8A90711C896B181006AD00 (String_t* ___s0, int32_t* ___result1,


px #808080;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .retro-table {
        font-size: 12px;
    }

    .retro-table th,
    .retro-table td {
        padding: 2px 4px;
    }

    .col-title {
        min-width: 150px;
    }

    .filter-buttons {
        width: 100%;
    }

    .filter-btn {
        flex: 1;
        text-align: center;
        min-width: 60px;
    }
}
</style>
{% endblock %}

{% block content %}

      {{ _('youtube_listening_description') }}

YouTubeリスニングクイズ

            レベル選択:

                    全て ({{ level_counts.values() | sum }})

                {% for level in ['N5', 'N4', 'N3', 'N2', 'N1', 'N0'] %}
                    {% if level in level_counts %}

                        {{ level }} ({{ level_counts[level] }})

                    {% endif %}
                {% endfor %}

    {% if 'N0' in level_counts %}

        注意: N0は非公式レベルであり、N1より高い難易度を意味します。

    {% endif %}

    {% if quizzes %}

                            レベル ↑

                            タイトル ↑

                            時間 ↑

                        <a href="{{ url_for('youtube_listening.listening_levels', level=selected_level, sort='length', order='desc') }}"
                           class="sort-link {% if current_sor


), None, Some(3), Some(4), Some(5)]);
        let batch = RecordBatch::try_new(Arc::new(schema.clone()), vec![Arc::new(a)])?;

        assert_eq!(do_min(&batch)?, Some(ScalarValue::Int64(1)));

        Ok(())
    }

    #[test]
    fn sum_i32_all_nulls() -> Result<()> {
        let schema = Schema::new(vec![Field::new("a", DataType::Int32, false)]);

        let a = Int32Array::from(vec![None, None]);
        let batch = RecordBatch::try_new(Arc::new(schema.clone()), vec![Arc::new(a)])?;

        assert_eq!(do_sum(&batch)?, None);

        Ok(())
    }

    #[test]
    fn max_i32_all_nulls() -> Result<()> {
        let schema = Schema::new(vec![Field::new("a", DataType::Int32, false)]);

        let a = Int32Array::from(vec![None, None]);
        let batch = RecordBatch::try_new(Arc::new(schema.clone()), vec![Arc::new(a)])?;

        assert_eq!(do_max(&batch)?, None);

        Ok(())
    }

    #[test]
    fn min_i32_all_nulls() -> Result<()> {
        let schema = Schema::new(vec![Field::new("a", DataType::Int32, false)]);

        let a = Int32Array::from(vec![None, None]);
        let batch = RecordBatch::try_new(Arc::new(schema.clone()), vec![Arc::new(a)])?;

        assert_eq!(do_min(&batch)?, None);

        Ok(())
    }

    #[test]
    fn avg_i32_all_nulls() -> Result<()> {
        let schema = Schema::new(vec![Field::new("a", DataType::Int32, false)]);

        let a = Int32Array::from(vec![None, None]);
        let batch = RecordBatch::try_new(Arc::new(schema.clone()), vec![Arc::new(a)])?;

        assert_eq!(do_avg(&batch)?, None);

        Ok(())
    }

    #[test]
    fn sum_u32() -> Result<()> {
        let schema = Schema::new(vec![Field::new("a", DataType::UInt32, false)]);

        let a = UInt32Array::from(vec![1_u32, 2_u32, 3_u32, 4_u32, 5_u32]);
        let batch = RecordBatch::try_new(Arc::new(schema.clone()), vec![Arc::new(a)])?;

        assert_eq!(do_sum(&batch)?, Some(ScalarValue::UInt64(15_u64)));

        Ok(())
    }

    #[test]
    fn avg_u32() -> Result<()> {
        let schema = Schema::new(vec![Field::new("a", DataType::UInt32, false)]);

        let a = UInt32Array::from(vec![1_u32, 2_u32, 3_u32, 4_u32, 5_u32]);
        let batch = RecordBatch::try_new(Arc::new(schema.clone()), vec![Arc::new(a)])?;

        assert_eq!(do_avg(&batch)?, Some(ScalarValue::Float64(3_f64)));

        Ok(())
    }

    #[test]
    fn max_u32() -> Result<()> {
        let schema = Schema::new(vec![Field::new("a", DataType::UInt32, false)]);

        let a = UInt32Array::from(vec![1_u32, 2_u32, 3_u32, 4_u32, 5_u32]);
        let batch = RecordBatch::try_new(Arc::new(schema.clone()), vec![Arc::n


="#iview">Geomview utility functions

»io.h constants and types

qh_MAXfirst maximum length
of first two lines of stdin

qh_WHITESPACE possible
values of white space

printvridgeT function to
print results of qh_printvdiagram or qh_eachvoronoi

»User level functions

qh_copyfilename
copy filename identified by qh_skipfilename

qh_eachvoronoi_all
visit each Voronoi ridge of the Voronoi diagram

qh_prepare_output
prepare Qhull for output (called by qh_produce_output())

qh_printhelp_degenerate
prints descriptive message for precision error

qh_printhelp_singular
print help message for singular data

qh_printsummary print
summary ('s')

qh_produce_output
prints out the result of qhull()

qh_produce_output2
prints out the result of qhull() without calling qh_prepare_output()

qh_readfeasible read
interior point from remainder and qh fin ('H')

qh_readpoints read input
points

qh_setfeasible set
interior point from qh feasible_string ('Hn,n,n')

qh_skipfilename
skip filename in string

»Print functions for all
output formats

qh_countfacets count good
facets for printing and set visitid

qh_markkeep mark good facets
that meet qh.KEEParea ('PAn'), qh.KEEPmerge ('PMn'), and qh.KEEPminArea ('PFn')

qh_order_vertexneighbors
order neighbors for a 3-d vertex by adjacency ('i', 'o')

qh_printafacet print facet
in an output format

qh_printbegin print header
for an output format

qh_printend print trailer for
an output format

<a href="user.c


com/Microsoft/vscode">vscode都是基于Electron打包的。

4） 组件化：统一用法

React的出现影响最大的是jsx的出现，解决了长久以来组件化的问题，

我们反复的折腾js，依然无法搞定

我们尝试OO，比如extjs

我们最终还是找个中间格式jsx

单纯的React只是view层面的，还不足以应用，于是又有Redux

核心概念：Actions、Reducers 和 Store，简单点说就是状态控制

然后再结合打包加壳，变成app或可执行文件

iOS、Android上用Cordova

PC上使用Electron

总结

组件定义好（React）

控制好组件之间的状态切换（Redux）

打包或加壳（Cordova or Electron）

这部分其实组件化了前端，那么能否用这样的思想来组件化移动端呢？

再看react-native

A framework for building native apps with React. http://facebook.github.io/react-native/

简单点说，就是用React的语法来组件化iOS或Android SDK。

它们都在告诉我们，你们以后就玩这些组件就好了，你不需要知道复杂的SDK是什么

5）当下流行玩法

Medis is a beautiful, easy-to-use Redis management application built on the modern web with Electron, React, and Redux. It's powered by many awesome Node.js modules, especially ioredis and ssh2.

技术点

使用Node.js模块

使用Webpack构建

使用React（视图） + Redux（控制逻辑）

使


esult,
    this.onPerformanceMetrics,
    this.onStreamingData,
    this.showNativeUI = false,
    this.onZoomChanged,
    this.streamingConfig,
    this.confidenceThreshold = 0.5,
    this.iouThreshold = 0.45,
    this.useGpu = true,
    this.showOverlays = true,
    this.overlayTheme = const YOLOOverlayTheme(),
  });

  @override
  State<YOLOView> createState() => _YOLOViewState();
}

class _YOLOViewState extends State<YOLOView> {
  late YOLOViewController _effectiveController;
  late MethodChannel _methodChannel;
  late EventChannel _resultEventChannel;
  StreamSubscription<dynamic>? _resultSubscription;

  final String _viewId = UniqueKey().toString();
  int? _platformViewId;
  List<YOLOResult> _currentDetections = [];

  @override
  void initState() {
    super.initState();
    _setupController();
    _setupChannels();
  }

  void _setupController() {
    _effectiveController = widget.controller ?? YOLOViewController();
  }

  void _setupChannels() {
    _methodChannel = ChannelConfig.createControlChannel(_viewId);
    _resultEventChannel = ChannelConfig.createDetectionResultsChannel(_viewId);
  }

  void _subscribeToResults() {
    if (widget.onResult == null &&
        widget.onPerformanceMetrics == null &&
        widget.onStreamingData == null) {
      return;
    }

    _resultSubscription = _resultEventChannel.receiveBroadcastStream().listen(
      _handleEvent,
      onError: (error, stackTrace) {
        logInfo('YOLOView: Stream error: $error');
        _resubscribeAfterDelay();
      },
      onDone: () {
        logInfo('YOLOView: Stream closed');
        _resultSubscription = null;
      },
    );
  }

  void _resubscribeAfterDelay() {
    Timer(const Duration(seconds: 2), () {
      if (mounted && _resultSubscription == null) {
        _subscribeToResults();
      }
    });
  }

  void _handleEvent(dynamic event) {
    if (event is! Map) return;

    if (widget.onStreamingData != null) {
      try {
        final streamData = MapConverter.convertToTypedMap(event);
        widget.onStreamingData!(streamData);
      } catch (e) {
        logInfo('YOLOView: Error processing streaming data: $e');
      }
    } else {
      _handleDetectionResults(event);
      _handlePerformanceMetrics(event);
    }
  }

  void _handleDetectionResults(Map<dynamic, dynamic> event) {
    if (widget.onResult == null || !event.containsKey('detections')) return;

    try {
      final results = _parseDetectionResults(event);
      setState(() {
        _currentDetections = results;
      });
      widget.onResult!(results);
    } catch (e) {
      logInfo('YOLOView: Error parsing detection results: $e');
    }
  }

  void _handlePerformanceMetrics(Map<dynamic, dynamic> event) {
    if (widget.onPerformanceMetrics == null) return;

    try {
      final metrics = YOLOPerformanceMetrics.fromMap(
        MapConverter.convertToTypedMap(event),
      );
      widget.onPerformanceMetrics!(metrics);
    } catch (e) {
      logInfo('YOLOView: Error parsing performance metrics: $e');
    }
  }

  List<YOLOResult> _parseDetectionResults(Map<dynamic, dynamic> event) {
    final List<dynamic> detectionsData = event['detections'] ?? [];
    final results = <YOLOResult>[];

    for (final detection in detectionsData) {


\",\n  \"cloudflare-kv-http\": \"unstorage/drivers/cloudflare-kv-http\",\n  \"cloudflareKVHttp\": \"unstorage/drivers/cloudflare-kv-http\",\n  \"cloudflare-r2-binding\": \"unstorage/drivers/cloudflare-r2-binding\",\n  \"cloudflareR2Binding\": \"unstorage/drivers/cloudflare-r2-binding\",\n  \"db0\": \"unstorage/drivers/db0\",\n  \"deno-kv-node\": \"unstorage/drivers/deno-kv-node\",\n  \"denoKVNode\": \"unstorage/drivers/deno-kv-node\",\n  \"deno-kv\": \"unstorage/drivers/deno-kv\",\n  \"denoKV\": \"unstorage/drivers/deno-kv\",\n  \"fs-lite\": \"unstorage/drivers/fs-lite\",\n  \"fsLite\": \"unstorage/drivers/fs-lite\",\n  \"fs\": \"unstorage/drivers/fs\",\n  \"github\": \"unstorage/drivers/github\",\n  \"http\": \"unstorage/drivers/http\",\n  \"indexedb\": \"unstorage/drivers/indexedb\",\n  \"localstorage\": \"unstorage/drivers/localstorage\",\n  \"lru-cache\": \"unstorage/drivers/lru-cache\",\n  \"lruCache\": \"unstorage/drivers/lru-cache\",\n  \"memory\": \"unstorage/drivers/memory\",\n  \"mongodb\": \"unstorage/drivers/mongodb\",\n  \"netlify-blobs\": \"unstorage/drivers/netlify-blobs\",\n  \"netlifyBlobs\": \"unstorage/drivers/netlify-blobs\",\n  \"null\": \"unstorage/drivers/null\",\n  \"overlay\": \"unstorage/drivers/overlay\",\n  \"planetscale\": \"unstorage/drivers/planetscale\",\n  \"redis\": \"unstorage/drivers/redis\",\n  \"s3\": \"unstorage/drivers/s3\",\n  \"session-storage\": \"unstorage/drivers/session-storage\",\n  \"sessionStorage\": \"unstorage/drivers/session-storage\",\n  \"uploadthing\": \"unstorage/drivers/uploadthing\",\n  \"upstash\": \"unstorage/drivers/upstash\",\n  \"vercel-blob\": \"unstorage/drivers/vercel-blob\",\n  \"vercelBlob\": \"unstorage/drivers/vercel-blob\",\n  \"vercel-kv\": \"unstorage/drivers/vercel-kv\",\n  \"vercelKV\": \"unstorage/drivers/vercel-kv\"\n};\n\n\n//# sourceURL=[module]\n//# sourceMappingU