1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-07-03 05:29:37 +00:00
8bitworkshop/gen/chunk-5KW3VA4L.js

27 lines
114 KiB
JavaScript

import{c as vt}from"./chunk-5B4VPQ4V.js";import{B as mt,O as bt,R as dt,S as ht,T as et,Y as At,g as re,i as lt,r as q0}from"./chunk-ZDSSTLWD.js";var cn=[{mn:"BRK",am:"",nb:1,il:0,c1:7,c2:0},{mn:"ORA",am:"(aa,x)",nb:2,il:0,c1:6,c2:0},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"SLO",am:"(aa,x)",nb:2,il:1,c1:8,c2:1},{mn:"NOP",am:"aa",nb:2,il:1,c1:3,c2:0},{mn:"ORA",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"ASL",am:"aa",nb:2,il:0,c1:5,c2:0},{mn:"SLO",am:"aa",nb:2,il:1,c1:5,c2:0},{mn:"PHP",am:"",nb:1,il:0,c1:3,c2:0},{mn:"ORA",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"ASL",am:"",nb:1,il:0,c1:2,c2:0},{mn:"ANC",am:"#aa",nb:2,il:1,c1:2,c2:0},{mn:"NOP",am:"AAAA",nb:3,il:1,c1:4,c2:0},{mn:"ORA",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"ASL",am:"AAAA",nb:3,il:0,c1:6,c2:0},{mn:"SLO",am:"AAAA",nb:3,il:1,c1:6,c2:0},{mn:"BPL",am:"branch",nb:2,il:0,c1:2,c2:2},{mn:"ORA",am:"(aa),y",nb:2,il:0,c1:5,c2:1},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"SLO",am:"(aa),y",nb:2,il:1,c1:8,c2:1},{mn:"NOP",am:"aa,x",nb:2,il:1,c1:4,c2:0},{mn:"ORA",am:"aa,x",nb:2,il:0,c1:4,c2:0},{mn:"ASL",am:"aa,x",nb:2,il:0,c1:6,c2:0},{mn:"SLO",am:"aa,x",nb:2,il:1,c1:6,c2:1},{mn:"CLC",am:"",nb:1,il:0,c1:2,c2:0},{mn:"ORA",am:"AAAA,y",nb:3,il:0,c1:4,c2:1},{mn:"NOP",am:"",nb:1,il:1,c1:0,c2:0},{mn:"SLO",am:"AAAA,y",nb:3,il:1,c1:7,c2:1},{mn:"NOP",am:"AAAA,x",nb:3,il:1,c1:4,c2:1},{mn:"ORA",am:"AAAA,x",nb:3,il:0,c1:4,c2:1},{mn:"ASL",am:"AAAA,x",nb:3,il:0,c1:7,c2:0},{mn:"SLO",am:"AAAA,x",nb:3,il:1,c1:7,c2:1},{mn:"JSR",am:"AAAA",nb:3,il:0,c1:6,c2:0},{mn:"AND",am:"(aa,x)",nb:2,il:0,c1:6,c2:0},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"RLA",am:"(aa,x)",nb:2,il:1,c1:8,c2:1},{mn:"BIT",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"AND",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"ROL",am:"aa",nb:2,il:0,c1:5,c2:0},{mn:"RLA",am:"aa",nb:2,il:1,c1:5,c2:0},{mn:"PLP",am:"",nb:1,il:0,c1:4,c2:0},{mn:"AND",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"ROL",am:"",nb:1,il:0,c1:2,c2:0},{mn:"ANC",am:"#aa",nb:2,il:1,c1:2,c2:0},{mn:"BIT",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"AND",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"ROL",am:"AAAA",nb:3,il:0,c1:6,c2:0},{mn:"RLA",am:"AAAA",nb:3,il:1,c1:6,c2:0},{mn:"BMI",am:"branch",nb:2,il:0,c1:2,c2:2},{mn:"AND",am:"(aa),y",nb:2,il:0,c1:5,c2:1},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"RLA",am:"(aa),y",nb:2,il:1,c1:8,c2:1},{mn:"NOP",am:"aa,x",nb:2,il:1,c1:4,c2:0},{mn:"AND",am:"aa,x",nb:2,il:0,c1:4,c2:0},{mn:"ROL",am:"aa,x",nb:2,il:0,c1:6,c2:0},{mn:"RLA",am:"aa,x",nb:2,il:1,c1:6,c2:1},{mn:"SEC",am:"",nb:1,il:0,c1:2,c2:0},{mn:"AND",am:"AAAA,y",nb:3,il:0,c1:4,c2:1},{mn:"NOP",am:"",nb:1,il:1,c1:0,c2:0},{mn:"RLA",am:"AAAA,y",nb:3,il:1,c1:7,c2:1},{mn:"NOP",am:"AAAA,x",nb:3,il:1,c1:4,c2:1},{mn:"AND",am:"AAAA,x",nb:3,il:0,c1:4,c2:1},{mn:"ROL",am:"AAAA,x",nb:3,il:0,c1:7,c2:0},{mn:"RLA",am:"AAAA,x",nb:3,il:1,c1:7,c2:1},{mn:"RTI",am:"",nb:1,il:0,c1:6,c2:0},{mn:"EOR",am:"(aa,x)",nb:2,il:0,c1:6,c2:0},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"SRE",am:"(aa,x)",nb:2,il:1,c1:8,c2:1},{mn:"NOP",am:"aa",nb:2,il:1,c1:3,c2:0},{mn:"EOR",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"LSR",am:"aa",nb:2,il:0,c1:5,c2:0},{mn:"SRE",am:"aa",nb:2,il:1,c1:5,c2:0},{mn:"PHA",am:"",nb:1,il:0,c1:3,c2:0},{mn:"EOR",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"LSR",am:"",nb:1,il:0,c1:2,c2:0},{mn:"ASR",am:"#aa",nb:2,il:1,c1:2,c2:0},{mn:"JMP",am:"AAAA",nb:3,il:0,c1:3,c2:0},{mn:"EOR",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"LSR",am:"AAAA",nb:3,il:0,c1:6,c2:0},{mn:"SRE",am:"AAAA",nb:3,il:1,c1:6,c2:0},{mn:"BVC",am:"branch",nb:2,il:0,c1:2,c2:2},{mn:"EOR",am:"(aa),y",nb:2,il:0,c1:5,c2:1},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"SRE",am:"(aa),y",nb:2,il:1,c1:8,c2:1},{mn:"NOP",am:"aa,x",nb:2,il:1,c1:4,c2:0},{mn:"EOR",am:"aa,x",nb:2,il:0,c1:4,c2:0},{mn:"LSR",am:"aa,x",nb:2,il:0,c1:6,c2:0},{mn:"SRE",am:"aa,x",nb:2,il:1,c1:6,c2:1},{mn:"CLI",am:"",nb:1,il:0,c1:2,c2:0},{mn:"EOR",am:"AAAA,y",nb:3,il:0,c1:4,c2:1},{mn:"NOP",am:"",nb:1,il:1,c1:0,c2:0},{mn:"SRE",am:"AAAA,y",nb:3,il:1,c1:7,c2:1},{mn:"NOP",am:"AAAA,x",nb:3,il:1,c1:4,c2:1},{mn:"EOR",am:"AAAA,x",nb:3,il:0,c1:4,c2:1},{mn:"LSR",am:"AAAA,x",nb:3,il:0,c1:7,c2:0},{mn:"SRE",am:"AAAA,x",nb:3,il:1,c1:7,c2:1},{mn:"RTS",am:"",nb:1,il:0,c1:6,c2:0},{mn:"ADC",am:"(aa,x)",nb:2,il:0,c1:6,c2:0},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"RRA",am:"(aa,x)",nb:2,il:1,c1:8,c2:1},{mn:"NOP",am:"aa",nb:2,il:1,c1:3,c2:0},{mn:"ADC",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"ROR",am:"aa",nb:2,il:0,c1:5,c2:0},{mn:"RRA",am:"aa",nb:2,il:1,c1:5,c2:0},{mn:"PLA",am:"",nb:1,il:0,c1:4,c2:0},{mn:"ADC",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"ROR",am:"",nb:1,il:0,c1:2,c2:0},{mn:"ARR",am:"#aa",nb:2,il:1,c1:2,c2:0},{mn:"JMP",am:"(AAAA)",nb:3,il:0,c1:5,c2:0},{mn:"ADC",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"ROR",am:"AAAA",nb:3,il:0,c1:6,c2:0},{mn:"RRA",am:"AAAA",nb:3,il:1,c1:6,c2:0},{mn:"BVS",am:"branch",nb:2,il:0,c1:2,c2:2},{mn:"ADC",am:"(aa),y",nb:2,il:0,c1:5,c2:1},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"RRA",am:"(aa),y",nb:2,il:1,c1:8,c2:1},{mn:"NOP",am:"aa,x",nb:2,il:1,c1:4,c2:0},{mn:"ADC",am:"aa,x",nb:2,il:0,c1:4,c2:0},{mn:"ROR",am:"aa,x",nb:2,il:0,c1:6,c2:0},{mn:"RRA",am:"aa,x",nb:2,il:1,c1:6,c2:1},{mn:"SEI",am:"",nb:1,il:0,c1:2,c2:0},{mn:"ADC",am:"AAAA,y",nb:3,il:0,c1:4,c2:1},{mn:"NOP",am:"",nb:1,il:1,c1:0,c2:0},{mn:"RRA",am:"AAAA,y",nb:3,il:1,c1:7,c2:1},{mn:"NOP",am:"AAAA,x",nb:3,il:1,c1:4,c2:1},{mn:"ADC",am:"AAAA,x",nb:3,il:0,c1:4,c2:1},{mn:"ROR",am:"AAAA,x",nb:3,il:0,c1:7,c2:0},{mn:"RRA",am:"AAAA,x",nb:3,il:1,c1:7,c2:1},{mn:"NOP",am:"#aa",nb:2,il:1,c1:0,c2:0},{mn:"STA",am:"(aa,x)",nb:2,il:0,c1:6,c2:0},{mn:"NOP",am:"#aa",nb:2,il:1,c1:0,c2:0},{mn:"SAX",am:"(aa,x)",nb:2,il:1,c1:6,c2:1},{mn:"STY",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"STA",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"STX",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"SAX",am:"aa",nb:2,il:1,c1:3,c2:0},{mn:"DEY",am:"",nb:1,il:0,c1:2,c2:0},{mn:"NOP",am:"#aa",nb:2,il:1,c1:0,c2:0},{mn:"TXA",am:"",nb:1,il:0,c1:2,c2:0},{mn:"ANE",am:"#aa",nb:2,il:1,c1:0,c2:0},{mn:"STY",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"STA",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"STX",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"SAX",am:"AAAA",nb:3,il:1,c1:4,c2:0},{mn:"BCC",am:"branch",nb:2,il:0,c1:2,c2:2},{mn:"STA",am:"(aa),y",nb:2,il:0,c1:6,c2:0},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"SHA",am:"(aa),y",nb:2,il:1,c1:0,c2:0},{mn:"STY",am:"aa,x",nb:2,il:0,c1:4,c2:0},{mn:"STA",am:"aa,x",nb:2,il:0,c1:4,c2:0},{mn:"STX",am:"aa,y",nb:2,il:0,c1:4,c2:0},{mn:"SAX",am:"aa,y",nb:3,il:1,c1:4,c2:1},{mn:"TYA",am:"",nb:1,il:0,c1:2,c2:0},{mn:"STA",am:"AAAA,y",nb:3,il:0,c1:5,c2:0},{mn:"TXS",am:"",nb:1,il:0,c1:2,c2:0},{mn:"SHS",am:"AAAA,y",nb:3,il:1,c1:0,c2:0},{mn:"SHY",am:"AAAA,x",nb:3,il:1,c1:0,c2:0},{mn:"STA",am:"AAAA,x",nb:3,il:0,c1:5,c2:0},{mn:"SHX",am:"AAAA,y",nb:3,il:1,c1:0,c2:0},{mn:"SHA",am:"AAAA,y",nb:3,il:1,c1:0,c2:0},{mn:"LDY",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"LDA",am:"(aa,x)",nb:2,il:0,c1:6,c2:0},{mn:"LDX",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"LAX",am:"(aa,x)",nb:2,il:1,c1:6,c2:1},{mn:"LDY",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"LDA",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"LDX",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"LAX",am:"aa",nb:2,il:1,c1:3,c2:0},{mn:"TAY",am:"",nb:1,il:0,c1:2,c2:0},{mn:"LDA",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"TAX",am:"",nb:1,il:0,c1:2,c2:0},{mn:"LXA",am:"#aa",nb:2,il:1,c1:0,c2:0},{mn:"LDY",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"LDA",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"LDX",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"LAX",am:"AAAA",nb:3,il:1,c1:4,c2:0},{mn:"BCS",am:"branch",nb:2,il:0,c1:2,c2:2},{mn:"LDA",am:"(aa),y",nb:2,il:0,c1:5,c2:1},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"LAX",am:"(aa),y",nb:2,il:1,c1:5,c2:1},{mn:"LDY",am:"aa,x",nb:2,il:0,c1:4,c2:0},{mn:"LDA",am:"aa,x",nb:2,il:0,c1:4,c2:0},{mn:"LDX",am:"aa,y",nb:2,il:0,c1:4,c2:0},{mn:"LAX",am:"aa,y",nb:2,il:1,c1:4,c2:1},{mn:"CLV",am:"",nb:1,il:0,c1:2,c2:0},{mn:"LDA",am:"AAAA,y",nb:3,il:0,c1:4,c2:1},{mn:"TSX",am:"",nb:1,il:0,c1:2,c2:0},{mn:"LAS",am:"AAAA,y",nb:3,il:1,c1:0,c2:0},{mn:"LDY",am:"AAAA,x",nb:3,il:0,c1:4,c2:1},{mn:"LDA",am:"AAAA,x",nb:3,il:0,c1:4,c2:1},{mn:"LDX",am:"AAAA,y",nb:3,il:0,c1:4,c2:1},{mn:"LAX",am:"AAAA,y",nb:3,il:1,c1:4,c2:1},{mn:"CPY",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"CMP",am:"(aa,x)",nb:2,il:0,c1:6,c2:0},{mn:"NOP",am:"#aa",nb:2,il:1,c1:0,c2:0},{mn:"DCP",am:"(aa,x)",nb:2,il:1,c1:8,c2:1},{mn:"CPY",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"CMP",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"DEC",am:"aa",nb:2,il:0,c1:5,c2:0},{mn:"DCP",am:"aa",nb:2,il:1,c1:5,c2:0},{mn:"INY",am:"",nb:1,il:0,c1:2,c2:0},{mn:"CMP",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"DEX",am:"",nb:1,il:0,c1:2,c2:0},{mn:"SBX",am:"#aa",nb:2,il:1,c1:2,c2:0},{mn:"CPY",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"CMP",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"DEC",am:"AAAA",nb:3,il:0,c1:3,c2:0},{mn:"DCP",am:"AAAA",nb:3,il:1,c1:6,c2:0},{mn:"BNE",am:"branch",nb:2,il:0,c1:2,c2:2},{mn:"CMP",am:"(aa),y",nb:2,il:0,c1:5,c2:1},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"DCP",am:"(aa),y",nb:2,il:1,c1:8,c2:1},{mn:"NOP",am:"aa,x",nb:2,il:1,c1:4,c2:0},{mn:"CMP",am:"aa,x",nb:2,il:0,c1:4,c2:0},{mn:"DEC",am:"aa,x",nb:2,il:0,c1:6,c2:0},{mn:"DCP",am:"aa,x",nb:2,il:1,c1:6,c2:1},{mn:"CLD",am:"",nb:1,il:0,c1:2,c2:0},{mn:"CMP",am:"AAAA,y",nb:3,il:0,c1:4,c2:1},{mn:"NOP",am:"",nb:1,il:1,c1:0,c2:0},{mn:"DCP",am:"AAAA,y",nb:3,il:1,c1:7,c2:1},{mn:"NOP",am:"AAAA,x",nb:3,il:1,c1:4,c2:1},{mn:"CMP",am:"AAAA,x",nb:3,il:0,c1:4,c2:1},{mn:"DEC",am:"AAAA,x",nb:3,il:0,c1:7,c2:0},{mn:"DCP",am:"AAAA,x",nb:3,il:1,c1:7,c2:1},{mn:"CPX",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"SBC",am:"(aa,x)",nb:2,il:0,c1:6,c2:0},{mn:"NOP",am:"#aa",nb:2,il:1,c1:0,c2:0},{mn:"ISB",am:"(aa,x)",nb:2,il:1,c1:8,c2:1},{mn:"CPX",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"SBC",am:"aa",nb:2,il:0,c1:3,c2:0},{mn:"INC",am:"aa",nb:2,il:0,c1:5,c2:0},{mn:"ISB",am:"aa",nb:2,il:1,c1:5,c2:0},{mn:"INX",am:"",nb:1,il:0,c1:2,c2:0},{mn:"SBC",am:"#aa",nb:2,il:0,c1:2,c2:0},{mn:"NOP",am:"",nb:1,il:0,c1:2,c2:0},{mn:"SBC",am:"#aa",nb:2,il:1,c1:0,c2:0},{mn:"CPX",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"SBC",am:"AAAA",nb:3,il:0,c1:4,c2:0},{mn:"INC",am:"AAAA",nb:3,il:0,c1:6,c2:0},{mn:"ISB",am:"AAAA",nb:3,il:1,c1:6,c2:0},{mn:"BEQ",am:"branch",nb:2,il:0,c1:2,c2:2},{mn:"SBC",am:"(aa),y",nb:2,il:0,c1:5,c2:1},{mn:"KIL",am:"",nb:1,il:1,c1:0,c2:0},{mn:"ISB",am:"(aa),y",nb:2,il:1,c1:8,c2:1},{mn:"NOP",am:"aa,x",nb:2,il:1,c1:4,c2:0},{mn:"SBC",am:"aa,x",nb:2,il:0,c1:4,c2:0},{mn:"INC",am:"aa,x",nb:2,il:0,c1:6,c2:0},{mn:"ISB",am:"aa,x",nb:2,il:1,c1:6,c2:1},{mn:"SED",am:"",nb:1,il:0,c1:2,c2:0},{mn:"SBC",am:"AAAA,y",nb:3,il:0,c1:4,c2:1},{mn:"NOP",am:"",nb:1,il:1,c1:0,c2:0},{mn:"ISB",am:"AAAA,y",nb:3,il:1,c1:7,c2:1},{mn:"NOP",am:"AAAA,x",nb:3,il:1,c1:4,c2:1},{mn:"SBC",am:"AAAA,x",nb:3,il:0,c1:4,c2:1},{mn:"INC",am:"AAAA,x",nb:3,il:0,c1:7,c2:0},{mn:"ISB",am:"AAAA,x",nb:3,il:1,c1:7,c2:1}];function tt(A,e,r,c){var l=cn[e];if(l==null)return{line:"???",nbytes:1,isaddr:!1};var x=l.mn,d=l.am,u=!1;if(d=="branch"){var a=r<128?A+2+r:A+2-(256-r);a&=65535,d="$"+re(a,4),u=!0}else d=d.replace("aa","$"+re(r,2)),d=d.replace("AAAA","$"+re(r+(c<<8),4)),d.indexOf("#")<0&&d.indexOf("$")>=0&&(u=!0);return{line:l.mn+" "+d,nbytes:l.nb,isaddr:u}}function sn(A){let e=A;if(!e||typeof e.mem_read!="function"||typeof e.mem_write!="function"||typeof e.io_read!="function"||typeof e.io_write!="function")throw"Z80: Core object is missing required functions.";let r=0,c=0,l=0,x=0,d=0,u=0,a=0,W=0,I=0,g=0,L=0,B=0,J=0,le=0,h=0,R=0,ie=0,T=0,V=57328,i=0,f={S:0,Z:0,Y:0,H:0,X:0,P:0,N:0,C:0},pe={S:0,Z:0,Y:0,H:0,X:0,P:0,N:0,C:0},Me=0,H=0,De=0,P=!1,C=!1,Ze=!1,ee=0;function G(){return{PC:i,SP:V,IX:h,IY:R,AF:(r<<8)+Xe(),BC:(c<<8)+l,DE:(x<<8)+d,HL:(u<<8)+a,AF_:(W<<8)+We(),BC_:(I<<8)+g,DE_:(L<<8)+B,HL_:(J<<8)+le,IR:(ie<<8)+T,im:Me,iff1:H,iff2:De,halted:P,do_delayed_di:C,do_delayed_ei:Ze,cycle_counter:ee}}function Ye(t){i=t.PC,V=t.SP,h=t.IX,R=t.IY,r=t.AF>>8&255,Te(t.AF),c=t.BC>>8&255,l=t.BC&255,x=t.DE>>8&255,d=t.DE&255,u=t.HL>>8&255,a=t.HL&255,W=t.AF_>>8&255,Be(t.AF_),I=t.BC_>>8&255,g=t.BC_&255,L=t.DE_>>8&255,B=t.DE_&255,J=t.HL_>>8&255,le=t.HL_&255,ie=t.IR>>8&255,T=t.IR&255,Me=t.im,H=t.iff1,De=t.iff2,P=t.halted,C=t.do_delayed_di,Ze=t.do_delayed_ei,ee=t.cycle_counter}let z=function(){V=57328,i=0,r=0,T=0,Te(0),Me=0,H=0,De=0,P=!1,C=!1,Ze=!1,ee=0},U=function(){if(P)return 1;var t=!1,b=!1;C?(C=!1,t=!0):Ze&&(Ze=!1,b=!0),T=T&128|(T&127)+1&127;var _=e.mem_read(i);ue(_),i=i+1&65535,t?(H=0,De=0):b&&(H=1,De=1);var Ie=ee;return ee=0,Ie},Ae=function(t,b){if(t)return T=T&128|(T&127)+1&127,P=!1,De=H,H=0,we(i),i=102,ee+=11,!0;if(H){if(T=T&128|(T&127)+1&127,P=!1,H=0,De=0,Me===0)i=i-1&65535,ue(b),i=i+1&65535,ee+=2;else if(Me===1)we(i),i=56,ee+=13;else if(Me===2){we(i);var _=ie<<8|b;i=e.mem_read(_)|e.mem_read(_+1&65535)<<8,ee+=19}return!0}},ue=function(t){var b=function(Oe){return(Oe&7)==0?c:(Oe&7)==1?l:(Oe&7)==2?x:(Oe&7)==3?d:(Oe&7)==4?u:(Oe&7)==5?a:(Oe&7)==6?e.mem_read(a|u<<8):r};if(t===118)P=!0;else if(t>=64&&t<128){var _=b(t);(t&56)>>>3==0?c=_:(t&56)>>>3==1?l=_:(t&56)>>>3==2?x=_:(t&56)>>>3==3?d=_:(t&56)>>>3==4?u=_:(t&56)>>>3==5?a=_:(t&56)>>>3==6?e.mem_write(a|u<<8,_):(t&56)>>>3==7&&(r=_)}else if(t>=128&&t<192){var _=b(t),Ie=[ce,ae,N,k,fe,te,F,M];Ie[(t&56)>>>3](_)}else{var $e=S[t];$e()}ee+=o[t]},O=function(t){return t&=255,t&128&&(t=-((255&~t)+1)),t},Xe=function(){return f.S<<7|f.Z<<6|f.Y<<5|f.H<<4|f.X<<3|f.P<<2|f.N<<1|f.C},We=function(){return pe.S<<7|pe.Z<<6|pe.Y<<5|pe.H<<4|pe.X<<3|pe.P<<2|pe.N<<1|pe.C},Te=function(t){f.S=(t&128)>>>7,f.Z=(t&64)>>>6,f.Y=(t&32)>>>5,f.H=(t&16)>>>4,f.X=(t&8)>>>3,f.P=(t&4)>>>2,f.N=(t&2)>>>1,f.C=t&1},Be=function(t){pe.S=(t&128)>>>7,pe.Z=(t&64)>>>6,pe.Y=(t&32)>>>5,pe.H=(t&16)>>>4,pe.X=(t&8)>>>3,pe.P=(t&4)>>>2,pe.N=(t&2)>>>1,pe.C=t&1},Q=function(t){f.Y=(t&32)>>>5,f.X=(t&8)>>>3},me=function(t){var b=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];return b[t]},we=function(t){V=V-1&65535,e.mem_write(V,(t&65280)>>>8),V=V-1&65535,e.mem_write(V,t&255)},be=function(){var t=e.mem_read(V)&255;return V=V+1&65535,t|=e.mem_read(V)<<8,V=V+1&65535,t},ye=function(t){t?(i=e.mem_read(i+1&65535)|e.mem_read(i+2&65535)<<8,i=i-1&65535):i=i+2&65535},Ve=function(t){if(t){ee+=5;var b=O(e.mem_read(i+1&65535));i=i+b+1&65535}else i=i+1&65535},Ee=function(t){t?(ee+=7,we(i+3&65535),i=e.mem_read(i+1&65535)|e.mem_read(i+2&65535)<<8,i=i-1&65535):i=i+2&65535},Ue=function(t){t&&(ee+=6,i=be()-1&65535)},Pe=function(t){we(i+1&65535),i=t-1&65535},ce=function(t){var b=r+t;f.S=b&128?1:0,f.Z=b&255?0:1,f.H=(t&15)+(r&15)&16?1:0,f.P=(r&128)==(t&128)&&(r&128)!=(b&128)?1:0,f.N=0,f.C=b&256?1:0,r=b&255,Q(r)},ae=function(t){var b=r+t+f.C;f.S=b&128?1:0,f.Z=b&255?0:1,f.H=(t&15)+(r&15)+f.C&16?1:0,f.P=(r&128)==(t&128)&&(r&128)!=(b&128)?1:0,f.N=0,f.C=b&256?1:0,r=b&255,Q(r)},N=function(t){var b=r-t;f.S=b&128?1:0,f.Z=b&255?0:1,f.H=(r&15)-(t&15)&16?1:0,f.P=(r&128)!=(t&128)&&(r&128)!=(b&128)?1:0,f.N=1,f.C=b&256?1:0,r=b&255,Q(r)},k=function(t){var b=r-t-f.C;f.S=b&128?1:0,f.Z=b&255?0:1,f.H=(r&15)-(t&15)-f.C&16?1:0,f.P=(r&128)!=(t&128)&&(r&128)!=(b&128)?1:0,f.N=1,f.C=b&256?1:0,r=b&255,Q(r)},M=function(t){var b=r;N(t),r=b,Q(t)},fe=function(t){r&=t&255,f.S=r&128?1:0,f.Z=r?0:1,f.H=1,f.P=me(r),f.N=0,f.C=0,Q(r)},F=function(t){r=(t|r)&255,f.S=r&128?1:0,f.Z=r?0:1,f.H=0,f.P=me(r),f.N=0,f.C=0,Q(r)},te=function(t){r=(t^r)&255,f.S=r&128?1:0,f.Z=r?0:1,f.H=0,f.P=me(r),f.N=0,f.C=0,Q(r)},w=function(t){var b=t+1;return f.S=b&128?1:0,f.Z=b&255?0:1,f.H=(t&15)==15?1:0,f.P=t===127?1:0,f.N=0,b&=255,Q(b),b},E=function(t){var b=t-1;return f.S=b&128?1:0,f.Z=b&255?0:1,f.H=(t&15)==0?1:0,f.P=t===128?1:0,f.N=1,b&=255,Q(b),b},ge=function(t){var b=a|u<<8,_=b+t;f.N=0,f.C=_&65536?1:0,f.H=(b&4095)+(t&4095)&4096?1:0,a=_&255,u=(_&65280)>>>8,Q(u)},Y=function(t){t+=f.C;var b=a|u<<8,_=b+t;f.S=_&32768?1:0,f.Z=_&65535?0:1,f.H=(b&4095)+(t&4095)&4096?1:0,f.P=(b&32768)==(t&32768)&&(_&32768)!=(b&32768)?1:0,f.N=0,f.C=_&65536?1:0,a=_&255,u=_>>>8&255,Q(u)},ne=function(t){t+=f.C;var b=a|u<<8,_=b-t;f.S=_&32768?1:0,f.Z=_&65535?0:1,f.H=(b&4095)-(t&4095)&4096?1:0,f.P=(b&32768)!=(t&32768)&&(_&32768)!=(b&32768)?1:0,f.N=1,f.C=_&65536?1:0,a=_&255,u=_>>>8&255,Q(u)},ve=function(t){var b=e.io_read(t);return f.S=b&128?1:0,f.Z=b?0:1,f.H=0,f.P=me(b)?1:0,f.N=0,Q(b),b},j=function(){r!==128&&(r=O(r),r=-r&255),f.S=r&128?1:0,f.Z=r?0:1,f.H=(-r&15)>0?1:0,f.P=r===128?1:0,f.N=1,f.C=r?1:0,Q(r)},oe=function(){var t=e.mem_read(a|u<<8);e.mem_write(d|x<<8,t);var b=(d|x<<8)+1;d=b&255,x=(b&65280)>>>8,b=(a|u<<8)+1,a=b&255,u=(b&65280)>>>8,b=(l|c<<8)-1,l=b&255,c=(b&65280)>>>8,f.H=0,f.P=l||c?1:0,f.N=0,f.Y=(r+t&2)>>>1,f.X=(r+t&8)>>>3},Le=function(){var t=f.C,b=e.mem_read(a|u<<8);M(b),f.C=t,f.Y=(r-b-f.H&2)>>>1,f.X=(r-b-f.H&8)>>>3;var _=(a|u<<8)+1;a=_&255,u=(_&65280)>>>8,_=(l|c<<8)-1,l=_&255,c=(_&65280)>>>8,f.P=_?1:0},Z=function(){c=E(c),e.mem_write(a|u<<8,e.io_read(c<<8|l));var t=(a|u<<8)+1;a=t&255,u=(t&65280)>>>8,f.N=1},q=function(){e.io_write(c<<8|l,e.mem_read(a|u<<8));var t=(a|u<<8)+1;a=t&255,u=(t&65280)>>>8,c=E(c),f.N=1},se=function(){f.N=0,f.H=0;var t=e.mem_read(a|u<<8);e.mem_write(d|x<<8,t);var b=(d|x<<8)-1;d=b&255,x=(b&65280)>>>8,b=(a|u<<8)-1,a=b&255,u=(b&65280)>>>8,b=(l|c<<8)-1,l=b&255,c=(b&65280)>>>8,f.P=l||c?1:0,f.Y=(r+t&2)>>>1,f.X=(r+t&8)>>>3},_e=function(){var t=f.C,b=e.mem_read(a|u<<8);M(b),f.C=t,f.Y=(r-b-f.H&2)>>>1,f.X=(r-b-f.H&8)>>>3;var _=(a|u<<8)-1;a=_&255,u=(_&65280)>>>8,_=(l|c<<8)-1,l=_&255,c=(_&65280)>>>8,f.P=_?1:0},Re=function(){c=E(c),e.mem_write(a|u<<8,e.io_read(c<<8|l));var t=(a|u<<8)-1;a=t&255,u=(t&65280)>>>8,f.N=1},He=function(){e.io_write(c<<8|l,e.mem_read(a|u<<8));var t=(a|u<<8)-1;a=t&255,u=(t&65280)>>>8,c=E(c),f.N=1},xe=function(t){return f.N=0,f.H=0,f.C=(t&128)>>>7,t=(t<<1|f.C)&255,f.Z=t?0:1,f.P=me(t),f.S=t&128?1:0,Q(t),t},de=function(t){return f.N=0,f.H=0,f.C=t&1,t=t>>>1&127|f.C<<7,f.Z=t&255?0:1,f.P=me(t),f.S=t&128?1:0,Q(t),t&255},Ne=function(t){f.N=0,f.H=0;var b=f.C;return f.C=(t&128)>>>7,t=(t<<1|b)&255,f.Z=t?0:1,f.P=me(t),f.S=t&128?1:0,Q(t),t},ke=function(t){f.N=0,f.H=0;var b=f.C;return f.C=t&1,t=t>>>1&127|b<<7,f.Z=t?0:1,f.P=me(t),f.S=t&128?1:0,Q(t),t},ze=function(t){return f.N=0,f.H=0,f.C=(t&128)>>>7,t=t<<1&255,f.Z=t?0:1,f.P=me(t),f.S=t&128?1:0,Q(t),t},X=function(t){return f.N=0,f.H=0,f.C=t&1,t=t>>>1&127|t&128,f.Z=t?0:1,f.P=me(t),f.S=t&128?1:0,Q(t),t},Ke=function(t){return f.N=0,f.H=0,f.C=(t&128)>>>7,t=t<<1&255|1,f.Z=t?0:1,f.P=me(t),f.S=t&128?1:0,Q(t),t},Qe=function(t){return f.N=0,f.H=0,f.C=t&1,t=t>>>1&127,f.Z=t?0:1,f.P=me(t),f.S=0,Q(t),t},e0=function(t){f.N=0;var b=h+t;f.C=b&65536?1:0,f.H=(h&4095)+(t&4095)&4096?1:0,Q((b&65280)>>>8),h=b&65535},S=[];S[0]=function(){},S[1]=function(){i=i+1&65535,l=e.mem_read(i),i=i+1&65535,c=e.mem_read(i)},S[2]=function(){e.mem_write(l|c<<8,r)},S[3]=function(){var t=l|c<<8;t+=1,l=t&255,c=(t&65280)>>>8},S[4]=function(){c=w(c)},S[5]=function(){c=E(c)},S[6]=function(){i=i+1&65535,c=e.mem_read(i)},S[7]=function(){var t=f.S,b=f.Z,_=f.P;r=xe(r),f.S=t,f.Z=b,f.P=_},S[8]=function(){var t=r;r=W,W=t,t=Xe(),Te(We()),Be(t)},S[9]=function(){ge(l|c<<8)},S[10]=function(){r=e.mem_read(l|c<<8)},S[11]=function(){var t=l|c<<8;t-=1,l=t&255,c=(t&65280)>>>8},S[12]=function(){l=w(l)},S[13]=function(){l=E(l)},S[14]=function(){i=i+1&65535,l=e.mem_read(i)},S[15]=function(){var t=f.S,b=f.Z,_=f.P;r=de(r),f.S=t,f.Z=b,f.P=_},S[16]=function(){c=c-1&255,Ve(c!==0)},S[17]=function(){i=i+1&65535,d=e.mem_read(i),i=i+1&65535,x=e.mem_read(i)},S[18]=function(){e.mem_write(d|x<<8,r)},S[19]=function(){var t=d|x<<8;t+=1,d=t&255,x=(t&65280)>>>8},S[20]=function(){x=w(x)},S[21]=function(){x=E(x)},S[22]=function(){i=i+1&65535,x=e.mem_read(i)},S[23]=function(){var t=f.S,b=f.Z,_=f.P;r=Ne(r),f.S=t,f.Z=b,f.P=_},S[24]=function(){var t=O(e.mem_read(i+1&65535));i=i+t+1&65535},S[25]=function(){ge(d|x<<8)},S[26]=function(){r=e.mem_read(d|x<<8)},S[27]=function(){var t=d|x<<8;t-=1,d=t&255,x=(t&65280)>>>8},S[28]=function(){d=w(d)},S[29]=function(){d=E(d)},S[30]=function(){i=i+1&65535,d=e.mem_read(i)},S[31]=function(){var t=f.S,b=f.Z,_=f.P;r=ke(r),f.S=t,f.Z=b,f.P=_},S[32]=function(){Ve(!f.Z)},S[33]=function(){i=i+1&65535,a=e.mem_read(i),i=i+1&65535,u=e.mem_read(i)},S[34]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,e.mem_write(t,a),e.mem_write(t+1&65535,u)},S[35]=function(){var t=a|u<<8;t+=1,a=t&255,u=(t&65280)>>>8},S[36]=function(){u=w(u)},S[37]=function(){u=E(u)},S[38]=function(){i=i+1&65535,u=e.mem_read(i)},S[39]=function(){var t=r;f.N?((f.H||(r&15)>9)&&(t-=6),(f.C||r>153)&&(t-=96)):((f.H||(r&15)>9)&&(t+=6),(f.C||r>153)&&(t+=96)),f.S=t&128?1:0,f.Z=t&255?0:1,f.H=r&16^t&16?1:0,f.P=me(t&255),f.C=f.C||r>153?1:0,r=t&255,Q(r)},S[40]=function(){Ve(!!f.Z)},S[41]=function(){ge(a|u<<8)},S[42]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,a=e.mem_read(t),u=e.mem_read(t+1&65535)},S[43]=function(){var t=a|u<<8;t-=1,a=t&255,u=(t&65280)>>>8},S[44]=function(){a=w(a)},S[45]=function(){a=E(a)},S[46]=function(){i=i+1&65535,a=e.mem_read(i)},S[47]=function(){r=~r&255,f.N=1,f.H=1,Q(r)},S[48]=function(){Ve(!f.C)},S[49]=function(){V=e.mem_read(i+1&65535)|e.mem_read(i+2&65535)<<8,i=i+2&65535},S[50]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,e.mem_write(t,r)},S[51]=function(){V=V+1&65535},S[52]=function(){var t=a|u<<8;e.mem_write(t,w(e.mem_read(t)))},S[53]=function(){var t=a|u<<8;e.mem_write(t,E(e.mem_read(t)))},S[54]=function(){i=i+1&65535,e.mem_write(a|u<<8,e.mem_read(i))},S[55]=function(){f.N=0,f.H=0,f.C=1,Q(r)},S[56]=function(){Ve(!!f.C)},S[57]=function(){ge(V)},S[58]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,r=e.mem_read(t)},S[59]=function(){V=V-1&65535},S[60]=function(){r=w(r)},S[61]=function(){r=E(r)},S[62]=function(){r=e.mem_read(i+1&65535),i=i+1&65535},S[63]=function(){f.N=0,f.H=f.C,f.C=f.C?0:1,Q(r)},S[192]=function(){Ue(!f.Z)},S[193]=function(){var t=be();l=t&255,c=(t&65280)>>>8},S[194]=function(){ye(!f.Z)},S[195]=function(){i=e.mem_read(i+1&65535)|e.mem_read(i+2&65535)<<8,i=i-1&65535},S[196]=function(){Ee(!f.Z)},S[197]=function(){we(l|c<<8)},S[198]=function(){i=i+1&65535,ce(e.mem_read(i))},S[199]=function(){Pe(0)},S[200]=function(){Ue(!!f.Z)},S[201]=function(){i=be()-1&65535},S[202]=function(){ye(!!f.Z)},S[203]=function(){T=T&128|(T&127)+1&127,i=i+1&65535;var t=e.mem_read(i),b=(t&56)>>>3,_=t&7;if(t<64){var Ie=[xe,de,Ne,ke,ze,X,Ke,Qe];_===0?c=Ie[b](c):_===1?l=Ie[b](l):_===2?x=Ie[b](x):_===3?d=Ie[b](d):_===4?u=Ie[b](u):_===5?a=Ie[b](a):_===6?e.mem_write(a|u<<8,Ie[b](e.mem_read(a|u<<8))):_===7&&(r=Ie[b](r))}else t<128?(_===0?f.Z=c&1<<b?0:1:_===1?f.Z=l&1<<b?0:1:_===2?f.Z=x&1<<b?0:1:_===3?f.Z=d&1<<b?0:1:_===4?f.Z=u&1<<b?0:1:_===5?f.Z=a&1<<b?0:1:_===6?f.Z=e.mem_read(a|u<<8)&1<<b?0:1:_===7&&(f.Z=r&1<<b?0:1),f.N=0,f.H=1,f.P=f.Z,f.S=b===7&&!f.Z?1:0,f.Y=b===5&&!f.Z?1:0,f.X=b===3&&!f.Z?1:0):t<192?_===0?c&=255&~(1<<b):_===1?l&=255&~(1<<b):_===2?x&=255&~(1<<b):_===3?d&=255&~(1<<b):_===4?u&=255&~(1<<b):_===5?a&=255&~(1<<b):_===6?e.mem_write(a|u<<8,e.mem_read(a|u<<8)&~(1<<b)):_===7&&(r&=255&~(1<<b)):_===0?c|=1<<b:_===1?l|=1<<b:_===2?x|=1<<b:_===3?d|=1<<b:_===4?u|=1<<b:_===5?a|=1<<b:_===6?e.mem_write(a|u<<8,e.mem_read(a|u<<8)|1<<b):_===7&&(r|=1<<b);ee+=p[t]},S[204]=function(){Ee(!!f.Z)},S[205]=function(){we(i+3&65535),i=e.mem_read(i+1&65535)|e.mem_read(i+2&65535)<<8,i=i-1&65535},S[206]=function(){i=i+1&65535,ae(e.mem_read(i))},S[207]=function(){Pe(8)},S[208]=function(){Ue(!f.C)},S[209]=function(){var t=be();d=t&255,x=(t&65280)>>>8},S[210]=function(){ye(!f.C)},S[211]=function(){i=i+1&65535,e.io_write(r<<8|e.mem_read(i),r)},S[212]=function(){Ee(!f.C)},S[213]=function(){we(d|x<<8)},S[214]=function(){i=i+1&65535,N(e.mem_read(i))},S[215]=function(){Pe(16)},S[216]=function(){Ue(!!f.C)},S[217]=function(){var t=c;c=I,I=t,t=l,l=g,g=t,t=x,x=L,L=t,t=d,d=B,B=t,t=u,u=J,J=t,t=a,a=le,le=t},S[218]=function(){ye(!!f.C)},S[219]=function(){i=i+1&65535,r=e.io_read(r<<8|e.mem_read(i))},S[220]=function(){Ee(!!f.C)},S[221]=function(){T=T&128|(T&127)+1&127,i=i+1&65535;var t=e.mem_read(i),b=D[t];b?(b(),ee+=s[t]):(i=i-1&65535,ee+=o[0])},S[222]=function(){i=i+1&65535,k(e.mem_read(i))},S[223]=function(){Pe(24)},S[224]=function(){Ue(!f.P)},S[225]=function(){var t=be();a=t&255,u=(t&65280)>>>8},S[226]=function(){ye(!f.P)},S[227]=function(){var t=e.mem_read(V);e.mem_write(V,a),a=t,t=e.mem_read(V+1&65535),e.mem_write(V+1&65535,u),u=t},S[228]=function(){Ee(!f.P)},S[229]=function(){we(a|u<<8)},S[230]=function(){i=i+1&65535,fe(e.mem_read(i))},S[231]=function(){Pe(32)},S[232]=function(){Ue(!!f.P)},S[233]=function(){i=a|u<<8,i=i-1&65535},S[234]=function(){ye(!!f.P)},S[235]=function(){var t=x;x=u,u=t,t=d,d=a,a=t},S[236]=function(){Ee(!!f.P)},S[237]=function(){T=T&128|(T&127)+1&127,i=i+1&65535;var t=e.mem_read(i),b=y[t];b?(b(),ee+=n[t]):ee+=o[0]},S[238]=function(){i=i+1&65535,te(e.mem_read(i))},S[239]=function(){Pe(40)},S[240]=function(){Ue(!f.S)},S[241]=function(){var t=be();Te(t&255),r=(t&65280)>>>8},S[242]=function(){ye(!f.S)},S[243]=function(){C=!0},S[244]=function(){Ee(!f.S)},S[245]=function(){we(Xe()|r<<8)},S[246]=function(){i=i+1&65535,F(e.mem_read(i))},S[247]=function(){Pe(48)},S[248]=function(){Ue(!!f.S)},S[249]=function(){V=a|u<<8},S[250]=function(){ye(!!f.S)},S[251]=function(){Ze=!0},S[252]=function(){Ee(!!f.S)},S[253]=function(){T=T&128|(T&127)+1&127,i=i+1&65535;var t=e.mem_read(i),b=D[t];if(b){var _=h;h=R,b(),R=h,h=_,ee+=s[t]}else i=i-1&65535,ee+=o[0]},S[254]=function(){i=i+1&65535,M(e.mem_read(i))},S[255]=function(){Pe(56)};let y=[];y[64]=function(){c=ve(c<<8|l)},y[65]=function(){e.io_write(c<<8|l,c)},y[66]=function(){ne(l|c<<8)},y[67]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,e.mem_write(t,l),e.mem_write(t+1&65535,c)},y[68]=function(){j()},y[69]=function(){i=be()-1&65535,H=De},y[70]=function(){Me=0},y[71]=function(){ie=r},y[72]=function(){l=ve(c<<8|l)},y[73]=function(){e.io_write(c<<8|l,l)},y[74]=function(){Y(l|c<<8)},y[75]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,l=e.mem_read(t),c=e.mem_read(t+1&65535)},y[76]=function(){j()},y[77]=function(){i=be()-1&65535},y[78]=function(){Me=0},y[79]=function(){T=r},y[80]=function(){x=ve(c<<8|l)},y[81]=function(){e.io_write(c<<8|l,x)},y[82]=function(){ne(d|x<<8)},y[83]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,e.mem_write(t,d),e.mem_write(t+1&65535,x)},y[84]=function(){j()},y[85]=function(){i=be()-1&65535,H=De},y[86]=function(){Me=1},y[87]=function(){r=ie,f.S=r&128?1:0,f.Z=r?0:1,f.H=0,f.P=De,f.N=0,Q(r)},y[88]=function(){d=ve(c<<8|l)},y[89]=function(){e.io_write(c<<8|l,d)},y[90]=function(){Y(d|x<<8)},y[91]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,d=e.mem_read(t),x=e.mem_read(t+1&65535)},y[92]=function(){j()},y[93]=function(){i=be()-1&65535,H=De},y[94]=function(){Me=2},y[95]=function(){r=T,f.S=r&128?1:0,f.Z=r?0:1,f.H=0,f.P=De,f.N=0,Q(r)},y[96]=function(){u=ve(c<<8|l)},y[97]=function(){e.io_write(c<<8|l,u)},y[98]=function(){ne(a|u<<8)},y[99]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,e.mem_write(t,a),e.mem_write(t+1&65535,u)},y[100]=function(){j()},y[101]=function(){i=be()-1&65535,H=De},y[102]=function(){Me=0},y[103]=function(){var t=e.mem_read(a|u<<8),b=t&15,_=r&15;t=(t&240)>>>4|_<<4,r=r&240|b,e.mem_write(a|u<<8,t),f.S=r&128?1:0,f.Z=r?0:1,f.H=0,f.P=me(r)?1:0,f.N=0,Q(r)},y[104]=function(){a=ve(c<<8|l)},y[105]=function(){e.io_write(c<<8|l,a)},y[106]=function(){Y(a|u<<8)},y[107]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,a=e.mem_read(t),u=e.mem_read(t+1&65535)},y[108]=function(){j()},y[109]=function(){i=be()-1&65535,H=De},y[110]=function(){Me=0},y[111]=function(){var t=e.mem_read(a|u<<8),b=t&240,_=r&15;t=(t&15)<<4|_,r=r&240|b>>>4,e.mem_write(a|u<<8,t),f.S=r&128?1:0,f.Z=r?0:1,f.H=0,f.P=me(r)?1:0,f.N=0,Q(r)},y[112]=function(){ve(c<<8|l)},y[113]=function(){e.io_write(c<<8|l,0)},y[114]=function(){ne(V)},y[115]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,e.mem_write(t,V&255),e.mem_write(t+1&65535,V>>>8&255)},y[116]=function(){j()},y[117]=function(){i=be()-1&65535,H=De},y[118]=function(){Me=1},y[120]=function(){r=ve(c<<8|l)},y[121]=function(){e.io_write(c<<8|l,r)},y[122]=function(){Y(V)},y[123]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,V=e.mem_read(t),V|=e.mem_read(t+1&65535)<<8},y[124]=function(){j()},y[125]=function(){i=be()-1&65535,H=De},y[126]=function(){Me=2},y[160]=function(){oe()},y[161]=function(){Le()},y[162]=function(){Z()},y[163]=function(){q()},y[168]=function(){se()},y[169]=function(){_e()},y[170]=function(){Re()},y[171]=function(){He()},y[176]=function(){oe(),(c||l)&&(ee+=5,i=i-2&65535)},y[177]=function(){Le(),!f.Z&&(c||l)&&(ee+=5,i=i-2&65535)},y[178]=function(){Z(),c&&(ee+=5,i=i-2&65535)},y[179]=function(){q(),c&&(ee+=5,i=i-2&65535)},y[184]=function(){se(),(c||l)&&(ee+=5,i=i-2&65535)},y[185]=function(){_e(),!f.Z&&(c||l)&&(ee+=5,i=i-2&65535)},y[186]=function(){Re(),c&&(ee+=5,i=i-2&65535)},y[187]=function(){He(),c&&(ee+=5,i=i-2&65535)};let D=[];D[9]=function(){e0(l|c<<8)},D[25]=function(){e0(d|x<<8)},D[33]=function(){i=i+1&65535,h=e.mem_read(i),i=i+1&65535,h|=e.mem_read(i)<<8},D[34]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,e.mem_write(t,h&255),e.mem_write(t+1&65535,h>>>8&255)},D[35]=function(){h=h+1&65535},D[36]=function(){h=w(h>>>8)<<8|h&255},D[37]=function(){h=E(h>>>8)<<8|h&255},D[38]=function(){i=i+1&65535,h=e.mem_read(i)<<8|h&255},D[41]=function(){e0(h)},D[42]=function(){i=i+1&65535;var t=e.mem_read(i);i=i+1&65535,t|=e.mem_read(i)<<8,h=e.mem_read(t),h|=e.mem_read(t+1&65535)<<8},D[43]=function(){h=h-1&65535},D[44]=function(){h=w(h&255)|h&65280},D[45]=function(){h=E(h&255)|h&65280},D[46]=function(){i=i+1&65535,h=e.mem_read(i)&255|h&65280},D[52]=function(){i=i+1&65535;var t=O(e.mem_read(i)),b=e.mem_read(t+h&65535);e.mem_write(t+h&65535,w(b))},D[53]=function(){i=i+1&65535;var t=O(e.mem_read(i)),b=e.mem_read(t+h&65535);e.mem_write(t+h&65535,E(b))},D[54]=function(){i=i+1&65535;var t=O(e.mem_read(i));i=i+1&65535,e.mem_write(h+t&65535,e.mem_read(i))},D[57]=function(){e0(V)},D[68]=function(){c=h>>>8&255},D[69]=function(){c=h&255},D[70]=function(){i=i+1&65535;var t=O(e.mem_read(i));c=e.mem_read(h+t&65535)},D[76]=function(){l=h>>>8&255},D[77]=function(){l=h&255},D[78]=function(){i=i+1&65535;var t=O(e.mem_read(i));l=e.mem_read(h+t&65535)},D[84]=function(){x=h>>>8&255},D[85]=function(){x=h&255},D[86]=function(){i=i+1&65535;var t=O(e.mem_read(i));x=e.mem_read(h+t&65535)},D[92]=function(){d=h>>>8&255},D[93]=function(){d=h&255},D[94]=function(){i=i+1&65535;var t=O(e.mem_read(i));d=e.mem_read(h+t&65535)},D[96]=function(){h=h&255|c<<8},D[97]=function(){h=h&255|l<<8},D[98]=function(){h=h&255|x<<8},D[99]=function(){h=h&255|d<<8},D[100]=function(){},D[101]=function(){h=h&255|(h&255)<<8},D[102]=function(){i=i+1&65535;var t=O(e.mem_read(i));u=e.mem_read(h+t&65535)},D[103]=function(){h=h&255|r<<8},D[104]=function(){h=h&65280|c},D[105]=function(){h=h&65280|l},D[106]=function(){h=h&65280|x},D[107]=function(){h=h&65280|d},D[108]=function(){h=h&65280|h>>>8},D[109]=function(){},D[110]=function(){i=i+1&65535;var t=O(e.mem_read(i));a=e.mem_read(h+t&65535)},D[111]=function(){h=h&65280|r},D[112]=function(){i=i+1&65535;var t=O(e.mem_read(i));e.mem_write(h+t&65535,c)},D[113]=function(){i=i+1&65535;var t=O(e.mem_read(i));e.mem_write(h+t&65535,l)},D[114]=function(){i=i+1&65535;var t=O(e.mem_read(i));e.mem_write(h+t&65535,x)},D[115]=function(){i=i+1&65535;var t=O(e.mem_read(i));e.mem_write(h+t&65535,d)},D[116]=function(){i=i+1&65535;var t=O(e.mem_read(i));e.mem_write(h+t&65535,u)},D[117]=function(){i=i+1&65535;var t=O(e.mem_read(i));e.mem_write(h+t&65535,a)},D[119]=function(){i=i+1&65535;var t=O(e.mem_read(i));e.mem_write(h+t&65535,r)},D[124]=function(){r=h>>>8&255},D[125]=function(){r=h&255},D[126]=function(){i=i+1&65535;var t=O(e.mem_read(i));r=e.mem_read(h+t&65535)},D[132]=function(){ce(h>>>8&255)},D[133]=function(){ce(h&255)},D[134]=function(){i=i+1&65535;var t=O(e.mem_read(i));ce(e.mem_read(h+t&65535))},D[140]=function(){ae(h>>>8&255)},D[141]=function(){ae(h&255)},D[142]=function(){i=i+1&65535;var t=O(e.mem_read(i));ae(e.mem_read(h+t&65535))},D[148]=function(){N(h>>>8&255)},D[149]=function(){N(h&255)},D[150]=function(){i=i+1&65535;var t=O(e.mem_read(i));N(e.mem_read(h+t&65535))},D[156]=function(){k(h>>>8&255)},D[157]=function(){k(h&255)},D[158]=function(){i=i+1&65535;var t=O(e.mem_read(i));k(e.mem_read(h+t&65535))},D[164]=function(){fe(h>>>8&255)},D[165]=function(){fe(h&255)},D[166]=function(){i=i+1&65535;var t=O(e.mem_read(i));fe(e.mem_read(h+t&65535))},D[172]=function(){te(h>>>8&255)},D[173]=function(){te(h&255)},D[174]=function(){i=i+1&65535;var t=O(e.mem_read(i));te(e.mem_read(h+t&65535))},D[180]=function(){F(h>>>8&255)},D[181]=function(){F(h&255)},D[182]=function(){i=i+1&65535;var t=O(e.mem_read(i));F(e.mem_read(h+t&65535))},D[188]=function(){M(h>>>8&255)},D[189]=function(){M(h&255)},D[190]=function(){i=i+1&65535;var t=O(e.mem_read(i));M(e.mem_read(h+t&65535))},D[203]=function(){i=i+1&65535;var t=O(e.mem_read(i));i=i+1&65535;var b=e.mem_read(i),_;if(b<64){var Ie=[xe,de,Ne,ke,ze,X,Ke,Qe],$e=Ie[(b&56)>>>3],_=$e(e.mem_read(h+t&65535));e.mem_write(h+t&65535,_)}else{var Oe=(b&56)>>>3;b<128?(f.N=0,f.H=1,f.Z=e.mem_read(h+t&65535)&1<<Oe?0:1,f.P=f.Z,f.S=Oe===7&&!f.Z?1:0):b<192?(_=e.mem_read(h+t&65535)&~(1<<Oe)&255,e.mem_write(h+t&65535,_)):(_=e.mem_read(h+t&65535)|1<<Oe,e.mem_write(h+t&65535,_))}_!==void 0&&((b&7)==0?c=_:(b&7)==1?l=_:(b&7)==2?x=_:(b&7)==3?d=_:(b&7)==4?u=_:(b&7)==5?a=_:(b&7)==7&&(r=_)),ee+=p[b]+8},D[225]=function(){h=be()},D[227]=function(){var t=h;h=e.mem_read(V),h|=e.mem_read(V+1&65535)<<8,e.mem_write(V,t&255),e.mem_write(V+1&65535,t>>>8&255)},D[229]=function(){we(h)},D[233]=function(){i=h-1&65535},D[249]=function(){V=h};let o=[4,10,7,6,4,4,7,4,4,11,7,6,4,4,7,4,8,10,7,6,4,4,7,4,12,11,7,6,4,4,7,4,7,10,16,6,4,4,7,4,7,11,16,6,4,4,7,4,7,10,13,6,11,11,10,4,7,11,13,6,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,7,7,7,7,7,7,4,7,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,7,4,5,10,10,10,10,11,7,11,5,10,10,0,10,17,7,11,5,10,10,11,10,11,7,11,5,4,10,11,10,0,7,11,5,10,10,19,10,11,7,11,5,4,10,4,10,0,7,11,5,10,10,4,10,11,7,11,5,6,10,4,10,0,7,11],n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,15,20,8,14,8,9,12,12,15,20,8,14,8,9,12,12,15,20,8,14,8,9,12,12,15,20,8,14,8,9,12,12,15,20,8,14,8,18,12,12,15,20,8,14,8,18,12,12,15,20,8,14,8,0,12,12,15,20,8,14,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,0,0,0,0,16,16,16,16,0,0,0,0,16,16,16,16,0,0,0,0,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],p=[8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,12,8,8,8,8,8,8,8,12,8,8,8,8,8,8,8,12,8,8,8,8,8,8,8,12,8,8,8,8,8,8,8,12,8,8,8,8,8,8,8,12,8,8,8,8,8,8,8,12,8,8,8,8,8,8,8,12,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8,8,8,8,8,8,8,15,8],s=[0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,14,20,10,8,8,11,0,0,15,20,10,8,8,11,0,0,0,0,0,23,23,19,0,0,15,0,0,0,0,0,0,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,8,8,8,8,8,8,19,8,8,8,8,8,8,8,19,8,19,19,19,19,19,19,0,19,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,0,0,0,0,8,8,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,23,0,15,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0];this.saveState=G,this.loadState=Ye,this.reset=z,this.advanceInsn=U,this.interrupt=Ae,this.getPC=()=>i,this.getSP=()=>V,this.getHalted=()=>P}var nt=class{constructor(){this.retryInterrupts=!1;this.retryData=-1}buildCPU(){this.memBus&&this.ioBus&&(this.cpu=new sn({mem_read:this.memBus.read.bind(this.memBus),mem_write:this.memBus.write.bind(this.memBus),io_read:this.ioBus.read.bind(this.ioBus),io_write:this.ioBus.write.bind(this.ioBus)}))}connectMemoryBus(e){this.memBus=e,this.buildCPU()}connectIOBus(e){this.ioBus=e,this.buildCPU()}advanceInsn(){return this.retryInterrupts&&this.retryData>=0&&this.cpu.interrupt(!1,this.retryData)&&(this.retryData=-1),this.cpu.advanceInsn()}reset(){this.cpu.reset()}interrupt(e){!this.cpu.interrupt(!1,e)&&this.retryInterrupts&&(this.retryData=e)}NMI(){this.cpu.interrupt(!0,0)}getSP(){return this.cpu.getSP()}getPC(){return this.cpu.getPC()}isHalted(){return this.cpu.getHalted()}saveState(){return this.cpu.saveState()}loadState(e){this.cpu.loadState(e)}isStable(){return!0}};var St=class{constructor(){this.master=new MasterChannel}start(){this.looper||(this.looper=new AudioLooper(512),this.looper.setChannel(this.master),this.looper.activate())}stop(){this.looper&&(this.looper.setChannel(null),this.looper=null)}},xn=class{constructor(e){this.psg=new PsgDeviceChannel;this.curreg=0;this.master=e,this.psg.setMode(PsgDeviceChannel.MODE_SIGNED),this.psg.setDevice(PsgDeviceChannel.DEVICE_AY_3_8910),e.master.addChannel(this.psg)}reset(){for(var e=15;e>=0;e--)this.selectRegister(e),this.setData(0)}selectRegister(e){this.curreg=e&15}setData(e){this.psg.writeRegisterAY(this.curreg,e&255)}readData(){return this.psg.readRegister(this.curreg)}currentRegister(){return this.curreg}},un=class{constructor(e){this.psg=new PsgDeviceChannel;this.master=e,this.psg.setMode(PsgDeviceChannel.MODE_SIGNED),this.psg.setDevice(PsgDeviceChannel.DEVICE_SN76489),e.master.addChannel(this.psg)}reset(){}setData(e){this.psg.writeRegisterSN(0,e&255)}};function Fn(A){for(var e=new St,r=1;r<=A;r++){var c=new on;e["pokey"+r]=c,e.master.addChannel(c)}return e}function L0(A,e){for(var r=new Uint8Array(A.length*e.length),c=0,l=0;l<r.length;l++)r[l]=e[c%e.length],A[l%A.length]&&c++;return r}function H0(A){var e=new Uint8Array(A*2);return e.fill(1,0,A),e}var on=function(){for(var A=128,e=64,r=32,c=16,l=15,x=128,d=64,u=32,a=16,W=8,I=4,g=2,L=1,B=28,J=114,le=15,h=31,R=511,ie=131071,T=0,V=1,i=2,f=3,pe=0,Me=4,H=8,De=12,P=127,C=1789790,Ze=1787520,ee=new Uint8Array([1]),G=new Uint8Array([0,1]),Ye=new Uint8Array([1,1,0,1,1,1,0,0,0,0,1,0,1,0,0]),z=new Uint8Array([0,0,1,1,0,0,0,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1]),U=new Uint8Array([0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,0,1,0,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,1,1,1,1,0,1,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,1,1,1,1,0,0,1,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,1,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,0,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0]),Ae=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0]),ue=new Uint8Array([1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0]),O=new Uint8Array(1<<14),Xe=0;Xe<O.length;Xe++)O[Xe]=Math.random()>.5?1:0;var We=L0(O,z),Te=L0(z,Ye),Be=[We,z,Te,z,O,G,Ye,G],Q=H0(2),me=H0(6),we=H0(31),be=H0(93),ye=L0(Ae,Ye),Ve=L0(z,Q),Ee=L0(z,me),Ue=[ee,Ye,ye,Te,Q,Q,we,Ve,U,z,we,ee,me,me,be,Ee],Pe=new Uint8Array(16),ce=new Float32Array(4),ae=new Float32Array(4),N=new Float32Array(4),k=new Uint8Array(4),M=[ee,ee,ee,ee],fe,F,te,w,E=!0;this.setBufferLength=function(Y){fe=new Int32Array(Y)},this.getBuffer=function(){return fe},this.setSampleRate=function(Y){F=Y,w=C/Y/1.2};function ge(Y){var ne=Pe[8],ve=ne&L?J:B,j,oe=Y&4,Le=oe>>1,Z=oe>>2;ne&a>>Z?(ne&d>>Z?j=Pe[oe+2]*256+Pe[oe+0]+7:j=(Pe[oe+2]*256+Pe[oe+0]+1)*ve,ae[Le+1]=w/j,ae[Le+0]=0):(ne&d>>Z?j=Pe[oe+0]+4:j=(Pe[oe+0]+1)*ve,ae[Le+0]=w/j,j=(Pe[oe+2]+1)*ve,ae[Le+1]=w/j)}this.setRegister=function(Y,ne){if(Y&=15,ne&=255,Pe[Y]!=ne)switch(Pe[Y]=ne,Y){case 0:case 2:case 4:case 6:case 8:E=!0;break;case 1:case 3:case 5:case 7:N[Y>>1]=ne&15,M[Y>>1]=Be[ne>>5];break}},this.setTIARegister=function(Y,ne){switch(Y){case 23:case 24:Pe[(Y&1)*4]=ne&31,E=!0;break;case 21:case 22:M[(Y&1)*2]=Ue[ne&15];break;case 25:case 26:N[(Y&1)*2]=ne&15;break}},this.generate=function(Y){E&&(ge(0),ge(4),E=!1);for(var ne=0;ne<Y;ne+=2){for(var ve=0,j=0;j<4;j++){var oe=ae[j],Le=N[j];if(oe>0&&oe<1&&Le>0){var Z=M[j],q=ce[j]+=oe;q>Z.length&&(q=ce[j]=q-Math.floor(q/Z.length)*Z.length);var se=Z[Math.floor(q)];se&&(ve+=Le)}}ve*=64,fe[ne]=ve,fe[ne+1]=ve}}},Mn=function(A){var e,r,c=[],l=0;A.onmessage=function(x){x&&x.data&&x.data.samples&&r&&(c.push(x.data.samples),l+=x.data.samples.length)},this.setBufferLength=function(x){r=new Int16Array(x),l=0},this.getBuffer=function(){return r},this.setSampleRate=function(x){e=x,A.postMessage({sampleRate:x})},this.generate=function(x){if(l<x*3){r.fill(0);return}for(var d=0;d<r.length&&c.length!=0;){var u=c.shift();l-=u.length;var a=r.length-d;u.length<a?r.set(u,d):(r.set(u.slice(0,a),d),c.unshift(u.slice(a)),l+=u.length-a),d+=u.length}}},ln=function(A){var e=this,r,c,l,x,d,u,a,W,I=4;function g(J){var le=J.outputBuffer.length,h=J.outputBuffer.getChannelData(0),R=this.module;if(R||(R=J.srcElement.module),!!R)if(R.callback){R.callback(h);return}else{for(var ie=u[a],T=0;T<h.length;T++)h[T]=ie[T];a=(a+1)%u.length}}function L(){if(u)for(var J of u)J.fill(0)}function B(){var J=window.AudioContext||window.webkitAudioContext||window.mozAudioContext;if(!J){console.log("no web audio context");return}var le=new J;e.context=le,e.sr=e.context.sampleRate,e.bufferlen=2048,e.filterNode=e.context.createBiquadFilter(),e.filterNode.type="lowshelf",e.filterNode.frequency.value=100,e.filterNode.gain.value=-6,typeof e.context.createScriptProcessor=="function"?e.mixerNode=e.context.createScriptProcessor(e.bufferlen,1,1):e.mixerNode=e.context.createJavaScriptNode(e.bufferlen,1,1),e.mixerNode.module=e,e.mixerNode.onaudioprocess=g,e.compressorNode=e.context.createDynamicsCompressor(),e.mixerNode.connect(e.filterNode),e.filterNode.connect(e.compressorNode),e.compressorNode.connect(e.context.destination)}this.start=function(){if(this.context){this.context.state=="suspended"&&this.context.resume();return}if(B(),!!this.context){c=this.sr*1/A,r=0,l=0,d=0,u=[],a=1,W=0;for(var J=0;J<I;J++){var le=new ArrayBuffer(e.bufferlen*4);u[J]=new Float32Array(le)}x=u[0]}},this.stop=function(){this.context&&this.context.suspend&&this.context.suspend(),L()},this.close=function(){this.context&&(this.context.close(),this.context=null)},this.addSingleSample=function(J){if(!!x&&(x[d++]=J,d>=x.length)){d=0,u[W]=x;var le=(W+1)%u.length;le==a?W=Math.floor(a+I/2)%u.length:W=le,x=u[W]}},this.feedSample=function(J,le){if(l+=J*le,r+=c*le,r>=1){for(l/=r;r>=1;)this.addSingleSample(l*c),r-=1;l*=r}}},rt=class{constructor(e){this.sa=new ln(e)}feedSample(e,r){this.sa.feedSample(e,r)}start(){this.sa.start()}stop(){this.sa.stop()}},mn=class{constructor(e,r,c){this.audioGain=1/8192;this.bufferLength=r*2,this.channels=e.generate?[e]:e,this.channels.forEach(l=>{l.setBufferLength(this.bufferLength),l.setSampleRate(c)})}generate(e){var r=this.bufferLength,c=this.channels.map(x=>x.getBuffer());this.channels.forEach(x=>{x.generate(r)});for(let x=0;x<r;x+=2){var l=0;c.forEach(d=>l+=d[x]),e.feedSample(l*this.audioGain,1)}}};var Y0=class{logClocks(){}logNewScanline(){}logNewFrame(){}logExecute(){}logInterrupt(){}logRead(){}logWrite(){}logIORead(){}logIOWrite(){}logVRAMRead(){}logVRAMWrite(){}logIllegal(){}logData(){}addLogBuffer(e){}},Ct=class{constructor(){this.inputs=new Uint8Array(32);this.nullProbe=new Y0;this.probe=this.nullProbe}setKeyInput(e,r,c){this.handler&&this.handler(e,r,c)}connectProbe(e){this.probe=e||this.nullProbe}reset(){this.cpu.reset()}loadROM(e,r){this.rom||(this.rom=new Uint8Array(this.defaultROMSize)),this.rom.set(e)}loadState(e){this.cpu.loadState(e.c),this.ram.set(e.ram),this.inputs.set(e.inputs)}saveState(){return{c:this.cpu.saveState(),ram:this.ram.slice(0),inputs:this.inputs.slice(0)}}loadControlsState(e){this.inputs.set(e.inputs)}saveControlsState(){return{inputs:this.inputs.slice(0)}}advanceCPU(){var e=this.cpu,r=1;return this.cpu.isStable()&&this.probe.logExecute(this.cpu.getPC(),this.cpu.getSP()),e.advanceClock?e.advanceClock():e.advanceInsn&&(r=e.advanceInsn(1)),this.probe.logClocks(r),r}probeMemoryBus(e){return{read:r=>{let c=e.read(r);return this.probe.logRead(r,c),c},write:(r,c)=>{this.probe.logWrite(r,c),e.write(r,c)}}}connectCPUMemoryBus(e){this.cpu.connectMemoryBus(this.probeMemoryBus(e))}probeIOBus(e){return{read:r=>{let c=e.read(r);return this.probe.logIORead(r,c),c},write:(r,c)=>{this.probe.logIOWrite(r,c),e.write(r,c)}}}connectCPUIOBus(e){this.cpu.connectIOBus(this.probeIOBus(e))}},pt=class extends Ct{constructor(){super(...arguments);this.overscan=!1;this.rotate=0}getAudioParams(){return{sampleRate:this.sampleRate,stereo:!1}}connectAudio(e){this.audio=e}getVideoParams(){return{width:this.canvasWidth,height:this.numVisibleScanlines,overscan:this.overscan,rotate:this.rotate}}connectVideo(e){this.pixels=e}},bn=class extends pt{advanceFrame(e){this.preFrame();var r=0,c=0;this.probe.logNewFrame(),this.frameCycles=0;for(var l=0;l<this.numTotalScanlines;l++){for(r+=this.cpuCyclesPerLine,this.scanline=l,this.startScanline();this.frameCycles<r;){if(e&&e()){l=999;break}this.frameCycles+=this.advanceCPU(),c++}this.drawScanline(),this.probe.logNewScanline(),this.probe.logClocks(Math.floor(this.frameCycles-r))}return this.postFrame(),c}preFrame(){}postFrame(){}getRasterY(){return this.scanline}getRasterX(){return this.frameCycles%this.cpuCyclesPerLine}};var gt=["nop","ld bc,xx","ld (bc),a","inc bc","inc b","dec b","ld b,x","rlca","ex af,af'","add hl,bc","ld a,(bc)","dec bc","inc c","dec c","ld c,x","rrca","djnz x","ld de,xx","ld (de),a","inc de","inc d","dec d","ld d,x","rla","jr x","add hl,de","ld a,(de)","dec de","inc e","dec e","ld e,x","rra","jr nz,x","ld hl,xx","ld (xx),hl","inc hl","inc h","dec h","ld h,x","daa","jr z,x","add hl,hl","ld hl,(xx)","dec hl","inc l","dec l","ld l,x","cpl","jr nc,x","ld sp,xx","ld (xx),a","inc sp","inc (hl)","dec (hl)","ld (hl),x","scf","jr c,x","add hl,sp","ld a,(xx)","dec sp","inc a","dec a","ld a,x","ccf","ld b,b","ld b,c","ld b,d","ld b,e","ld b,h","ld b,l","ld b,(hl)","ld b,a","ld c,b","ld c,c","ld c,d","ld c,e","ld c,h","ld c,l","ld c,(hl)","ld c,a","ld d,b","ld d,c","ld d,d","ld d,e","ld d,h","ld d,l","ld d,(hl)","ld d,a","ld e,b","ld e,c","ld e,d","ld e,e","ld e,h","ld e,l","ld e,(hl)","ld e,a","ld h,b","ld h,c","ld h,d","ld h,e","ld h,h","ld h,l","ld h,(hl)","ld h,a","ld l,b","ld l,c","ld l,d","ld l,e","ld l,h","ld l,l","ld l,(hl)","ld l,a","ld (hl),b","ld (hl),c","ld (hl),d","ld (hl),e","ld (hl),h","ld (hl),l","halt","ld (hl),a","ld a,b","ld a,c","ld a,d","ld a,e","ld a,h","ld a,l","ld a,(hl)","ld a,a","add a,b","add a,c","add a,d","add a,e","add a,h","add a,l","add a,(hl)","add a,a","adc a,b","adc a,c","adc a,d","adc a,e","adc a,h","adc a,l","adc a,(hl)","adc a,a","sub b","sub c","sub d","sub e","sub h","sub l","sub (hl)","sub a","sbc a,b","sbc a,c","sbc a,d","sbc a,e","sbc a,h","sbc a,l","sbc a,(hl)","sbc a,a","and b","and c","and d","and e","and h","and l","and (hl)","and a","xor b","xor c","xor d","xor e","xor h","xor l","xor (hl)","xor a","or b","or c","or d","or e","or h","or l","or (hl)","or a","cp b","cp c","cp d","cp e","cp h","cp l","cp (hl)","cp a","ret nz","pop bc","jp nz,xx","jp xx","call nz,xx","push bc","add a,x","rst 00h","ret z","ret","jp z,xx","xxBITxx","call z,xx","call xx","adc a,x","rst 08h","ret nc","pop de","jp nc,xx","out (x),a","call nc,xx","push de","sub x","rst 10h","ret c","exx","jp c,xx","in a,(x)","call c,xx","xxIXxx","sbc a,x","rst 18h","ret po","pop hl","jp po,xx","ex (sp),hl","call po,xx","push hl","and x","rst 20h","ret pe","jp (hl)","jp pe,xx","ex de,hl","call pe,xx","xx80xx","xor x","rst 28h","ret p","pop af","jp p,xx","di","call p,xx","push af","or x","rst 30h","ret m","ld sp,hl","jp m,xx","ei","call m,xx","xxIYxx","cp x","rst 38h"],Pt=["in b,(c)","out (c),b","sbc hl,bc","ld (xx),bc","neg","retn","im 0","ld i,a","in c,(c)","out (c),c","adc hl,bc","ld bc,(xx)","neg","reti","","ld r,a","in d,(c)","out (c),d","sbc hl,de","ld (xx),de","neg","retn","im 1","ld a,i","in e,(c)","out (c),e","adc hl,de","ld de,(xx)","neg","retn","im 2","ld a,r","in h,(c)","out (c),h","sbc hl,hl","ld (xx),hl","neg","retn","","rrd","in l,(c)","out (c),l","adc hl,hl","ld hl,(xx)","neg","retn","","rld","in f,(c)","out (c),f","sbc hl,sp","ld (xx),sp","neg","retn","","","in a,(c)","out (c),a","adc hl,sp","ld sp,(xx)","neg","reti","","","ldi","cpi","ini","outi","","","","","ldd","cpd","ind","outd","","","","","ldir","cpir","inir","otir","","","","","lddr","cpdr","indr","otdr","","","",""],_t=["rlc b","rlc c","rlc d","rlc e","rlc h","rlc l","rlc (hl)","rlc a","rrc b","rrc c","rrc d","rrc e","rrc h","rrc l","rrc (hl)","rrc a","rl b","rl c","rl d","rl e","rl h","rl l","rl (hl)","rl a","rr b","rr c","rr d","rr e","rr h","rr l","rr (hl)","rr a","sla b","sla c","sla d","sla e","sla h","sla l","sla (hl)","sla a","sra b","sra c","sra d","sra e","sra h","sra l","sra (hl)","sra a","sll b","sll c","sll d","sll e","sll h","sll l","sll (hl)","sll a","srl b","srl c","srl d","srl e","srl h","srl l","srl (hl)","srl a","bit 0,b","bit 0,c","bit 0,d","bit 0,e","bit 0,h","bit 0,l","bit 0,(hl)","bit 0,a","bit 1,b","bit 1,c","bit 1,d","bit 1,e","bit 1,h","bit 1,l","bit 1,(hl)","bit 1,a","bit 2,b","bit 2,c","bit 2,d","bit 2,e","bit 2,h","bit 2,l","bit 2,(hl)","bit 2,a","bit 3,b","bit 3,c","bit 3,d","bit 3,e","bit 3,h","bit 3,l","bit 3,(hl)","bit 3,a","bit 4,b","bit 4,c","bit 4,d","bit 4,e","bit 4,h","bit 4,l","bit 4,(hl)","bit 4,a","bit 5,b","bit 5,c","bit 5,d","bit 5,e","bit 5,h","bit 5,l","bit 5,(hl)","bit 5,a","bit 6,b","bit 6,c","bit 6,d","bit 6,e","bit 6,h","bit 6,l","bit 6,(hl)","bit 6,a","bit 7,b","bit 7,c","bit 7,d","bit 7,e","bit 7,h","bit 7,l","bit 7,(hl)","bit 7,a","res 0,b","res 0,c","res 0,d","res 0,e","res 0,h","res 0,l","res 0,(hl)","res 0,a","res 1,b","res 1,c","res 1,d","res 1,e","res 1,h","res 1,l","res 1,(hl)","res 1,a","res 2,b","res 2,c","res 2,d","res 2,e","res 2,h","res 2,l","res 2,(hl)","res 2,a","res 3,b","res 3,c","res 3,d","res 3,e","res 3,h","res 3,l","res 3,(hl)","res 3,a","res 4,b","res 4,c","res 4,d","res 4,e","res 4,h","res 4,l","res 4,(hl)","res 4,a","res 5,b","res 5,c","res 5,d","res 5,e","res 5,h","res 5,l","res 5,(hl)","res 5,a","res 6,b","res 6,c","res 6,d","res 6,e","res 6,h","res 6,l","res 6,(hl)","res 6,a","res 7,b","res 7,c","res 7,d","res 7,e","res 7,h","res 7,l","res 7,(hl)","res 7,a","set 0,b","set 0,c","set 0,d","set 0,e","set 0,h","set 0,l","set 0,(hl)","set 0,a","set 1,b","set 1,c","set 1,d","set 1,e","set 1,h","set 1,l","set 1,(hl)","set 1,a","set 2,b","set 2,c","set 2,d","set 2,e","set 2,h","set 2,l","set 2,(hl)","set 2,a","set 3,b","set 3,c","set 3,d","set 3,e","set 3,h","set 3,l","set 3,(hl)","set 3,a","set 4,b","set 4,c","set 4,d","set 4,e","set 4,h","set 4,l","set 4,(hl)","set 4,a","set 5,b","set 5,c","set 5,d","set 5,e","set 5,h","set 5,l","set 5,(hl)","set 5,a","set 6,b","set 6,c","set 6,d","set 6,e","set 6,h","set 6,l","set 6,(hl)","set 6,a","set 7,b","set 7,c","set 7,d","set 7,e","set 7,h","set 7,l","set 7,(hl)","set 7,a"];function at(A,e,r,c,l){var x,d,u,a=[e,r,c,l],W=!1;switch(d=1,e){case 203:u=_t[r],d++;break;case 237:r>=64&&r<=127&&(u=Pt[r-64]),r>=160&&r<=191&&(u=Pt[r-160+64]),d++;break;case 221:case 253:var I=e==221?"ix":"iy";r==203?(u=_t[l],a[2]=l,a[3]=c,d++):u=gt[r],u=u.replace(/[(]hl[)]/,"("+I+"+x)"),u=u.replace(/\bhl\b/,I),d++;break;default:u=gt[e];break}if((!u||!u.length)&&(u="??"),/\bxx\b/.test(u))u=u.replace(/\bxx\b/,"$"+re(a[d]+(a[d+1]<<8),4)),d+=2,W=!0;else if(/\bx\b/.test(u)){if(u.startsWith("j")){var g=r<128?A+2+r:A+2-(256-r);g&=65535,u=u.replace(/\bx\b/,"$"+re(g,4)),W=!0}else u=u.replace(/\bx\b/,"$"+re(a[d],2));d+=1}return{line:u.toUpperCase(),nbytes:d,isaddr:W}}var I0=class{constructor(e){this.maxROMSize=262144;this.videoOffsetBytes=0;this.prefix=e;var r=this;this.cpu={getPC:r.getPC.bind(r),getSP:r.getSP.bind(r),isStable:r.isStable.bind(r),reset:r.reset.bind(r),saveState:()=>r.getCPUState(),loadState:()=>{console.log("loadState not implemented")},connectMemoryBus(){console.log("connectMemoryBus not implemented")}}}getImports(e){return{}}async fetchWASM(){var e=await fetch("res/"+this.prefix+".wasm");if(e.status==200||e.size){var r=await e.arrayBuffer(),c=await WebAssembly.compile(r),l=await WebAssembly.instantiate(c,this.getImports(c));this.instance=l,this.exports=l.exports}else throw new Error("could not load WASM file")}async fetchBIOS(){var e=await fetch("res/"+this.prefix+".bios");if(e.status==200||e.size){var r=await e.arrayBuffer();this.biosptr=this.exports.malloc(r.byteLength),this.biosarr=new Uint8Array(this.exports.memory.buffer,this.biosptr,r.byteLength),this.loadBIOS(new Uint8Array(r))}else throw new Error("could not load BIOS file")}async initWASM(){this.sys=this.exports.machine_init(this.biosptr);let e=this.exports.machine_get_state_size();this.stateptr=this.exports.malloc(e);let r=this.exports.machine_get_controls_state_size();this.ctrlstateptr=this.exports.malloc(r);let c=this.exports.machine_get_cpu_state_size();this.cpustateptr=this.exports.malloc(c),this.romptr=this.exports.malloc(this.maxROMSize),this.statearr=new Uint8Array(this.exports.memory.buffer,this.stateptr,e),this.ctrlstatearr=new Uint8Array(this.exports.memory.buffer,this.ctrlstateptr,r),this.cpustatearr=new Uint8Array(this.exports.memory.buffer,this.cpustateptr,c);let l=4096*4;this.audioarr=new Float32Array(this.exports.memory.buffer,this.exports.machine_get_sample_buffer(),l),this.romarr=new Uint8Array(this.exports.memory.buffer,this.romptr,this.maxROMSize),console.log("machine_init",this.sys,e,r,c,l)}async loadWASM(){await this.fetchWASM(),this.exports.memory.grow(96),await this.fetchBIOS(),await this.initWASM()}getPC(){return this.exports.machine_cpu_get_pc(this.sys)}getSP(){return this.exports.machine_cpu_get_sp(this.sys)}isStable(){return this.exports.machine_cpu_is_stable(this.sys)}loadROM(e){if(e.length>this.maxROMSize)throw new dt(`Rom size too big: ${e.length} bytes`);this.romarr.set(e),this.romlen=e.length,console.log("load rom",e.length,"bytes"),this.reset()}loadBIOS(e){this.biosarr.set(e)}reset(){this.exports.machine_reset(this.sys)}read(e){return this.exports.machine_mem_read(this.sys,e&65535)}readConst(e){return this.exports.machine_mem_read(this.sys,e&65535)}write(e,r){this.exports.machine_mem_write(this.sys,e&65535,r&255)}getAudioParams(){return{sampleRate:44100,stereo:!1}}connectVideo(e){this.pixel_dest=e;var r=this.exports.machine_get_pixel_buffer(this.sys);console.log("connectVideo",r,e.length),this.pixel_src=new Uint32Array(this.exports.memory.buffer,r+this.videoOffsetBytes,e.length)}syncVideo(){this.exports.machine_update_video&&this.exports.machine_update_video(this.sys),this.pixel_dest!=null&&this.pixel_dest.set(this.pixel_src)}saveControlsState(){return this.exports.machine_save_controls_state(this.sys,this.ctrlstateptr),{controls:this.ctrlstatearr.slice(0)}}loadControlsState(e){this.ctrlstatearr.set(e.controls),this.exports.machine_load_controls_state(this.sys,this.ctrlstateptr)}connectAudio(e){this.audio=e}syncAudio(){if(this.audio!=null)for(var e=this.exports.machine_get_sample_count(),r=0;r<e;r++)this.audio.feedSample(this.audioarr[r],1)}advanceFrameClock(e,r){var c;if(e)for(c=0;c<r&&!e();c++)this.exports.machine_tick(this.sys);else this.exports.machine_exec(this.sys,r),c=r;return this.syncVideo(),this.syncAudio(),c}copyProbeData(){if(this.probe&&!(this.probe instanceof Y0)){var e=this.exports.machine_get_probe_buffer_size(),r=this.exports.machine_get_probe_buffer_address(),c=new Uint32Array(this.exports.memory.buffer,r,e);this.probe.logNewFrame(),this.probe.addLogBuffer(c)}}connectProbe(e){this.probe=e}getDebugTree(){return this.saveState()}},qe=function(){return console.log(arguments),0},dn=class extends I0{constructor(e){super(e)}getImports(e){var r=this.wasiInstance.getImports(e);return r.env={system:qe,__sys_mkdir:qe,__sys_chmod:qe,__sys_stat64:qe,__sys_unlink:qe,__sys_rename:qe,__sys_getdents64:qe,__sys_getcwd:qe,__sys_rmdir:qe,emscripten_thread_sleep:qe},r}stdoutWrite(e){return console.log(">>>",e.toString()),e.length}async loadWASM(){let e=await import("./index.esm-5YCYWKYY.js"),r=await import("./index.esm-IVCZ4JDS.js");this.wasmFs=new r.WasmFs;let c=e.WASI.defaultBindings;c.fs=this.wasmFs.fs,c.fs.mkdirSync("/tmp"),c.path=c.path.default,this.wasiInstance=new e.WASI({preopenDirectories:{"/tmp":"/tmp"},env:{},args:[],bindings:c}),this.wasmFs.volume.fds[1].write=this.stdoutWrite.bind(this),this.wasmFs.volume.fds[2].write=this.stdoutWrite.bind(this),await this.fetchWASM(),this.wasiInstance.start(this.instance),await this.initWASM()}};"use strict";function it(){var A,e,r,c,l,x,d,u,a,W,I=1,g=2,L=4,B=8,J=16,le=32,h=64,R=128,ie=65534,T=65532,V=65530,i=65528,f=65526,pe=65524,Me=65522,H=0,De,P,C,Ze=[6,0,0,6,6,0,6,6,6,6,6,0,6,6,3,6,0,0,2,4,0,0,5,9,0,2,3,0,3,2,8,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5,0,5,3,6,9,11,0,19,2,0,0,2,2,0,2,2,2,2,2,0,2,2,0,2,2,0,0,2,2,0,2,2,2,2,2,0,2,2,0,2,6,0,0,6,6,0,6,6,6,6,6,0,6,6,3,6,7,0,0,7,7,0,7,7,7,7,7,0,7,7,4,7,2,2,2,4,2,2,2,0,2,2,2,2,4,7,3,0,4,4,4,6,4,4,4,4,4,4,4,4,6,7,5,5,4,4,4,6,4,4,4,4,4,4,4,4,6,7,5,5,5,5,5,7,5,5,5,5,5,5,5,5,7,8,6,6,2,2,2,4,2,2,2,0,2,2,2,2,3,0,3,0,4,4,4,6,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,6,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,5,6,6,6,6],ee=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,4,0,0,0,0,7,0,0,0,0,0,0,0,0,7,0,6,6,0,0,0,7,0,0,0,0,0,0,0,0,7,0,6,6,0,0,0,8,0,0,0,0,0,0,0,0,8,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7],G=[4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8],Ye=function(o,n,p){a|=((o^n^p^p>>1)&128)>>6},z=function(o,n,p){a|=((o^n^p^p>>1)&32768)>>14},U=function(){return(e<<8)+r},Ae=function(o){e=o>>8&255,r=o&255},ue=function(o){P(--d,o&255)},O=function(o){P(--d,o&255),P(--d,o>>8&255)},Xe=function(o){P(--x,o&255)},We=function(o){P(--x,o&255),P(--x,o>>8&255)},Te=function(){return C(d++)},Be=function(){return C(d++)*256+C(d++)},Q=function(){return C(x++)},me=function(){return C(x++)*256+C(x++)},we=function(o){var n=0;o&128&&(O(u),n+=2),o&64&&(O(x),n+=2),o&32&&(O(l),n+=2),o&16&&(O(c),n+=2),o&8&&(ue(W),n++),o&4&&(ue(r),n++),o&2&&(ue(e),n++),o&1&&(ue(a),n++),H+=n},be=function(o){var n=0;o&128&&(We(u),n+=2),o&64&&(We(d),n+=2),o&32&&(We(l),n+=2),o&16&&(We(c),n+=2),o&8&&(Xe(W),n++),o&4&&(Xe(r),n++),o&2&&(Xe(e),n++),o&1&&(Xe(a),n++),H+=n},ye=function(o){var n=0;o&1&&(a=Te(),n++),o&2&&(e=Te(),n++),o&4&&(r=Te(),n++),o&8&&(W=Te(),n++),o&16&&(c=Be(),n+=2),o&32&&(l=Be(),n+=2),o&64&&(x=Be(),n+=2),o&128&&(u=Be(),n+=2),H+=n},Ve=function(o){var n=0;o&1&&(a=Q(),n++),o&2&&(e=Q(),n++),o&4&&(r=Q(),n++),o&8&&(W=Q(),n++),o&16&&(c=me(),n+=2),o&32&&(l=me(),n+=2),o&64&&(d=me(),n+=2),o&128&&(u=me(),n+=2),H+=n},Ee=function(o){switch(o&15){case 0:return U();case 1:return c;case 2:return l;case 3:return x;case 4:return d;case 5:return u;case 8:return e;case 9:return r;case 10:return a;case 11:return W;default:return null}},Ue=function(o,n){switch(o&15){case 0:Ae(n);return;case 1:c=n;return;case 2:l=n;return;case 3:x=n;return;case 4:d=n;return;case 5:u=n;return;case 8:e=n;return;case 9:r=n;return;case 10:a=n;return;case 11:W=n;return;default:return}},Pe=function(o,n){var p=o&136;(p==128||p==8)&&(p=0),n?(p=Ee(o>>4),Ue(o>>4,Ee(o)),Ue(o,p)):Ue(o,Ee(o>>4))},ce=function(o){return o>127?o-256:o},ae=function(o){return o>32767?o-65536:o},N=function(){var o=C(u++);return u&=65535,o},k=function(){var o=C(u++);u&=65535;var n=C(u++);return u&=65535,o*256+n},M=function(o){var n=C(o++);o&=65535;var p=C(o++);return o&=65535,n*256+p},fe=function(o,n){P(o++,n>>8&255),o&=65535,P(o,n&255)},F=function(){var o=N(),n;switch(o&96){case 0:n=c;break;case 32:n=l;break;case 64:n=x;break;case 96:n=d;break}var p=null,s=null,t;if(o&128){switch(o&15){case 0:s=n,p=n+1,H+=2;break;case 1:s=n,p=n+2,H+=3;break;case 2:p=n-1,s=p,H+=2;break;case 3:p=n-2,s=p,H+=3;break;case 4:s=n;break;case 5:s=n+ce(r),H+=1;break;case 6:s=n+ce(e),H+=1;break;case 7:s=0;break;case 8:s=n+ce(N()),H+=1;break;case 9:s=n+ae(k()),H+=4;break;case 10:s=0;break;case 11:H+=4,s=n+U();break;case 12:t=ce(N()),s=u+t,H+=1;break;case 13:t=ae(k()),s=u+t,H+=5;break;case 14:s=0;break;case 15:H+=5,s=k();break}s&=65535,o&16&&(s=C(s)*256+C(s+1&65535),H+=3)}else{var b=o&31;b>15&&(b-=32),s=n+b,H+=1}if(p!==null)switch(o&96){case 0:c=p;break;case 32:l=p;break;case 64:x=p;break;case 96:d=p;break}return s&65535},te=function(o){a&=~(L|B),o===0&&(a|=L),o&32768&&(a|=B)},w=function(o){return o++,o&=255,a&=~(L|g|B),a|=G[o],(o===0||o==128)&&(a|=g),o},E=function(o){return o--,o&=255,a&=~(L|g|B),a|=G[o],(o===127||o==255)&&(a|=g),o},ge=function(o,n){var p=o-n;return a&=~(I|L|g|B),a|=G[p&255],p&256&&(a|=I),Ye(o,n,p),p&255},Y=function(o,n){var p=o-n;return a&=~(I|L|g|B),(p&65535)==0&&(a|=L),p&32768&&(a|=B),p&65536&&(a|=I),z(o,n,p),p&65535},ne=function(o,n){var p=o+n;return a&=~(le|I|L|g|B),a|=G[p&255],p&256&&(a|=I),Ye(o,n,p),(p^o^n)&16&&(a|=le),p&255},ve=function(o,n){var p=o+n;return a&=~(I|L|g|B),(p&65535)==0&&(a|=L),p&32768&&(a|=B),p&65536&&(a|=I),z(o,n,p),p&65535},j=function(o,n){var p=o+n+(a&I);return a&=~(le|I|L|g|B),a|=G[p&255],p&256&&(a|=I),Ye(o,n,p),(p^o^n)&16&&(a|=le),p&255},oe=function(o,n){var p=o-n-(a&I);return a&=~(I|L|g|B),a|=G[p&255],p&256&&(a|=I),Ye(o,n,p),p&255},Le=function(o,n){var p=o-n;a&=~(I|L|g|B),a|=G[p&255],p&256&&(a|=I),Ye(o,n,p)},Z=function(o,n){var p=o-n;a&=~(I|L|g|B),(p&65535)==0&&(a|=L),p&32768&&(a|=B),p&65536&&(a|=I),z(o,n,p)},q=function(o){return a&=~(I|L|g|B),o==128&&(a|=g),o=(~o&255)+1,o===0&&(a|=L),o&128&&(a|=B|I),o},se=function(o){return a&=~(L|I|B),o&1&&(a|=I),o>>=1,o===0&&(a|=L),o&255},_e=function(o){return a&=~(L|I|B),o&1&&(a|=I),o=o&128|o>>1,a|=G[o],o},Re=function(o){var n=o;return a&=~(L|I|B|g),o&128&&(a|=I),o<<=1,a|=G[o],(o^n)&128&&(a|=g),o},He=function(o){var n=o,p=a&I;return a&=~(L|I|B|g),o&128&&(a|=I),o=o<<1|p,a|=G[o],(o^n)&128&&(a|=g),o},xe=function(o){var n=a&I;return a&=~(L|I|B),o&1&&(a|=I),o=o>>1|n<<7,a|=G[o],o},de=function(o,n){return a&=~(L|B|g),o^=n,a|=G[o],o},Ne=function(o,n){return a&=~(L|B|g),o|=n,a|=G[o],o},ke=function(o,n){return a&=~(L|B|g),o&=n,a|=G[o],o},ze=function(o){return a&=~(L|B|g),o^=255,a|=G[o],a|=I,o},X=function(){return W*256+N()},Ke=function(){var o=H,n=null,p=null,s=u,t=N();switch(H+=Ze[t],t){case 0:n=X(),P(n,q(C(n)));break;case 3:n=X(),P(n,ze(C(n)));break;case 4:n=X(),P(n,se(C(n)));break;case 6:n=X(),P(n,xe(C(n)));break;case 7:n=X(),P(n,_e(C(n)));break;case 8:n=X(),P(n,Re(C(n)));break;case 9:n=X(),P(n,He(C(n)));break;case 10:n=X(),P(n,E(C(n)));break;case 12:n=X(),P(n,w(C(n)));break;case 13:n=X(),p=C(n),a&=~(L|B|g),a|=G[p];break;case 14:n=X(),u=n;break;case 15:n=X(),P(n,0),a&=~(I|B|g),a|=L;break;case 18:break;case 19:break;case 22:n=ae(k()),u+=n;break;case 23:n=ae(k()),O(u),u+=n;break;case 25:var b=0,_=e&240,Ie=e&15;(Ie>9||a&32)&&(b|=6),_>128&&Ie>9&&(b|=96),(_>144||a&1)&&(b|=96),n=b+e,a&=~(I|B|L|g),n&256&&(a|=I),e=n&255,a|=G[e];break;case 26:a|=N();break;case 28:a&=N();break;case 29:e=r&128?255:0,te(U()),a&=~g;break;case 30:p=N(),Pe(p,!0);break;case 31:p=N(),Pe(p,!1);break;case 32:n=ce(N()),u+=n;break;case 33:n=ce(N());break;case 34:n=ce(N()),a&(I|L)||(u+=n);break;case 35:n=ce(N()),a&(I|L)&&(u+=n);break;case 36:n=ce(N()),a&I||(u+=n);break;case 37:n=ce(N()),a&I&&(u+=n);break;case 38:n=ce(N()),a&L||(u+=n);break;case 39:n=ce(N()),a&L&&(u+=n);break;case 40:n=ce(N()),a&g||(u+=n);break;case 41:n=ce(N()),a&g&&(u+=n);break;case 42:n=ce(N()),a&B||(u+=n);break;case 43:n=ce(N()),a&B&&(u+=n);break;case 44:n=ce(N()),a&B^(a&g)<<2||(u+=n);break;case 45:n=ce(N()),a&B^(a&g)<<2&&(u+=n);break;case 46:n=ce(N()),a&B^(a&g)<<2||a&L||(u+=n);break;case 47:n=ce(N()),(a&B^(a&g)<<2||a&L)&&(u+=n);break;case 48:c=F(),c===0?a|=L:a&=~L;break;case 49:l=F(),l===0?a|=L:a&=~L;break;case 50:d=F();break;case 51:x=F();break;case 52:we(N());break;case 53:ye(N());break;case 54:be(N());break;case 55:Ve(N());break;case 57:u=Be();break;case 58:c+=r;break;case 59:a=Te(),a&R&&(H+=9,e=Te(),r=Te(),W=Te(),c=Be(),l=Be(),x=Be()),u=Be();break;case 60:a&=N();break;case 61:n=e*r,n===0?a|=L:a&=~L,n&128?a|=I:a&=~I,Ae(n);break;case 63:a|=R,O(u),O(x),O(l),O(c),ue(W),ue(r),ue(e),ue(a),a|=J|h,u=M(V);break;case 64:e=q(e);break;case 67:e=ze(e);break;case 68:e=se(e);break;case 70:e=xe(e);break;case 71:e=_e(e);break;case 72:e=Re(e);break;case 73:e=He(e);break;case 74:e=E(e);break;case 76:e=w(e);break;case 77:a&=~(L|B|g),a|=G[e];break;case 79:e=0,a&=~(B|g|I),a|=L;break;case 80:r=q(r);break;case 83:r=ze(r);break;case 84:r=se(r);break;case 86:r=xe(r);break;case 87:r=_e(r);break;case 88:r=Re(r);break;case 89:r=He(r);break;case 90:r=E(r);break;case 92:r=w(r);break;case 93:a&=~(L|B|g),a|=G[r];break;case 95:r=0,a&=~(B|g|I),a|=L;break;case 96:n=F(),P(n,q(C(n)));break;case 99:n=F(),P(n,ze(C(n)));break;case 100:n=F(),P(n,se(C(n)));break;case 102:n=F(),P(n,xe(C(n)));break;case 103:n=F(),P(n,_e(C(n)));break;case 104:n=F(),P(n,Re(C(n)));break;case 105:n=F(),P(n,He(C(n)));break;case 106:n=F(),P(n,E(C(n)));break;case 108:n=F(),P(n,w(C(n)));break;case 109:n=F(),p=C(n),a&=~(L|B|g),a|=G[p];break;case 110:n=F(),u=n;break;case 111:n=F(),P(n,0),a&=~(I|B|g),a|=L;break;case 112:n=k(),P(n,q(C(n)));break;case 115:n=k(),P(n,ze(C(n)));break;case 116:n=k(),P(n,se(C(n)));break;case 118:n=k(),P(n,xe(C(n)));break;case 119:n=k(),P(n,_e(C(n)));break;case 120:n=k(),P(n,Re(C(n)));break;case 121:n=k(),P(n,He(C(n)));break;case 122:n=k(),P(n,E(C(n)));break;case 124:n=k(),P(n,w(C(n)));break;case 125:n=k(),p=C(n),a&=~(L|B|g),a|=G[p];break;case 126:n=k(),u=n;break;case 127:n=k(),P(n,0),a&=~(I|B|g),a|=L;break;case 128:e=ge(e,N());break;case 129:Le(e,N());break;case 130:e=oe(e,N());break;case 131:Ae(Y(U(),k()));break;case 132:e=ke(e,N());break;case 133:ke(e,N());break;case 134:e=N(),a&=~(L|B|g),a|=G[e];break;case 136:e=de(e,N());break;case 137:e=j(e,N());break;case 138:e=Ne(e,N());break;case 139:e=ne(e,N());break;case 140:Z(c,k());break;case 141:n=ce(N()),O(u),u+=n;break;case 142:c=k(),te(c),a&=~g;break;case 144:n=X(),e=ge(e,C(n));break;case 145:n=X(),Le(e,C(n));break;case 146:n=X(),e=oe(e,C(n));break;case 147:n=X(),Ae(Y(U(),M(n)));break;case 148:n=X(),e=ke(e,C(n));break;case 149:n=X(),ke(e,C(n));break;case 150:n=X(),e=C(n),a&=~(L|B|g),a|=G[e];break;case 151:n=X(),P(n,e),a&=~(L|B|g),a|=G[e];break;case 152:n=X(),e=de(e,C(n));break;case 153:n=X(),e=j(e,C(n));break;case 154:n=X(),e=Ne(e,C(n));break;case 155:n=X(),e=ne(e,C(n));break;case 156:n=X(),Z(c,M(n));break;case 157:n=X(),O(u),u=n;break;case 158:n=X(),c=M(n),te(c),a&=~g;break;case 159:n=X(),fe(n,c),te(c),a&=~g;break;case 160:n=F(),e=ge(e,C(n));break;case 161:n=F(),Le(e,C(n));break;case 162:n=F(),e=oe(e,C(n));break;case 163:n=F(),Ae(Y(U(),M(n)));break;case 164:n=F(),e=ke(e,C(n));break;case 165:n=F(),ke(e,C(n));break;case 166:n=F(),e=C(n),a&=~(L|B|g),a|=G[e];break;case 167:n=F(),P(n,e),a&=~(L|B|g),a|=G[e];break;case 168:n=F(),e=de(e,C(n));break;case 169:n=F(),e=j(e,C(n));break;case 170:n=F(),e=Ne(e,C(n));break;case 171:n=F(),e=ne(e,C(n));break;case 172:n=F(),Z(c,M(n));break;case 173:n=F(),O(u),u=n;break;case 174:n=F(),c=M(n),te(c),a&=~g;break;case 175:n=F(),fe(n,c),te(c),a&=~g;break;case 176:n=k(),e=ge(e,C(n));break;case 177:n=k(),Le(e,C(n));break;case 178:n=k(),e=oe(e,C(n));break;case 179:n=k(),Ae(Y(U(),M(n)));break;case 180:n=k(),e=ke(e,C(n));break;case 181:n=k(),ke(e,C(n));break;case 182:n=k(),e=C(n),a&=~(L|B|g),a|=G[e];break;case 183:n=k(),P(n,e),a&=~(L|B|g),a|=G[e];break;case 184:n=k(),e=de(e,C(n));break;case 185:n=k(),e=j(e,C(n));break;case 186:n=k(),e=Ne(e,C(n));break;case 187:n=k(),e=ne(e,C(n));break;case 188:n=k(),Z(c,M(n));break;case 189:n=k(),O(u),u=n;break;case 190:n=k(),c=M(n),te(c),a&=~g;break;case 191:n=k(),fe(n,c),te(c),a&=~g;break;case 192:r=ge(r,N());break;case 193:Le(r,N());break;case 194:r=oe(r,N());break;case 195:Ae(ve(U(),k()));break;case 196:r=ke(r,N());break;case 197:ke(r,N());break;case 198:r=N(),a&=~(L|B|g),a|=G[r];break;case 200:r=de(r,N());break;case 201:r=j(r,N());break;case 202:r=Ne(r,N());break;case 203:r=ne(r,N());break;case 204:n=k(),Ae(n),te(n),a&=~g;break;case 206:x=k(),te(x),a&=~g;break;case 208:n=X(),r=ge(r,C(n));break;case 209:n=X(),Le(r,C(n));break;case 210:n=X(),r=oe(r,C(n));break;case 211:n=X(),Ae(ve(U(),M(n)));break;case 212:n=X(),r=ke(r,C(n));break;case 213:n=X(),ke(r,C(n));break;case 214:n=X(),r=C(n),a&=~(L|B|g),a|=G[r];break;case 215:n=X(),P(n,r),a&=~(L|B|g),a|=G[r];break;case 216:n=X(),r=de(r,C(n));break;case 217:n=X(),r=j(r,C(n));break;case 218:n=X(),r=Ne(r,C(n));break;case 219:n=X(),r=ne(r,C(n));break;case 220:n=X(),p=M(n),Ae(p),te(p),a&=~g;break;case 221:n=X(),fe(n,U()),a&=~g;break;case 222:n=X(),x=M(n),te(x),a&=~g;break;case 223:n=X(),fe(n,x),te(x),a&=~g;break;case 224:n=F(),r=ge(r,C(n));break;case 225:n=F(),Le(r,C(n));break;case 226:n=F(),r=oe(r,C(n));break;case 227:n=F(),Ae(ve(U(),M(n)));break;case 228:n=F(),r=ke(r,C(n));break;case 229:n=F(),ke(r,C(n));break;case 230:n=F(),r=C(n),a&=~(L|B|g),a|=G[r];break;case 231:n=F(),P(n,r),a&=~(L|B|g),a|=G[r];break;case 232:n=F(),r=de(r,C(n));break;case 233:n=F(),r=j(r,C(n));break;case 234:n=F(),r=Ne(r,C(n));break;case 235:n=F(),r=ne(r,C(n));break;case 236:n=F(),p=M(n),Ae(p),te(p),a&=~g;break;case 237:n=F(),fe(n,U()),a&=~g;break;case 238:n=F(),x=M(n),te(x),a&=~g;break;case 239:n=F(),fe(n,x),te(x),a&=~g;break;case 240:n=k(),r=ge(r,C(n));break;case 241:n=k(),Le(r,C(n));break;case 242:n=k(),r=oe(r,C(n));break;case 243:n=k(),Ae(ve(U(),M(n)));break;case 244:n=k(),r=ke(r,C(n));break;case 245:n=k(),ke(r,C(n));break;case 246:n=k(),r=C(n),a&=~(L|B|g),a|=G[r];break;case 247:n=k(),P(n,r),a&=~(L|B|g),a|=G[r];break;case 248:n=k(),r=de(r,C(n));break;case 249:n=k(),r=j(r,C(n));break;case 250:n=k(),r=Ne(r,C(n));break;case 251:n=k(),r=ne(r,C(n));break;case 252:n=k(),p=M(n),Ae(p),te(p),a&=~g;break;case 253:n=k(),fe(n,U()),a&=~g;break;case 254:n=k(),x=M(n),te(x),a&=~g;break;case 255:n=k(),fe(n,x),te(x),a&=~g;break;case 16:switch(t=N(),H+=ee[t],t){case 33:n=ae(k());break;case 34:n=ae(k()),a&(I|L)||(u+=n);break;case 35:n=ae(k()),a&(I|L)&&(u+=n);break;case 36:n=ae(k()),a&I||(u+=n);break;case 37:n=ae(k()),a&I&&(u+=n);break;case 38:n=ae(k()),a&L||(u+=n);break;case 39:n=ae(k()),a&L&&(u+=n);break;case 40:n=ae(k()),a&g||(u+=n);break;case 41:n=ae(k()),a&g&&(u+=n);break;case 42:n=ae(k()),a&B||(u+=n);break;case 43:n=ae(k()),a&B&&(u+=n);break;case 44:n=ae(k()),a&B^(a&g)<<2||(u+=n);break;case 45:n=ae(k()),a&B^(a&g)<<2&&(u+=n);break;case 46:n=ae(k()),a&B^(a&g)<<2||a&L||(u+=n);break;case 47:n=ae(k()),(a&B^(a&g)<<2||a&L)&&(u+=n);break;case 63:a|=R,O(u),O(x),O(l),O(c),ue(W),ue(r),ue(e),ue(a),a|=J|h,u=M(pe);break;case 131:Z(U(),k());break;case 140:Z(l,k());break;case 142:l=k(),te(l),a&=~g;break;case 147:n=X(),Z(U(),M(n));break;case 156:n=X(),Z(l,M(n));break;case 158:n=X(),l=M(n),te(l),a&=~g;break;case 159:n=X(),fe(n,l),te(l),a&=~g;break;case 163:n=F(),Z(U(),M(n));break;case 172:n=F(),Z(l,M(n));break;case 174:n=F(),l=M(n),te(l),a&=~g;break;case 175:n=F(),fe(n,l),te(l),a&=~g;break;case 179:n=k(),Z(U(),M(n));break;case 188:n=k(),Z(l,M(n));break;case 190:n=k(),l=M(n),te(l),a&=~g;break;case 191:n=k(),fe(n,l),te(l),a&=~g;break;case 206:d=k(),te(d),a&=~g;break;case 222:n=X(),d=M(n),te(d),a&=~g;break;case 223:n=X(),fe(n,d),te(d),a&=~g;break;case 238:n=F(),d=M(n),te(d),a&=~g;break;case 239:n=F(),fe(n,d),te(d),a&=~g;break;case 254:n=k(),d=M(n),te(d),a&=~g;break;case 255:n=k(),fe(n,d),te(d),a&=~g;break}break;case 17:switch(t=N(),H+=ee[t],t){case 63:a|=R,O(u),O(x),O(l),O(c),ue(W),ue(r),ue(e),ue(a),a|=J|h,u=M(Me);break;case 131:Z(x,k());break;case 140:Z(d,k());break;case 147:n=X(),Z(x,M(n));break;case 156:n=X(),Z(d,M(n));break;case 163:n=F(),Z(x,M(n));break;case 172:n=F(),Z(d,M(n));break;case 179:n=k(),Z(x,M(n));break;case 188:n=k(),Z(d,M(n));break}break}return e&=255,r&=255,a&=255,W&=255,c&=65535,l&=65535,x&=65535,d&=65535,u&=65535,H-o},Qe=function(){u=M(ie),W=0,a|=h|J,H=0,e=r=W=c=l=x=d=0},e0=[[2,1,"NEG"],[1,0,"???"],[1,0,"???"],[2,1,"COM"],[2,1,"LSR"],[1,0,"???"],[2,1,"ROR"],[2,1,"ASR"],[2,1,"LSL"],[2,1,"ROL"],[2,1,"DEC"],[1,0,"???"],[2,1,"INC"],[2,1,"TST"],[2,1,"JMP"],[2,1,"CLR"],[1,0,"Prefix"],[1,0,"Prefix"],[1,2,"NOP"],[1,2,"SYNC"],[1,0,"???"],[1,0,"???"],[3,3,"LBRA"],[3,3,"LBSR"],[1,0,"???"],[1,2,"DAA"],[2,4,"ORCC"],[1,0,"???"],[2,4,"ANDCC"],[1,2,"SEX"],[2,20,"EXG"],[2,20,"TFR"],[2,5,"BRA"],[2,5,"BRN"],[2,5,"BHI"],[2,5,"BLS"],[2,5,"BCC"],[2,5,"BCS"],[2,5,"BNE"],[2,5,"BEQ"],[2,5,"BVC"],[2,5,"BVS"],[2,5,"BPL"],[2,5,"BMI"],[2,5,"BGE"],[2,5,"BLT"],[2,5,"BGT"],[2,5,"BLE"],[2,6,"LEAX"],[2,6,"LEAY"],[2,6,"LEAS"],[2,6,"LEAU"],[2,10,"PSHS"],[2,10,"PULS"],[2,11,"PSHU"],[2,11,"PULU"],[1,0,"???"],[1,2,"RTS"],[1,2,"ABX"],[1,2,"RTI"],[2,2,"CWAI"],[1,2,"MUL"],[1,2,"RESET"],[1,2,"SWI1"],[1,2,"NEGA"],[1,0,"???"],[1,0,"???"],[1,2,"COMA"],[1,2,"LSRA"],[1,0,"???"],[1,2,"RORA"],[1,2,"ASRA"],[1,2,"ASLA"],[1,2,"ROLA"],[1,2,"DECA"],[1,0,"???"],[1,2,"INCA"],[1,2,"TSTA"],[1,0,"???"],[1,2,"CLRA"],[1,2,"NEGB"],[1,0,"???"],[1,0,"???"],[1,2,"COMB"],[1,2,"LSRB"],[1,0,"???"],[1,2,"RORB"],[1,2,"ASRB"],[1,2,"ASLB"],[1,2,"ROLB"],[1,2,"DECB"],[1,0,"???"],[1,2,"INCB"],[1,2,"TSTB"],[1,0,"???"],[1,2,"CLRB"],[2,6,"NEG"],[1,0,"???"],[1,0,"???"],[2,6,"COM"],[2,6,"LSR"],[1,0,"???"],[2,6,"ROR"],[2,6,"ASR"],[2,6,"LSL"],[2,6,"ROL"],[2,6,"DEC"],[1,0,"???"],[2,6,"INC"],[2,6,"TST"],[2,6,"JMP"],[2,6,"CLR"],[3,7,"NEG"],[1,0,"???"],[1,0,"???"],[3,7,"COM"],[3,7,"LSR"],[1,0,"???"],[3,7,"ROR"],[3,7,"ASR"],[3,7,"LSL"],[3,7,"ROL"],[3,7,"DEC"],[1,0,"???"],[3,7,"INC"],[3,7,"TST"],[3,7,"JMP"],[3,7,"CLR"],[2,4,"SUBA"],[2,4,"CMPA"],[2,4,"SBCA"],[3,8,"SUBD"],[2,4,"ANDA"],[2,4,"BITA"],[2,4,"LDA"],[1,0,"???"],[2,4,"EORA"],[2,4,"ADCA"],[2,4,"ORA"],[2,4,"ADDA"],[3,8,"CMPX"],[2,5,"BSR"],[3,8,"LDX"],[1,0,"???"],[2,1,"SUBA"],[2,1,"CMPA"],[2,1,"SBCA"],[2,1,"SUBd"],[2,1,"ANDA"],[2,1,"BITA"],[2,1,"LDA"],[2,1,"STA"],[2,1,"EORA"],[2,1,"ADCA"],[2,1,"ORA"],[2,1,"ADDA"],[2,1,"CMPX"],[2,1,"JSR"],[2,1,"LDX"],[2,1,"STX"],[2,6,"SUBA"],[2,6,"CMPA"],[2,6,"SBCA"],[2,6,"SUBD"],[2,6,"ANDA"],[2,6,"BITA"],[2,6,"LDA"],[2,6,"STA"],[2,6,"EORA"],[2,6,"ADCA"],[2,6,"ORA"],[2,6,"ADDA"],[2,6,"CMPX"],[2,6,"JSR"],[2,6,"LDX"],[2,6,"STX"],[3,7,"SUBA"],[3,7,"CMPA"],[3,7,"SBCA"],[3,7,"SUBD"],[3,7,"ANDA"],[3,7,"BITA"],[3,7,"LDA"],[3,7,"STA"],[3,7,"EORA"],[3,7,"ADCA"],[3,7,"ORA"],[3,7,"ADDA"],[3,7,"CMPX"],[3,7,"JSR"],[3,7,"LDX"],[3,7,"STX"],[2,4,"SUBB"],[2,4,"CMPB"],[2,4,"SBCB"],[3,8,"ADDD"],[2,4,"ANDB"],[2,4,"BITB"],[2,4,"LDB"],[1,0,"???"],[2,4,"EORB"],[2,4,"ADCB"],[2,4,"ORB"],[2,4,"ADDB"],[3,8,"LDD"],[1,0,"???"],[3,8,"LDU"],[1,0,"???"],[2,1,"SUBB"],[2,1,"CMPB"],[2,1,"SBCB"],[2,1,"ADDD"],[2,1,"ANDB"],[2,1,"BITB"],[2,1,"LDB"],[2,1,"STB"],[2,1,"EORB"],[2,1,"ADCB"],[2,1,"ORB "],[2,1,"ADDB"],[2,1,"LDD "],[2,1,"STD "],[2,1,"LDU "],[2,1,"STU "],[2,6,"SUBB"],[2,6,"CMPB"],[2,6,"SBCB"],[2,6,"ADDD"],[2,6,"ANDB"],[2,6,"BITB"],[2,6,"LDB"],[2,6,"STB"],[2,6,"EORB"],[2,6,"ADCB"],[2,6,"ORB"],[2,6,"ADDB"],[2,6,"LDD"],[2,6,"STD"],[2,6,"LDU"],[2,6,"STU"],[3,7,"SUBB"],[3,7,"CMPB"],[3,7,"SBCB"],[3,7,"ADDD"],[3,7,"ANDB"],[3,7,"BITB"],[3,7,"LDB"],[3,7,"STB"],[3,7,"EORB"],[3,7,"ADCB"],[3,7,"ORB"],[3,7,"ADDB"],[3,7,"LDD"],[3,7,"STD"],[3,7,"LDU"],[3,7,"STU"]],S={63:[2,2,"SWI3"],131:[4,8,"CMPU"],140:[4,8,"CMPS"],147:[3,1,"CMPU"],156:[3,1,"CMPS"],163:[3,6,"CMPU"],172:[3,6,"CMPS"],179:[4,7,"CMPU"],188:[4,7,"CMPS"]},y={33:[5,3,"LBRN"],34:[5,3,"LBHI"],35:[5,3,"LBLS"],36:[5,3,"LBCC"],37:[5,3,"LBCS"],38:[5,3,"LBNE"],39:[5,3,"LBEQ"],40:[5,3,"LBVC"],41:[5,3,"LBVS"],42:[5,3,"LBPL"],43:[5,3,"LBMI"],44:[5,3,"LBGE"],45:[5,3,"LBLT"],46:[5,3,"LBGT"],47:[5,3,"LBLE"],63:[2,2,"SWI2"],131:[4,8,"CMPD"],140:[4,8,"CMPY"],142:[4,8,"LDY"],147:[3,1,"CMPD"],156:[3,1,"CMPY"],158:[3,1,"LDY"],159:[3,1,"STY"],163:[3,6,"CMPD"],172:[3,6,"CMPY"],174:[3,6,"LDY"],175:[3,6,"STY"],179:[4,7,"CMPD"],188:[4,7,"CMPY"],190:[4,7,"LDY"],191:[4,7,"STY"],206:[4,8,"LDS"],222:[3,1,"LDS"],223:[3,1,"STS"],238:[3,6,"LDS"],239:[3,6,"STS"],254:[4,7,"LDS"],255:[4,7,"STS"]},D=function(o,n,p,s,t,b){var _=function(l0,j0){for(var _0=l0.toString(16);_0.length<j0;)_0="0"+_0;return _0.toUpperCase()},Ie=function(l0){return _(l0&255,2)},$e=function(l0){return _(l0,4)},Oe,r0,Ge,t0=e0[o];if(o===16){if(t0=y[n],t0===void 0)return["???",2];o=n,n=p,p=s,s=t}if(o===17){if(t0=S[n],t0===void 0)return["???",2];o=n,n=p,p=s,s=t}var je=t0[0],z0=t0[1],$=t0[2];switch(z0){case 0:break;case 1:$+=" $"+Ie(n);break;case 2:break;case 3:$+=" #$"+$e(n*256+p<32768?n*256+p+b:n*256+p+b-65536);break;case 4:$+=" #$"+Ie(n);break;case 5:$+=" #$"+$e(n<128?n+b+2:n+b-254);break;case 6:$+=" ";var o0=n,Fe=["X","Y","U","S"][(o0&96)>>5];if(!(o0&128)){var p0=o0&31;p0>15&&(p0=p0-32),$+=p0+","+Fe;break}var K0=o0&16,O0=o0&15,g0=p>127?p-256:p,P0=p*256+s>32767?p*256+s-65536:p*256+s;if(K0)switch(O0){case 0:$+="???";break;case 1:$+="[,"+Fe+"++]";break;case 2:$+="???";break;case 3:$+="[,--"+Fe+"]";break;case 4:$+="[,"+Fe+"]";break;case 5:$+="[B,"+Fe+"]";break;case 6:$+="[A,"+Fe+"]";break;case 7:$+="???";break;case 8:$+="["+g0+","+Fe+"]",je++;break;case 9:$+="["+P0+","+Fe+"]",je+=2;break;case 10:$+="???";break;case 11:$+="[D,"+Fe+"]";break;case 12:$+="["+g0+",PC]",je++;break;case 13:$+="["+P0+",PC]",je+=2;break;case 14:$+="???";break;case 15:$+="[$"+$e(p*256+s)+"]",je+=2;break}else switch(O0){case 0:$+=","+Fe+"+";break;case 1:$+=","+Fe+"++";break;case 2:$+=",-"+Fe;break;case 3:$+=",--"+Fe;break;case 4:$+=","+Fe;break;case 5:$+="B,"+Fe;break;case 6:$+="A,"+Fe;break;case 7:$+="???";break;case 8:$+=g0+","+Fe,je++;break;case 9:$+=P0+","+Fe,je+=2;break;case 10:$+="???";break;case 11:$+="D,"+Fe;break;case 12:$+=g0+",PC",je++;break;case 13:$+=P0+",PC",je+=2;break;case 14:$+="???";break;case 15:$+="$"+$e(p*256+s),je+=2;break}break;case 7:$+=" $"+$e(n*256+p);break;case 8:$+=" #$"+$e(n*256+p);break;case 10:for(Oe=["PC","U","Y","X","DP","B","A","CC"],r0=[],Ge=0;Ge<8;Ge++)(n&1)!=0&&r0.push(Oe[7-Ge]),n>>=1;$+=" "+r0.join(",");break;case 11:for(Oe=["PC","S","Y","X","DP","B","A","CC"],r0=[],Ge=0;Ge<8;Ge++)(n&1)!=0&&r0.push(Oe[7-Ge]),n>>=1;$+=" "+r0.join(",");break;case 20:Oe=["D","X","Y","U","S","PC","?","?","A","B","CC","DP","?","?","?","?"],$+=" "+Oe[n>>4]+","+Oe[n&15];break}return{line:$,nbytes:je}};return{steps:function(o){for(;o>0;)o-=Ke()},runFrame:function(o){for(;H<o;)Ke()},advanceInsn:function(){return Ke()},T:function(){return H},getTstates:function(){return H},setTstates:function(o){H=o},reset:Qe,init:function(o,n,p){P=o,C=n,A=p,Qe()},getPC:function(){return u},getSP:function(){return d},saveState:function(){return{PC:u,SP:d,U:x,A:e,B:r,X:c,Y:l,DP:W,CC:a,T:H}},loadState:function(o){u=o.PC,d=o.SP,x=o.U,e=o.A,r=o.B,c=o.X,l=o.Y,W=o.DP,a=o.CC,H=o.T},firq:function(){a&h||(O(u),a&=~R,ue(a),a|=J|h,u=M(f),H+=9)},interrupt:function(){a&J||(O(u),O(x),O(l),O(c),ue(W),ue(r),ue(e),a|=R,ue(a),a|=J,u=M(i),H+=18)},nmi:function(){O(u),O(x),O(l),O(c),ue(W),ue(r),ue(e),a|=R,ue(a),a|=J|h,u=M(T),H+=18},set:function(o,n){switch(o.toUpperCase()){case"PC":u=n;return;case"A":e=n;return;case"B":r=n;return;case"X":c=n;return;case"Y":l=n;return;case"SP":d=n;return;case"U":x=n;return;case"FLAGS":a=n;return}},flagsToString:function(){for(var o="",n="EFHINZVC",p=0;p<8;p++){var s=a&128>>p;s===0?o+=n[p].toLowerCase():o+=n[p]}return o},disasm:D}}var ft=function(){var A=this;this.powerOn=function(){this.reset()},this.powerOff=function(){},this.clockPulse=function(){!r||(J++,h[J]())},this.connectBus=function(m){e=m},this.setRDY=function(m){r=m},this.isRDY=function(){return r},this.reset=function(){g=1,J=-1,h=[z],c=e.read(H)|e.read(H+1)<<8,this.setRDY(!0)};var e,r=!1,c=0,l=0,x=0,d=0,u=0,a=0,W=0,I=0,g=0,L=0,B=0,J=-1,le=-1,h,R=0,ie=0,T=0,V=!1,i=0,f=0,pe=0;let Me=65530,H=65532,De=65534,P=0,C=1,Ze=7,ee=6,G=1,Ye=0;this.debug=!1,this.trace=!1;var z=function(){le=e.read(c),h=t[le],J=0,c++},U=z,Ae=function(){e.read(c)},ue=function(){f=e.read(c),c++},O=function(){ie=e.read(c),c++},Xe=function(){ie|=e.read(c)<<8,c++},We=function(){ie=e.read(T)},Te=function(){ie|=e.read(T)<<8},Be=function(){T=e.read(c),c++},Q=function(){T|=e.read(c)<<8,c++},me=function(){T=e.read(i)},we=function(){T|=e.read(i)<<8},be=function(){var m=(T&255)+d;V=m>255,T=T&65280|m&255},ye=function(){var m=(T&255)+u;V=m>255,T=T&65280|m&255},Ve=function(){var m=(T&255)+1;V=m>255,T=T&65280|m&255},Ee=function(){V&&(T=T+256&65535)},Ue=function(){i=e.read(c),c++},Pe=function(){i|=e.read(c)<<8,c++},ce=function(){var m=(i&255)+1;i=i&65280|m&255},ae=function(){R=e.read(c),c++},N=function(){R=e.read(ie)},k=function(){R=e.read(T)},M=function(){e.write(ie,R)},fe=function(){e.write(T,R)},F=function(){var m=c&255,v=m+f&255;f>127?pe=v>m?-256:0:pe=v<m?256:0,c=c&65280|v},te=function(){c=c+pe&65535},w=function(m){L=m===0?1:0},E=function(m){a=m&128?1:0},ge=function(m){W=m?1:0},Y=function(m){B=m?1:0},ne=function(){return l=l+1&255,e.read(256+l)},ve=function(){return e.read(256+l)},j=function(m){e.write(256+l,m),l=l-1&255},oe=function(){return a<<7|W<<6|48|I<<3|g<<2|L<<1|B},Le=function(m){a=m>>>7,W=m>>>6&1,I=m>>>3&1,g=m>>>2&1,L=m>>>1&1,B=m&1},Z=function(m){A.debug&&A.breakpoint("Illegal Opcode: "+m)},q=function(m){return[z,Ae,function(){m(),U()}]},se=function(m){return[z,ae,function(){m(),U()}]},_e=function(m){return[z,O,N,function(){m(),U()}]},Re=function(m){return[z,O,Xe,N,function(){m(),U()}]},He=function(m){return[z,Be,k,function(){be(),We()},function(){Ve(),Te()},N,function(){m(),U()}]},xe=function(m){var v=m===P?be:ye;return function(K){return[z,Be,Q,function(){v(),k(),Ee()},function(){V?k():(K(),U())},function(){K(),U()}]}},de=function(m){var v=m===P?be:ye;return function(K){return[z,Be,k,function(){v(),k()},function(){K(),U()}]}},Ne=function(m){return[z,Ue,me,function(){ce(),we()},function(){ye(),k(),Ee()},function(){V?k():(m(),U())},function(){m(),U()}]},ke=function(m){return[z,O,function(){m(),M()},U]},ze=function(m){return[z,O,Xe,function(){m(),M()},U]},X=function(m){return[z,Be,k,function(){be(),We()},function(){Ve(),Te()},function(){m(),M()},U]},Ke=function(m){var v=m===P?be:ye;return function(K){return[z,Be,Q,function(){v(),k(),Ee()},function(){K(),fe()},U]}},Qe=function(m){var v=m===P?be:ye;return function(K){return[z,Be,k,function(){v(),K(),fe()},U]}},e0=function(m){return[z,Ue,me,function(){ce(),we()},function(){ye(),k(),Ee()},function(){m(),fe()},U]},S=function(m){return[z,O,N,M,function(){m(),M()},U]},y=function(m){return[z,O,Xe,N,M,function(){m(),M()},U]},D=function(m){var v=m===P?be:ye;return function(K){return[z,Be,k,function(){v(),k()},fe,function(){K(),fe()},U]}},o=function(m){var v=m===P?be:ye;return function(K){return[z,Be,Q,function(){v(),k(),Ee()},k,fe,function(){K(),fe()},U]}},n=function(m){return[z,Be,k,function(){be(),We()},function(){Ve(),Te()},N,M,function(){m(),M()},U]},p=function(m){return[z,Ue,me,function(){ce(),we()},function(){ye(),k(),Ee()},k,fe,function(){m(),fe()},U]},s=new Array(256),t=new Array(256);s[0]="BRK",t[0]=Qt(),s[1]="ORA",t[1]=x0(He),s[2]="uKIL",t[2]=Je(),s[3]="uSLO",t[3]=v0(n),s[4]="uNOP",t[4]=Ce(_e),s[5]="ORA",t[5]=x0(_e),s[6]="ASL",t[6]=E0(S),s[7]="uSLO",t[7]=v0(S),s[8]="PHP",t[8]=Kt(),s[9]="ORA",t[9]=x0(se),s[10]="ASL",t[10]=b(),s[11]="uANC",t[11]=xt(se),s[12]="uNOP",t[12]=Ce(Re),s[13]="ORA",t[13]=x0(Re),s[14]="ASL",t[14]=E0(y),s[15]="uSLO",t[15]=v0(y),s[16]="BPL",t[16]=u0(Ze,0),s[17]="ORA",t[17]=x0(Ne),s[18]="uKIL",t[18]=Je(),s[19]="uSLO",t[19]=v0(p),s[20]="uNOP",t[20]=Ce(de(P)),s[21]="ORA",t[21]=x0(de(P)),s[22]="ASL",t[22]=E0(D(P)),s[23]="uSLO",t[23]=v0(D(P)),s[24]="CLC",t[24]=_(),s[25]="ORA",t[25]=x0(xe(C)),s[26]="uNOP",t[26]=Ce(q),s[27]="uSLO",t[27]=v0(o(C)),s[28]="uNOP",t[28]=Ce(xe(P)),s[29]="ORA",t[29]=x0(xe(P)),s[30]="ASL",t[30]=E0(o(P)),s[31]="uSLO",t[31]=v0(o(P)),s[32]="JSR",t[32]=Jt(),s[33]="AND",t[33]=i0(He),s[34]="uKIL",t[34]=Je(),s[35]="uRLA",t[35]=h0(n),s[36]="BIT",t[36]=st(_e),s[37]="AND",t[37]=i0(_e),s[38]="ROL",t[38]=T0(S),s[39]="uRLA",t[39]=h0(S),s[40]="PLP",t[40]=$t(),s[41]="AND",t[41]=i0(se),s[42]="ROL",t[42]=o0(),s[43]="uANC",t[43]=xt(se),s[44]="BIT",t[44]=st(Re),s[45]="AND",t[45]=i0(Re),s[46]="ROL",t[46]=T0(y),s[47]="uRLA",t[47]=h0(y),s[48]="BMI",t[48]=u0(Ze,1),s[49]="AND",t[49]=i0(Ne),s[50]="uKIL",t[50]=Je(),s[51]="uRLA",t[51]=h0(p),s[52]="uNOP",t[52]=Ce(de(P)),s[53]="AND",t[53]=i0(de(P)),s[54]="ROL",t[54]=T0(D(P)),s[55]="uRLA",t[55]=h0(D(P)),s[56]="SEC",t[56]=p0(),s[57]="AND",t[57]=i0(xe(C)),s[58]="uNOP",t[58]=Ce(q),s[59]="uRLA",t[59]=h0(o(C)),s[60]="uNOP",t[60]=Ce(xe(P)),s[61]="AND",t[61]=i0(xe(P)),s[62]="ROL",t[62]=T0(o(P)),s[63]="uRLA",t[63]=h0(o(P)),s[64]="RTI",t[64]=en(),s[65]="EOR",t[65]=c0(He),s[66]="uKIL",t[66]=Je(),s[67]="uSRE",t[67]=S0(n),s[68]="uNOP",t[68]=Ce(_e),s[69]="EOR",t[69]=c0(_e),s[70]="LSR",t[70]=M0(S),s[71]="uSRE",t[71]=S0(S),s[72]="PHA",t[72]=zt(),s[73]="EOR",t[73]=c0(se),s[74]="LSR",t[74]=z0(),s[75]="uASR",t[75]=Ut(se),s[76]="JMP",t[76]=nn(),s[77]="EOR",t[77]=c0(Re),s[78]="LSR",t[78]=M0(y),s[79]="uSRE",t[79]=S0(y),s[80]="BVC",t[80]=u0(ee,0),s[81]="EOR",t[81]=c0(Ne),s[82]="uKIL",t[82]=Je(),s[83]="uSRE",t[83]=S0(p),s[84]="uNOP",t[84]=Ce(de(P)),s[85]="EOR",t[85]=c0(de(P)),s[86]="LSR",t[86]=M0(D(P)),s[87]="uSRE",t[87]=S0(D(P)),s[88]="CLI",t[88]=$e(),s[89]="EOR",t[89]=c0(xe(C)),s[90]="uNOP",t[90]=Ce(q),s[91]="uSRE",t[91]=S0(o(C)),s[92]="uNOP",t[92]=Ce(xe(P)),s[93]="EOR",t[93]=c0(xe(P)),s[94]="LSR",t[94]=M0(o(P)),s[95]="uSRE",t[95]=S0(o(P)),s[96]="RTS",t[96]=tn(),s[97]="ADC",t[97]=a0(He),s[98]="uKIL",t[98]=Je(),s[99]="uRRA",t[99]=A0(n),s[100]="uNOP",t[100]=Ce(_e),s[101]="ADC",t[101]=a0(_e),s[102]="ROR",t[102]=U0(S),s[103]="uRRA",t[103]=A0(S),s[104]="PLA",t[104]=jt(),s[105]="ADC",t[105]=a0(se),s[106]="ROR",t[106]=Fe(),s[107]="uARR",t[107]=Tt(se),s[108]="JMP",t[108]=rn(),s[109]="ADC",t[109]=a0(Re),s[110]="ROR",t[110]=U0(y),s[111]="uRRA",t[111]=A0(y),s[112]="BVS",t[112]=u0(ee,1),s[113]="ADC",t[113]=a0(Ne),s[114]="uKIL",t[114]=Je(),s[115]="uRRA",t[115]=A0(p),s[116]="uNOP",t[116]=Ce(de(P)),s[117]="ADC",t[117]=a0(de(P)),s[118]="ROR",t[118]=U0(D(P)),s[119]="uRRA",t[119]=A0(D(P)),s[120]="SEI",t[120]=O0(),s[121]="ADC",t[121]=a0(xe(C)),s[122]="uNOP",t[122]=Ce(q),s[123]="uRRA",t[123]=A0(o(C)),s[124]="uNOP",t[124]=Ce(xe(P)),s[125]="ADC",t[125]=a0(xe(P)),s[126]="ROR",t[126]=U0(o(P)),s[127]="uRRA",t[127]=A0(o(P)),s[128]="uNOP",t[128]=Ce(se),s[129]="STA",t[129]=m0(X),s[130]="uNOP",t[130]=Ce(se),s[131]="uSAX",t[131]=w0(X),s[132]="STY",t[132]=G0(ke),s[133]="STA",t[133]=m0(ke),s[134]="STX",t[134]=Q0(ke),s[135]="uSAX",t[135]=w0(ke),s[136]="DEY",t[136]=Ge(),s[137]="uNOP",t[137]=Ce(se),s[138]="TXA",t[138]=j0(),s[139]="uANE",t[139]=Mt(se),s[140]="STY",t[140]=G0(ze),s[141]="STA",t[141]=m0(ze),s[142]="STX",t[142]=Q0(ze),s[143]="uSAX",t[143]=w0(ze),s[144]="BCC",t[144]=u0(Ye,0),s[145]="STA",t[145]=m0(e0),s[146]="uKIL",t[146]=Je(),s[147]="uSHA",t[147]=ut(e0),s[148]="STY",t[148]=G0(Qe(P)),s[149]="STA",t[149]=m0(Qe(P)),s[150]="STX",t[150]=Q0(Qe(C)),s[151]="uSAX",t[151]=w0(Qe(C)),s[152]="TYA",t[152]=Ft(),s[153]="STA",t[153]=m0(Ke(C)),s[154]="TXS",t[154]=_0(),s[155]="uSHS",t[155]=Zt(Ke(C)),s[156]="uSHY",t[156]=Vt(Ke(P)),s[157]="STA",t[157]=m0(Ke(P)),s[158]="uSHX",t[158]=Wt(Ke(C)),s[159]="uSHA",t[159]=ut(Ke(C)),s[160]="LDY",t[160]=y0(se),s[161]="LDA",t[161]=s0(He),s[162]="LDX",t[162]=R0(se),s[163]="uLAX",t[163]=k0(He),s[164]="LDY",t[164]=y0(_e),s[165]="LDA",t[165]=s0(_e),s[166]="LDX",t[166]=R0(_e),s[167]="uLAX",t[167]=k0(_e),s[168]="TAY",t[168]=P0(),s[169]="LDA",t[169]=s0(se),s[170]="TAX",t[170]=g0(),s[171]="uLXA",t[171]=Ht(se),s[172]="LDY",t[172]=y0(Re),s[173]="LDA",t[173]=s0(Re),s[174]="LDX",t[174]=R0(Re),s[175]="uLAX",t[175]=k0(Re),s[176]="BCS",t[176]=u0(Ye,1),s[177]="LDA",t[177]=s0(Ne),s[178]="uKIL",t[178]=Je(),s[179]="uLAX",t[179]=k0(Ne),s[180]="LDY",t[180]=y0(de(P)),s[181]="LDA",t[181]=s0(de(P)),s[182]="LDX",t[182]=R0(de(C)),s[183]="uLAX",t[183]=k0(de(C)),s[184]="CLV",t[184]=Oe(),s[185]="LDA",t[185]=s0(xe(C)),s[186]="TSX",t[186]=l0(),s[187]="uLAS",t[187]=Xt(xe(C)),s[188]="LDY",t[188]=y0(xe(P)),s[189]="LDA",t[189]=s0(xe(P)),s[190]="LDX",t[190]=R0(xe(C)),s[191]="uLAX",t[191]=k0(xe(C)),s[192]="CPY",t[192]=J0(se),s[193]="CMP",t[193]=f0(He),s[194]="uNOP",t[194]=Ce(se),s[195]="uDCP",t[195]=b0(n),s[196]="CPY",t[196]=J0(_e),s[197]="CMP",t[197]=f0(_e),s[198]="DEC",t[198]=N0(S),s[199]="uDCP",t[199]=b0(S),s[200]="INY",t[200]=je(),s[201]="CMP",t[201]=f0(se),s[202]="DEX",t[202]=r0(),s[203]="uSBX",t[203]=Yt(se),s[204]="CPY",t[204]=J0(Re),s[205]="CMP",t[205]=f0(Re),s[206]="DEC",t[206]=N0(y),s[207]="uDCP",t[207]=b0(y),s[208]="BNE",t[208]=u0(G,0),s[209]="CMP",t[209]=f0(Ne),s[210]="uKIL",t[210]=Je(),s[211]="uDCP",t[211]=b0(p),s[212]="uNOP",t[212]=Ce(de(P)),s[213]="CMP",t[213]=f0(de(P)),s[214]="DEC",t[214]=N0(D(P)),s[215]="uDCP",t[215]=b0(D(P)),s[216]="CLD",t[216]=Ie(),s[217]="CMP",t[217]=f0(xe(C)),s[218]="uNOP",t[218]=Ce(q),s[219]="uDCP",t[219]=b0(o(C)),s[220]="uNOP",t[220]=Ce(xe(P)),s[221]="CMP",t[221]=f0(xe(P)),s[222]="DEC",t[222]=N0(o(P)),s[223]="uDCP",t[223]=b0(o(P)),s[224]="CPX",t[224]=$0(se),s[225]="SBC",t[225]=n0(He),s[226]="uNOP",t[226]=Ce(se),s[227]="uISB",t[227]=d0(n),s[228]="CPX",t[228]=$0(_e),s[229]="SBC",t[229]=n0(_e),s[230]="INC",t[230]=F0(S),s[231]="uISB",t[231]=d0(S),s[232]="INX",t[232]=t0(),s[233]="SBC",t[233]=n0(se),s[234]="NOP",t[234]=$(),s[235]="SBC",t[235]=n0(se),s[236]="CPX",t[236]=$0(Re),s[237]="SBC",t[237]=n0(Re),s[238]="INC",t[238]=F0(y),s[239]="uISB",t[239]=d0(y),s[240]="BEQ",t[240]=u0(G,1),s[241]="SBC",t[241]=n0(Ne),s[242]="uKIL",t[242]=Je(),s[243]="uISB",t[243]=d0(p),s[244]="uNOP",t[244]=Ce(de(P)),s[245]="SBC",t[245]=n0(de(P)),s[246]="INC",t[246]=F0(D(P)),s[247]="uISB",t[247]=d0(D(P)),s[248]="SED",t[248]=K0(),s[249]="SBC",t[249]=n0(xe(C)),s[250]="uNOP",t[250]=Ce(q),s[251]="uISB",t[251]=d0(o(C)),s[252]="uNOP",t[252]=Ce(xe(P)),s[253]="SBC",t[253]=n0(xe(P)),s[254]="INC",t[254]=F0(o(P)),s[255]="uISB",t[255]=d0(o(P));function b(){return q(function(){Y(x>127),x=x<<1&255,w(x),E(x)})}function _(){return q(function(){B=0})}function Ie(){return q(function(){I=0})}function $e(){return q(function(){g=0})}function Oe(){return q(function(){W=0})}function r0(){return q(function(){d=d-1&255,w(d),E(d)})}function Ge(){return q(function(){u=u-1&255,w(u),E(u)})}function t0(){return q(function(){d=d+1&255,w(d),E(d)})}function je(){return q(function(){u=u+1&255,w(u),E(u)})}function z0(){return q(function(){B=x&1,x>>>=1,w(x),a=0})}function $(){return q(function(){})}function o0(){return q(function(){var m=x>127;x=(x<<1|B)&255,Y(m),w(x),E(x)})}function Fe(){return q(function(){var m=x&1;x=x>>>1|B<<7,Y(m),w(x),E(x)})}function p0(){return q(function(){B=1})}function K0(){return q(function(){I=1})}function O0(){return q(function(){g=1})}function g0(){return q(function(){d=x,w(d),E(d)})}function P0(){return q(function(){u=x,w(u),E(u)})}function l0(){return q(function(){d=l,w(d),E(d)})}function j0(){return q(function(){x=d,w(x),E(x)})}function _0(){return q(function(){l=d})}function Ft(){return q(function(){x=u,w(x),E(x)})}function Je(){return[z,function(){Z("KIL/HLT/JAM")},function(){J--}]}function Ce(m){return m(function(){Z("NOP/DOP")})}function a0(m){return m(function(){if(I){var v=R,K=(x&15)+(v&15)+B;K>9&&(K+=6);var Se=(x>>4)+(v>>4)+(K>15?1:0)<<4;w(x+v+B&255),E(Se),ge((x^Se)&~(x^v)&128),Se>159&&(Se+=96),Y(Se>255),x=(Se|K&15)&255}else{var he=x+R+B;Y(he>255),ge((x^he)&(R^he)&128),x=he&255,w(x),E(x)}})}function i0(m){return m(function(){x&=R,w(x),E(x)})}function st(m){return m(function(){var v=R;w(x&v),ge(v&64),E(v)})}function f0(m){return m(function(){var v=x-R&255;Y(x>=R),w(v),E(v)})}function $0(m){return m(function(){var v=d-R&255;Y(d>=R),w(v),E(v)})}function J0(m){return m(function(){var v=u-R&255;Y(u>=R),w(v),E(v)})}function c0(m){return m(function(){x^=R,w(x),E(x)})}function s0(m){return m(function(){x=R,w(x),E(x)})}function R0(m){return m(function(){d=R,w(d),E(d)})}function y0(m){return m(function(){u=R,w(u),E(u)})}function x0(m){return m(function(){x|=R,w(x),E(x)})}function n0(m){return m(function(){if(I){var v=R,K=(x&15)-(v&15)-(1-B),Se=(x>>4)-(v>>4)-(K<0?1:0);K<0&&(K-=6),Se<0&&(Se-=6);var he=x-v-(1-B);Y(~he&256),ge((x^v)&(x^he)&128),w(he&255),E(he),x=(Se<<4|K&15)&255}else v=~R&255,he=x+v+B,Y(he>255),ge((x^he)&(v^he)&128),x=he&255,w(x),E(x)})}function xt(m){return m(function(){Z("ANC"),x&=R,w(x),a=B=x&128?1:0})}function Mt(m){return m(function(){Z("ANE")})}function Tt(m){return m(function(){Z("ARR");var v=x&R,K=B?128:0;v=v>>>1|K,x=v,w(v),E(v);var Se=x&96;Se==96?(B=1,W=0):Se==0?(B=0,W=0):Se==32?(B=0,W=1):Se==64&&(B=1,W=1)})}function Ut(m){return m(function(){Z("ASR");var v=x&R;B=v&1,v=v>>>1,x=v,w(v),a=0})}function Xt(m){return m(function(){Z("LAS");var v=l&R;x=v,d=v,l=v,w(v),E(v)})}function k0(m){return m(function(){Z("LAX");var v=R;x=v,d=v,w(v),E(v)})}function Ht(m){return m(function(){Z("LXA");var v=x&R;x=v,d=v,w(v),E(v)})}function Yt(m){return m(function(){Z("SBX");var v=x&d,K=R,Se=v-K&255;d=Se,Y(v>=K),w(Se),E(Se)})}function m0(m){return m(function(){R=x})}function Q0(m){return m(function(){R=d})}function G0(m){return m(function(){R=u})}function w0(m){return m(function(){Z("SAX"),R=x&d})}function ut(m){return m(function(){Z("SHA"),R=x&d&(T>>>8)+1&255})}function Zt(m){return m(function(){Z("SHS");var v=x&d;l=v,R=v&(T>>>8)+1&255})}function Wt(m){return m(function(){Z("SHX"),R=d&(T>>>8)+1&255})}function Vt(m){return m(function(){Z("SHY"),R=u&(T>>>8)+1&255})}function E0(m){return m(function(){Y(R>127);var v=R<<1&255;R=v,w(v),E(v)})}function N0(m){return m(function(){var v=R-1&255;R=v,w(v),E(v)})}function F0(m){return m(function(){var v=R+1&255;R=v,w(v),E(v)})}function M0(m){return m(function(){B=R&1,R>>>=1,w(R),a=0})}function T0(m){return m(function(){var v=R>127,K=(R<<1|B)&255;R=K,Y(v),w(K),E(K)})}function U0(m){return m(function(){var v=R&1,K=R>>>1|B<<7;R=K,Y(v),w(K),E(K)})}function b0(m){return m(function(){Z("DCP");var v=R-1&255;R=v,v=x-v,Y(v>=0),w(v),E(v)})}function d0(m){return m(function(){if(Z("ISB"),R=R+1&255,I){var v=R,K=(x&15)-(v&15)-(1-B),Se=(x>>4)-(v>>4)-(K<0?1:0);K<0&&(K-=6),Se<0&&(Se-=6);var he=x-v-(1-B);Y(~he&256),ge((x^v)&(x^he)&128),w(he&255),E(he),x=(Se<<4|K&15)&255}else v=~R&255,he=x+v+B,Y(he>255),ge((x^he)&(v^he)&128),x=he&255,w(x),E(x)})}function h0(m){return m(function(){Z("RLA");var v=R,K=B;Y(v&128),v=(v<<1|K)&255,R=v,x&=v,w(v),E(v)})}function A0(m){return m(function(){Z("RRA");var v=R,K=B?128:0;if(Y(v&1),v=v>>>1|K,R=v,I){var Se=R,he=(x&15)+(Se&15)+B;he>9&&(he+=6);var B0=(x>>4)+(Se>>4)+(he>15?1:0)<<4;w(x+Se+B&255),E(B0),ge((x^B0)&~(x^Se)&128),B0>159&&(B0+=96),Y(B0>255),x=(B0|he&15)&255}else{var X0=x+R+B;Y(X0>255),ge((x^X0)&(R^X0)&128),x=X0&255,w(x),E(x)}})}function v0(m){return m(function(){Z("SLO");var v=R;Y(v&128),v=v<<1&255,R=v,v=x|v,x=v,w(v),E(v)})}function S0(m){return m(function(){Z("SRE");var v=R;Y(v&1),v=v>>>1,R=v,v=(x^v)&255,x=v,w(v),E(v)})}function zt(){return[z,Ae,function(){j(x)},U]}function Kt(){return[z,Ae,function(){j(oe())},U]}function jt(){return[z,Ae,ve,function(){x=ne(),w(x),E(x)},U]}function $t(){return[z,Ae,ve,function(){Le(ne())},U]}function Jt(){return[z,O,ve,function(){j(c>>>8&255)},function(){j(c&255)},Xe,function(){c=ie,U()}]}function Qt(){return[z,ae,function(){A.debug&&A.breakpoint("BRK "+R),j(c>>>8&255)},function(){j(c&255)},function(){j(oe())},function(){ie=e.read(De)},function(){ie|=e.read(De+1)<<8},function(){c=ie,g=1,U()}]}function Gt(){return[z,ae,function(){A.debug&&A.breakpoint("IRQ "+R),j(c>>>8&255)},function(){j(c&255)},function(){j(oe())},function(){ie=e.read(De)},function(){ie|=e.read(De+1)<<8},function(){c=ie,U()}]}function qt(){return[z,ae,function(){A.debug&&A.breakpoint("NMI "+R),j(c>>>8&255)},function(){j(c&255)},function(){j(oe())},function(){ie=e.read(Me)},function(){ie|=e.read(Me+1)<<8},function(){c=ie,U()}]}function en(){return[z,Ae,ve,function(){Le(ne())},function(){ie=ne()},function(){ie|=ne()<<8},function(){c=ie,U()}]}function tn(){return[z,Ae,ve,function(){ie=ne()},function(){ie|=ne()<<8},function(){c=ie,ae()},U]}function nn(){return[z,O,Xe,function(){c=ie,U()}]}function rn(){return[z,Ue,Pe,me,function(){ce(),we()},function(){c=T,U()}]}function u0(m,v){var K;return m===G?K=function(){return L===v}:m===Ze?K=function(){return a===v}:m===Ye?K=function(){return B===v}:K=function(){return W===v},[z,ue,function(){K()?(Ae(),F()):U()},function(){pe?(Ae(),te()):U()},U]}this.saveState=function(){return{PC:c-1&65535,A:x,X:d,Y:u,SP:l,N:a,V:W,D:I,I:g,Z:L,C:B,T:J,o:le,R:r?1:0,d:R,AD:ie,BA:T,BC:V?1:0,IA:i,bo:f,boa:pe}},this.loadState=function(m){c=m.PC+1&65535,x=m.A,d=m.X,u=m.Y,l=m.SP,a=m.N,W=m.V,I=m.D,g=m.I,L=m.Z,B=m.C,J=m.T,le=m.o,r=!!m.R,R=m.d,ie=m.AD,T=m.BA,V=!!m.BC,i=m.IA,f=m.bo,pe=m.boa,h=le<0?[z]:t[le]},this.toString=function(){return"CPU PC: "+c.toString(16)+" op: "+le.toString()+" T: "+J+" data: "+R+`
A: `+x.toString(16)+" X: "+d.toString(16)+" Y: "+u.toString(16)+" SP: "+l.toString(16)+" N"+a+" V"+W+" D"+I+" I"+g+" Z"+L+" C"+B+" "},this.breakpoint=function(m){if(this.trace)var v="CPU Breakpoint! "+(m?"("+m+")":"")+`
`+this.toString()};var ot=[7,6,0,8,3,3,5,5,3,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,3,2,2,2,3,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,5,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,0,6,0,6,3,3,3,3,2,0,2,0,4,4,4,4,2,6,0,0,4,4,4,4,2,5,2,0,0,5,0,0,2,6,2,6,3,3,3,3,2,2,2,0,4,4,4,4,2,5,0,5,4,4,4,4,2,4,2,0,4,4,4,4,2,6,0,8,3,3,5,5,2,2,2,2,4,4,3,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,2,6,0,8,3,3,5,5,2,2,2,0,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7],an=[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1],fn=[1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,3,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,0,2,0,2,2,2,2,2,1,0,1,0,3,3,3,3,2,2,0,0,2,2,2,3,1,3,1,0,0,3,0,0,2,2,2,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3],On=[1,2,0,0,0,2,2,0,1,2,1,0,0,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,3,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,0,2,0,0,2,2,2,0,1,0,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,0,3,0,0,2,2,2,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0];this.getOpcodeMetadata=function(m,v){return{opcode:m,mnenomic:s[m],minCycles:ot[m],maxCycles:ot[m]+an[m],insnlength:fn[m]}},this.setNMI=function(){h=qt(),J=1,c=c-1&65535},this.setIRQ=function(){h=Gt(),J=1,c=c-1&65535},this.getSP=function(){return l},this.getPC=function(){return c-1&65535},this.getT=function(){return J},this.isPCStable=function(){return J==0}},C0;(function(c){c[c.None=0]="None",c[c.NMI=1]="NMI",c[c.IRQ=2]="IRQ"})(C0||(C0={}));var hn=class{constructor(){this.cpu=new ft;this.interruptType=0}connectMemoryBus(e){this.cpu.connectBus(e)}advanceClock(){if(this.interruptType&&this.isStable()){switch(this.interruptType){case 1:this.cpu.setNMI();break;case 2:this.cpu.setIRQ();break}this.interruptType=0}this.cpu.clockPulse()}advanceInsn(){do this.advanceClock();while(!this.isStable())}reset(){this.cpu.reset(),this.interruptType=0}interrupt(e){this.interruptType=e}NMI(){this.interrupt(1)}IRQ(){this.interrupt(2)}getSP(){return this.cpu.getSP()}getPC(){return this.cpu.getPC()}saveState(){var e=this.cpu.saveState();return e.it=this.interruptType,e}loadState(e){this.cpu.loadState(e),this.interruptType=e.it}isStable(){return this.cpu.isPCStable()}};var An=class{constructor(e,r){this.symbolmap=e,this.debuginfo=r,this.addr2symbol=lt(e),this.addr2symbol[0]||(this.addr2symbol[0]="$00"),this.addr2symbol[65536]="__END__"}};function D0(A){return A&&typeof A.getDebugCategories=="function"}var kt=class{constructor(){this.id2bp={}}getDebugCondition(){return Object.keys(this.id2bp).length==0?null:()=>{var e=!1;for(var r in this.id2bp)this.id2bp[r].cond()&&(e=!0);return e}}},Bt=class{constructor(){this.recorder=null;this.internalFiles={}}setRecorder(e){this.recorder=e}updateRecorder(){this.recorder&&this.isRunning()&&this.recorder.frameRequested()&&this.recorder.recordFrame(this.saveState())}inspect(e){return vn(this,e)}getDebugTree(){var r;var e={};return e.state=this.saveState(),((r=this.debugSymbols)==null?void 0:r.debuginfo)&&(e.debuginfo=this.debugSymbols.debuginfo),e}readFile(e){return this.internalFiles[e]}writeFile(e,r){return this.internalFiles[e]=r,!0}},Z0=class extends Bt{constructor(){super(...arguments);this.debugSavedState=null;this.debugBreakState=null;this.debugTargetClock=0;this.debugClock=0;this.breakpoints=new kt;this.frameCount=0}setBreakpoint(e,r){r?(this.breakpoints.id2bp[e]={cond:r},this.restartDebugging()):this.clearBreakpoint(e)}clearBreakpoint(e){delete this.breakpoints.id2bp[e]}hasBreakpoint(e){return this.breakpoints.id2bp[e]!=null}getDebugCallback(){return this.breakpoints.getDebugCondition()}setupDebug(e){this.onBreakpointHit=e}clearDebug(){this.debugSavedState=null,this.debugBreakState=null,this.debugTargetClock=-1,this.debugClock=0,this.onBreakpointHit=null,this.clearBreakpoint("debug"),this.frameCount=0}setDebugCondition(e){this.setBreakpoint("debug",e)}restartDebugging(){this.debugSavedState?this.loadState(this.debugSavedState):this.debugSavedState=this.saveState(),this.debugClock=0,this.debugCallback=this.getDebugCallback(),this.debugBreakState=null,this.resume()}preFrame(){this.debugCallback&&!this.debugBreakState&&(this.debugSavedState=this.saveState(),this.debugTargetClock-=this.debugClock,this.debugClock=0)}postFrame(){this.debugCallback&&this.debugBreakState&&this.loadState(this.debugBreakState),this.frameCount++}pollControls(){}nextFrame(e){this.pollControls(),this.updateRecorder(),this.preFrame();var r=this.advance(e);return this.postFrame(),r}evalDebugCondition(){this.debugCallback&&!this.debugBreakState&&this.debugCallback()}wasBreakpointHit(){return this.debugBreakState!=null}breakpointHit(e,r){console.log(this.debugTargetClock,e,this.debugClock,this.isStable()),this.debugTargetClock=e,this.debugBreakState=this.saveState(),console.log("Breakpoint at clk",this.debugClock,"PC",this.debugBreakState.c.PC.toString(16)),this.pause(),this.onBreakpointHit&&this.onBreakpointHit(this.debugBreakState,r)}haltAndCatchFire(e){this.breakpointHit(this.debugClock,e)}runEval(e){this.setDebugCondition(()=>{if(++this.debugClock>=this.debugTargetClock&&this.isStable()){var r=this.getCPUState();return e(r)?(this.breakpointHit(this.debugClock),!0):!1}})}runToPC(e){this.debugTargetClock++,this.runEval(r=>r.PC==e)}runUntilReturn(){var e=this.getSP();this.runEval(r=>r.SP>e)}runToFrameClock(e){this.restartDebugging(),this.debugTargetClock=e,this.runEval(()=>!0)}step(){this.runToFrameClock(this.debugClock+1)}stepBack(){var e,r,c=this.debugTargetClock;this.restartDebugging(),this.debugTargetClock=c-25,this.runEval(l=>this.debugClock<c?(e=this.saveState(),r=this.debugClock,!1):(e&&(this.loadState(e),this.debugClock=r),!0))}runToVsync(){this.restartDebugging();var e=this.frameCount;this.runEval(()=>this.frameCount>e)}};function vn(A,e){if(!!A.debugSymbols){var r=A.debugSymbols.symbolmap,c=A.debugSymbols.addr2symbol;if(!r||!A.readAddress)return null;var l=r["_"+e]||r[e];if(typeof l!="number")return null;var x=A.readAddress(l);if(c&&c[l+1]!=null)return"$"+re(l,4)+" = $"+re(x,2)+" ("+x+" decimal)";{let d=A.readAddress(l+1),u=x|d<<8;return"$"+re(l,4)+" = $"+re(x,2)+" $"+re(d,2)+" ("+(u<<16>>16)+" decimal)"}}}function Dt(A){return A.endsWith(".pla")?"plasm":A.endsWith(".c")||A.endsWith(".h")?"cc65":A.endsWith(".s")||A.endsWith(".ca65")?"ca65":A.endsWith(".dasm")?"dasm":A.endsWith(".acme")?"acme":A.endsWith(".wiz")?"wiz":A.endsWith(".ecs")?"ecs":"dasm"}var Sn=class extends Z0{constructor(){super(...arguments);this.debugPCDelta=-1;this.getToolForFilename=Dt}fixPC(e){return e.PC=e.PC+this.debugPCDelta&65535,e}unfixPC(e){return e.PC=e.PC-this.debugPCDelta&65535,e}getSP(){return this.getCPUState().SP}getPC(){return this.getCPUState().PC}isStable(){return!this.getCPUState().T}newCPU(e){var r=new ft;return r.connectBus(e),r}getOpcodeMetadata(e,r){return yt(e,r)}getOriginPC(){return(this.readAddress(65532)|this.readAddress(65533)<<8)&65535}disassemble(e,r){return tt(e,r(e),r(e+1),r(e+2))}getDefaultExtension(){return".a"}getDebugCategories(){return["CPU","ZPRAM","Stack"]}getDebugInfo(e,r){switch(e){case"CPU":return Rt(r.c);case"ZPRAM":return et(r.b||r.ram,0,256);case"Stack":return V0(this,r.b||r.ram,256,511,256+r.c.SP,32)}}};function Rt(A){function e(r){var c="";return c+=r.N?" N":" -",c+=r.V?" V":" -",c+=r.D?" D":" -",c+=r.Z?" Z":" -",c+=r.C?" C":" -",c+=r.I?" I":" -",c}return"PC "+re(A.PC,4)+" "+e(A)+`
A `+re(A.A)+" "+(A.R?"":"BUSY")+`
X `+re(A.X)+`
Y `+re(A.Y)+" SP "+re(A.SP)+`
`}var W0={cycletime:[7,6,0,8,3,3,5,5,3,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,3,2,2,2,3,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,6,6,0,8,3,3,5,5,4,2,2,2,5,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,0,6,0,6,3,3,3,3,2,0,2,0,4,4,4,4,2,6,0,0,4,4,4,4,2,5,2,0,0,5,0,0,2,6,2,6,3,3,3,3,2,2,2,0,4,4,4,4,2,5,0,5,4,4,4,4,2,4,2,0,4,4,4,4,2,6,0,8,3,3,5,5,2,2,2,2,4,4,3,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7,2,6,0,8,3,3,5,5,2,2,2,0,4,4,6,6,2,5,0,8,4,4,6,6,2,4,0,7,4,4,7,7],extracycles:[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1],insnlengths:[1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,3,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,1,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,0,2,0,2,2,2,2,2,1,0,1,0,3,3,3,3,2,2,0,0,2,2,2,3,1,3,1,0,0,3,0,0,2,2,2,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,2,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3,2,2,0,2,2,2,2,2,1,2,1,0,3,3,3,3,2,2,0,2,2,2,2,2,1,3,0,3,3,3,3,3],validinsns:[1,2,0,0,0,2,2,0,1,2,1,0,0,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,3,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,1,2,0,0,0,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,0,2,0,0,2,2,2,0,1,0,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,0,3,0,0,2,2,2,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,3,1,0,3,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0,2,2,0,0,2,2,2,0,1,2,1,0,3,3,3,0,2,2,0,0,0,2,2,0,1,3,0,0,0,3,3,0]};function yt(A,e){return{opcode:A,minCycles:W0.cycletime[A],maxCycles:W0.cycletime[A]+W0.extracycles[A],insnlength:W0.insnlengths[A]}}function Lt(A){function e(r){return q0(r,["S","Z",,"H",,"V","N","C"],!0)}return"PC "+re(A.PC,4)+" "+e(A.AF)+" "+(A.iff1?"I":"-")+(A.iff2?"I":"-")+`
SP `+re(A.SP,4)+" IR "+re(A.IR,4)+`
IX `+re(A.IX,4)+" IY "+re(A.IY,4)+`
AF `+re(A.AF,4)+" BC "+re(A.BC,4)+`
DE `+re(A.DE,4)+" HL "+re(A.HL,4)+`
`}var It=class extends Z0{constructor(){super(...arguments);this.waitCycles=0;this.getToolForFilename=Ot}newCPU(e,r){return this._cpu=new nt,this._cpu.connectMemoryBus(e),this._cpu.connectIOBus(r),this._cpu}getPC(){return this._cpu.getPC()}getSP(){return this._cpu.getSP()}isStable(){return!0}runCPU(e,r){if(this._cpu=e,this.waitCycles=0,this.wasBreakpointHit())return 0;var c=this.getDebugCallback(),l=0;for(this.waitCycles+=r;this.waitCycles>0;){if(c&&c()){c=null;break}var x=e.advanceInsn();l+=x,this.waitCycles-=x}return l}getDefaultExtension(){return".c"}getDebugCategories(){return["CPU","Stack"]}getDebugInfo(e,r){switch(e){case"CPU":return Lt(r.c);case"Stack":{var c=r.c.SP-1&65535,l=c&65280,x=l+255;return c==0&&(c=65536),console.log(c,l,x),V0(this,[],l,x,c,205)}}}disassemble(e,r){return at(e,r(e),r(e+1),r(e+2),r(e+3))}};function Ot(A){return A.endsWith(".c")||A.endsWith(".h")?"sdcc":A.endsWith(".s")?"sdasz80":A.endsWith(".ns")?"naken":A.endsWith(".scc")?"sccz80":A.endsWith(".z")?"zmac":A.endsWith(".wiz")?"wiz":"zmac"}function wt(A){function e(r){return q0(r,["E","F","H","I","N","Z","V","C"],!0)}return"PC "+re(A.PC,4)+" "+e(A.CC)+`
SP `+re(A.SP,4)+`
DP `+re(A.DP,2)+`
A `+re(A.A,2)+`
B `+re(A.B,2)+`
X `+re(A.X,4)+`
Y `+re(A.Y,4)+`
U `+re(A.U,4)+`
`}function Cn(A){return A.endsWith(".c")||A.endsWith(".h")?"cmoc":A.endsWith(".xasm")?"xasm6809":"lwasm"}var pn=class extends It{constructor(){super(...arguments);this.getToolForFilename=Cn}newCPU(e){var r=Object.create(it());return r.init(e.write,e.read,0),r}cpuStateToLongString(e){return wt(e)}disassemble(e,r){return Object.create(it()).disasm(r(e),r(e+1),r(e+2),r(e+3),r(e+4),e)}getDefaultExtension(){return".asm"}getDebugCategories(){return["CPU","Stack"]}getDebugInfo(e,r){switch(e){case"CPU":return wt(r.c);default:return super.getDebugInfo(e,r)}}};function V0(A,e,r,c,l,x){var d="",u=0;function a(L){return L<e.length?e[L]:A.readAddress(L)}for(;l<c;){l++;var W=a(l)+a(l+1)*256,I=x==32?-2:-3,g=a(W+I);g==x?(d+=`
$`+re(l)+": ",d+=re(W,4)+" "+gn(A,W,!0),l++,u=0):(u==0&&(d+=`
$`+re(l)+": "),d+=re(a(l))+" ",++u==8&&(u=0))}return d+`
`}function gn(A,e,r){for(var c=e,l=A.debugSymbols&&A.debugSymbols.addr2symbol;l&&e>=0;){var x=l[e];if(x){var x=l[e];return r?x+" + $"+re(c-e):x}if(!r)break;e--}return""}function Pn(A){return typeof A.connectVideo=="function"}function _n(A){return typeof A.connectAudio=="function"}function kn(A){return typeof A.setKeyInput=="function"}function Et(A){return typeof A.setPaddleInput=="function"}function Bn(A){return typeof A.getRasterY=="function"}function Dn(A){return typeof A.connectProbe=="function"}function Rn(A){return typeof A.loadBIOS=="function"}function yn(A){return typeof A.connectSerialIO=="function"}var ct=class extends Z0{constructor(e){super();this.mainElement=e}reset(){this.machine.reset(),this.serialVisualizer!=null&&this.serialVisualizer.reset()}loadState(e){this.machine.loadState(e)}saveState(){return this.machine.saveState()}getSP(){return this.machine.cpu.getSP()}getPC(){return this.machine.cpu.getPC()}isStable(){return this.machine.cpu.isStable()}getCPUState(){return this.machine.cpu.saveState()}loadControlsState(e){this.machine.loadControlsState(e)}saveControlsState(){return this.machine.saveControlsState()}async start(){this.machine=this.newMachine();let e=this.machine;e instanceof I0&&await e.loadWASM();var r;if(Pn(e)){var c=e.getVideoParams();this.video=new bt(this.mainElement,c.width,c.height,{overscan:!!c.overscan,rotate:c.rotate|0,aspect:c.aspect}),this.video.create(),e.connectVideo(this.video.getFrameData()),kn(e)&&(this.video.setKeyboardEvents(e.setKeyInput.bind(e)),this.poller=new At(e.setKeyInput.bind(e))),r=c.videoFrequency}if(this.timer=new ht(r||60,this.nextFrame.bind(this)),_n(e)){var l=e.getAudioParams();this.audio=new rt(l.sampleRate),this.audio.start(),e.connectAudio(this.audio)}Et(e)&&this.video.setupMouseEvents(),Dn(e)&&(this.probeRecorder=new vt(e),this.startProbing=()=>(e.connectProbe(this.probeRecorder),this.probeRecorder),this.stopProbing=()=>{e.connectProbe(null)}),Rn(e)&&(this.loadBIOS=(x,d)=>{e.loadBIOS(d,x)}),yn(e)&&(this.serialIOInterface==null?this.serialVisualizer=new Nt(this.mainElement,e):e.connectSerialIO(this.serialIOInterface))}loadROM(e,r){this.machine.loadROM(r),this.reset()}pollControls(){this.poller&&this.poller.poll(),Et(this.machine)&&(this.machine.setPaddleInput(0,this.video.paddle_x),this.machine.setPaddleInput(1,this.video.paddle_y)),this.machine.pollControls&&this.machine.pollControls()}advance(e){var r=this.machine.advanceFrame(this.getDebugCallback());return!e&&this.video&&this.video.updateFrame(),!e&&this.serialVisualizer&&this.serialVisualizer.refresh(),r}advanceFrameClock(e,r){if(r>0)return this.machine instanceof I0?this.machine.advanceFrameClock(e,r):this.machine.advanceFrame(()=>--r<=0)}isRunning(){return this.timer&&this.timer.isRunning()}resume(){this.timer.start(),this.audio&&this.audio.start()}pause(){this.timer.stop(),this.audio&&this.audio.stop(),this.probeRecorder&&(this.probeRecorder.singleFrame=!0)}runToVsync(){this.probeRecorder&&(this.probeRecorder.clear(),this.probeRecorder.singleFrame=!1),super.runToVsync()}getRasterScanline(){return Bn(this.machine)&&this.machine.getRasterY()}readAddress(e){return this.machine.read(e)}getDebugCategories(){if(D0(this.machine))return this.machine.getDebugCategories()}getDebugInfo(e,r){return D0(this.machine)&&this.machine.getDebugInfo(e,r)}},Ln=class extends ct{constructor(){super(...arguments);this.getOpcodeMetadata=yt;this.getToolForFilename=Dt}disassemble(e,r){return tt(e,r(e),r(e+1),r(e+2))}getDebugCategories(){return D0(this.machine)?this.machine.getDebugCategories():["CPU","ZPRAM","Stack"]}getDebugInfo(e,r){switch(e){case"CPU":return Rt(r.c);case"ZPRAM":return et(r.b||r.ram,0,256);case"Stack":return V0(this,r.b||r.ram,256,511,256+r.c.SP,32);default:return D0(this.machine)&&this.machine.getDebugInfo(e,r)}}},In=class extends ct{constructor(){super(...arguments);this.getToolForFilename=Ot}getDebugCategories(){return D0(this.machine)?this.machine.getDebugCategories():["CPU","Stack"]}getDebugInfo(e,r){switch(e){case"CPU":return Lt(r.c);case"Stack":{var c=r.c.SP-1&65535,l=c&65280,x=l+255;return c==0&&(c=65536),console.log(c,l,x),V0(this,[],l,x,c,205)}default:return D0(this.machine)&&this.machine.getDebugInfo(e,r)}}disassemble(e,r){return at(e,r(e),r(e+1),r(e+2),r(e+3))}},Nt=class{constructor(e,r){this.lastOutCount=-1;this.lastInCount=-1;this.device=r,this.textarea=document.createElement("textarea"),this.textarea.classList.add("transcript"),this.textarea.classList.add("transcript-style-2"),this.textarea.style.display="none",e.appendChild(this.textarea)}reset(){this.lastOutCount=0,this.lastInCount=0,this.textarea.style.display="none"}refresh(){var e="";if(this.device.serialOut.length!=this.lastOutCount){var r="";for(var c of this.device.serialOut)e!=c.op&&(r!=""&&(r+=`
`),c.op==="read"?r+="<< ":c.op==="write"&&(r+=">> "),e=c.op),c.value==10?(r+="\u21B5",e=""):r+=mt(c.value);this.textarea.value=r,this.lastOutCount=this.device.serialOut.length,this.textarea.style.display="block"}}};export{tt as a,at as b,nt as c,St as d,xn as e,un as f,Fn as g,on as h,Mn as i,ln as j,mn as k,Y0 as l,Ct as m,pt as n,bn as o,I0 as p,dn as q,hn as r,An as s,D0 as t,Bt as u,vn as v,Dt as w,Sn as x,Rt as y,yt as z,Lt as A,It as B,Ot as C,pn as D,V0 as E,ct as F,Ln as G,In as H};
//# sourceMappingURL=chunk-5KW3VA4L.js.map