件中的内容加载到 ELF 文件中指定的内存地址。这些地址可以在 ELF 文件中任意指定。因此，执行 `exec` 存在风险，因为 ELF 文件中的地址可能指向内核（无论是有意的还是无意的）。如果内核不仔细检查，轻则崩溃，重则可能导致内核的隔离机制被恶意破坏（即发生安全漏洞）。xv6 会执行一系列检查来避免这些风险。例如，`if(ph.vaddr + ph.memsz < ph.vaddr)` 这行代码会检查求和计算结果针对一个 64 位整数是否会溢出。风险在于，用户可能会构造一个 ELF 二进制文件，其中 `ph.vaddr` 指向用户选择的地址，而 `ph.memsz` 足够大，导致两者相加后的和溢出后返回到 0x1000，而这看起来像是一个有效值（译者注：如果不检查溢出后返回到 0x1000 的情况，会导致原本不该被加载到 text 段的内容被加载到 text 段并覆盖原有合法指令）。（另外一种风险情况是）在旧版本的 xv6 中，用户地址空间也包含内核（但在用户模式下不可读写），用户可以选择一个与内核内存对应的地址，从而将数据从 ELF 二进制文件复制到内核。在 RISC-V 版本的 xv6 中，这种情况不会发生，因为内核有自己独立的页表；`loadseg` 负责将数据加载到进程的页表中，而不是加载到内核的页表中。

> It is easy for a kernel developer to omit a crucial check, and real-world kernels have a long history of missing checks whose absence can be exploited by user programs to obtain kernel privileges. It is likely that xv6 doesn’t do a complete job of validating user-level data supplied to the kernel, which a malicious user program might be able to exploit to circumvent xv6’s isolation.

内核开发人员很容易忽略对关键点的检查，现实世界中的内核长期以来都容易忽视这些检查，用户程序可以利用这些问题来尝试获取内核权限。xv6 很可能无法完全验证提供给内核的用户级数据，恶意用户程序可能会利用这些数据来绕过 xv6 的隔离机制。

## 3.8 现实世界（Real world）

> Like most operating systems, xv6 uses the paging hardware for memory protection and mapping. Most operating systems make far more sophisticated use of paging than xv6 by combining paging and page-fault exceptions, which we will discuss in Chapter 4.

与大多数操作系统一样，xv6 使用分页硬件实现对内存保护和映射。大多数操作系统对分页的使用比 xv6 更加复杂，往往将分页和缺页异常处理结合起来，我们将在第 4 章讨论这一点。

> Xv6 is simplified by the kernel’s use of a direct map between virtual and physical addresses, and by its assumption that there is physical RAM at address 0x80000000, where the kernel expects to be loaded. This works with QEMU, but on real hardware it turns out to be a bad idea; real hardware places RAM and devices at unpredictable physical addresses, so that (for example) there might be no RAM at 0x80000000, where xv6 expect to be able to store the kernel. More serious kernel designs exploit the page table to turn arbitrary hardware physical memory layouts into predictable kernel virtual address layouts.

xv6 在设计上的简化之处在于在内核中对虚拟地址和物理地址之间采用直接映射的方式，并假设内核的加载地址恰好


using Bookstore.Domain;
using Bookstore.Domain.Offers;
using Bookstore.Domain.Orders;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Bookstore.Data.Repositories
{
    public class OfferRepository : IOfferRepository
    {
        private readonly ApplicationDbContext dbContext;

        public OfferRepository(ApplicationDbContext dbContext)
        {
            this.dbContext = dbContext;
        }

        public async Task<OfferStatistics> GetStatisticsAsync()
        {
            var startOfMonth = DateTime.UtcNow.StartOfMonth();

            return await dbContext.Offer
                .GroupBy(x => 1)
                .Select(x => new OfferStatistics
                {
                    PendingOffers = x.Count(y => y.OfferStatus == OfferStatus.PendingApproval),
                    OffersThisMonth = x.Count(y => y.CreatedOn >= startOfMonth),
                    OffersTotal = x.Count()
                }).SingleOrDefaultAsync();
        }

        async Task IOfferRepository.AddAsync(Offer offer)
        {
            await dbContext.Offer.AddAsync(offer);
        }

        Task<Offer> IOfferRepository.GetAsync(int id)
        {
            return dbContext.Offer.Include(x => x.Customer).SingleOrDefaultAsync(x => x.Id == id);
        }

        async Task<IPaginatedList<Offer>> IOfferRepository.ListAsync(OfferFilters filters, int pageIndex, int pageSize)
        {
            var query = dbContext.Offer.AsQue


capture
 * if (dlt == PcapDLT.CONST_EN10MB) {
 * 	// Do something
 * }
 *

 *
 *
Converting integer DLT value into a constant

 *

 * int dlt = pcap.datalink(); // Get DLT value from open Pcap capture
 * PcapDLT enumConst = PcapDLT.valueOf(dlt);
 * System.out.println("The Payload Link Type is " + enumConst + " described as " +
 * 		enumConst.description);
 *

 *
 *
Converting string DLT name into a constant

 *

 * PcapDLT enumConst = PcapDLT.valueOf("EN10MB");
 * System.out.println("The Payload Link Type value is " + enumConst.value);
 *

 *
 * @author Mark Bednarczyk
 * @author Sly Technologies, Inc.
 */
@SuppressWarnings("all")
public enum PcapDLT implements DataLinkType {

  /** The NULL. */
  NULL(0),

  /** The E n10 mb. */
  EN10MB(1),

  /** The E n3 mb. */
  EN3MB(2),

  /** The A x25. */
  AX25(3),

  /** The PRONET. */
  PRONET(4),

  /** The CHAOS. */
  CHAOS(5),

  /** The IEE e802. */
  IEEE802(6),

  /** The ARCNET. */
  ARCNET(7),

  /** The SLIP. */
  SLIP(8),

  /** The PPP. */
  PPP(9),

  /** The FDDI. */
  FDDI(10),

  /** The AT m_ rf c1483. */
  ATM_RFC1483(11),

  /** The RAW. */
  RAW(12),

  /** The SLI p_ bsdos. */
  SLIP_BSDOS(15),

  /** The PP p_ bsdos. */
  PPP_BSDOS(16),

  /** The AT m_ clip. */
  ATM_CLIP(19),

  /** The PP p_ serial. */
  PPP_SERIAL(50),

  /** The PP p_ ether. */
  PPP_ETHER(51),

  /** The SYMANTE c_ firewall. */
  SYMANTEC_FIREWALL(99),

  /** The C_ hdlc. */
  C_HDLC(104),

  /** The IEE e802_11. */
  IEEE802_11(105),

  /** The FRELAY. */
  FRELAY(107),

  /** The LOOP. */
  LOOP(108),

  /** The ENC. */
  ENC(109),

  /** The LINU x_ sll. */
  LINUX_SLL(113),

  /** The LTALK. */
  LTALK(114),

  /** The ECONET. */
  ECONET(115),

  /** The IPFILTER. */
  IPFILTER(116),

  /** The PFLOG. */
  PFLOG(117),

  /** The CISC o_ ios. */
  CISCO_IOS(118),

  /** The PRIS m_ header. */
  PRISM_HEADER(119),

  /** The AIRONE t_ header. */
  AIRONET_HEADER(120),

  /** The PFSYNC. */
  PFSYNC(121),

  /** The I p_ ove r_ fc. */
  IP_OVER_FC(122)


.h>
#include <OS/OpenSpy.h>
#include <OS/Buffer.h>

#include <stddef.h>
#include <sstream>
#include <algorithm>

#include <server/tasks/tasks.h>

#include <OS/GPShared.h>

#include <map>
#include <utility>

using namespace GPShared;

namespace GS {

	void Peer::updateGameCreateCallback(bool success, PersistBackendResponse response_data, GS::Peer *peer, void* extra) {
		//uv_mutex_lock(&peer->m_mutex);
		int sesskey = (int)(ptrdiff_t)extra;
		peer->m_updgame_sesskey_wait_list.erase(sesskey);
		//uv_mutex_unlock(&peer->m_mutex);
	}
	void Peer::handle_updgame(OS::KVReader data_parser) {
		//\updgame\\sesskey\%d\done\%d\gamedata\%s
		int sesskey = data_parser.GetValueInt("sesskey");
		//uv_mutex_lock(&m_mutex);
		std::map<int, std::string>::iterator it = m_game_session_backend_identifier_map.find(sesskey);

		//not found... must be a pending request XXX: check into this logic more!!
		if(it == m_game_session_backend_identifier_map.end()) {
			m_updgame_sesskey_wait_list[sesskey].push_back(data_parser);
			this->IncRef();
			m_updgame_increfs++;
			if (m_updgame_sesskey_wait_list[sesskey].size() > MAX_SESSKEY_WAIT || m_updgame_sesskey_wait_list.size() > MAX_SESSKEY_WAIT) {
				for (int i = 0; i < m_updgame_increfs; i++) {
					this->DecRef();
				}
				send_error(GPShared::GP_BAD_SESSKEY);
			}
			//uv_mutex_unlock(&m_mutex);
			return;
		}
		std::map<std::string,std::string> game_data;
		std::string gamedata = data_parser.GetValue("gamedata");

		bool done = data_parser.GetValueInt("done");

		for(size_t i=0;i<gamedata.length();i++) {
			if(gamedata[i] == '\x1') {
				gamedata[i] = '\\';
			}
		}

		game_data = OS::KeyStringToMap(gamedata);
		PersistBackendRequest req;
		req.profileid = m_profile.id;
		req.mp_peer = this;
		req.mp_extra = NULL;
		req.type = EPersistRequestType_UpdateGame;
		req.callback = updateGameCreateCallback;
		req.complete = done;
		req.kvMap = game_data;
		req.game_instance_identifier = m_game_session_backend_identifier_map[sesskey];
		IncRef();
		AddRequest(req);

		//uv_mutex_unlock(&m_mutex);
	}
}#include <server/GSServer.h>
#include <server/GSPeer.h>
#include <server/GSDriver.h>
#include <OS/OpenSpy.h>
#include <OS/Buffer.h>

#include <stddef.h>
#include <sstream>
#include <algorithm>

#include <server/tasks/tasks.h>

#include <OS/GPShared.h>

#include <map>
#include <utility>

using namespace GPShared;

namespace GS {
	void Peer::perform_pid_auth(int profileid, const char *response, int operation_id) {
		PersistBackendRequest req;
		req.mp_peer = this;
		req.mp_extra = (void *)(ptrdiff_t)operation_id;
		req.type = EPersistRequestType


DE!(IOCTL_CHANGER_BASE, 0x000B,
    METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
pub const IOCTL_SERIAL_LSRMST_INSERT: DWORD = CTL_CODE!(FILE_DEVICE_SERIAL_PORT, 31,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const IOCTL_SERENUM_EXPOSE_HARDWARE: DWORD = CTL_CODE!(FILE_DEVICE_SERENUM, 128,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const IOCTL_SERENUM_REMOVE_HARDWARE: DWORD = CTL_CODE!(FILE_DEVICE_SERENUM, 129,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const IOCTL_SERENUM_PORT_DESC: DWORD = CTL_CODE!(FILE_DEVICE_SERENUM, 130,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const IOCTL_SERENUM_GET_PORT_NAME: DWORD = CTL_CODE!(FILE_DEVICE_SERENUM, 131,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
//9717
pub const FSCTL_REQUEST_OPLOCK_LEVEL_1: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 0,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const FSCTL_REQUEST_OPLOCK_LEVEL_2: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 1,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const FSCTL_REQUEST_BATCH_OPLOCK: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 2,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const FSCTL_OPLOCK_BREAK_ACKNOWLEDGE: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 3,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const FSCTL_OPBATCH_ACK_CLOSE_PENDING: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 4,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const FSCTL_OPLOCK_BREAK_NOTIFY: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 5,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const FSCTL_LOCK_VOLUME: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED,
    FILE_ANY_ACCESS);
pub const FSCTL_UNLOCK_VOLUME: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED,
    FILE_ANY_ACCESS);
pub const FSCTL_DISMOUNT_VOLUME: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED,
    FILE_ANY_ACCESS);
pub const FSCTL_IS_VOLUME_MOUNTED: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 10,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const FSCTL_IS_PATHNAME_VALID: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 11,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const FSCTL_MARK_VOLUME_DIRTY: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 12,
    METHOD_BUFFERED, FILE_ANY_ACCESS);
pub const FSCTL_QUERY_RETRIEVAL_POINTERS: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 14,
    METHOD_NEITHER, FILE_ANY_ACCESS);
pub const FSCTL_GET_COMPRESSION: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED,
    FILE_ANY_ACCESS);
pub const FSCTL_SET_COMPRESSION: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED,
    FILE_READ_DATA | FILE_WRITE_DATA);
pub const FSCTL_SET_BOOTLOADER_ACCESSED: DWORD = CTL_CODE!(FILE_DEVICE_FILE_SYSTEM, 19,
    METHOD_NE


e = `${min}-${max}`;
    } else if (rule.includes('/')) {
        const parts = rule.split('/');
        if (parts[0] === '*') parts[0] = min.toString();
        let start = parseInt(parts[0], 10);
        const increment = parseInt(parts[1], 10);
        newRule = '';
        while (start <= max) {
            newRule += `,${start}`;
            start += increment;
        }
        newRule = newRule.substring(1);
    } else {
        newRule = rule;
    }

    const allows: number[] = [];
    newRule.split(',').forEach((s) => {
        if (s.includes('-')) {
            const parts = s.split('-');
            const start = parseInt(parts[0], 10);
            const end = parseInt(parts[1], 10);
            for (let i = start; i <= end; i += 1) allows.push(i);
        } else {
            allows.push(parseInt(s, 10));
        }
    });
    return allows;
};

const replace = (s: string, rules: string[][]) => {
    let rs = s.toUpperCase();
    rules.forEach(([from, to]) => {
        rs = rs.replace(from, to);
    });
    return rs;
};

const monthReplaces = [
    ['JAN', '1'],
    ['FEB', '2'],
    ['MAR', '3'],
    ['APR', '4'],
    ['MAY', '5'],
    ['JUN', '6'],
    ['JUL', '7'],
    ['AUG', '8'],
    ['SEP', '9'],
    ['OCT', '10'],
    ['NOV', '11'],
    ['DEC', '12'],
];

const dayWeekReplaces = [
    ['SUN', '1'],
    ['MON', '2'],
    ['TUE', '3'],
    ['WED', '4'],
    ['THU', '5'],
    ['FRI', '6'],
    ['SAT', '7'],
];

export function parse(cron: string): ParsedCron {
    const rules = cron.split(' ');

    return {
        minutes: parseOneRule(rules[0], 0, 59),
        hours: parseOneRule(rules[1], 0, 23),
        daysOfMonth: parseOneRule(rules[2], 1, 31),
        months: parseOneRule(replace(rules[3], monthReplaces), 1, 12),
        daysOfWeek: parseOneRule(replace(rules[4], dayWeekReplaces), 1, 7),
        years: parseOneRule(rules[5], 1970, 2199),
    };
}
export class Map{
    Id: number;
    Terrain: Terrain[] = [];
    //features can be added later.

    //call the constructor to decide how to generate the map.
    constructor(genType: string){
        if (genType == "" || genType == "flat"){
            //flat: create a square with flat ground.
            for(let x = 0; x < 32; x++){
                for (let y= 0; y <16; y++){
                    if (x == 0 || y == 0 || x == 31 || y == 15){
                        this.Terrain.push(new Terrain(x,y,1));
                    } else {
                        this.Terrain.push(new Terrain(x,y,0));
                    }
                }
            }
        }
    }

    //check for walls. If there is wall collision, that's a no go.
    public checkPos(x : number, y: number) : boolean {
        return (this.Terrain.find(z => z.X == x && z.Y == y && z.Terrain == 0) != null);
    }
}

export class Terrain{
    X:number;
    Y:number;
    Terrain:number; //0 is floor, 1 is solid.

    constructor(x: number, y: number, terrain: number){
        this.X = x;
        this.Y = y;
        this.Terrain = terrain;
    }
}import { db } from 'config/firebase';
// import { getSchedulesRequest } from 'api/requests';
import { Schedule } from '../schedule/reducer';

/**


using System.Collections.Generic;
using DataTool.DataModels.Hero;
using DataTool.Flag;
using DataTool.Helper;
using DataTool.JSON;
using TankLib;
using static DataTool.Program;

namespace DataTool.ToolLogic.List;

[Tool("list-abilities", Description = "List abilities", CustomFlags = typeof(ListFlags))]
public class ListAbilities : JSONTool, ITool {
    public void Parse(ICLIFlags toolFlags) {
        var flags = (ListFlags) toolFlags;
        var data = GetData();

        if (flags.JSON) {
            OutputJSON(data, flags);
            return;
        }

        IndentHelper indentLevel = new IndentHelper();
        foreach (var loadout in data) {
            Log($"{indentLevel}{loadout.Value.


operty: opacity;
        transition-duration: 1s;
        transition-delay: 1s;
        }
/*
   The tooltip body - as we position it above the slider and position the tooltip arrow
   below it, we need to know the height of the body. This means that multi-line tooltips
   are not supported.

   To support multi-line tooltips, you will need to position the tooltip below the slider
   and the tooltip pointer above the tooltip body. Additionally, you will have to set the
   tooltip bodies "height" to auto
*/
.fd-slider-focused .fd-slider-handle:before,
.fd-slider-hover   .fd-slider-handle:before,
.fd-slider-active  .fd-slider-handle:before
        {
        display:block;
        position:absolute;
        top:-21px;
        left:-8px;
        margin:0;
        width:20px;
        padding:3px;
        height:14px;
        line-height:12px;
        text-align: center;
        font-size:10px;
        font-weight: bold;
        color:#fff;
        text-shadow: 1px 1px 1px #1a3a95;
        background:#2f6ee0;
        z-index:1;
        /* Use the ARIA valuetext property, set by the script, to generate the tooltip content */
        content:attr(aria-valuetext);
        /* Border radius and box shadow */
        -moz-border-radius:3px;
        -webkit-border-radius:3px;
        border-radius:3px;
        -moz-background-clip: padding;
        -webkit-background-clip: padding-box;
        background-clip: padding-box;
        -moz-box-shadow: 0 0 4px #aaa;
        -webkit-box-shadow: 0 0 4px #aaa;
        box-shadow: 0px 0px 4px #999;
        /* Change opacity for transition */
        opacity: 1;
        }
/* The tooltip pointer */
.fd-slider-focused .fd-slider-handle:after,
.fd-slider-hover   .fd-slider-handle:after,
.fd-slider-active  .fd-slider-handle:after
        {
        outline:none;
        content:"";
        display:block;
        position:absolute;
        top:-9px;
        left:50%;
        margin:0 0 0 -5px;
        background:#2f6ee0;
        z-index:2;
        width:10px;
        height:10px;
        overflow:hidden;
        /* Rotate element by 45 degress to get the "\/" pointer effect */
        -webkit-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -o-transform: rotate(45deg);
        /* Add a box shadow */
        -moz-box-shadow: 0 0 4px #aaa;
        -webkit-box-shadow: 0 0 4px #aaa;
        box-shadow: 0 0 4px #aaa;
        /* Clip */
        clip:rect(4px, 14px, 14px, 4px);
        /* Change opacity for transition */
        opacity: 1;
        }
/* Remove completely for IE */
.oldie .fd-slider-handle:before,
.oldie .fd-slider-handle:after
        {
        display:none;
        }      table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-


class Student:
    # 类属性：定义在类中，方法外的变量
    school='北京XXX教育'

    #初始方法
    def __init__(self,xm,age): #xm，age是方法的参数，是局部变量，xm，age的作用域是整个__init__方法
        self.name=xm #=左侧是实例属性，xm是局部变量，将局部变量的值xm赋值给实例属性self.name
        self.age=age #实例的名称和局部变量的名称可以相同

    #定义在类中的函数，称为方法，自带一个参数self
    def show(self):
        print(f'我叫：{self.name}, 今年{self.age}岁了')

#根据"图纸"可以创建N多个对象
stu1=Student('ysj',18)
stu2=Student('cmm',21)
print(stu1.name,stu1.age)
print(stu2.name,stu2.age)

#为stu2动态绑定一个实例属性
stu2.gender='男'
print(stu2.name,stu2.age,stu2.gender)

#print(stu1.gender)#AttributeError: 'Student' object has no attribute 'gender'

#动态绑定方法
def introduce():
    print('我是一个普通的函数，我被动态绑定完成了stu2对象的方法')
stu2.fun=introduce #函数的一个赋值
#fun就是stu2对象的方法
#调用
stu2.fun()


        assert_eq!(structure, deserialized);
    }
    #[test]
    fn serialize_works_for_pair() {
        let point_g1 = PointG1 {
            point: PointG1::from_string("1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0").unwrap().point
        };
        let point_g2 = PointG2 {
            point: PointG2::from_string("0 53104BD1A92BE9 4CBF937B44DAA 1D191B0496A14B 276529199F4D1B 4A996C2 3B2712E2EC37FF CF7C4390E8071C EF8C973AD5EDAA 547DD84375861 169CBAC9 5224321CF032B7 B9D2063515A045 9833D500F6EEBE DB9D00AED36ED2 7916166 22D7513761F614 4CD0E53D855FC3 950F3C38908717 A0261AC49D33A0 1B221531 A96F211585EDB F2942F28DB526F 2FF74229029FCD F4EABE779E75E4 3C3FED4 0 0 0 0 0").unwrap().point
        };
        let pair = TestPairStructure {
            field: Pair::pair(&point_g1, &point_g2).unwrap()
        };
        let str = r#"{"field":"70CC65D2371808 FD4F75244E5B72 40359FC95F7204 FA308613F34F1D 551BB55FA 7CB294CCE69B4A AE3C7228995A41 F27CD79430990 DE04BB58428296 5303A03BD 7FFA8A31C72E82 A8E1AA2E51D4B2 87B33F735B7ADF 19EADA0B95227E 392C800DC 74571A20806B80 ABDB72819D0A70 D4B1EDF5A54E6F FAF8EA4B2EFC2D 3CE6F2507 1EF2EE10541C8A 7C8B52D128C803 9D4A4954550B73 922CD02BD9DA10 AF8000002 1EF2EE10541C8A 7C8B52D128C803 9D4A4954550B73 922CD02BD9DA10 AF8000002 1EF2EE10541C8A 7C8B52D128C803 9D4A4954550B73 922CD02BD9DA10 AF8000002 1EF2EE10541C8A 7C8B52D128C803 9D4A4954550B73 922CD02BD9DA10 AF8000002 5543B5BF0C1826 69623262363316 E78DA0826F5875 2CEAD78790F397 948000002 5543B5BF0C1826 69623262363316 E78DA0826F5875 2CEAD78790F397 948000002 5543B5BF0C1826 69623262363316 E78DA0826F5875 2CEAD78790F397 948000002 5543B5BF0C1826 69623262363316 E78DA0826F5875 2CEAD78790F397 948000002"}"#;
        let serialized = serde_json::to_string(&pair).unwrap();

        assert_eq!(str, serialized);
    }

    #[test]
    fn deserialize_works_for_pair() {
        let point_g1 = PointG1 {
            point: PointG1::from_string("1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0").unwrap().point
        };
        let point_g2 = PointG2 {
            point: PointG2::from_string("0 53104BD1A92BE9 4CBF937B44DAA 1D191B0496A14B 276529199F4D1B 4A996C2 3B2712E2EC37FF CF7C4390E8071C EF8C973AD5EDAA 547DD84375861 169CBAC9 5224321CF032B7 B9D2063515A045 9833D500F6EEBE DB9D00AED36ED


 CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 **/
:root{--red-ui-primary-font: Helvetica Neue, Arial, Helvetica, sans-serif;--red-ui-primary-font-size: 14px;--red-ui-monospace-font: Menlo, Consolas, DejaVu Sans Mono, Courier, monospace;--red-ui-primary-background: #f3f3f3;--red-ui-secondary-background: #fff;--red-ui-secondary-background-selected: #efefef;--red-ui-secondary-background-inactive: #f0f0f0;--red-ui-secondary-background-hover: #e6e6e6;--red-ui-secondary-background-disabled: #f9f9f9;--red-ui-tertiary-background: #f7f7f7;--red-ui-shadow: rgba(0, 0, 0, 0.2);--red-ui-primary-text-color: #555;--red-ui-secondary-text-color: #888;--red-ui-secondary-text-color-focus: #666;--red-ui-secondary-text-color-hover: #666;--red-ui-secondary-text-color-active: #666;--red-ui-secondary-text-color-selected: #666;--red-ui-secondary-text-color-inactive: #666;--red-ui-secondary-text-color-disabled: #bbb;--red-ui-secondary-text-color-disabled-active: #999;--red-ui-secondary-text-color-disabled-inactive: #aaa;--red-ui-tertiary-text-color: #aaa;--red-ui-header-text-color: #444;--red-ui-text-color-error: #AD1625;--red-ui-text-color-warning: #CAB200;--red-ui-text-color-success: #3a3;--red-ui-text-color-code: #AD1625;--red-ui-text-color-link: #0088cc;--red-ui-primary-border-color: #bbbbbb;--red-ui-secondary-border-color: #dddddd;--red-ui-tertiary-border-color: #ccc;--red-ui-border-color-error: #DF2935;--red-ui-border-color-warning: #FFCF70;--red-ui-border-color-success: #4B8400;--red-ui-form-background: #fff;--red-ui-form-placeholder-color: #aaa;--red-ui-form-text-color: #555;--red-ui-form-text-color-disabled: #bbb;--red-ui-form-input-border-color: #ccc;--red-ui-form-input-border-color-focus: rgba(85, 150, 230, 0.8);--red-ui-form-input-border-color-selected: #aaa;--red-ui-form-input-border-color-error: #d6615f;--red-ui-form-input-background: #fff;--red-ui-form-input-background-disabled: #f9f9f9;--red-ui-form-button-background: #efefef;--red-ui-form-tips-background: #ffe;--red-ui-list-item-color: #555;--red-ui-list-item-secondary-color: #888;--red-ui-list-item-background: #fff;--red-ui-list-item-background-disabled: #f0f0f0;--red-ui-list-item-background-hover: #e6e6e6;--red-ui-list-item-background-selected: #ffebc7;--red-ui-list-item-border-selected: #666;--red-ui-shade-color: rgba(160, 160, 160, 0.5);--red-ui-node-link-port-background: #eee;--red-ui-node-stat


".val.toLowerCase() < " c2 ".val.toLowerCase()")))
*/
var sc_isCharCILess = sc_isCharStringCILess;
/*** META ((export char-ci>?)
           (type bool)
           (peephole (hole 2 c1 ".val.toLowerCase() > " c2 ".val.toLowerCase()")))
*/
var sc_isCharCIGreater = sc_isCharStringCIGreater;
/*** META ((export char-ci<=?)
           (type bool)
           (peephole (hole 2 c1 ".val.toLowerCase() <= " c2 ".val.toLowerCase()")))
*/
var sc_isCharCILessEqual = sc_isCharStringCILessEqual;
/*** META ((export char-ci>=?)
           (type bool)
           (peephole (hole 2 c1 ".val.toLowerCase() >= " c2 ".val.toLowerCase()")))
*/
var sc_isCharCIGreaterEqual = sc_isCharStringCIGreaterEqual;

var SC_NUMBER_CLASS = "0123456789";
var SC_WHITESPACE_CLASS = ' \r\n\t\f';
var SC_LOWER_CLASS = 'abcdefghijklmnopqrstuvwxyz';
var SC_UPPER_CLASS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

function sc_isCharOfClass(c, cl) { return (cl.indexOf(c) != -1); }
/*** META ((export #t)
           (type bool))
*/
function sc_isCharAlphabetic(c)
    { return sc_isCharOfClass(c.val, SC_LOWER_CLASS) ||
	  sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
/*** META ((export #t)
           (type bool)
           (peephole (hole 1 "SC_NUMBER_CLASS.indexOf(" c ".val) != -1")))
*/
function sc_isCharNumeric(c)
    { return sc_isCharOfClass(c.val, SC_NUMBER_CLASS); }
/*** META ((export #t)
           (type bool))
*/
function sc_isCharWhitespace(c) {
    var tmp = c.val;
    return tmp === " " || tmp === "\r" || tmp === "\n" || tmp === "\t" || tmp === "\f";
}
/*** META ((export #t)
           (type bool)
           (peephole (hole 1 "SC_UPPER_CLASS.indexOf(" c ".val) != -1")))
*/
function sc_isCharUpperCase(c)
    { return sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
/*** META ((export #t)
           (type bool)
           (peephole (hole 1 "SC_LOWER_CLASS.indexOf(" c ".val) != -1")))
*/
function sc_isCharLowerCase(c)
    { return sc_isCharOfClass(c.val, SC_LOWER_CLASS); }

/*** META ((export #t)
           (peephole (postfix ".val.charCodeAt(0)")))
*/
function sc_char2integer(c)
    { return c.val.charCodeAt(0); }
/*** META ((export #t)
           (peephole (hole 1 "new sc_Char(String.fromCharCode(" n "))")))
*/
function sc_integer2char(n)
    { return new sc_Char(String.fromCharCode(n)); }

/*** META ((export #t)
           (peephole (hole 1 "new sc_Char(" c ".val.toUpperCase())")))
*/
function sc_charUpcase(c)
    { return new sc_Char(c.val.toUpperCase()); }
/*** META ((export #t)
           (peephole (hole 1 "new sc_Char(" c ".val.toLowerCase())")))
*/
function sc_charDowncase(c)
    { return new sc_Char(c.val.


ManagementApi(nil)
		ctx.Req.NotNil(managementApiClient)

		adminCreds := edge_apis.NewUpdbCredentials(ctx.AdminAuthenticator.Username, ctx.AdminAuthenticator.Password)
		adminManApiSession, err := managementApiClient.Authenticate(adminCreds, nil)
		ctx.Req.NoError(err)
		ctx.Req.NotNil(adminManApiSession)

		newIdentityLoc, err := managementApiClient.CreateIdentity(eid.New(), false)
		ctx.Req.NoError(err)
		ctx.Req.NotNil(newIdentityLoc)
		ctx.Req.NotEmpty(newIdentityLoc.ID)

		newIdentity, err := managementApiClient.GetIdentity(newIdentityLoc.ID)
		ctx.Req.NoError(err)
		ctx.Req.NotNil(newIdentity)

		newEnrollmentLoc, err := managementApiClient.CreateEnrollmentOtt(newIdentity.ID, nil)
		ctx.Req.Error(err)
		ctx.Req.Nil(newEnrollmentLoc)
	})

	t.Run("can create an OTTCA enrollment", func(t *testing.T) {
		ctx.testContextChanged(t)

		managementApiClient := ctx.NewEdgeManagementApi(nil)
		ctx.Req.NotNil(managementApiClient)

		adminCreds := edge_apis.NewUpdbCredentials(ctx.AdminAuthenticator.Username, ctx.AdminAuthenticator.Password)
		adminManApiSession, err := managementApiClient.Authenticate(adminCreds, nil)
		ctx.Req.NoError(err)
		ctx.Req.NotNil(adminManApiSession)

		newIdentityLoc, err := managementApiClient.CreateIdentity(eid.New(), false)
		ctx.Req.NoError(err)
		ctx.Req.NotNil(newIdentityLoc)
		ctx.Req.NotEmpty(newIdentityLoc.ID)

		newIdentity, err := managementApiClient.GetIdentity(newIdentityLoc.ID)
		ctx.Req.NoError(err)
		ctx.Req.NotNil(newIdentity)

		testCa := newTestCa()

		newCaLoc, err := managementApiClient.CreateCa(testCa)
		ctx.Req.NoError(err)
		ctx.Req.NotNil(newCaLoc)
		ctx.Req.NotEmpty(newCaLoc.ID)

		newCa, err := managementApiClient.GetCa(newCaLoc.ID)
		ctx.NoError(err)
		ctx.NotNil(newCa)
		ctx.NotEmpty(newCa.VerificationToken)

		err = managementApiClient.VerifyCa(*newCa.ID, newCa.VerificationToken.String(), testCa.publicCert, testCa.privateKey)
		ctx.Req.NoError(err)

		newEnrollmentExpiresAt := time.Now().Add(10 * time.Minute).UTC()
		newEnrollmentLoc, err := managementApiClient.CreateEnrollmentOttCa(newIdentity.ID, newCa.ID, &newEnrollmentExpiresAt)
		ctx.Req.NoError(err)
		ctx.Req.NotNil(newEnrollmentLoc)

		newEnrollment, err := managementApiClient.GetEnrollment(newEnrollmentLoc.ID)
		ctx.NoError(err)
		ctx.NotNil(newEnrollment)

		t.Run("enrollment has the proper values", func(t *testing.T) {
			ctx.testContextChanged(t)

			ctx.NotNil(newEnrollment.ID)
			ctx.NotNil(newEnrollment.Method)
			ctx.NotNil(newEnrollment.ExpiresAt)
			ctx.NotNil(newEnrollment.Identity)
			ctx.NotNil(newEnrollment.Token)
			ctx.NotNil(newEnrollment.CaID)
			ctx.NotEmpty(*newEnrollment.Token)
			ctx.NotEmpty(newEnrollment.IdentityID)
			ctx.NotEmpty(newEnrollment.JWT)

			ctx.Equal(rest_model.EnrollmentCreateMethodOttca, *newEnrollment.Method)

			//API time da


# Form implementation generated from reading ui file 'hata.ui'
#
# Created by: PyQt6 UI code generator 6.7.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again.  Do not edit this file unless you know what you are doing.

from PyQt6 import QtCore, QtGui, QtWidgets

class Ui_hata(object):
    def setupUi(self, hata):
        hata.setObjectName("hata")
        hata.resize(615, 246)
        hata.setStyleSheet("background-color: rgb(37, 38, 39);")
        hata.setWindowIcon(QtGui.QIcon("data/icon.ico"))
        self.gridLayout = QtWidgets.QGridLayout(hata)
        self.gridLayout.setObjectName("gridLayout")
        self.frame = QtWidgets.QFrame(parent=hata)
        self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
        self.frame.setObjectName("frame")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.frame)
        self.verticalLayout.setContentsMargins(100, -1, 100, -1)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label_2 = QtWidgets.QLabel(parent=self.frame)
        self.label_2.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.verticalLayout.addWidget(self.label_2)
        self.gridLayout.addWidget(self.frame, 2, 0, 1, 2)
        self.label = QtWidgets.QLabel(parent=hata)
        font = QtGui.QFont()
        font.setFamily("Segoe Script")
        font.setPointSize(22)
        self.label.setFont(font)
        self.label.setStyleSheet("color: rgb(191, 180, 143);")
        self.label.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 0, 1, 2)
        spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridLayout.addItem(spacerItem, 1, 0, 1, 1)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridLayout.addItem(spacerItem1, 3, 0, 1, 1)
        spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridLayout.addItem(spacerItem2, 5, 0, 1, 1)
        self.widget_2 = QtWidgets.QWidget(parent=hata)
        self.widget_2.setObjectName("widget_2")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget_2)
        self.verticalLayout_2.setContentsMargins(200, -1, 200, -1)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.ButtonKapat = QtWidgets.QPushButton(parent=self.widget_2)
        self.ButtonKapat.setStyleSheet("background-color: rgb(242, 239, 233);")
        self.ButtonKapat.setObjectName("ButtonKapat")
        self.verticalLayout_2.addWidget(self.ButtonKapat)
        self.gridLayout.addWidget(self.widget_2, 4, 0, 1, 2)

        self.retranslateUi(hata)
        QtCore.QMetaObject.connectSlotsByName(hata)

    def retranslateUi(self, hata):
        _translate = QtCore.QCoreApplication.translate
        hata.setWindowTitle(_translate("hata", "Sözlük App"))
        self.label_2.setText(_translate("hata", "1234erytuyjghfds"))
        self.label.setText(_translate("hata", "HATA"))
        self.ButtonKapat.setText(_translate("hata", "Tamam"))

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    hata = QtWidgets.QWidget()
    ui = Ui_hata()
    ui.setupUi(hata)
    hata.show()
    sys.exit(app.exec())


esp)
	call	_printf
	movl	$0, _barc-L7$pb(%esi)
	leal	_barc-L7$pb(%esi), %ecx
	movl	%ecx, (%esp)
	call	_bar3_const
	imull	$100, %eax, %eax
	movl	%eax, 4(%esp)
	leal	L_.str6-L7$pb(%esi), %eax
	movl	%eax, (%esp)
	call	_printf
	movl	$0, _barc-L7$pb(%esi)
	xorl	%eax, %eax
	addl	$12, %esp
	popl	%esi
	popl	%edi
	popl	%ebx
	popl	%ebp
	ret

	.globl	_barc
.zerofill __DATA,__common,_barc,4,2
	.section	__TEXT,__cstring,cstring_literals
L_.str:
	.asciz	 "foo_pure = %i\n"

L_.str1:
	.asciz	 "bar_pure = %i\n"

L_.str2:
	.asciz	 "foo_const = %i\n"

L_.str3:
	.asciz	 "bar_const = %i\n"

	.align	4
L_.str4:
	.asciz	 "bar2_const = %i\n"

L_.str5:
	.asciz	 "bar2_pure = %i\n"

	.align	4
L_.str6:
	.asciz	 "bar3_const = %i\n"

.subsections_via_symbols


ttps://discord.gg/977kMmFnXc) and let us know your results.

If you have the flexibility or are starting a new project, make sure your release names follows these rules:

- Ends in `.zip`, `.tgz`, `.tar.gz`, `.bz2`
- Include the version ([semver](https://semver.org) recommended)
- Include the platform (`freebsd`, `darwin`, `linux`, `win32`)
- Include the architecture (`arm64`, `x64`, `ia32`, `arm`)

Note: [GoReleaser](https://goreleaser.com/) is a great option if you're publish a Go-based project.

## Contributing

We could use help testing and making sure this works across lots of platforms.

To test a build locally:

```bash
pnpm test
```

## All known releases

`gobot-ollama` versions mirror `ollama` versions. Gobot knows about 53 releases of `ollama`:

| Version | darwin    | linux     |
| ------- | --------- | --------- |
| 0.1.31  | arm64/x64 | arm64/x64 |
| 0.1.30  | arm64/x64 | arm64/x64 |
| 0.1.29  | arm64/x64 | arm64/x64 |
| 0.1.28  | arm64/x64 | arm64/x64 |
| 0.1.27  | arm64/x64 | arm64/x64 |
| 0.1.26  | arm64/x64 | arm64/x64 |
| 0.1.25  | arm64/x64 | arm64/x64 |
| 0.1.24  | arm64/x64 | arm64/x64 |
| 0.1.23  | arm64/x64 | arm64/x64 |
| 0.1.22  | arm64/x64 | arm64/x64 |
| 0.1.21  | arm64/x64 | arm64/x64 |
| 0.1.20  | arm64/x64 | arm64/x64 |
| 0.1.19  | arm64/x64 | arm64/x64 |
| 0.1.18  | arm64/x64 | arm64/x64 |
| 0.1.17  | arm64/x64 | arm64/x64 |
| 0.1.16  | arm64/x64 | arm64/x64 |
| 0.1.15  | arm64/x64 | arm64/x64 |
| 0.1.14  | arm64/x64 | arm64/x64 |
| 0.1.13  | arm64/x64 | arm64/x64 |
| 0.1.12  | arm64/x64 | arm64/x64 |
| 0.1.11  | arm64/x64 | arm64/x64 |
| 0.1.10  | arm64/x64 | arm64/x64 |
| 0.1.9   | arm64/x64 | arm64/x64 |
| 0.1.8   | arm64/x64 | arm64/x64 |
| 0.1.7   | arm64/x64 | arm64/x64 |
| 0.1.6   | arm64/x64 | arm64/x64 |
| 0.1.5   | arm64/x64 | arm64/x64 |
| 0.1.4   | arm64/x64 | arm64/x64 |
| 0.1.3   | arm64/x64 | arm64/x64 |
| 0.1.2   | arm64/x64 | arm64/x64 |
| 0.1.1   | arm64/x64 | arm64/x64 |
| 0.1.0   | arm64/x64 | arm64/x64 |
| 0.0.21  | arm64/x64 |           |
| 0.0.20  | arm64/x64 |           |
| 0.0.19  | arm64/x64 |           |
| 0.0.18  | arm64/x64 |           |
| 0.0.17  | arm64/x64 |           |
| 0.0.16  | arm64/x64 |           |
| 0.0.15  | arm64/x64 |           |
| 0.0.14  | arm64/x64 |           |
| 0.0.13  | arm64/x64 |           |
| 0.0.12  | arm64/x64 |           |
| 0.0.11  | arm64/x64 |           |
| 0.0.10  | arm64/x64 |           |
| 0.0.9   | arm64/x64 |           |
| 0.0.8   | arm64/x64 |           |
| 0.0.7   | arm64/x64 |           |
| 0.0.6   | arm64/x64 |           |
| 0.0.5   | arm64/x64 |           |
| 0.0.4   | arm64/x64 |           |
| 0.0.3   | arm64/x64 |           |
| 0.0.2   | arm64/x64 |           |
| 0.0.1   | arm64/x64 |           |
![Gobot](https://raw.githubusercontent


 ', '');
    var issuerMap = <RegExp, CardIssuer>{
      mastercard: CardIssuer.mastercard,
      visa: CardIssuer.visa,
      amex: CardIssuer.amex,
      bCGlobal: CardIssuer.bCGlobal,
      carteBlanc: CardIssuer.carteBlanche,
      dinersClub: CardIssuer.dinersClub,
      discover: CardIssuer.discover,
      instaPayment: CardIssuer.instaPayment,
      jCB: CardIssuer.jcb,
      koreanLocalCard: CardIssuer.koreanLocal,
      maestro: CardIssuer.maestro,
      solo: CardIssuer.solo,
      unionPay: CardIssuer.unionPay,
      unknown: CardIssuer.unknown
    };

    var matchingRegex = <RegExp>[
      mastercard,
      visa,
      amex,
      dinersClub,
      maestro,
      jCB,
      discover,
      bCGlobal,
      carteBlanc,
      instaPayment,
      solo,
      unionPay,
      koreanLocalCard,
      unknown,
    ].firstWhere((element) => element.hasMatch(cardNumber));

    return issuerMap[matchingRegex]!;
  }
}
import 'dart:ui';

import 'package:flutter/cupertino.dart';
import 'package:touchable/src/shapes/circle.dart';
import 'package:touchable/src/shapes/line.dart';
import 'package:touchable/src/shapes/shape.dart';
import 'package:touchable/src/types/types.dart';

class Point extends Shape {
  final PointMode pointMode;

  final List<Offset> points;

  Point(this.pointMode, this.points,
      {Map<GestureType, Function>? gestureMap,
      Paint? paint,
      HitTestBehavior? hitTestBehavior,
      PaintingStyle? paintStyleForTouch})
      : super(hitTestBehavior: hitTestBehavior, paint: paint ?? Paint(), gestureCallbackMap: gestureMap ?? {});

  @override
  bool isInside(Offset p) {
    switch (pointMode) {
      case PointMode.points:
        for (Offset point in points) {
          if (_checkPointLiesInsideAnotherPoint(point, p)) return true;
        }
        return false;
      case PointMode.lines:
        for (int i = 0; i < points.length; i += 2) {
          if (i + 1 >= points.length) return false;
          if (Line(points[i], points[i + 1], paint: paint).isInside(p)) {
            return true;
          }
        }
        return false;
      case PointMode.polygon:
        for (int i = 1; i < points.length; i += 1) {
          if (Line(points[i - 1], points[i], paint: paint).isInside(p)) {
            return true;
          }
        }
        return false;
      default:
        return false;
    }
  }

  bool _checkPointLiesInsideAnotherPoint(Offset point, Offset queryPoint) {
    if (point == queryPoint) return true;
    var extraWidth = paint.strokeWidth / 2;
    if (paint.strokeCap == StrokeCap.round) {
      return Circle(center: point, radius: extraWidth).isInside(queryPoint);
    } else {
      return Rect.fromCenter(center: point, width: extraWidth * 2, height: extraWidth * 2).contains(queryPoint);
    }
  }
}

class PolygonUtil {
  static int _direction(Offset a, Offset b, Offset c) {
    double val = (b.dy - a.dy) * (c.dx - b.dx) - (b.dx - a.dx) * (c.dy - b.dy);
    if (val == 0) {
      return 0;
    } else if (val < 0) {
      return 2;
    } //anti-clockwise direction
    return 1; //cloc


    "がっさん",
    "がっしょう",
    "かなざわし",
    "かのう",
    "がはく",
    "かぶか",
    "かほう",
    "かほご",
    "かまう",
    "かまぼこ",
    "かめれおん",
    "かゆい",
    "かようび",
    "からい",
    "かるい",
    "かろう",
    "かわく",
    "かわら",
    "がんか",
    "かんけい",
    "かんこう",
    "かんしゃ",
    "かんそう",
    "かんたん",
    "かんち",
    "がんばる",
    "きあい",
    "きあつ",
    "きいろ",
    "ぎいん",
    "きうい",
    "きうん",
    "きえる",
    "きおう",
    "きおく",
    "きおち",
    "きおん",
    "きかい",
    "きかく",
    "きかんしゃ",
    "ききて",
    "きくばり",
    "きくらげ",
    "きけんせい",
    "きこう",
    "きこえる",
    "きこく",
    "きさい",
    "きさく",
    "きさま",
    "きさらぎ",
    "ぎじかがく",
    "ぎしき",
    "ぎじたいけん",
    "ぎじにってい",
    "ぎじゅつしゃ",
    "きすう",
    "きせい",
    "きせき",
    "きせつ",
    "きそう",
    "きぞく",
    "きぞん",
    "きたえる",
    "きちょう",
    "きつえん",
    "ぎっちり",
    "きつつき",
    "きつね",
    "きてい",
    "きどう",
    "きどく",
    "きない",
    "きなが",
    "きなこ",
    "きぬごし",
    "きねん",
    "きのう",
    "きのした",
    "きはく",
    "きびしい",
    "きひん",
    "きふく",
    "きぶん",
    "きぼう",
    "きほん",
    "きまる",
    "きみつ",
    "きむずかしい",
    "きめる",
    "きもだめし",
    "きもち",
    "きもの",
    "きゃく",
    "きやく",
    "ぎゅうにく",
    "きよう",
    "きょうりゅう",
    "きらい",
    "きらく",
    "きりん",
    "きれい",
    "きれつ",
    "きろく",
    "ぎろん",
    "きわめる",
    "ぎんいろ",
    "きんかくじ",
    "きんじょ",
    "きんようび",
    "ぐあい",
    "くいず",
    "くうかん",
    "くうき",
    "くうぐん",
    "くうこう",
    "ぐうせい",
    "くうそう",
    "ぐうたら",
    "くうふく",
    "くうぼ",
    "くかん",
    "くきょう",
    "くげん",
    "ぐこう",
    "くさい",
    "くさき",
    "くさばな",
    "くさる",
    "くしゃみ",


Requirement(northRoomF2);

		inCaveOrF0 = new ZoneRequirement(cave, templeF0);
		inTempleStairSquare = new ZoneRequirement(templeStairSquare);

		inBlueRoom = new ZoneRequirement(blueRoom);
		inYellowRoom = new ZoneRequirement(yellowRoom1, yellowRoom2);
		inCyanRoom = new ZoneRequirement(cyanRoom1, cyanRoom2);

		inNorthF2 = new ZoneRequirement(northTempleF2);
		inSouthF2 = new ZoneRequirement(southTempleF2);

		inCentralArea = new ZoneRequirement(centralArea);
		inDeathAltarArea = new ZoneRequirement(deathAltarArea);

		inPassF0 = new ZoneRequirement(passF0);
		inPassF1 = new ZoneRequirement(passF1);

		inIbanRoom = new ZoneRequirement(ibanRoom);
		inWellEntrance = new ZoneRequirement(wellEntrance);

		inBehindBarrierCentralArea = new ZoneRequirement(centralAreaBehindBarrier);

		inDeathAltar = new ZoneRequirement(deathAltar);

		dispenserEmpty = new VarbitRequirement(1106, 0);

		// 1108 yellow crystal in dispenser
		// 1107, blue crystal in dispenser

		usedRope = new VarbitRequirement(1328, 1);

		knowToUseCrystal = new VarbitRequirement(1104, 1);

		solvedPuzzle1 = new VarbitRequirement(1113, 1);
		solvedPuzzle2 = new VarbitRequirement(1114, 1);
		solvedPuzzle3 = new VarbitRequirement(1116, 1);
		solvedPuzzle4 = new VarbitRequirement(1115, 1);
		solvedPuzzle5 = new VarbitRequirement(1117, 1);

		enteredDeathArea = new VarbitRequirement(1330, 1);

		receivedList = new VarbitRequirement(1327, 1);

		final int RED = 1;
		final int YELLOW = 2;
		final int GREEN = 3;
		final int CYAN = 4;
		final int BLUE = 5;
		final int WHITE = 7;

		// Floor 0
		f0r3c4W = new VarbitRequirement(VarbitID.MOURNING_LIGHT_TEMPLE_1_6_7, WHITE);
		f0r3c3F = new Conditions(new VarbitRequirement(VarbitID.MOURNING_LIGHT_TEMPLE_1_6_11, WHITE), new VarbitRequirement(VarbitID.MOURNING_LIGHT_TEMPLE_1_3_6 , WHITE));
		f0r4c3U = new VarbitRequirement(VarbitID.MOURNING_LIGHT_TEMPLE_1_3_UP, WHITE);
		f0r1c3F = new Conditions(new VarbitRequirement(VarbitID.MOURNING_LIGHT_TEMPLE_1_11_12, WHITE), new VarbitRequirement(VarbitID.MOURNING_LIGHT_TEMPLE_1_10_11, WHITE));
		f0r1c2U = new VarbitRequirement(VarbitID.MOURNING_LIGHT_TEMPLE_2_10_UP, GREEN);
		f0r1c4U = new VarbitRequirement(VarbitID.MOURNING_LIGHT_TEMPLE_1_12_UP, WHITE);
		f0r4c0SB = new VarbitRequirement(VarbitID.MOURNING_LIGHT_TEMPLE_1_1_SOUTH, BLUE);
		f0r1c2SG = new VarbitRequirement(VarbitID.MOURNI


= conj(
        call_fresh(lambda a: eq(a, 7)),
        call_fresh(lambda b: disj(eq(b, 5), eq(b, 6)))
    )

    fives = lambda x: disj(
        eq(x, 5),
        lambda a_c: lambda: fives(x)(a_c)
    )

    appendo = lambda l, s, out: disj(
        conj(
            eq([], l),
            eq(s, out),
        ),
        call_fresh(
            lambda a: call_fresh(
                lambda d: conj(
                    eq((a, d), l),
                    call_fresh(
                        lambda res: conj(
                            eq((a, res), out),
                            lambda s_c: lambda: appendo(d, s, res)(s_c)
                        )
                    )
                )
            )
        )

    )

    # microKanren tests

    # second-set t1
    assert car(call_fresh(lambda q: eq(q, 5))(EMPTY_STATE)) == ({var(0): 5}, 1)

    # second-set t2
    assert cdr(call_fresh(lambda q: eq(q, 5))(EMPTY_STATE)) == ()

    # second-set t3
    assert car(a_and_b(EMPTY_STATE)) == ({var(0): 7, var(1): 5}, 2)

    # second-set t3, take
    assert take(1, a_and_b(EMPTY_STATE)) == (({var(0): 7, var(1): 5}, 2), ())

    # second-set t4
    assert car(cdr(a_and_b(EMPTY_STATE))) == ({var(0): 7, var(1): 6}, 2)

    # second-set t5
    assert cdr(cdr(a_and_b(EMPTY_STATE))) == ()

    # who cards
    assert take(1, call_fresh(lambda q: fives(q))(EMPTY_STATE)) == (({var(0): 5}, 1), ())

    # take 2 a-and-b stream
    assert take(2, a_and_b(EMPTY_STATE)) == (({var(0): 7, var(1): 5}, 2), (({var(0): 7, var(1): 6}, 2), ()))

    # take-all a-and-b stream
    assert take_all(a_and_b(EMPTY_STATE)) == (({var(0): 7, var(1): 5}, 2), (({var(0): 7, var(1): 6}, 2), ()))


map((x) => x.toMap())),
      };
}

class Media {
  Media({
    required this.mid,
    required this.type,
    required this.label,
    required this.ageMs,
  });

  String mid;
  String type;
  String label;
  int ageMs;

  Media copyWith({
    String? mid,
    String? type,
    String? label,
    int? ageMs,
  }) =>
      Media(
        mid: mid ?? this.mid,
        type: type ?? this.type,
        label: label ?? this.label,
        ageMs: ageMs ?? this.ageMs,
      );

  factory Media.fromMap(Map<String, dynamic> json) => Media(
        mid: json["mid"],
        type: json["type"],
        label: json["label"],
        ageMs: json["age_ms"],
      );

  Map<String, dynamic> toMap() => {
        "mid": mid,
        "type": type,
        "label": label,
        "age_ms": ageMs,
      };
}

class RemoteStream {
  late MediaStream video;
  RTCVideoRenderer videoRenderer = RTCVideoRenderer();
  MediaStream? mediaStream;
  String id;
  dynamic mid;

  Future<void> dispose() async {
    await stopAllTracks(video);
    await video.dispose();
    videoRenderer.srcObject = null;
    await videoRenderer.dispose();
  }

  RemoteStream(this.id);

  createVideo() async {
    video = await createLocalMediaStream('video_$id');
  }

  Future<void> init() async {
    await createVideo();
    await videoRenderer.initialize();
    videoRenderer.srcObject = video;
  }
}
/*
 * Diff Match and Patch
 *
 * Copyright 2011 Google Inc.
 * http://code.google.com/p/google-diff-match-patch/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

part of DiffMatchPatch;

/**
 * Class representing one patch operation.
 */
class Patch {
  List<Diff> diffs;
  int start1;
  int start2;
  int length1 = 0;
  int length2 = 0;

  /**
   * Constructor.  Initializes with an empty list of diffs.
   */
  Patch() {
    this.diffs = <Diff>[];
  }

  /**
   * Emmulate GNU diff's format.
   * Header: @@ -382,8 +481,9 @@
   * Indicies are printed as 1-based, not 0-based.
   * Returns the GNU diff string.
   */
  String toString() {
    String coords1, coords2;
    if (this.length1 == 0) {
      coords1 = '${this.start1},0';
    } else if (this.length1 == 1) {
      coords1 = (this.start1 + 1).toString();
    } else {
      coords1 = '${this.start1 + 1},${this.length1}';
    }
    if (this.length2 == 0) {
      coords2 = '${this.start2},0';
    } else if (this.length2 == 1) {
      coords2 = (this.start2 + 1).toString();
    } else {
      coords2 = '${this.start2 + 1},${this.length2}';
    }
    final text = new StringBuffer('@@ -$coords1 +$coords2 @@\n');
    // Escape the body of the patch with %xx notation.
    for (Diff aDiff in this.


SE_VALUE);

            ctx.writeAndFlush(new IMProtoMessage<>(resHeader, res));
        }
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.blt.talk.message.server.handler.IMGroupHandler#groupInfoReq(com.blt.talk.common.code.
     * IMHeader, com.google.protobuf.MessageLite, io.netty.channel.ChannelHandlerContext)
     */
    @Override
    public void groupInfoReq(IMHeader header, MessageLite body, ChannelHandlerContext ctx) {

        IMGroup.IMGroupInfoListReq req = (IMGroup.IMGroupInfoListReq) body;
        long userId = super.getUserId(ctx);

        try {

            Map<String, Integer> groupIdList = new HashMap<>();
            for (IMBaseDefine.GroupVersionInfo groupVersion : req.getGroupVersionListList()) {
                groupIdList.put(String.valueOf(groupVersion.getGroupId()), groupVersion.getVersion());
            }

            BaseModel<List<GroupEntity>> groupListRes = groupService.groupInfoList(groupIdList);

            if (groupListRes.getCode() != GroupCmdResult.SUCCESS.getCode()) {

                IMHeader resHeader = header.clone();
                resHeader.setCommandId((short) GroupCmdID.CID_GROUP_INFO_RESPONSE_VALUE);

                IMGroup.IMGroupInfoListRsp.Builder resBuilder = IMGroup.IMGroupInfoListRsp.newBuilder();
                resBuilder.setUserId(userId);
                ctx.writeAndFlush(new IMProtoMessage<>(resHeader, resBuilder.build()));
            } else {

                IMHeader resHeader = header.clone();
                resHeader.setCommandId((short) GroupCmdID.CID_GROUP_INFO_RESPONSE_VALUE);

                IMGroup.IMGroupInfoListRsp.Builder groupResBuilder = IMGroup.IMGroupInfoListRsp.newBuilder();
                groupResBuilder.setUserId(userId);
                if (groupListRes.getData() != null) {
                    List<IMBaseDefine.GroupInfo> groupInfoList = new ArrayList<>();
                    for (GroupEntity groupEntity : groupListRes.getData()) {
                        groupInfoList.add(JavaBean2ProtoBuf.getGroupInfo(groupEntity));
                    }
                    groupResBuilder.addAllGroupInfoList(groupInfoList);
                }
                IMGroup.IMGroupInfoListRsp groupRes = groupResBuilder.build();
                logger.debug("IMGroupInfoListRsp {}", groupRes);
                ctx.writeAndFlush(new IMProtoMessage<>(resHeader, groupRes));
            }
        } catch (Exception e) {

            logger.error("服务器端异常", e);
            IMHeader resHeader = header.clone();
            resHeader.setCommandId((short) GroupCmdID.CID_GROUP_INFO_RESPONSE_VALUE);

            IMGroup.IMGroupInfoListRsp.Builder resBuilder = IMGroup.IMGroupInfoListRsp.newBuilder();
            resBuilder.setUserId(userId);
            ctx.writeAndFlush(new IMProtoMessage<>(resHeader, resBuilder.build()));
        }
    }

    @Override
    public void groupShieldReq(IMHeader header, MessageLite body, ChannelHandlerContext ctx) {

        IMGroup.IMGroupShieldReq req = (IMGroup.IMGroupShieldReq) body;
        long userId = super.getUserId(ctx);

        try {

            // 设置群消息免打扰
            // BaseModel<Integer> groupShieldRes = groupService.getGroupPush(req.getGroupId(), req.getUserId());
            GroupPushReq groupPushReq = new GroupPushReq();
            groupPushReq.setGroupId(req.getGroupId());
            groupPushReq.setUserId(userId);
            groupPushReq.setShieldStatus(req.getShieldStatus());
            BaseModel<Integer> groupShieldRes = gro


 );
    }

    dim = &globals->dimension[1];
    if ( y_scale != dim->scale_mult  ||
         y_delta != dim->scale_delta )
    {
      dim->scale_mult  = y_scale;
      dim->scale_delta = y_delta;

      psh_globals_scale_widths( globals, 1 );
      psh_blues_scale_zones( &globals->blues, y_scale, y_delta );
    }
  }

  FT_LOCAL_DEF( void )
  psh_globals_funcs_init( PSH_Globals_FuncsRec*  funcs )
  {
    funcs->create    = psh_globals_new;
    funcs->set_scale = psh_globals_set_scale;
    funcs->destroy   = psh_globals_destroy;
  }

/* END */


)
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BadgeCreateRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComMasseelchElkInternalPetsEntHttp18(l, v)
}
func easyjsonC5a4559bDecodeGithubComMasseelchElkInternalPetsEntHttp19(in *jlexer.Lexer, out *Badge2492344257Views) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		in.Skip()
		*out = nil
	} else {
		in.Delim('[')
		if *out == nil {
			if !in.IsDelim(']') {
				*out = make(Badge2492344257Views, 0, 8)
			} else {
				*out = Badge2492344257Views{}
			}
		} else {
			*out = (*out)[:0]
		}
		for !in.IsDelim(']') {
			var v58 *Badge2492344257View
			if in.IsNull() {
				in.Skip()
				v58 = nil
			} else {
				if v58 == nil {
					v58 = new(Badge2492344257View)
				}
				(*v58).UnmarshalEasyJSON(in)
			}
			*out = append(*out, v58)
			in.WantComma()
		}
		in.Delim(']')
	}
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonC5a4559bEncodeGithubComMasseelchElkInternalPetsEntHttp19(out *jwriter.Writer, in Badge2492344257Views) {
	if in == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
		out.RawString("null")
	} else {
		out.RawByte('[')
		for v59, v60 := range in {
			if v59 > 0 {
				out.RawByte(',')
			}
			if v60 == nil {
				out.RawString("null")
			} else {
				(*v60).MarshalEasyJSON(out)
			}
		}
		out.RawByte(']')
	}
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v Badge2492344257Views) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonC5a4559bEncodeGithubComMasseelchElkInternalPetsEntHttp19(w, v)
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *Badge2492344257Views) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComMasseelchElkInternalPetsEntHttp19(l, v)
}
func easyjsonC5a4559bDecodeGithubComMasseelchElkInternalPetsEntHttp20(in *jlexer.Lexer, out *Badge2492344257View) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "id":
			out.ID = uint32(in.Uint32())
		case "color":
			out.Color = badge.Color(in.String())
		case "material":
			out.Material = badge.Material(in.String())
		default:
			in.AddError(&jlexer.LexerError{
				Offset: in.GetPos(),
				Reason: "unknown field",
				Data:   key,
			})
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonC5a4559


 be used for *synchronous* context
  switches only.  Therefore, it does not have to restore anything
  other than the PRESERVED state.  */

ENTRY(__setcontext)
	lr	%r1,%r2

	/* rt_sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL, sigsetsize).  */
	la      %r2,SIG_SETMASK
	la	%r3,SC_MASK(%r1)
	slr	%r4,%r4
	lhi	%r5,_NSIG8
	svc	SYS_ify(rt_sigprocmask)

	/* Load fpu context.  */
	lfpc	SC_FPC(%r1)
	ld	%f0,SC_FPRS(%r1)
	ld      %f1,SC_FPRS+8(%r1)
	ld      %f2,SC_FPRS+16(%r1)
	ld      %f3,SC_FPRS+24(%r1)
	ld      %f4,SC_FPRS+32(%r1)
	ld      %f5,SC_FPRS+40(%r1)
	ld      %f6,SC_FPRS+48(%r1)
	ld      %f7,SC_FPRS+56(%r1)
	ld      %f8,SC_FPRS+64(%r1)
	ld      %f9,SC_FPRS+72(%r1)
	ld      %f10,SC_FPRS+80(%r1)
	ld      %f11,SC_FPRS+88(%r1)
	ld      %f12,SC_FPRS+96(%r1)
	ld      %f13,SC_FPRS+104(%r1)
	ld      %f14,SC_FPRS+112(%r1)
	ld      %f15,SC_FPRS+120(%r1)

	/* Don't touch %a0, used for thread purposes.  */
	lam	%a1,%a15,SC_ACRS+4(%r1)

	/* Load general purpose registers.  */
	lm	%r0,%r15,SC_GPRS(%r1)

	/* Return.  */
	br	%r14
END(__setcontext)

weak_alias (__setcontext, setcontext)


');
    var div_elt     = $(row).find('[name="second_row"]');

    if ($(div_elt).data('loaded') == 1) {
      return;
    }
    var data = $('#reclamation_form').serializeArray();
    data.push({ name: 'action',     value: 'Reclamation/load_second_rows' },
              { name: 'item_ids[]', value: item_id_dom.val()        });

    $.post("controller.pl", data, kivi.eval_json_result);
  };

  ns.load_all_second_rows = function() {
    var rows = $('.row_entry').filter(function(idx, elt) {
      return $(elt).find('[name="second_row"]').data('loaded') != 1;
    });

    var item_ids = $.map(rows, function(elt) {
      var item_id = $(elt).find('[name="reclamation_item_ids[+]"]').val();
      return { name: 'item_ids[]', value: item_id };
    });

    if (item_ids.length == 0) {
      return;
    }

    var data = $('#reclamation_form').serializeArray();
    data.push({ name: 'action', value: 'Reclamation/load_second_rows' });
    data = data.concat(item_ids);

    $.post("controller.pl", data, kivi.eval_json_result);
  };

  ns.hide_second_row = function(row) {
    $(row).children().not(':first').hide();
    $(row).data('expanded', 0);
    var elt = $(row).find('.expand');
    elt.attr('src', "image/expand.svg");
    elt.attr('alt', kivi.t8('Show details'));
    elt.attr('title', kivi.t8('Show details'));
  };

  ns.show_second_row = function(row) {
    $(row).children().not(':first').show();
    $(row).data('expanded', 1);
    var elt = $(row).find('.expand');
    elt.attr('src', "image/collapse.svg");
    elt.attr('alt', kivi.t8('Hide details'));
    elt.attr('title', kivi.t8('Hide details'));
  };

  ns.toggle_second_row = function(row) {
    if ($(row).data('expanded') == 1) {
      ns.hide_second_row(row);
    } else {
      ns.show_second_row(row);
    }
  };

  ns.init_row_handlers = function() {
    kivi.run_once_for('.recalc', 'on_change_recalc', function(elt) {
      $(elt).change(ns.recalc_amounts_and_taxes);
    });

    kivi.run_once_for('.reformat_number', 'on_change_reformat', function(elt) {
      $(elt).change(ns.reformat_number);
    });

    kivi.run_once_for('.unitselect', 'on_change_unit_with_oldval', function(elt) {
      $(elt).data('oldval', $(elt).val());
      $(elt).change(ns.unit_change);
    });

    kivi.run_once_for('.row_entry', 'on_kbd_click_show_hide', function(elt) {
      $(elt).keydown(function(event) {
        var row;
        if (event.keyCode == 40 && event.shiftKey === true) {
          // shift arrow down
          event.preventDefault();
          row = $(event.target).parents(".row_entry").first();
          ns.load_second_row(row);
          ns.show_second_row(row);
          return false;
        }
        if (event.keyCode == 38 && event.shiftKey === true) {
          // shift arrow up
          event.preventDefault();
          row = $(event.target).parents(".row_entry").first();
          ns.hide_second_row(row


inter by valueOf(v850esRegister.GPR.r3)
    var r4GlobalPointer by valueOf(v850esRegister.GPR.r4)
    var r5TextPointer by valueOf(v850esRegister.GPR.r5)
    var r6 by valueOf(v850esRegister.GPR.r6)
    var r7 by valueOf(v850esRegister.GPR.r7)
    var r8 by valueOf(v850esRegister.GPR.r8)
    var r9 by valueOf(v850esRegister.GPR.r9)
    var r10 by valueOf(v850esRegister.GPR.r10)
    var r11 by valueOf(v850esRegister.GPR.r11)
    var r12 by valueOf(v850esRegister.GPR.r12)
    var r13 by valueOf(v850esRegister.GPR.r13)
    var r14 by valueOf(v850esRegister.GPR.r14)
    var r15 by valueOf(v850esRegister.GPR.r15)
    var r16 by valueOf(v850esRegister.GPR.r16)
    var r17 by valueOf(v850esRegister.GPR.r17)
    var r18 by valueOf(v850esRegister.GPR.r18)
    var r19 by valueOf(v850esRegister.GPR.r19)
    var r20 by valueOf(v850esRegister.GPR.r20)
    var r21 by valueOf(v850esRegister.GPR.r21)
    var r22 by valueOf(v850esRegister.GPR.r22)
    var r23 by valueOf(v850esRegister.GPR.r23)
    var r24 by valueOf(v850esRegister.GPR.r24)
    var r25 by valueOf(v850esRegister.GPR.r25)
    var r26 by valueOf(v850esRegister.GPR.r26)
    var r27 by valueOf(v850esRegister.GPR.r27)
    var r28 by valueOf(v850esRegister.GPR.r28)
    var r29 by valueOf(v850esRegister.GPR.r29)
    var r30ElementPointer by valueOf(v850esRegister.GPR.r30)
    var r31LinkPointer by valueOf(v850esRegister.GPR.r31)
    var pc by valueOf(v850esRegister.GPR.pc)
}
/*
 *
 * This file is part of Kopycat emulator software.
 *
 * Copyright (C) 2023 INFORION, LLC
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Non-free licenses may also be purchased from INFORION, LLC,
 * for users who do not want their programs protected by the GPL.
 * Contact us for details kopycat@inforion.ru
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */
package ru.inforion.lab403.kopycat.cores.v850es.hardware.systemdc.decoders

import ru.inforion.lab403.kopycat.cores.v850es.instructions.AV850ESInstruction
import ru.inforion.lab403.kopycat.interfaces.ITableEntry
import ru.inforion.lab403.kopycat.modules.cores.v850ESCore

abstract class ADecoder<out T: AV850ESInstruction>(val core: v850ESCore): ITableEntry {
    abstract fun decode(s: ULong): T
}
/*
 *
 * This file is part of Kopycat emulator software


iginal SVG image.
         *
         * @return The X of the bounding box of the original SVG image.
         */
        fun getOrigX(): Double {
            return 3.0392746925354004
        }

        /**
         * Returns the Y of the bounding box of the original SVG image.
         *
         * @return The Y of the bounding box of the original SVG image.
         */
        fun getOrigY(): Double {
            return 2.141613245010376
        }

        /**
         * Returns the width of the bounding box of the original SVG image.
         *
         * @return The width of the bounding box of the original SVG image.
         */
        fun getOrigWidth(): Double {
            return 41.91632843017578
        }

        /**
         * Returns the height of the bounding box of the original SVG image.
         *
         * @return The height of the bounding box of the original SVG image.
         */
        fun getOrigHeight(): Double {
            return 45.121849060058594
        }

        /**
         * Returns a new instance of this icon with specified dimensions.
         *
         * @param width Required width of the icon
         * @param height Required height of the icon
         * @return A new instance of this icon with specified dimensions.
         */
        fun of(width: Int, height: Int): RadianceIcon {
            return Preferences_desktop_theme(width, height)
        }

        /**
         * Returns a new [UIResource] instance of this icon with specified dimensions.
         *
         * @param width Required width of the icon
         * @param height Required height of the icon
         * @return A new [UIResource] instance of this icon with specified dimensions.
         */
        fun uiResourceOf(width: Int, height: Int): RadianceIconUIResource {
            return RadianceIconUIResource(Preferences_desktop_theme(width, height))
        }

        /**
         * Returns a factory that returns instances of this icon on demand.
         *
         * @return Factory that returns instances of this icon on demand.
         */
        fun factory(): Factory {
            return Factory { Preferences_desktop_theme(getOrigWidth().toInt(), getOrigHeight().toInt()) }
        }
    }

    override fun getIconHeight(): Int {
        return width
    }

    override fun getIconWidth(): Int {
        return height
    }

    override @Synchronized fun setDimension(newDimension: Dimension) {
        width = newDimension.width
        height = newDimension.height
    }

    override fun supportsColorFilter(): Boolean {
        return true
    }

    override fun setColorFilter(colorFilter: RadianceIcon.ColorFilter?) {
        this.colorFilter = colorFilter
    }

    override @Synchronized fun paintIcon(c: Component?, g: Graphics, x: Int, y: Int) {
        val g2d = g.create() as Graphics2D
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON)
        g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                RenderingH


html>

    <title>
      two_body_ode_test
    </title>

      two_body_ode_test

      two_body_ode_test,
      a Fortran90 code which
      calls two_body_ode(), which
      simulates a planar two body problem,
      writing graphics files for processing by gnuplot().

      Licensing:

      The information on this web page is distributed under the MIT license.

      Related Data and Programs:

      two_body_ode,
      a Fortran90 code which
      simulates a planar two body problem,
      writing graphics files for processing by gnuplot().

      Source Code:

      INITIAL_ORBIT starts the problem, and runs it for just two orbits.

          initial_orbit.sh,
          runs all the tests.

          initial_orbit.txt,
          the output file.

          initial_orbit_commands.txt,
          input commands to GNUPLOT.

          initial_orbit_data.txt,
          data for GNUPLOT.

          initial_orbit.png,
          a plot of the data.

      ORBITAL_DECAY runs the problem for 20 orbits.

          orbital_decay.sh,
          runs all the tests.

          orbital_decay.txt,
          the output file.

          orbital_decay_commands.txt,
          input commands to GNUPLOT.

          orbital_decay_data.txt,
          data for GNUPLOT.

          orbital_decay.png,
          a plot of the data.

      Last modified on 26 November 2024.

    <title>
      pyramid_jaskowiec_rule
    </title>

      pyramid_jaskowiec_rule


@media (max-width: 1200px) {
  .selector-20 {
    margin: calc(1.325rem + 0.9vw) calc(1.425rem + 2.1vw);
  }
}

.selector-21 {
  margin: 2rem 3rem !important;
}
@media (max-width: 1200px) {
  .selector-21 {
    margin: calc(1.325rem + 0.9vw) calc(1.425rem + 2.1vw) !important;
  }
}

.selector-22 {
  font-size: 0;
}

.selector-23 {
  margin: 0 3rem;
}
@media (max-width: 1200px) {
  .selector-23 {
    margin: 0 calc(1.425rem + 2.1vw);
  }
}

.selector-24 {
  box-shadow: 0 0 2rem #f00, 0 0 3rem #0f0;
}
@media (max-width: 1200px) {
  .selector-24 {
    box-shadow: 0 0 calc(1.325rem + 0.9vw) #f00, 0 0 calc(1.425rem + 2.1vw) #0f0;
  }
}

.selector-25 {
  --value: 3rem;
}
@media (max-width: 1200px) {
  .selector-25 {
    --value: calc(1.425rem + 2.1vw);
  }
}

.selector-26 {
  font-size: 0.625rem;
}

.selector-27 {
  margin: -3rem;
}
@media (max-width: 1200px) {
  .selector-27 {
    margin: calc(-1.425rem - 2.1vw);
  }
}

.selector-28 {
  margin: -0.5rem;
}
.selector-1 {
  width: 300px;
  background-color: #f00;
  font-size: calc(16px + 2vmin);
  min-width: 0vw;
}
@media (min-width: 50rem) and (min-height: 50rem) {
  .selector-1 {
    font-size: 32px;
  }
}

.selector-2 {
  font-size: calc(16px + 2vmin);
  min-width: 0vw;
}
@media (min-width: 50rem) and (min-height: 50rem) {
  .selector-2 {
    font-size: 32px;
  }
}

.selector-3 {
  font-size: calc(16px + 2vmin) !important;
  min-width: 0vw;
}
@media (min-width: 50rem) and (min-height: 50rem) {
  .selector-3 {
    font-size: 32px !important;
  }
}

.selector-4 {
  font-size: calc(16px + 2vmin);
  min-width: 0vw;
}
@media (min-width: 50rem) and (min-height: 50rem) {
  .selector-4 {
    font-size: 32px;
  }
}

.selector-5 {
  font-size: 2em;
}

.selector-6 {
  font-size: inherit;
}

@supports (display: flex) {
  .selector-7 {
    font-size: calc(15.2px + 1.6vmin);
    min-width: 0vw;
  }
  @media (min-width: 50rem) and (min-height: 50rem) {
    .selector-7 {
      font-size: 28px;
    }
  }
}

.selector-8 {
  flex: 0 999 calc(112px + 50vmin);
  min-width: 0vw;
}
@media (min-width: 50rem) and (min-height: 50rem) {
  .selector-8 {
    flex: 0 999 512px;
  }
}

.selector-9 {


1.5-.3a1 1 0 0 1 1.196.98z"}}]})(a)}function BsFileMusic(a){return(0,r.w_)({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M10.304 3.13a1 1 0 0 1 1.196.98v1.8l-2.5.5v5.09c0 .495-.301.883-.662 1.123C7.974 12.866 7.499 13 7 13c-.5 0-.974-.134-1.338-.377-.36-.24-.662-.628-.662-1.123s.301-.883.662-1.123C6.026 10.134 6.501 10 7 10c.356 0 .7.068 1 .196V4.41a1 1 0 0 1 .804-.98l1.5-.3z"}},{tag:"path",attr:{d:"M4 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H4zm0 1h8a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1z"}}]})(a)}function BsFilePdfFill(a){return(0,r.w_)({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M5.523 10.424c.14-.082.293-.162.459-.238a7.878 7.878 0 0 1-.45.606c-.28.337-.498.516-.635.572a.266.266 0 0 1-.035.012.282.282 0 0 1-.026-.044c-.056-.11-.054-.216.04-.36.106-.165.319-.354.647-.548zm2.455-1.647c-.119.025-.237.05-.356.078a21.035 21.035 0 0 0 .5-1.05 11.96 11.96 0 0 0 .51.858c-.217.032-.436.07-.654.114zm2.525.939a3.888 3.888 0 0 1-.435-.41c.228.005.434.022.612.054.317.057.466.147.518.209a.095.095 0 0 1 .026.064.436.436 0 0 1-.06.2.307.307 0 0 1-.094.124.107.107 0 0 1-.069.015c-.09-.003-.258-.066-.498-.256zM8.278 4.97c-.04.244-.108.524-.2.829a4.86 4.86 0 0 1-.089-.346c-.076-.353-.087-.63-.046-.822.038-.177.11-.248.196-.283a.517.517 0 0 1 .145-.04c.013.03.028.092.032.198.005.122-.007.277-.038.465z"}},{tag:"path",attr:{fillRule:"evenodd",d:"M4 0h8a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2zm.165 11.668c.09.18.23.343.438.419.207.075.412.04.58-.03.318-.13.635-.436.926-.786.333-.401.683-.927 1.021-1.51a11.64 11.64 0 0 1 1.997-.406c.3.383.61.713.91.95.28.22.603.403.934.417a.856.856 0 0 0 .51-.138c.155-.101.27-.247.354-.416.09-.181.145-.37.138-.563a.844.844 0 0 0-.2-.518c-.226-.27-.596-.4-.96-.465a5.76 5.76 0 0 0-1.335-.05 10.954 10.954 0 0 1-.98-1.


136],[22.12224387009935,46.60189782274241],[22.156363478653965,46.60501726904206],[22.168399366331975,46.60387425555084],[22.175305071555997,46.596289142089994]]]},"properties":{"countyId":"Hășmaș", "scoring":"-9.4","procente":"
Elevi an scolar 2014-2015: 117
 Elevi an scolar 2018-2019: 106
 Evolutie: -9.4%" }},
       {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[23.25124636391066,43.9178707127903],[23.2482377303658,43.90684035030018],[23.235921581183447,43.894561005642316],[23.240441996871134,43.88472405988933],[23.238975684370693,43.86847892661782],[23.24652371253474,43.839218468631614],[23.228964418911293,43.837399655317526],[23.190101366552653,43.82543839661022],[23.181706858275824,43.84538506786135],[23.188083562417805,43.859024692451676],[23.18147170198868,43.86418147614447],[23.183024253251126,43.88170475425685],[23.171016706871487,43.89043977109621],[23.190556598416855,43.91380878679709],[23.204625816437716,43.91715072800229],[23.227975594663118,43.914127937990884],[23.227637776532536,43.921160194326035],[23.25124636391066,43.9178707127903]]]},"properties":{"countyId":"Ghidici", "scoring":"-17.74","procente":"
Elevi an scolar 2014-2015: 265
 Elevi an scolar 2018-2019: 218
 Evolutie: -17.74%" }},
       {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[26.017724282552507,44.99541440057615],[26.024486338620214,44.978942214065434],[26.034575193264626,44.97094761121681],[26.06122393811521,44.96443645444057],[26.033074487350515,44.95403225176798],[26.02831502431564,44.96654394975547],[26.0034398045528,44.967111859599186],[25.98600065898509,44.95731388364634],[25.97627379947058,44.93949356106029],[25.961015713320165,44.94355518702132],[25.9656273727769,44.96706782071371],[25.99369202209645,44.98735565861932],[26.004000796868066,45.00876015874425],[26.017724282552507,44.99541440057615]]]},"properties":{"countyId":"Blejoi", "scoring":"-9.85","procente":"
Elevi an scolar 2014-2015: 589
 Elevi an scolar 2018-2019: 531
 Evolutie: -9.85%" }},
       {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[26.547614298016374,44.74820516685756],[26.562135979356476,44.73882206702881],[26.553465485475186,44.731651781593996],[26.553916506980897,44.72


rt org.gradle.kotlin.dsl.getByType
import org.gradle.kotlin.dsl.register
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType

fun Project.configureMppTest() {
    configureIosTest(this)
    configureJsTest(this)

    tasks.register("test") {
        dependsOn("jvmTest", "iosTest", "jsTest")
        group = JavaBasePlugin.VERIFICATION_GROUP
    }

    repositories.whenObjectAdded {
        if (this is IvyArtifactRepository) {
            metadataSources {
                artifact()
            }
        }
    }
}

private fun configureIosTest(project: Project) {
    project.tasks.register("iosTest") {
        group = JavaBasePlugin.VERIFICATION_GROUP
        dependsOn("linkIosX64")
        val device = project.findProperty("iosDevice")?.toString() ?: "iPhone 8"

        doLast {
            val iosX64 = project.extensions.getByType<KotlinMultiplatformExtension>().iosX64()
            val binary = iosX64.binaries.getTest(NativeBuildType.DEBUG).outputFile
            project.exec {
                commandLine("xcrun", "simctl", "spawn", device, binary.absolutePath)
            }
        }
    }
}

private fun configureJsTest(project: Project) {
    project.apply<NodePlugin>()
    project.extensions.getByType<NodeExtension>().run {
        version = "10.9.0"
        download = true
        nodeModulesDir = project.file("${project.buildDir}/npm")
    }

    val installMocha = "installMocha"
    val populateNodeModules = "populateNodeModules"
    val runMocha = "runMocha"

    project.tasks.register<NpmTask>(installMocha)
    project.tasks.getByName(installMocha) {
        (this as NpmTask).apply {
            setArgs(listOf("install", "mocha@6.0.0"))
        }
    }

    val jsCompilations =
        project.extensions.getByType<KotlinMultiplatformExtension>().js().compilations
    val testCompilation = jsCompilations.getByName("test")

    project.tasks.register<Copy>(populateNodeModules) {
        from("${project.buildDir}/npm/node_modules")
        from(jsCompilations.getByName("main").output.allOutputs)

        testCompilation.runtimeDependencyFiles.forEach {
            if (it.exists() && !it.isDirectory) {
                from(project.zipTree(it.absolutePath).matching {
                    include("*.js")
                })
            }
        }

        into("${project.buildDir}/node_modules")
    }

    project.tasks.register<NodeTask>(runMocha) {
        dependsOn("compileTestKotlinJs", installMocha, populateNodeModules)
        script = project.file("${project.buildDir}/npm/node_modules/.bin/mocha")
        setArgs(
            listOf(
                "--timeout", "15000",
                project.file(
                    project.relativePath(testCompilation.output.allOutputs.first()) +
                        "/${project.name}_test.js"
                ).absolutePath
            )
        )
    }

    project.tasks.getByName("jsTest") {
        dependsOn(runMocha)
    }
}
package kr.yhs.flutter_kakao_maps.model

import com.kakao.vectormap.KakaoMap
import com.kakao.vectormap.KakaoMapReadyCallback
import com.kakao.vectormap.LatLng
import com.kakao.vectormap.MapType
import com.kakao.vectormap.MapViewInfo
import kr.yhs.flutter_kakao_maps.converter.CameraTypeConverter.asLatLng

data class KakaoMapOption(
  private var onReady: ((Kak


:
    li $t2, 3
    mul $t2, $s1, $t2
    addiu $s1, $t2, 1
    b update_depth

    # Even case: n = n / 2
even_case:
    srl $s1, $s1, 1

update_depth:
    addiu $s2, $s2, 1
    jal collatz
    b return_result

base_case:
    move $v0, $s2            # Return depth

return_result:
    lw $s1, 24($sp)          # Restore $s1
    lw $s2, 20($sp)          # Restore $s2
    lw $ra, 28($sp)          # Restore return address
    addiu $sp, $sp, 32       # Deallocate stack space
    jr $ra                   # Return


 *testing.T) {
	opaSessionObj := &cautils.OPASessionObj{
		AllResources: nil,
	}
	scoreWrapper := NewScoreWrapper(opaSessionObj)

	assert.NotNil(t, scoreWrapper)
	assert.NotNil(t, scoreWrapper.scoreUtil)
	assert.NotNil(t, scoreWrapper.opaSessionObj)
	assert.Nil(t, scoreWrapper.opaSessionObj.AllResources)
	assert.Empty(t, scoreWrapper.opaSessionObj.AllResources)
}

func TestCalculateReturnsNilErrorWhenReportVersionIsEPostureReportV2(t *testing.T) {
	opaSessionObj := cautils.NewOPASessionObjMock()
	scoreWrapper := NewScoreWrapper(opaSessionObj)

	err := scoreWrapper.Calculate(EPostureReportV2)

	assert.Nil(t, err)
}

func TestCalculateReturnsErrorWhenReportVersionIsEPostureReportV1(t *testing.T) {
	opaSessionObj := &cautils.OPASessionObj{}
	scoreWrapper := NewScoreWrapper(opaSessionObj)

	err := scoreWrapper.Calculate(EPostureReportV1)

	assert.Error(t, err)
	assert.Equal(t, "unsupported score calculator", err.Error())
}

func TestCalculateReturnsErrorWhenReportVersionIsNotSupported(t *testing.T) {
	opaSessionObj := &cautils.OPASessionObj{}
	scoreWrapper := NewScoreWrapper(opaSessionObj)

	err := scoreWrapper.Calculate("v3")

	assert.Error(t, err)
	assert.Equal(t, "unsupported score calculator", err.Error())
}
package gotree

import (
	"strings"
)

const (
	newLine      = "\n"
	emptySpace   = "    "
	middleItem   = "├── "
	continueItem = "│   "
	lastItem     = "╰── "
)

type (
	tree struct {
		text  string
		items []Tree
	}

	// Tree is tree interface
	Tree interface {
		Add(text string) Tree
		AddTree(tree Tree)
		Items() []Tree
		Text() string
		Print() string
	}

	printer struct {
	}

	// Printer is printer interface
	Printer interface {
		Print(Tree) string
	}
)

// New returns a new GoTree.Tree
func New(text string) Tree {
	return &tree{
		text:  text,
		items: []Tree{},
	}
}

// Add adds a node to the tree
func (t *tree) Add(text string) Tree {
	n := New(text)
	t.items = append(t.items, n)
	return n
}

// AddTree adds a tree as an item
func (t *tree) AddTree(tree Tree) {
	t.items = append(t.items, tree)
}

// Text returns the node's value
func (t *tree) Text() string {
	return t.text
}

// Items returns all items in the tree
func (t *tree) Items() []Tree {
	return t.items
}

// Print returns a visual representation of the tree
func (t *tree) Print() string {
	return newPrinter().Print(t)
}

func newPrinter() Printer {
	return &printer{}
}

// Print prints a tree to a string
func (p *printer) Print(t Tree) string {
	return t.Text() + newLine + p.printItems(t.Items(), []bool{})
}

func (p *printer) printText(text string, spaces []bool, last bool) string {
	var result string
	for _, space := range spaces {
		if space {
			result += emptySpace
		} else {
			result += continueItem
		}
	}

	indicator := middleItem
	i


2D signal

PGraph	general purpose graph class

polydiff	derivative of polynomial

Polygon	general purpose polygon class

randinit	initialize random number generator

ramp	create linear ramp

rvcpath	path to RVC install

unit	unitize a vector

tb_optparse	toolbox argument parser

distancexform	compute distance transform

runscript	interactively step through a script

multidfprintf	printf extension

Demonstrations

rtbdemo	Serial-link manipulator demonstration

tripleangle	demonstrate angle sequences

Interfacing

Arbotix	Interface to Arbotix robot controller

Machine	Abstract robot interface class

RobotArm	Connect SerialLink object to real robot

joystick	Help for joystick interface mex file

joy2tr	Update SE3 based on joystick input

VREP	VREP interface class

VREP_mirror	MATLAB mirror for VREP object

VREP_arm</


n3svc14RestoreContextEm
.type       _ZN3ams4kern3svc14RestoreContextEm, %function
_ZN3ams4kern3svc14RestoreContextEm:
    /* Set the stack pointer, set daif. */
    mov     sp, x0
    msr     daifset, #2

0:  /* We should handle DPC. */
    /* Check the dpc flags. */
    ldrb    w8, [sp, #(EXCEPTION_CONTEXT_SIZE + THREAD_STACK_PARAMETERS_DPC_FLAGS)]
    cbz     w8, 1f

    /* We have DPC to do! */
    /* Save registers and call ams::kern::KDpcManager::HandleDpc(). */
    sub     sp, sp, #0x40
    stp     x0,  x1,  [sp, #(8 *  0)]
    stp     x2,  x3,  [sp, #(8 *  2)]
    stp     x4,  x5,  [sp, #(8 *  4)]
    stp     x6,  x7,  [sp, #(8 *  6)]
    bl      _ZN3ams4kern11KDpcManager9HandleDpcEv
    ldp     x0,  x1,  [sp, #(8 *  0)]
    ldp     x2,  x3,  [sp, #(8 *  2)]
    ldp     x4,  x5,  [sp, #(8 *  4)]
    ldp     x6,  x7,  [sp, #(8 *  6)]
    add     sp, sp, #0x40
    b 0b

1:  /* We're done with DPC, and should return from the svc. */

    /* Get our exception flags. */
    ldrb    w9, [sp, #(EXCEPTION_CONTEXT_SIZE + THREAD_STACK_PARAMETERS_EXCEPTION_FLAGS)]

    /* Clear in-svc, in-user-exception, and needs-fpu-restore flags. */
    and     w10, w9,  #(~(THREAD_EXCEPTION_FLAG_IS_FPU_CONTEXT_RESTORE_NEEDED))
    and     w10, w10, #(~(THREAD_EXCEPTION_FLAG_IS_CALLING_SVC))
    and     w10, w10, #(~(THREAD_EXCEPTION_FLAG_IS_IN_USERMODE_EXCEPTION_HANDLER))
    strb    w10, [sp, #(EXCEPTION_CONTEXT_SIZE + THREAD_STACK_PARAMETERS_EXCEPTION_FLAGS)]

    /* If we don't need to restore the fpu, skip restoring it. */
    tbz     w9, #(THREAD_EXCEPTION_FLAG_BIT_INDEX_IS_FPU_CONTEXT_RESTORE_NEEDED), 3f

    /* Enable and restore the fpu. */
    ENABLE_AND_RESTORE_FPU(x10, x8, x9, w8, w9, 2, 3)

    /* Restore registers. */
    ldp     x30, x8,  [sp, #(EXCEPTION_CONTEXT_X30_SP)]
    ldp     x9,  x10, [sp, #(EXCEPTION_CONTEXT_PC_PSR)]
    ldr     x11,      [sp, #(EXCEPTION_CONTEXT_TPIDR)]

    #if defined(MESOSPHERE_ENABLE_HARDWARE_SINGLE_STEP)
    /* Since we're returning from an exception, set SPSR.SS so that we advance an instruction if single-stepping. */
    orr x10, x10, #(1 << 21)
    #endif

    msr     sp_el0, x8
    msr     elr_el1, x9
    msr     spsr_el1, x10
    msr     tpidr_el0, x11
    ldp     x0,  x1,  [sp, #(EXCEPTION_CONTEXT_X0_X1)]
    ldp     x2,  x3,  [sp, #(EXCEPTION_CONTEXT_X2_X3)]
    ldp     x4,  x5,  [sp, #(EXCEPTION_CONTEXT_X4_X5)]
    ldp     x6,  x7,  [sp, #(EXCEPTION_CONTEXT_X6_X7)]
    ldp     x8,  x9,  [sp, #(EXCEPTION_CONTEXT_X8_X9)]
    ldp     x10, x11, [sp, #


  [11] = "Odrażający widok. To ma być szpital?! Chyba raczej chlew!",
      [12] = "Jako osoba publiczna mam już dosyć odwiedzania takich nor jak ta! Rezygnuję.",
      [13] = "Co za melina. Zrobię co w mojej mocy, żeby ją zamknęli.",
      [14] = "Skandal! W życiu nie widziałem tak koszmarnego szpitala. ",
      [15] = "Jestem w szoku. Tego nie da się nazwać szpitalem! Idę na piwo.",
    },
    rep_boost = "Twoja reputacja w środowisku umocniła się.",
    vip_remarked_name = "Po wizycie w twoim szpitalu %s zdecydował:",
    cash_grant = "Otrzymasz dotację w wysokości %d.",
    rep_loss = "Dlatego też twoja reputacja ucierpiała.",
    close_text = "Dziękuję za odwiedzenie szpitala.",
  },
  disease_discovered_patient_choice = {
    need_to_build = "Musisz zbudować %s, aby sobie z tym poradzić.",
    need_to_employ = "Zatrudnij  %s żeby poradzić sobie z tą sytuacją.",
    what_to_do_question = "Co chcesz zrobić z pacjentem?",
    guessed_percentage_name = "Twoja ekipa musiała domyślać się przypadłości pacjenta. Jest %d procent szans, że to jest %s",
    choices = {
      send_home = "Wypisz Pacjenta do domu.",
      research = "Wyślij pacjenta do Działu Badawczego.",
      wait = "Każ Pacjentowi zaczekać chwilę w szpitalu.",
    },
    disease_name = "Twoja ekipa odkryła nową dolegliwość: %s",
    need_to_build_and_employ = "Jeżeli zbudujesz %s i zatrudnisz %s możesz osiągnąć cel.",
    can_not_cure = "Nie możesz wyleczyć tej choroby.",
  },
  emergency_result = {
    earned_money = "Mogłeś otrzymać maksymalnie %d, zarobiłeś %d.",
    close_text = "Kliknij, aby wyjść.",
    saved_people = "Uratowałeś %d ludzi z %d poszkodowanych.",
  },
  disease_discovered = {
    discovered_name = "Twoja ekipa odkryła nową dolegliwość: %s",
    need_to_employ = "Zatrudnij %s, aby poradzić sobie z tym kryzysem.",
    need_to_build_and_employ = "Jeżeli zbudujesz %s i zatrudnisz %s możesz osiągnąć cel.",
    need_to_build = "Musisz zbudować %s, aby sobie z tym poradzić.",
    close_text = "Dokonano odkrycia.",
    can_cure = "Możesz wyleczyć tę chorobę.",
  },
  emergency = {
    locations = {
      [1] = "Palmiarni Rośliny Chemiczne Rosiczka",
      [2] = "Lipnym Uniwersytecie",
      [3] = "Centrum Ogrodniczym Parakwiat",
      [4] = "Instytucie Naukowym Nie


xit
;
;ends	make_IP_dgram
;----------------------------------------------------------------------------
;void  pl_open(void);
;
pl_open:
;
	move.b		(hw_imrb).w,d3		;d3 = entry hw_imrb
	pl_cli					;mask reception interrupt
	move		sr,-(sp)		;push interrupt mask
	or		#$0700,sr		;disable interrupts
;
	pl_set_direct	0,d0			;set port for input
	pl_set_strobe	1,d0			;normalize strobe
	pl_take_ack				;clear pending ACK if present
;
	XB_remove	cent_busy_XB(pc),(iv_cenbusy).w	;unlink interrupt code
	bpl		.done_primary_open
	move.b		d3,orig_imrb		;save initial hw_imrb state
	move.b		(hw_ierb).w,orig_ierb	;save initial hw_ierb state
	move.b		(hw_aer).w,orig_aer	;save initial hw_aer state
.done_primary_open:
;
	XB_install	cent_busy_XB(pc),(iv_cenbusy).w	;link interrupt code
	bset		#0,(hw_ierb).w		;enable BUSY interrupt
	bclr		#0,(hw_aer).w		;set BUSY edge sense to falling
	pl_take_ack				;clear pending ACK if present
	bsr		allocate_recv_buf
	move.l		#cv_InitRecv,mode_vect	;set mode vector
	move		(sp)+,sr		;reenable interrupts
	bsr		release_buffers		;release buffers
	pl_take_ack				;clear pending ACK if present
	pl_sti					;unmask reception interrupt
	rts
;
;ends	pl_open
;----------------------------------------------------------------------------
;void  pl_close(void);
;
pl_close:
	move		sr,-(sp)		;push interrupt mask
	or		#$0700,sr		;disable interrupts
	move.l		#cv_ExitRout,mode_vect	;set mode vector
;
	move.b		(hw_imrb).w,d3		;d3 = entry hw_imrb
	pl_cli					;mask reception interrupt
	pl_set_direct	0,d0			;set port for input
	pl_set_strobe	1,d0			;normalize strobe
	pl_take_ack				;clear pending ACK if present
;
	XB_remove	cent_busy_XB(pc),(iv_cenbusy).w
	bmi		.done_primary_close
	move.b		orig_imrb(pc),d3	;d3 = original imrb
;
	btst		#0,orig_ierb(pc)
	beq		.clr_b0_ierb
.set_b0_ierb:
	bset		#0,(hw_ierb).w
	bra		.done_ierb
;
.clr_b0_ierb:
	bclr		#0,(hw_ierb).w
.done_ierb:
;
	btst		#0,orig_aer(pc)
	beq		.clr_b0_aer
.set_b0_aer:
	bset		#0,(hw_aer).w
	bra		.done_aer
;
.clr_b


.add(comp);
        hbox.add(vbox);

        comp = new LabelledDial("Loop", this, "mixlooprepeats", color, 0, 127)
            {
            public String map(int val)
                {
                if (val == 0) return "Off";
                else if (val == 127) return "Inf";
                else return "" + val;
                }
            };
        ((LabelledDial)comp).addAdditionalLabel("Repeats");
        hbox.add(comp);

        final JCheckBox realtime = new JCheckBox("Real-Time Joystick");
        realtime.setFont(Style.SMALL_FONT());
        realtime.setOpaque(false);
        realtime.setForeground(Style.TEXT_COLOR());
        realtime.addActionListener(new ActionListener()
            {
            public void actionPerformed(ActionEvent e)
                {
                joy.setRealtime(realtime.isSelected());
                }
            });
        hbox.add(Strut.makeHorizontalStrut(150));
        hbox.add(realtime);
        main.add(hbox);

        hbox = new HBox();
        vbox = new VBox();

        Color[] colors = new Color[] { Style.COLOR_A(), Style.COLOR_B(), Style.COLOR_C(), Style.COLOR_GLOBAL(), Style.DYNAMIC_COLOR() };

        // it appears that although the mix values are -127 to +127, they're sent as 0...254 as parameters!
        comp = new LabelledDial("AC 0", this, "mixx0", color, 0, 254, 127)
            {
            public boolean isSymmetric() { return true; }
            };
        ((LabelledDial)comp).getJLabel().setForeground(colors[0]);
        Component c1 = comp;
        hbox.add(comp);

        comp = new LabelledDial("AC 1", this, "mixx1", color,  0, 254, 127)
            {
            public boolean isSymmetric() { return true; }
            };
        ((LabelledDial)comp).getJLabel().setForeground(colors[1]);
        hbox.add(comp);

        comp = new LabelledDial("AC 2", this, "mixx2", color,  0, 254, 127)
            {
            public boolean isSymmetric() { return true; }
            };
        ((LabelledDial)comp).getJLabel().setForeground(colors[2]);
        hbox.add(comp);

        comp = new LabelledDial("AC 3", this, "mixx3", color,  0, 254, 127)
            {
            public boolean isSymmetric() { return true; }
            };
        ((LabelledDial)comp).getJLabel().setForeground(colors[3]);
        ((LabelledDial)comp).addAdditionalLabel("(Sustain)");
        hbox.add(comp);

        comp = new LabelledDial("AC 4", this, "mixx4", color,  0, 254, 127)
            {
            public boolean isSymmetric() { return true; }
            };
        ((LabelledDial)comp).getJLabel().setForeground(colors[4]);
        ((LabelledDial)comp).addAdditionalLabel("(Release)");
        hbox.add(comp);

        params = SOURCES;
        comp = new Chooser("AC Mod 1 Source", this, "mixxmod1source", params);
        vbox.add(comp);

        params = SOURCES;
        comp = new Chooser("AC Mod 2 Source", this, "mixxmod2source", params);
        vbox.add(comp);
        hbox.add(vbox);

        comp = new LabelledDial("AC Mod 1", this, "mixxmod1amount", color, -127, 127);
        ((LabelledDial)comp).addAdditionalLabel("Amount");
        hbox.add(comp);

        comp = new LabelledDial("AC Mod 2", this, "mixxmod2amount", color, -127,


pell_Shadow_SoulGem",
	['Создание камня чар'] = "INV_Misc_Gem_Sapphire_01",
	['Создание камня чар (большого)'] = "INV_Misc_Gem_Sapphire_01",
	['Создание камня чар (крупного)'] = "INV_Misc_Gem_Sapphire_01",
	['Калечащий яд II'] = "Ability_PoisonSting",
	['Калечащий яд'] = "Ability_PoisonSting",
	['Критическая масса'] = "Spell_Nature_WispHeal",
	['Арбалеты'] = "INV_Weapon_Crossbow_01",
	['Безжалостность'] = "Ability_Rogue_Eviscerate",
	['Проращивание'] = "INV_Misc_Flower_01",
	['Излечение болезни'] = "Spell_Holy_NullifyDisease",
	['Выведение яда'] = "Spell_Nature_NullifyPoison",
	['Проклятие агонии'] = "Spell_Shadow_CurseOfSargeras",
	['Проклятие рока - воздействие'] = "Spell_Shadow_AuraOfDarkness",
	['Проклятие рока'] = "Spell_Shadow_AuraOfDarkness",
	['Проклятие изнеможения'] = "Spell_Shadow_GrimWard",
	['Проклятие маразма'] = "Spell_Shadow_MindRot",
	['Проклятие безрассудства'] = "Spell_Shadow_UnholyStrength",
	['Проклятие Тьмы'] = "Spell_Shadow_CurseOfAchimonde",
	['Проклятие косноязычия'] = "Spell_Shadow_CurseOfTounges",
	['Проклятие слабости'] = "Spell_Shadow_CurseOfMannoroth",
	['Проклятие стихий'] = "Spell_Shadow_ChillTouch",
	['Специализация на кинжалах'] = "INV_Weapon_ShortBlade_05",
	['Кинжалы'] = "Ability_SteelMelee",
	['Ослабление магии'] = "Spell_Nature_AbolishMagic",
	['Темный союз'] = "Spell_Shadow_DarkRitual",
	['Мрак'] = "Spell_Shadow_Twilight",
	['Порыв'] = "Ability_Druid_Dash",
	['Смертельный яд II'] = "Ability_Rogue_DualWeild",
	['Смертельный яд III'] = "Ability_Rogue_DualWeild",
	['Смертельный яд IV'] = "Ability_Rogue_DualWeild",
	['Смертельный яд V'] = "Ability_Rogue_DualWeild",
	['Смертельный яд'] = "Ability_Rogue_DualWeild",
	['Лик смерти'] = "Spell_Shadow_DeathCoil",
	['Жажда смерти'] = "Spell_Shadow_DeathPact",
	['Глубокая рана'] = "Ability_BackStab",
	['Защита'] = "Ability_Racial_ShadowMeld",
	['Оборонительная стойка - пассивная'] = "Ability_Warrior_DefensiveStance",


call__">__call__

__call__(
    *args, **kwargs
)

Accumulates statistics and then computes metric result value.

<colgroup><col width="214px"><col></colgroup>

Args

  `*args`

`**kwargs`

A mini-batch of inputs to the Metric,
passed on to `update_state()`.

<colgroup><col width="214px"><col></colgroup>

Returns

The metric value tensor.

description: A class to load dataset for TFR-BERT task.

<meta itemprop="name" content="tfr.extension.premade.TFRBertDataLoader" />
<meta itemprop="path" content="Stable" />
<meta itemprop="property" content="__init__"/>
<meta itemprop="property" content="load"/>

# tfr.extension.premade.TFRBertDataLoader

    View source on GitHub

A class to load dataset for TFR-BERT task.

Inherits From:
[`RankingDataLoader`](../../../tfr/extension/task/RankingDataLoader.md)

View aliases

Main aliases

`tfr.extension.premade.tfrbert_task.TFRBertDataLoader`

tfr.extension.premade.TFRBertDataLoader(
    params, label_spec: Tuple[str, tf.io.FixedLenFeature] = None, **kwargs
)

## Methods

load

View
source

load(
    input_context: Optional[tf.distribute.InputContext] = None
) -> tf.data.Dataset

Returns a tf.dataset.Dataset.
description: Univariate BERT-based scorer.

<meta itemprop="name" content="tfr.extension.premade.TFRBertScorer" />
<meta itemprop="path" content="Stable" />
<meta itemprop="property" content="__call


Packet::guid contains the endpoint guid that we were trying to reach

ID_ROUTER_2_FORWARDING_ESTABLISHED

You can now call connect, ping, or other operations to the destination system.

Connect as follows:

RakNet::BitStream bs(packet->data, packet->length, false); bs.IgnoreBytes(sizeof(MessageID)); RakNetGUID endpointGuid; bs.Read(endpointGuid); unsigned short sourceToDestPort; bs.Read(sourceToDestPort); char ipAddressString[32]; packet->systemAddress.ToString(false, ipAddressString); rakPeerInterface->Connect(ipAddressString, sourceToDestPort, 0,0);

ID_ROUTER_2_REROUTED

The IP address for a forwarded connection has changed Read endpointGuid and port as per ID_ROUTER_2_FORWARDING_ESTABLISHED

ID_TEAM_BALANCER_REQUESTED_TEAM_FULL

Cannot switch to the desired team because it is full. However, if someone on that team leaves, you will get ID_TEAM_BALANCER_TEAM_ASSIGNED later. For TeamBalancer: Byte 1 contains the team you requested to join. Following bytes contain NetworkID of which member

ID_TEAM_BALANCER_REQUESTED_TEAM_LOCKED

Cannot switch to the desired team because all teams are locked. However, if someone on that team leaves, you will get ID_TEAM_BALANCER_SET_TEAM later. For TeamBalancer: Byte 1 contains the team you requested to join.

ID_TEAM_BALANCER_TEAM_ASSIGNED

Team balancer plugin informing you of your team. Byte 1 contains the team you requested to join. Following bytes contain NetworkID of which member.

ID_LIGHTSPEED_INTEGRATION

Gamebryo Lightspeed integration.

ID_XBOX_LOBBY 	<td


from setuptools import setup, find_packages

VERSION = "0.0.11"

setup(
    name="megabots",
    version=VERSION,
    packages=find_packages(),
    install_requires=[
        "langchain",
        "tiktoken",
        "unstructured",
        "fastapi",
        "faiss-cpu",
        "pdfminer.six",
        "gradio",
        "python-dotenv",
        "openai",
        "langchain-serve",
    ],
    author="Megaklis Vasilakis",
    author_email="megaklis.vasilakis@gmail.com",
    description="🤖 Megabots provides State-of-the-art, production ready bots made mega-easy, so you don't have to build them from scratch 🤯 Create a bot, now 🫵",
    long_description=open("README.md").read(),
    long_description_content_type="text/markdown",
    url="https://github.com/momegas/megabots",
    keywords=[
        "bot",
        "qna-bot",
        "information-retrieval",
        "chatbot",
        "question-answering",
        "prompt-engineering",
    ],
    license="MIT",
    classifiers=[
        # Choose appropriate classifiers from
        # https://pypi.org/classifiers/
        "Development Status :: 4 - Beta"
    ],
)


ns).PluginPackageInfo.UIDLL))
                    {
                        continue;
                    }

                    foreach (ITextEditor TE in PluginTextEditorHelper.GetTextFileEditors(pluginPackage))
                    {
                        PlugInTextEditorWrapper plugInTextEditorWrapper = new PlugInTextEditorWrapper(TE);
                        TextEditors.Add(plugInTextEditorWrapper);
                    }
                }
            }
        }

        public async Task Save()
        {

            if (EditorFrame.Content is UCTextEditor)
            {
                ((UCTextEditor)EditorFrame.Content).Save();
            }
            else
            if (EditorFrame.Content is ITextEditorPage)
            {
                ((ITextEditorPage)EditorFrame.Content).Save();
            }
            else if (isFromWireMock)
            {
                await mockAPI.UpdateStubAsync(wireMockmappingId, ((UCTextEditor)EditorFrame.Content).Text);
            }
            else
            {
                //TODO: fix me to call save...
            }
        }
    }
}


-----------

    7
    5
    9
    5

Solution
--------

    #include <stdio.h>

    int main() {
        int array[] = {1, 7, 4, 5, 9, 3, 5, 11, 6, 3, 4};
        int i = 0;

        while (i < 10) {
            if(array[i] < 5){
                i++;
                continue;
            }

            if(array[i] > 10){
                break;
            }

            printf("%d\n", array[i]);
            i++;
        }

        return 0;
    }
Tutorial
--------

Bit masking is simply the process of storing data truly as bits, as opposed to storing it as chars/ints/floats.  It is incredibly useful for storing certain types of data compactly and efficiently.

The idea for bit masking is based on boolean logic.  For those not familiar, boolean logic is the manipulation of 'true' (1) and 'false' (0) through logical operations (that take 0s and 1s as their argument).  We are concerned with the following operations:

* NOT a - the final value is the opposite of the input value (1 -> 0, 0 -> 1)
* a AND b - if both values are 1, the final value is 1, otherwise the final value is 0
* a OR b - if either value is 1, the final value is 1, otherwise the final value is 0
* a XOR b - if one value is 1 and the other value is 0, the final value is 1, otherwise the final value is 0

In computing, one of these true/false values is a *bit*.  Primitives in C (`int`, `float`, etc) are made up of some number of bits, where that number is a multiple of 8.  For example, an `int` may be at least 16 bits in size, where a `char` may be 8 bits.  8 bits is typically referred to as a *byte*.  C guarantees that certain primitives are [at least some number](http://en.wikipedia.org/wiki/C_data_types#Basic_types) of bytes in size.  The introduction of `stdint.h`  in C11 allows the programmer to specify integer types that are exactly some number of bytes, which is extremely useful when using masks.

Bit masks are often used when setting flags.  Flags are values that can be in two states, such as 'on/off' and 'moving/stationary'.

### Setting bit n

Setting bit `n` is as simple as ORing the value of the storage variable with the value `2^n`.

```
storage |= 1 << n;
```

As an example, here is the setting of bit 3 where `storage` is a char (8 bits):

```
01000010
   OR
00001000
   ==
01001010
```

The `2^n` logic places the '1' value at the proper bit in the mask itself, allowing access to that same bit in the storage variable.

### Clearing bit n

Clearing bit `n` is the result of ANDing the value of the storage variable with the inverse (NOT) of the value `2^n`:

```
storage &= ~(1 << n);
```

Here's the example again:

```
01001010
   AND
11110111
   ==
01000010
```

### Flipping bit n

Flipping bit `n` is the result of XORing the value of the storage variable with `2^n`:

```
storage ^= 1 << n;
```

```
01000010    01001010
   XOR         XOR
00001000    00001000
   ==          ==
01001010    01000010
```

### Checking bit n

Checking a bit is ANDing the value of `2^n` with the bit storage:

```
bit = storage & (1 << n);
```

```
01000010    01001010
   AND         AND
00001000    00001000
   ==          ==
00000000    0000