diff --git a/src/spessasynth_lib/synthetizer/worklet_processor.min.js b/src/spessasynth_lib/synthetizer/worklet_processor.min.js index d420e8a..89431aa 100644 --- a/src/spessasynth_lib/synthetizer/worklet_processor.min.js +++ b/src/spessasynth_lib/synthetizer/worklet_processor.min.js @@ -1,4 +1,4 @@ -var fs=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(A,e)=>(typeof require<"u"?require:A)[e]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var b=class extends Uint8Array{currentIndex;constructor(A){super(A),this.currentIndex=0}};function cA(t){let A=t.reduce((n,o)=>n+o.length,0),e=new b(A),s=0;for(let n of t)e.set(n,s),s+=n.length;return e}function xt(t){t=Math.floor(t);let A=Math.floor(t/60),e=Math.round(t-A*60);return{minutes:A,seconds:e,time:`${A.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`}}function ms(t){return t.trim().replaceAll(".mid","").replaceAll(".rmi","").replaceAll("_"," ")}function SA(t){let A="";for(let e=0;e=128&&A<=224&&(s=e,n=A),{status:n,channel:s}}var k={bankSelect:0,modulationWheel:1,breathController:2,footController:4,portamentoTime:5,dataEntryMsb:6,mainVolume:7,balance:8,pan:10,expressionController:11,effectControl1:12,effectControl2:13,generalPurposeController1:16,generalPurposeController2:17,generalPurposeController3:18,generalPurposeController4:19,lsbForControl0BankSelect:32,lsbForControl1ModulationWheel:33,lsbForControl2BreathController:34,lsbForControl4FootController:36,lsbForControl5PortamentoTime:37,lsbForControl6DataEntry:38,lsbForControl7MainVolume:39,lsbForControl8Balance:40,lsbForControl10Pan:42,lsbForControl11ExpressionController:43,lsbForControl12EffectControl1:44,lsbForControl13EffectControl2:45,sustainPedal:64,portamentoOnOff:65,sostenutoPedal:66,softPedal:67,legatoFootswitch:68,hold2Pedal:69,soundVariation:70,timbreHarmonicContent:71,releaseTime:72,attackTime:73,brightness:74,soundController6:75,soundController7:76,soundController8:77,soundController9:78,soundController10:79,generalPurposeController5:80,generalPurposeController6:81,generalPurposeController7:82,generalPurposeController8:83,portamentoControl:84,reverbDepth:91,tremoloDepth:92,chorusDepth:93,detuneDepth:94,phaserDepth:95,dataIncrement:96,dataDecrement:97,NRPNLsb:98,NRPNMsb:99,RPNLsb:100,RPNMsb:101,allSoundOff:120,resetAllControllers:121,localControlOnOff:122,allNotesOff:123,omniModeOff:124,omniModeOn:125,monoModeOn:126,polyModeOn:127},ys={8:2,9:2,10:2,11:2,12:1,13:1,14:2};var sA={noteOff:0,noteOn:1,ccChange:2,programChange:3,channelPressure:4,polyPressure:5,killNote:6,ccReset:7,setChannelVibrato:8,soundFontManager:9,stopAll:10,killNotes:11,muteChannel:12,addNewChannel:13,customcCcChange:14,debugMessage:15,systemExclusive:16,setMasterParameter:17,setDrums:18,pitchWheel:19,transpose:20,highPerformanceMode:21,lockController:22,sequencerSpecific:23,requestSynthesizerSnapshot:24,setLogLevel:25,keyModifierManager:26,setEffectsGain:27,destroyWorklet:28},le={mainVolume:0,masterPan:1,voicesCap:2,interpolationType:3},PA=-1,DA={channelProperties:0,eventCall:1,reportedCurrentTime:2,sequencerSpecific:3,synthesizerSnapshot:4,ready:5,soundfontError:6,identify:7};var Ss=!1,Ds=!0,We=!1,ks=!0;function ws(t,A,e,s){Ss=t,Ds=A,We=e,ks=s}function p(...t){Ss&&console.info(...t)}function U(...t){Ds&&console.warn(...t)}function Fs(...t){ks&&console.table(...t)}function ae(...t){We&&console.group(...t)}function QA(...t){We&&console.groupCollapsed(...t)}function K(){We&&console.groupEnd()}var Qe={reloadSoundFont:0,addNewSoundFont:2,deleteSoundFont:3,rearrangeSoundFonts:4};var r={INVALID:-1,startAddrsOffset:0,endAddrOffset:1,startloopAddrsOffset:2,endloopAddrsOffset:3,startAddrsCoarseOffset:4,modLfoToPitch:5,vibLfoToPitch:6,modEnvToPitch:7,initialFilterFc:8,initialFilterQ:9,modLfoToFilterFc:10,modEnvToFilterFc:11,endAddrsCoarseOffset:12,modLfoToVolume:13,unused1:14,chorusEffectsSend:15,reverbEffectsSend:16,pan:17,unused2:18,unused3:19,unused4:20,delayModLFO:21,freqModLFO:22,delayVibLFO:23,freqVibLFO:24,delayModEnv:25,attackModEnv:26,holdModEnv:27,decayModEnv:28,sustainModEnv:29,releaseModEnv:30,keyNumToModEnvHold:31,keyNumToModEnvDecay:32,delayVolEnv:33,attackVolEnv:34,holdVolEnv:35,decayVolEnv:36,sustainVolEnv:37,releaseVolEnv:38,keyNumToVolEnvHold:39,keyNumToVolEnvDecay:40,instrument:41,reserved1:42,keyRange:43,velRange:44,startloopAddrsCoarseOffset:45,keyNum:46,velocity:47,initialAttenuation:48,reserved2:49,endloopAddrsCoarseOffset:50,coarseTune:51,fineTune:52,sampleID:53,sampleModes:54,reserved3:55,scaleTuning:56,exclusiveClass:57,overridingRootKey:58,unused5:59,endOper:60},J=[];J[r.startAddrsOffset]={min:0,max:32768,def:0};J[r.endAddrOffset]={min:-32768,max:32768,def:0};J[r.startloopAddrsOffset]={min:-32768,max:32768,def:0};J[r.endloopAddrsOffset]={min:-32768,max:32768,def:0};J[r.startAddrsCoarseOffset]={min:0,max:32768,def:0};J[r.modLfoToPitch]={min:-12e3,max:12e3,def:0};J[r.vibLfoToPitch]={min:-12e3,max:12e3,def:0};J[r.modEnvToPitch]={min:-12e3,max:12e3,def:0};J[r.initialFilterFc]={min:1500,max:13500,def:13500};J[r.initialFilterQ]={min:0,max:960,def:0};J[r.modLfoToFilterFc]={min:-12e3,max:12e3,def:0};J[r.modEnvToFilterFc]={min:-12e3,max:12e3,def:0};J[r.endAddrsCoarseOffset]={min:-32768,max:32768,def:0};J[r.modLfoToVolume]={min:-960,max:960,def:0};J[r.chorusEffectsSend]={min:0,max:1e3,def:0};J[r.reverbEffectsSend]={min:0,max:1e3,def:0};J[r.pan]={min:-500,max:500,def:0};J[r.delayModLFO]={min:-12e3,max:5e3,def:-12e3};J[r.freqModLFO]={min:-16e3,max:4500,def:0};J[r.delayVibLFO]={min:-12e3,max:5e3,def:-12e3};J[r.freqVibLFO]={min:-16e3,max:4500,def:0};J[r.delayModEnv]={min:-32768,max:5e3,def:-32768};J[r.attackModEnv]={min:-32768,max:8e3,def:-32768};J[r.holdModEnv]={min:-12e3,max:5e3,def:-12e3};J[r.decayModEnv]={min:-12e3,max:8e3,def:-12e3};J[r.sustainModEnv]={min:0,max:1e3,def:0};J[r.releaseModEnv]={min:-7200,max:8e3,def:-12e3};J[r.keyNumToModEnvHold]={min:-1200,max:1200,def:0};J[r.keyNumToModEnvDecay]={min:-1200,max:1200,def:0};J[r.delayVolEnv]={min:-12e3,max:5e3,def:-12e3};J[r.attackVolEnv]={min:-12e3,max:8e3,def:-12e3};J[r.holdVolEnv]={min:-12e3,max:5e3,def:-12e3};J[r.decayVolEnv]={min:-12e3,max:8e3,def:-12e3};J[r.sustainVolEnv]={min:0,max:1440,def:0};J[r.releaseVolEnv]={min:-7200,max:8e3,def:-12e3};J[r.keyNumToVolEnvHold]={min:-1200,max:1200,def:0};J[r.keyNumToVolEnvDecay]={min:-1200,max:1200,def:0};J[r.startloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};J[r.keyNum]={min:-1,max:127,def:-1};J[r.velocity]={min:-1,max:127,def:-1};J[r.initialAttenuation]={min:-250,max:1440,def:0};J[r.endloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};J[r.coarseTune]={min:-120,max:120,def:0};J[r.fineTune]={min:-12700,max:12700,def:0};J[r.scaleTuning]={min:0,max:1200,def:100};J[r.exclusiveClass]={min:0,max:99999,def:0};J[r.overridingRootKey]={min:-1,max:127,def:-1};J[r.sampleModes]={min:0,max:3,def:0};var T=class{generatorType=r.INVALID;generatorValue=0;constructor(A=r.INVALID,e=0,s=!0){if(this.generatorType=A,e===void 0)throw new Error("No value provided.");if(this.generatorValue=Math.round(e),s){let n=J[A];n!==void 0&&(this.generatorValue=Math.max(n.min,Math.min(n.max,this.generatorValue)))}}};function Rs(t,A,e){let s=J[t]||{min:0,max:32768,def:0},n=A.find(h=>h.generatorType===t),o=0;n&&(o=n.generatorValue);let g=e.find(h=>h.generatorType===t),i=s.def;g&&(i=g.generatorValue);let E=i+o;return t===r.initialAttenuation?E:Math.max(s.min,Math.min(s.max,E))}var P={noController:0,noteOnVelocity:2,noteOnKeyNum:3,polyPressure:10,channelPressure:13,pitchWheel:14,pitchWheelRange:16,link:127},uA={linear:0,concave:1,convex:2,switch:3},X=class t{currentValue=0;constructor(A){this.sourceEnum=A.srcEnum,this.modulatorDestination=A.dest,this.secondarySourceEnum=A.secSrcEnum,this.transformAmount=A.amt,this.transformType=A.transform,this.modulatorDestination>58&&(this.modulatorDestination=r.INVALID),this.sourcePolarity=this.sourceEnum>>9&1,this.sourceDirection=this.sourceEnum>>8&1,this.sourceUsesCC=this.sourceEnum>>7&1,this.sourceIndex=this.sourceEnum&127,this.sourceCurveType=this.sourceEnum>>10&3,this.secSrcPolarity=this.secondarySourceEnum>>9&1,this.secSrcDirection=this.secondarySourceEnum>>8&1,this.secSrcUsesCC=this.secondarySourceEnum>>7&1,this.secSrcIndex=this.secondarySourceEnum&127,this.secSrcCurveType=this.secondarySourceEnum>>10&3,this.isEffectModulator=(this.sourceEnum===219||this.sourceEnum===221)&&this.secondarySourceEnum===0&&(this.modulatorDestination===r.reverbEffectsSend||this.modulatorDestination===r.chorusEffectsSend)}static copy(A){return new t({srcEnum:A.sourceEnum,secSrcEnum:A.secondarySourceEnum,transform:A.transformType,amt:A.transformAmount,dest:A.modulatorDestination})}static isIdentical(A,e){return A.sourceEnum===e.sourceEnum&&A.modulatorDestination===e.modulatorDestination&&A.secondarySourceEnum===e.secondarySourceEnum&&A.transformType===e.transformType}sumTransform(A){return new t({srcEnum:this.sourceEnum,secSrcEnum:this.secondarySourceEnum,dest:this.modulatorDestination,transform:this.transformType,amt:this.transformAmount+A.transformAmount})}debugString(){function A(n,o){return Object.keys(n).find(g=>n[g]===o)}let e=A(uA,this.sourceCurveType);e+=this.sourcePolarity===0?" unipolar ":" bipolar ",e+=this.sourceDirection===0?"forwards ":"backwards ",this.sourceUsesCC?e+=A(k,this.sourceIndex):e+=A(P,this.sourceIndex);let s=A(uA,this.secSrcCurveType);return s+=this.secSrcPolarity===0?" unipolar ":" bipolar ",s+=this.secSrcCurveType===0?"forwards ":"backwards ",this.secSrcUsesCC?s+=A(k,this.secSrcIndex):s+=A(P,this.secSrcIndex),`Modulator: +var fs=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(A,e)=>(typeof require<"u"?require:A)[e]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var b=class extends Uint8Array{currentIndex;constructor(A){super(A),this.currentIndex=0}};function cA(t){let A=t.reduce((n,o)=>n+o.length,0),e=new b(A),s=0;for(let n of t)e.set(n,s),s+=n.length;return e}function xt(t){t=Math.floor(t);let A=Math.floor(t/60),e=Math.round(t-A*60);return{minutes:A,seconds:e,time:`${A.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`}}function ms(t){return t.trim().replaceAll(".mid","").replaceAll(".rmi","").replaceAll("_"," ")}function SA(t){let A="";for(let e=0;e=128&&A<=224&&(s=e,n=A),{status:n,channel:s}}var k={bankSelect:0,modulationWheel:1,breathController:2,footController:4,portamentoTime:5,dataEntryMsb:6,mainVolume:7,balance:8,pan:10,expressionController:11,effectControl1:12,effectControl2:13,generalPurposeController1:16,generalPurposeController2:17,generalPurposeController3:18,generalPurposeController4:19,lsbForControl0BankSelect:32,lsbForControl1ModulationWheel:33,lsbForControl2BreathController:34,lsbForControl4FootController:36,lsbForControl5PortamentoTime:37,lsbForControl6DataEntry:38,lsbForControl7MainVolume:39,lsbForControl8Balance:40,lsbForControl10Pan:42,lsbForControl11ExpressionController:43,lsbForControl12EffectControl1:44,lsbForControl13EffectControl2:45,sustainPedal:64,portamentoOnOff:65,sostenutoPedal:66,softPedal:67,legatoFootswitch:68,hold2Pedal:69,soundVariation:70,timbreHarmonicContent:71,releaseTime:72,attackTime:73,brightness:74,soundController6:75,soundController7:76,soundController8:77,soundController9:78,soundController10:79,generalPurposeController5:80,generalPurposeController6:81,generalPurposeController7:82,generalPurposeController8:83,portamentoControl:84,reverbDepth:91,tremoloDepth:92,chorusDepth:93,detuneDepth:94,phaserDepth:95,dataIncrement:96,dataDecrement:97,NRPNLsb:98,NRPNMsb:99,RPNLsb:100,RPNMsb:101,allSoundOff:120,resetAllControllers:121,localControlOnOff:122,allNotesOff:123,omniModeOff:124,omniModeOn:125,monoModeOn:126,polyModeOn:127},ys={8:2,9:2,10:2,11:2,12:1,13:1,14:2};var sA={noteOff:0,noteOn:1,ccChange:2,programChange:3,channelPressure:4,polyPressure:5,killNote:6,ccReset:7,setChannelVibrato:8,soundFontManager:9,stopAll:10,killNotes:11,muteChannel:12,addNewChannel:13,customcCcChange:14,debugMessage:15,systemExclusive:16,setMasterParameter:17,setDrums:18,pitchWheel:19,transpose:20,highPerformanceMode:21,lockController:22,sequencerSpecific:23,requestSynthesizerSnapshot:24,setLogLevel:25,keyModifierManager:26,setEffectsGain:27,destroyWorklet:28},le={mainVolume:0,masterPan:1,voicesCap:2,interpolationType:3},qA=-1,DA={channelProperties:0,eventCall:1,reportedCurrentTime:2,sequencerSpecific:3,synthesizerSnapshot:4,ready:5,soundfontError:6,identify:7};var Ss=!1,Ds=!0,We=!1,ks=!0;function ws(t,A,e,s){Ss=t,Ds=A,We=e,ks=s}function p(...t){Ss&&console.info(...t)}function U(...t){Ds&&console.warn(...t)}function Fs(...t){ks&&console.table(...t)}function ae(...t){We&&console.group(...t)}function QA(...t){We&&console.groupCollapsed(...t)}function K(){We&&console.groupEnd()}var Qe={reloadSoundFont:0,addNewSoundFont:2,deleteSoundFont:3,rearrangeSoundFonts:4};var r={INVALID:-1,startAddrsOffset:0,endAddrOffset:1,startloopAddrsOffset:2,endloopAddrsOffset:3,startAddrsCoarseOffset:4,modLfoToPitch:5,vibLfoToPitch:6,modEnvToPitch:7,initialFilterFc:8,initialFilterQ:9,modLfoToFilterFc:10,modEnvToFilterFc:11,endAddrsCoarseOffset:12,modLfoToVolume:13,unused1:14,chorusEffectsSend:15,reverbEffectsSend:16,pan:17,unused2:18,unused3:19,unused4:20,delayModLFO:21,freqModLFO:22,delayVibLFO:23,freqVibLFO:24,delayModEnv:25,attackModEnv:26,holdModEnv:27,decayModEnv:28,sustainModEnv:29,releaseModEnv:30,keyNumToModEnvHold:31,keyNumToModEnvDecay:32,delayVolEnv:33,attackVolEnv:34,holdVolEnv:35,decayVolEnv:36,sustainVolEnv:37,releaseVolEnv:38,keyNumToVolEnvHold:39,keyNumToVolEnvDecay:40,instrument:41,reserved1:42,keyRange:43,velRange:44,startloopAddrsCoarseOffset:45,keyNum:46,velocity:47,initialAttenuation:48,reserved2:49,endloopAddrsCoarseOffset:50,coarseTune:51,fineTune:52,sampleID:53,sampleModes:54,reserved3:55,scaleTuning:56,exclusiveClass:57,overridingRootKey:58,unused5:59,endOper:60},J=[];J[r.startAddrsOffset]={min:0,max:32768,def:0};J[r.endAddrOffset]={min:-32768,max:32768,def:0};J[r.startloopAddrsOffset]={min:-32768,max:32768,def:0};J[r.endloopAddrsOffset]={min:-32768,max:32768,def:0};J[r.startAddrsCoarseOffset]={min:0,max:32768,def:0};J[r.modLfoToPitch]={min:-12e3,max:12e3,def:0};J[r.vibLfoToPitch]={min:-12e3,max:12e3,def:0};J[r.modEnvToPitch]={min:-12e3,max:12e3,def:0};J[r.initialFilterFc]={min:1500,max:13500,def:13500};J[r.initialFilterQ]={min:0,max:960,def:0};J[r.modLfoToFilterFc]={min:-12e3,max:12e3,def:0};J[r.modEnvToFilterFc]={min:-12e3,max:12e3,def:0};J[r.endAddrsCoarseOffset]={min:-32768,max:32768,def:0};J[r.modLfoToVolume]={min:-960,max:960,def:0};J[r.chorusEffectsSend]={min:0,max:1e3,def:0};J[r.reverbEffectsSend]={min:0,max:1e3,def:0};J[r.pan]={min:-500,max:500,def:0};J[r.delayModLFO]={min:-12e3,max:5e3,def:-12e3};J[r.freqModLFO]={min:-16e3,max:4500,def:0};J[r.delayVibLFO]={min:-12e3,max:5e3,def:-12e3};J[r.freqVibLFO]={min:-16e3,max:4500,def:0};J[r.delayModEnv]={min:-32768,max:5e3,def:-32768};J[r.attackModEnv]={min:-32768,max:8e3,def:-32768};J[r.holdModEnv]={min:-12e3,max:5e3,def:-12e3};J[r.decayModEnv]={min:-12e3,max:8e3,def:-12e3};J[r.sustainModEnv]={min:0,max:1e3,def:0};J[r.releaseModEnv]={min:-7200,max:8e3,def:-12e3};J[r.keyNumToModEnvHold]={min:-1200,max:1200,def:0};J[r.keyNumToModEnvDecay]={min:-1200,max:1200,def:0};J[r.delayVolEnv]={min:-12e3,max:5e3,def:-12e3};J[r.attackVolEnv]={min:-12e3,max:8e3,def:-12e3};J[r.holdVolEnv]={min:-12e3,max:5e3,def:-12e3};J[r.decayVolEnv]={min:-12e3,max:8e3,def:-12e3};J[r.sustainVolEnv]={min:0,max:1440,def:0};J[r.releaseVolEnv]={min:-7200,max:8e3,def:-12e3};J[r.keyNumToVolEnvHold]={min:-1200,max:1200,def:0};J[r.keyNumToVolEnvDecay]={min:-1200,max:1200,def:0};J[r.startloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};J[r.keyNum]={min:-1,max:127,def:-1};J[r.velocity]={min:-1,max:127,def:-1};J[r.initialAttenuation]={min:-250,max:1440,def:0};J[r.endloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};J[r.coarseTune]={min:-120,max:120,def:0};J[r.fineTune]={min:-12700,max:12700,def:0};J[r.scaleTuning]={min:0,max:1200,def:100};J[r.exclusiveClass]={min:0,max:99999,def:0};J[r.overridingRootKey]={min:-1,max:127,def:-1};J[r.sampleModes]={min:0,max:3,def:0};var T=class{generatorType=r.INVALID;generatorValue=0;constructor(A=r.INVALID,e=0,s=!0){if(this.generatorType=A,e===void 0)throw new Error("No value provided.");if(this.generatorValue=Math.round(e),s){let n=J[A];n!==void 0&&(this.generatorValue=Math.max(n.min,Math.min(n.max,this.generatorValue)))}}};function Rs(t,A,e){let s=J[t]||{min:0,max:32768,def:0},n=A.find(h=>h.generatorType===t),o=0;n&&(o=n.generatorValue);let g=e.find(h=>h.generatorType===t),i=s.def;g&&(i=g.generatorValue);let E=i+o;return t===r.initialAttenuation?E:Math.max(s.min,Math.min(s.max,E))}var P={noController:0,noteOnVelocity:2,noteOnKeyNum:3,polyPressure:10,channelPressure:13,pitchWheel:14,pitchWheelRange:16,link:127},uA={linear:0,concave:1,convex:2,switch:3},X=class t{currentValue=0;constructor(A){this.sourceEnum=A.srcEnum,this.modulatorDestination=A.dest,this.secondarySourceEnum=A.secSrcEnum,this.transformAmount=A.amt,this.transformType=A.transform,this.modulatorDestination>58&&(this.modulatorDestination=r.INVALID),this.sourcePolarity=this.sourceEnum>>9&1,this.sourceDirection=this.sourceEnum>>8&1,this.sourceUsesCC=this.sourceEnum>>7&1,this.sourceIndex=this.sourceEnum&127,this.sourceCurveType=this.sourceEnum>>10&3,this.secSrcPolarity=this.secondarySourceEnum>>9&1,this.secSrcDirection=this.secondarySourceEnum>>8&1,this.secSrcUsesCC=this.secondarySourceEnum>>7&1,this.secSrcIndex=this.secondarySourceEnum&127,this.secSrcCurveType=this.secondarySourceEnum>>10&3,this.isEffectModulator=(this.sourceEnum===219||this.sourceEnum===221)&&this.secondarySourceEnum===0&&(this.modulatorDestination===r.reverbEffectsSend||this.modulatorDestination===r.chorusEffectsSend)}static copy(A){return new t({srcEnum:A.sourceEnum,secSrcEnum:A.secondarySourceEnum,transform:A.transformType,amt:A.transformAmount,dest:A.modulatorDestination})}static isIdentical(A,e){return A.sourceEnum===e.sourceEnum&&A.modulatorDestination===e.modulatorDestination&&A.secondarySourceEnum===e.secondarySourceEnum&&A.transformType===e.transformType}sumTransform(A){return new t({srcEnum:this.sourceEnum,secSrcEnum:this.secondarySourceEnum,dest:this.modulatorDestination,transform:this.transformType,amt:this.transformAmount+A.transformAmount})}debugString(){function A(n,o){return Object.keys(n).find(g=>n[g]===o)}let e=A(uA,this.sourceCurveType);e+=this.sourcePolarity===0?" unipolar ":" bipolar ",e+=this.sourceDirection===0?"forwards ":"backwards ",this.sourceUsesCC?e+=A(k,this.sourceIndex):e+=A(P,this.sourceIndex);let s=A(uA,this.secSrcCurveType);return s+=this.secSrcPolarity===0?" unipolar ":" bipolar ",s+=this.secSrcCurveType===0?"forwards ":"backwards ",this.secSrcUsesCC?s+=A(k,this.secSrcIndex):s+=A(P,this.secSrcIndex),`Modulator: Source: ${e} Secondary source: ${s} Destination: ${A(r,this.modulatorDestination)} @@ -6,14 +6,14 @@ var fs=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(A,e)=>( Transform type: ${this.transformType} -`}},Mt=960,Nt=uA.concave;function qA(t,A,e,s,n){return t<<10|A<<9|e<<8|s<<7|n}var Xe=[new X({srcEnum:qA(Nt,0,1,0,P.noteOnVelocity),dest:r.initialAttenuation,amt:Mt,secSrcEnum:0,transform:0}),new X({srcEnum:129,dest:r.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new X({srcEnum:qA(Nt,0,1,1,k.mainVolume),dest:r.initialAttenuation,amt:Mt,secSrcEnum:0,transform:0}),new X({srcEnum:13,dest:r.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new X({srcEnum:526,dest:r.fineTune,amt:12700,secSrcEnum:16,transform:0}),new X({srcEnum:650,dest:r.pan,amt:500,secSrcEnum:0,transform:0}),new X({srcEnum:qA(Nt,0,1,1,k.expressionController),dest:r.initialAttenuation,amt:Mt,secSrcEnum:0,transform:0}),new X({srcEnum:219,dest:r.reverbEffectsSend,amt:200,secSrcEnum:0,transform:0}),new X({srcEnum:221,dest:r.chorusEffectsSend,amt:200,secSrcEnum:0,transform:0}),new X({srcEnum:qA(uA.linear,0,0,0,P.polyPressure),dest:r.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new X({srcEnum:qA(uA.linear,0,0,1,k.tremoloDepth),dest:r.modLfoToVolume,amt:24,secSrcEnum:0,transform:0}),new X({srcEnum:qA(uA.linear,1,0,1,k.releaseTime),dest:r.releaseVolEnv,amt:1200,secSrcEnum:0,transform:0}),new X({srcEnum:qA(uA.linear,1,0,1,k.brightness),dest:r.initialFilterFc,amt:6e3,secSrcEnum:0,transform:0}),new X({srcEnum:qA(uA.linear,1,0,1,k.timbreHarmonicContent),dest:r.initialFilterQ,amt:250,secSrcEnum:0,transform:0})];var dA=128,_e=147,ue=new Int16Array(_e).fill(0),kA=(t,A)=>ue[t]=A<<7;kA(k.mainVolume,100);kA(k.balance,64);kA(k.expressionController,127);kA(k.pan,64);kA(k.timbreHarmonicContent,64);kA(k.releaseTime,64);kA(k.attackTime,64);kA(k.brightness,64);kA(k.soundController6,64);kA(k.soundController7,64);kA(k.soundController8,64);kA(k.soundController9,64);kA(k.generalPurposeController6,64);kA(k.generalPurposeController8,64);kA(dA+P.pitchWheel,64);kA(dA+P.pitchWheelRange,2);var hA={channelTuning:0,channelTransposeFine:1,modulationMultiplier:2,masterTuning:3,channelTuningSemitones:4},bt=Object.keys(hA).length,Lt=new Float32Array(bt);Lt[hA.modulationMultiplier]=1;var wA={Idle:0,RPCoarse:1,RPFine:2,NRPCoarse:3,NRPFine:4,DataCoarse:5,DataFine:6};function Gs(t=!1){let A={midiControllers:new Int16Array(_e),lockedControllers:Array(_e).fill(!1),customControllers:new Float32Array(bt),NRPCoarse:0,NRPFine:0,RPValue:0,dataEntryState:wA.Idle,voices:[],sustainedVoices:[],cachedVoices:[],preset:this.defaultPreset,presetUsesOverride:!1,channelTransposeKeyShift:0,channelOctaveTuning:new Int8Array(12),keyCentTuning:new Int16Array(128),channelVibrato:{delay:0,depth:0,rate:0},velocityOverride:0,lockGSNRPNParams:!1,holdPedal:!1,isMuted:!1,drumChannel:!1,lockPreset:!1};for(let e=0;e<128;e++)A.cachedVoices.push([]);this.workletProcessorChannels.push(A),this.resetControllers(this.workletProcessorChannels.length-1),this.sendChannelProperties(),t&&this.callEvent("newchannel",void 0)}function te(t,A){t.lockPreset||(t.bank=A)}function XA(t){return t.drumChannel?128:t.bank}var Ut={velocityOverride:128};var ze={addMapping:0,deleteMapping:1,clearMappings:2},je=class{_keyMappings=[];handleMessage(A,e){switch(A){default:return;case ze.addMapping:this.addMapping(...e);break;case ze.clearMappings:this.clearMappings();break;case ze.deleteMapping:this.deleteMapping(...e)}}addMapping(A,e,s){this._keyMappings[A]===void 0&&(this._keyMappings[A]=[]),this._keyMappings[A][e]=s}deleteMapping(A,e){this._keyMappings[A]?.[e]!==void 0&&(this._keyMappings[A][e]=void 0)}clearMappings(){this._keyMappings=[]}setMappings(A){this._keyMappings=A}getMappings(){return this._keyMappings}getVelocity(A,e){let s=this._keyMappings[A]?.[e];return s?s.velocity:-1}hasOverridePatch(A,e){let s=this._keyMappings[A]?.[e]?.patch?.bank;return s!==void 0&&s>=0}getPatch(A,e){let s=this._keyMappings[A]?.[e];if(s)return s.patch;throw new Error("No modifier.")}};var xs="spessasynth-worklet-system",Ms=350,RA=9,$e=16,At="gs";var MA={loadNewSongList:0,pause:1,stop:2,play:3,setTime:4,changeMIDIMessageSending:5,setPlaybackRate:6,setLoop:7,changeSong:8,getMIDI:9,setSkipToFirstNote:10,setPreservePlaybackState:11},NA={midiEvent:0,songChange:1,textEvent:2,timeChange:3,pause:4,getMIDI:5,midiError:6};function se(t,A){let e=0;for(let s=8*(A-1);s>=0;s-=8)e|=t[t.currentIndex++]<>>0}function Ns(t,A){if(this.ignoreEvents)return;if(this.sendMIDIMessages&&t.messageStatusByte>=128){this.sendMIDIMessage([t.messageStatusByte,...t.messageData]);return}let e=Ne(t.messageStatusByte),s=this.midiPortChannelOffsets[this.midiPorts[A]]||0;switch(e.channel+=s,e.status){case M.noteOn:let n=t.messageData[1];if(n>0)this.synth.noteOn(e.channel,t.messageData[0],n),this.playingNotes.push({midiNote:t.messageData[0],channel:e.channel,velocity:n});else{this.synth.noteOff(e.channel,t.messageData[0]);let g=this.playingNotes.findIndex(i=>i.midiNote===t.messageData[0]&&i.channel===e.channel);g!==-1&&this.playingNotes.splice(g,1)}break;case M.noteOff:this.synth.noteOff(e.channel,t.messageData[0]);let o=this.playingNotes.findIndex(g=>g.midiNote===t.messageData[0]&&g.channel===e.channel);o!==-1&&this.playingNotes.splice(o,1);break;case M.pitchBend:this.synth.pitchWheel(e.channel,t.messageData[1],t.messageData[0]);break;case M.controllerChange:this.synth.controllerChange(e.channel,t.messageData[0],t.messageData[1]);break;case M.programChange:this.synth.programChange(e.channel,t.messageData[0]);break;case M.polyPressure:this.synth.polyPressure(e.channel,t.messageData[0],t.messageData[1]);break;case M.channelPressure:this.synth.channelPressure(e.channel,t.messageData[0]);break;case M.systemExclusive:this.synth.systemExclusive(t.messageData,s);break;case M.setTempo:this.oneTickToSeconds=60/(sr(t)*this.midiData.timeDivision),this.oneTickToSeconds===0&&(this.oneTickToSeconds=60/(120*this.midiData.timeDivision),U("invalid tempo! falling back to 120 BPM"));break;case M.timeSignature:case M.endOfTrack:case M.midiChannelPrefix:case M.songPosition:case M.activeSensing:case M.keySignature:case M.sequenceNumber:case M.sequenceSpecific:break;case M.text:case M.lyric:case M.copyright:case M.trackName:case M.marker:case M.cuePoint:case M.instrumentName:case M.programName:this.post(NA.textEvent,[t.messageData,e.status]);break;case M.midiPort:this.assignMIDIPort(A,t.messageData[0]);break;case M.reset:this.synth.stopAllChannels(),this.synth.resetAllControllers();break;default:U(`%cUnrecognized Event: %c${t.messageStatusByte}%c status byte: %c${Object.keys(M).find(g=>M[g]===e.status)}`,a.warn,a.unrecognized,a.warn,a.value);break}}function bs(){for(let t=0;t<16;t++)this.synth.createWorkletChannel(!0),t===RA&&this.synth.setDrums(this.synth.workletProcessorChannels.length-1,!0)}function sr(t){return t.messageData.currentIndex=0,6e7/se(t.messageData,3)}function Ls(){let t=this.currentTime;for(;this.playedTime1&&this.nextSong();return}let s=this.tracks[A][this.eventIndex[A]];if(this.playedTime+=this.oneTickToSeconds*(s.ticks-e.ticks),this.midiData.loop.end<=e.ticks&&this.loop&&this.currentLoopCount>0){this.currentLoopCount--,this.setTimeTicks(this.midiData.loop.start);return}else if(t>=this.duration){if(this.loop&&this.currentLoopCount>0){this.currentLoopCount--,this.setTimeTicks(this.midiData.loop.start);return}this.eventIndex[A]--,this.pause(!0),this.songs.length>1&&this.nextSong();return}}}function Us(){let t=0,A=1/0;return this.tracks.forEach((e,s)=>{this.eventIndex[s]>=e.length||e[this.eventIndex[s]].ticks>>0}function de(t,A,e){for(let s=0;s>s*8&255}function N(t,A){t[t.currentIndex++]=A&255,t[t.currentIndex++]=A>>8}function V(t,A){de(t,A,4)}function ne(t,A){let e=A<<8|t;return e>32767?e-65536:e}function Ts(t){return t>127?t-256:t}function _(t,A,e=void 0,s=!0){if(e){let n=t.slice(t.currentIndex,t.currentIndex+A);return t.currentIndex+=A,new TextDecoder(e.replace(/[^\x20-\x7E]/g,"")).decode(n.buffer)}else{let n=!1,o="";for(let g=0;g127)&&i!==10){if(s){n=!0;continue}else if(i===0){n=!0;continue}}o+=String.fromCharCode(i)}}return o}}function ge(t,A=0){let e=t.length;A>0&&(e=A);let s=new b(e);return yA(s,t,A),s}function yA(t,A,e=0){e>0&&A.length>e&&(A=A.slice(0,e));for(let s=0;sA.length)for(let s=0;se.header!=="LIST"?!1:(e.chunkData.currentIndex=0,_(e.chunkData,4)===A))}function tt(t){let A=0;for(;t;){let e=t[t.currentIndex++];if(A=A<<7|e&127,e>>7!==1)break}return A}var st={name:"INAM",album:"IPRD",artist:"IART",genre:"IGNR",picture:"IPIC",copyright:"ICOP",creationDate:"ICRD",comment:"ICMT",engineer:"IENG",software:"ISFT",encoding:"IENC",midiEncoding:"MENC",bankOffset:"DBNK"};var nt=class{constructor(){this.timeDivision=0,this.duration=0,this.tempoChanges=[{ticks:0,tempo:120}],this.copyright="",this.tracksAmount=0,this.lyrics=[],this.firstNoteOn=0,this.keyRange={min:0,max:127},this.lastVoiceEventTick=0,this.midiPorts=[0],this.midiPortChannelOffsets=[0],this.usedChannelsOnTrack=[],this.loop={start:0,end:0},this.midiName="",this.fileName="",this.rawMidiName=void 0,this.embeddedSoundFont=void 0,this.format=0,this.RMIDInfo={},this.bankOffset=0,this.tracks=[]}};function fe(t,A){let e=0;for(;t>0;){let s=A.tempoChanges.find(o=>o.ticksue[t]=A<<7;kA(k.mainVolume,100);kA(k.balance,64);kA(k.expressionController,127);kA(k.pan,64);kA(k.timbreHarmonicContent,64);kA(k.releaseTime,64);kA(k.attackTime,64);kA(k.brightness,64);kA(k.soundController6,64);kA(k.soundController7,64);kA(k.soundController8,64);kA(k.soundController9,64);kA(k.generalPurposeController6,64);kA(k.generalPurposeController8,64);kA(dA+P.pitchWheel,64);kA(dA+P.pitchWheelRange,2);var hA={channelTuning:0,channelTransposeFine:1,modulationMultiplier:2,masterTuning:3,channelTuningSemitones:4},bt=Object.keys(hA).length,Lt=new Float32Array(bt);Lt[hA.modulationMultiplier]=1;var wA={Idle:0,RPCoarse:1,RPFine:2,NRPCoarse:3,NRPFine:4,DataCoarse:5,DataFine:6};function Gs(t=!1){let A={midiControllers:new Int16Array(_e),lockedControllers:Array(_e).fill(!1),customControllers:new Float32Array(bt),NRPCoarse:0,NRPFine:0,RPValue:0,dataEntryState:wA.Idle,voices:[],sustainedVoices:[],cachedVoices:[],preset:this.defaultPreset,presetUsesOverride:!1,channelTransposeKeyShift:0,channelOctaveTuning:new Int8Array(12),keyCentTuning:new Int16Array(128),channelVibrato:{delay:0,depth:0,rate:0},velocityOverride:0,lockGSNRPNParams:!1,holdPedal:!1,isMuted:!1,drumChannel:!1,lockPreset:!1};for(let e=0;e<128;e++)A.cachedVoices.push([]);this.workletProcessorChannels.push(A),this.resetControllers(this.workletProcessorChannels.length-1),this.sendChannelProperties(),t&&this.callEvent("newchannel",void 0)}function te(t,A){t.lockPreset||(t.bank=A)}function XA(t){return t.drumChannel?128:t.bank}var Ut={velocityOverride:128};var ze={addMapping:0,deleteMapping:1,clearMappings:2},je=class{_keyMappings=[];handleMessage(A,e){switch(A){default:return;case ze.addMapping:this.addMapping(...e);break;case ze.clearMappings:this.clearMappings();break;case ze.deleteMapping:this.deleteMapping(...e)}}addMapping(A,e,s){this._keyMappings[A]===void 0&&(this._keyMappings[A]=[]),this._keyMappings[A][e]=s}deleteMapping(A,e){this._keyMappings[A]?.[e]!==void 0&&(this._keyMappings[A][e]=void 0)}clearMappings(){this._keyMappings=[]}setMappings(A){this._keyMappings=A}getMappings(){return this._keyMappings}getVelocity(A,e){let s=this._keyMappings[A]?.[e];return s?s.velocity:-1}hasOverridePatch(A,e){let s=this._keyMappings[A]?.[e]?.patch?.bank;return s!==void 0&&s>=0}getPatch(A,e){let s=this._keyMappings[A]?.[e];if(s)return s.patch;throw new Error("No modifier.")}};var xs="spessasynth-worklet-system",Ms=350,RA=9,$e=16,At="gs";var MA={loadNewSongList:0,pause:1,stop:2,play:3,setTime:4,changeMIDIMessageSending:5,setPlaybackRate:6,setLoop:7,changeSong:8,getMIDI:9,setSkipToFirstNote:10,setPreservePlaybackState:11},NA={midiEvent:0,songChange:1,textEvent:2,timeChange:3,pause:4,getMIDI:5,midiError:6};function se(t,A){let e=0;for(let s=8*(A-1);s>=0;s-=8)e|=t[t.currentIndex++]<>>0}function Ns(t,A){if(this.ignoreEvents)return;if(this.sendMIDIMessages&&t.messageStatusByte>=128){this.sendMIDIMessage([t.messageStatusByte,...t.messageData]);return}let e=Ne(t.messageStatusByte),s=this.midiPortChannelOffsets[this.midiPorts[A]]||0;switch(e.channel+=s,e.status){case M.noteOn:let n=t.messageData[1];if(n>0)this.synth.noteOn(e.channel,t.messageData[0],n),this.playingNotes.push({midiNote:t.messageData[0],channel:e.channel,velocity:n});else{this.synth.noteOff(e.channel,t.messageData[0]);let g=this.playingNotes.findIndex(i=>i.midiNote===t.messageData[0]&&i.channel===e.channel);g!==-1&&this.playingNotes.splice(g,1)}break;case M.noteOff:this.synth.noteOff(e.channel,t.messageData[0]);let o=this.playingNotes.findIndex(g=>g.midiNote===t.messageData[0]&&g.channel===e.channel);o!==-1&&this.playingNotes.splice(o,1);break;case M.pitchBend:this.synth.pitchWheel(e.channel,t.messageData[1],t.messageData[0]);break;case M.controllerChange:this.synth.controllerChange(e.channel,t.messageData[0],t.messageData[1]);break;case M.programChange:this.synth.programChange(e.channel,t.messageData[0]);break;case M.polyPressure:this.synth.polyPressure(e.channel,t.messageData[0],t.messageData[1]);break;case M.channelPressure:this.synth.channelPressure(e.channel,t.messageData[0]);break;case M.systemExclusive:this.synth.systemExclusive(t.messageData,s);break;case M.setTempo:this.oneTickToSeconds=60/(sr(t)*this.midiData.timeDivision),this.oneTickToSeconds===0&&(this.oneTickToSeconds=60/(120*this.midiData.timeDivision),U("invalid tempo! falling back to 120 BPM"));break;case M.timeSignature:case M.endOfTrack:case M.midiChannelPrefix:case M.songPosition:case M.activeSensing:case M.keySignature:case M.sequenceNumber:case M.sequenceSpecific:break;case M.text:case M.lyric:case M.copyright:case M.trackName:case M.marker:case M.cuePoint:case M.instrumentName:case M.programName:this.post(NA.textEvent,[t.messageData,e.status]);break;case M.midiPort:this.assignMIDIPort(A,t.messageData[0]);break;case M.reset:this.synth.stopAllChannels(),this.synth.resetAllControllers();break;default:U(`%cUnrecognized Event: %c${t.messageStatusByte}%c status byte: %c${Object.keys(M).find(g=>M[g]===e.status)}`,a.warn,a.unrecognized,a.warn,a.value);break}}function bs(){for(let t=0;t<16;t++)this.synth.createWorkletChannel(!0),t===RA&&this.synth.setDrums(this.synth.workletProcessorChannels.length-1,!0)}function sr(t){return t.messageData.currentIndex=0,6e7/se(t.messageData,3)}function Ls(){let t=this.currentTime;for(;this.playedTime1&&this.nextSong();return}let s=this.tracks[A][this.eventIndex[A]];if(this.playedTime+=this.oneTickToSeconds*(s.ticks-e.ticks),this.midiData.loop.end<=e.ticks&&this.loop&&this.currentLoopCount>0){this.currentLoopCount--,this.setTimeTicks(this.midiData.loop.start);return}else if(t>=this.duration){if(this.loop&&this.currentLoopCount>0){this.currentLoopCount--,this.setTimeTicks(this.midiData.loop.start);return}this.eventIndex[A]--,this.pause(!0),this.songs.length>1&&this.nextSong();return}}}function Us(){let t=0,A=1/0;return this.tracks.forEach((e,s)=>{this.eventIndex[s]>=e.length||e[this.eventIndex[s]].ticks>>0}function de(t,A,e){for(let s=0;s>s*8&255}function N(t,A){t[t.currentIndex++]=A&255,t[t.currentIndex++]=A>>8}function V(t,A){de(t,A,4)}function ne(t,A){let e=A<<8|t;return e>32767?e-65536:e}function Ts(t){return t>127?t-256:t}function _(t,A,e=void 0,s=!0){if(e){let n=t.slice(t.currentIndex,t.currentIndex+A);return t.currentIndex+=A,new TextDecoder(e.replace(/[^\x20-\x7E]/g,"")).decode(n.buffer)}else{let n=!1,o="";for(let g=0;g127)&&i!==10){if(s){n=!0;continue}else if(i===0){n=!0;continue}}o+=String.fromCharCode(i)}}return o}}function ge(t,A=0){let e=t.length;A>0&&(e=A);let s=new b(e);return yA(s,t,A),s}function yA(t,A,e=0){e>0&&A.length>e&&(A=A.slice(0,e));for(let s=0;sA.length)for(let s=0;se.header!=="LIST"?!1:(e.chunkData.currentIndex=0,_(e.chunkData,4)===A))}function tt(t){let A=0;for(;t;){let e=t[t.currentIndex++];if(A=A<<7|e&127,e>>7!==1)break}return A}var st={name:"INAM",album:"IPRD",artist:"IART",genre:"IGNR",picture:"IPIC",copyright:"ICOP",creationDate:"ICRD",comment:"ICMT",engineer:"IENG",software:"ISFT",encoding:"IENC",midiEncoding:"MENC",bankOffset:"DBNK"};var nt=class{constructor(){this.timeDivision=0,this.duration=0,this.tempoChanges=[{ticks:0,tempo:120}],this.copyright="",this.tracksAmount=0,this.lyrics=[],this.firstNoteOn=0,this.keyRange={min:0,max:127},this.lastVoiceEventTick=0,this.midiPorts=[0],this.midiPortChannelOffsets=[0],this.usedChannelsOnTrack=[],this.loop={start:0,end:0},this.midiName="",this.fileName="",this.rawMidiName=void 0,this.embeddedSoundFont=void 0,this.format=0,this.RMIDInfo={},this.bankOffset=0,this.tracks=[]}};function fe(t,A){let e=0;for(;t>0;){let s=A.tempoChanges.find(o=>o.ticks0&&(x+=this.tracks[y-1][this.tracks[y-1].length-1].ticks);w.data.currentIndexthis.lastVoiceEventTick&&(this.lastVoiceEventTick=x),O=ys[I>>4],(I&240)===M.noteOn){H.add(rA);let nA=w.data[w.data.currentIndex];this.keyRange.min=Math.min(this.keyRange.min,nA),this.keyRange.max=Math.max(this.keyRange.max,nA)}R=I;break}let AA=new b(O),$=w.data.slice(w.data.currentIndex,w.data.currentIndex+O);w.data.currentIndex+=O,AA.set($,0);let IA=new ce(x,I,AA);switch(S.push(IA),rA){case-2:switch(I){case M.setTempo:this.tempoChanges.push({ticks:x,tempo:6e7/se($,3)});break;case M.marker:switch(_(AA,AA.length).trim().toLowerCase()){default:break;case"start":case"loopstart":d=x;break;case"loopend":Q=x}AA.currentIndex=0;break;case M.midiPort:let iA=AA[0];this.midiPorts[y]=iA,this.midiPortChannelOffsets[iA]===void 0&&(this.midiPortChannelOffsets[iA]=l,l+=16);break;case M.copyright:o||(this.copyright+=_(AA,AA.length,void 0,!1)+` `);break;case M.lyric:this.lyrics.push(AA)}break;case-3:if(AA.slice(0,7).every((nA,iA)=>nr[iA]===nA)){let nA=AA.slice(7,$.length-3),iA=_(nA,nA.length)+` -`;this.copyright+=iA,p(`%cDecoded Roland SC message! %c${iA}`,a.recognized,a.value)}break;default:if((I&240)===M.controllerChange)switch(AA[0]){case 2:case 116:d=x;break;case 4:case 117:Q===null?Q=x:Q=0;break;case 0:i&&AA[1]!==0&&AA[1]!==127&&(p("%cDLS RMIDI with offset 1 detected!",a.recognized),this.bankOffset=1)}}}this.tracks.push(S),this.usedChannelsOnTrack.push(H),p(`%cParsed %c${this.tracks.length}%c / %c${this.tracksAmount}`,a.info,a.value,a.info,a.value)}p("%cAll tracks parsed correctly!",a.recognized),QA("%cCorrecting loops, ports and detecting notes...",a.info);let c=[];for(let y of this.tracks){let S=y.find(w=>(w.messageStatusByte&240)===M.noteOn);S&&c.push(S.ticks)}this.firstNoteOn=Math.min(...c),p(`%cFirst note-on detected at: %c${this.firstNoteOn}%c ticks!`,a.info,a.recognized,a.info),d!==null&&Q===null?(d=this.firstNoteOn,Q=this.lastVoiceEventTick):(d===null&&(d=this.firstNoteOn),(Q===null||Q===0)&&(Q=this.lastVoiceEventTick)),this.loop={start:d,end:Q},p(`%cLoop points: start: %c${this.loop.start}%c end: %c${this.loop.end}`,a.info,a.recognized,a.info,a.recognized);let f=0;for(let y of this.midiPorts)if(y!==-1){f=y;break}if(this.midiPorts=this.midiPorts.map(y=>y===-1?f:y),this.midiPortChannelOffsets.length===0&&(this.midiPortChannelOffsets=[0]),this.midiPortChannelOffsets.length<2?p("%cNo additional MIDI Ports detected.",a.info):p("%cMIDI Ports detected!",a.recognized),!g)if(this.tracks.length>1){if(this.tracks[0].find(y=>y.messageStatusByte>=M.noteOn&&y.messageStatusByteS.messageStatusByte===M.trackName);y&&(this.rawMidiName=y.messageData,this.midiName=_(y.messageData,y.messageData.length,void 0,!1))}}else{let y=this.tracks[0].find(S=>S.messageStatusByte===M.trackName);y&&(this.rawMidiName=y.messageData,this.midiName=_(y.messageData,y.messageData.length,void 0,!1))}if(this.fileName=e,this.midiName=this.midiName.trim(),this.midiName.length===0){p("%cNo name detected. Using the alt name!",a.info),this.midiName=ms(e),this.rawMidiName=new Uint8Array(this.midiName.length);for(let y=0;yl>Q?l:Q),s=[];for(let Q=0;Q{g[f]>=c.length||c[g[f]].ticks0;){let Q=E(),l=t.tracks[Q];if(g[Q]>=l.length){i--;continue}let c=l[g[Q]];if(g[Q]++,c.messageStatusByte===M.midiPort){h[Q]=c.messageData[0];continue}let f=c.messageStatusByte&240;if(f!==M.noteOn&&f!==M.controllerChange&&f!==M.programChange&&f!==M.systemExclusive)continue;let y=(c.messageStatusByte&15)+t.midiPortChannelOffsets[h[Q]]||0,S=s[y];switch(f){case M.programChange:S.program=c.messageData[0],n(S);break;case M.controllerChange:if(c.messageData[0]!==k.bankSelect||d==="gs"&&S.drums)continue;let w=c.messageData[1],H=Math.max(0,w-t.bankOffset);if(d==="xg"){let G=w===120||w===126||w===127;G!==S.drums?(S.drums=G,S.bank=S.drums?128:H,n(S)):S.bank=S.drums?128:H;continue}s[y].bank=H;break;case M.noteOn:if(c.messageData[1]===0)continue;n(S),o[S.string].add(`${c.messageData[0]}-${c.messageData[1]}`);break;case M.systemExclusive:if(c.messageData[0]!==65||c.messageData[2]!==66||c.messageData[3]!==18||c.messageData[4]!==64||!(c.messageData[5]&16)||c.messageData[6]!==21){c.messageData[0]===67&&c.messageData[2]===76&&c.messageData[5]===126&&c.messageData[6]===0&&(d="xg");continue}let R=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][c.messageData[5]&15]+t.midiPortChannelOffsets[h[Q]],x=!!(c.messageData[7]>0&&c.messageData[5]>>4);S=s[R],S.drums=x,S.bank=x?128:0,n(S);break}}for(let Q of Object.keys(o))o[Q].size===0&&(p(`%cDetected change but no keys for %c${Q}`,a.info,a.value),delete o[Q]);return K(),o}function Hs(t,A){this.midiData.usedChannelsOnTrack[t].size!==0&&(this.midiPortChannelOffset===0&&(this.midiPortChannelOffset+=16,this.midiPortChannelOffsets[A]=0),this.midiPortChannelOffsets[A]===void 0&&(this.synth.workletProcessorChannels.length{this.assignMIDIPort(s,e)}),this.duration=this.midiData.duration,this.firstNoteTime=fe(this.midiData.firstNoteOn,this.midiData),p(`%cTotal song time: ${xt(Math.ceil(this.duration)).time}`,a.recognized),this.post(NA.songChange,[new et(this.midiData),this.songIndex,A]),this.duration<=1&&(U(`%cVery short song: (${xt(Math.round(this.duration)).time}). Disabling loop!`,a.warn),this.loop=!1),A)this.play(!0);else{let e=this._skipToFirstNoteOn?this.midiData.firstNoteOn-1:0;this.setTimeTicks(e),this.pause()}}function Js(t,A=!0){this.songs=t.reduce((e,s)=>{if(s.duration)return e.push(s),e;try{e.push(new ot(s.binary,s.altName||""))}catch(n){return this.post(NA.midiError,n.message),e}return e},[]),!(this.songs.length<1)&&(this.songIndex=0,this.songs.length>1&&(this.loop=!1),this.loadNewSequence(this.songs[this.songIndex],A))}function Ps(){if(this.songs.length===1){this.currentTime=0;return}this.songIndex++,this.songIndex%=this.songs.length,this.loadNewSequence(this.songs[this.songIndex])}function qs(){if(this.songs.length===1){this.currentTime=0;return}this.songIndex--,this.songIndex<0&&(this.songIndex=this.songs.length-1),this.loadNewSequence(this.songs[this.songIndex])}var be=ue.slice(0,128);function Ks(t,A=void 0){this.oneTickToSeconds=60/(120*this.midiData.timeDivision),this.synth.resetAllControllers(),this.sendMIDIReset(),this._resetTimers();let e=this.synth.workletProcessorChannels.length,s=Array(e).fill(8192),n=[];for(let i=0;ii===k.dataDecrement||i===k.dataIncrement||i===k.dataEntryMsb||i===k.dataDecrement||i===k.lsbForControl6DataEntry||i===k.RPNLsb||i===k.RPNMsb||i===k.NRPNLsb||i===k.NRPNMsb||i===k.bankSelect||i===k.lsbForControl0BankSelect||i===k.resetAllControllers,g=[];for(let i=0;i=A)break}else if(this.playedTime>=t)break;let h=Ne(E.messageStatusByte),d=h.channel+(this.midiPortChannelOffsets[this.midiPorts[i]]||0);switch(h.status){case M.noteOn:case M.noteOff:case M.keySignature:break;case M.pitchBend:s[d]=E.messageData[1]<<7|E.messageData[0];break;case M.programChange:let l=n[d];l.program=E.messageData[0],l.actualBank=l.bank;break;case M.controllerChange:let c=E.messageData[0];if(o(c)){let f=E.messageData[1];if(c===k.bankSelect){n[d].bank=f;break}else c===k.resetAllControllers&&(g[d]=Array.from(be));this.sendMIDIMessages?this.sendMIDICC(d,c,f):this.synth.controllerChange(d,c,f)}else g[d]===void 0&&(g[d]=Array.from(be)),g[d][c]=E.messageData[1];break;default:this._processEvent(E,i);break}this.eventIndex[i]++,i=this._findFirstEventIndex();let Q=this.tracks[i][this.eventIndex[i]];if(Q===void 0)return this.stop(),!1;this.playedTime+=this.oneTickToSeconds*(Q.ticks-E.ticks)}if(this.sendMIDIMessages){for(let i=0;i>7,s[i]&127),g[i]!==void 0&&g[i].forEach((E,h)=>{E!==be[h]&&!o(h)&&this.sendMIDICC(i,h,E)}),n[i].program>=0&&n[i].actualBank>=0){let E=n[i].actualBank;this.sendMIDICC(i,k.bankSelect,E),this.sendMIDIProgramChange(i,n[i].program)}}else for(let i=0;i>7,s[i]&127),g[i]!==void 0&&g[i].forEach((E,h)=>{E!==be[h]&&!o(h)&&this.synth.controllerChange(i,h,E)}),n[i].program>=0&&n[i].actualBank>=0){let E=n[i].actualBank;this.synth.controllerChange(i,k.bankSelect,E),this.synth.programChange(i,n[i].program)}return!0}function Vs(t=!1){if(this.midiData!==void 0){if(t){this.pausedTime=void 0,this.currentTime=0;return}if(this.currentTime>=this.duration){this.pausedTime=void 0,this.currentTime=0;return}this.paused&&(this._recalculateStartTime(this.pausedTime),this.pausedTime=void 0),this.sendMIDIMessages||this.playingNotes.forEach(A=>{this.synth.noteOn(A.channel,A.midiNote,A.velocity,!1,!0)}),this.setProcessHandler()}}function Os(t){this.stop(),this.playingNotes=[],this.pausedTime=void 0,this.post(NA.timeChange,currentTime-fe(t,this.midiData));let A=this._playTo(0,t);this._recalculateStartTime(this.playedTime),A&&this.play()}function Zs(t){this.absoluteStartTime=currentTime-t/this._playbackRate}function Ws(t,A){switch(t){default:break;case MA.loadNewSongList:this.loadNewSongList(A[0],A[1]);break;case MA.pause:this.pause();break;case MA.play:this.play(A);break;case MA.stop:this.stop();break;case MA.setTime:this.currentTime=A;break;case MA.changeMIDIMessageSending:this.sendMIDIMessages=A;break;case MA.setPlaybackRate:this.playbackRate=A;break;case MA.setLoop:this.loop=A;break;case MA.changeSong:A?this.nextSong():this.previousSong();break;case MA.getMIDI:this.post(NA.getMIDI,this.midiData);break;case MA.setSkipToFirstNote:this._skipToFirstNoteOn=A;break;case MA.setPreservePlaybackState:this.preservePlaybackState=A}}function Xs(t,A=void 0){this.synth.enableEventSystem&&this.synth.post({messageType:DA.sequencerSpecific,messageData:{messageType:t,messageData:A}})}function _s(t){this.post(NA.midiEvent,t)}function zs(t,A,e){t%=16,this.sendMIDIMessages&&this.sendMIDIMessage([M.controllerChange|t,A,e])}function js(t,A){t%=16,this.sendMIDIMessages&&this.sendMIDIMessage([M.programChange|t,A])}function $s(t,A,e){t%=16,this.sendMIDIMessages&&this.sendMIDIMessage([M.pitchBend|t,e,A])}function An(){if(this.sendMIDIMessages){this.sendMIDIMessage([M.reset]);for(let t=0;t<$e;t++)this.sendMIDIMessage([M.controllerChange|t,k.allSoundOff,0]),this.sendMIDIMessage([M.controllerChange|t,k.resetAllControllers,0])}}var BA=class{constructor(A){this.synth=A,this.ignoreEvents=!1,this.sendMIDIMessages=!1,this.loopCount=1/0,this.currentLoopCount=this.loopCount,this.eventIndex=[],this.songIndex=0,this.playedTime=0,this.pausedTime=void 0,this.absoluteStartTime=currentTime,this._playbackRate=1,this.playingNotes=[],this.loop=!0,this.midiData=void 0,this.midiPorts=[],this.midiPortChannelOffset=0,this.midiPortChannelOffsets={},this._skipToFirstNoteOn=!0,this.preservePlaybackState=!1}set playbackRate(A){let e=this.currentTime;this._playbackRate=A,this.currentTime=e}get currentTime(){return this.pausedTime!==void 0?this.pausedTime:(currentTime-this.absoluteStartTime)*this._playbackRate}set currentTime(A){if(A>this.duration||A<0){this._skipToFirstNoteOn?this.setTimeTicks(this.midiData.firstNoteOn-1):this.setTimeTicks(0);return}if(this._skipToFirstNoteOn&&Aen?440*Math.pow(2,(t-6900)/1200):vt[~~t-rt]}var Yt=-1660,or=1600,Ht=new Float32Array((or-Yt)*100+1);for(let t=0;t.5?1:0,s?e*2-1:e;case uA.concave:return s?(e=e*2-1,e<0?-jA[~~(e*-fA)]:jA[~~(e*fA)]):jA[~~(e*fA)];case uA.convex:return s?(e=e*2-1,e<0?-Ie[~~(e*-fA)]:Ie[~~(e*fA)]):Ie[~~(e*fA)]}}var Jt=1,Pt=new Float32Array(1e3);for(let t=0;t=e.loopEnd;)s-=o;let i=~~s,E=i+1;for(;E>=e.loopEnd;)E-=o;let h=s-i,d=n[E],Q=n[i];A[g]=Q+(d-Q)*h,s+=e.playbackStep*t.currentTuningCalculated}}else{if(e.loopingMode===2&&!t.isInRelease)return;for(let o=0;o=e.end){t.finished=!0;return}let E=s-g,h=n[i],d=n[g];A[o]=d+(h-d)*E,s+=e.playbackStep*t.currentTuningCalculated}}t.sample.cursor=s}function sn(t,A){let e=t.sample,s=e.cursor,n=e.loopEnd-e.loopStart,o=e.sampleData;if(t.sample.isLooping)for(let g=0;g=e.loopEnd;)s-=n;let i=~~s+1;for(;i>=e.loopEnd;)i-=n;A[g]=o[i],s+=e.playbackStep*t.currentTuningCalculated}else{if(e.loopingMode===2&&!t.isInRelease)return;for(let g=0;g=e.end){t.finished=!0;return}A[g]=o[i],s+=e.playbackStep*t.currentTuningCalculated}}e.cursor=s}function nn(t,A){let e=t.sample,s=e.cursor,n=e.sampleData;if(e.isLooping){let o=e.loopEnd-e.loopStart;for(let g=0;g=e.loopEnd;)s-=o;let i=~~s,E=i+1,h=E+1,d=h+1,Q=s-i;E>=e.loopEnd&&(E-=o),h>=e.loopEnd&&(h-=o),d>=e.loopEnd&&(d-=o);let l=n[i],c=n[E],f=n[h],y=n[d],S=.5*(f-l),w=l-2.5*c+2*f-.5*y,H=.5*(y-l)+1.5*(c-f);A[g]=((H*Q+w)*Q+S)*Q+c,s+=e.playbackStep*t.currentTuningCalculated}}else{if(e.loopingMode===2&&!t.isInRelease)return;for(let o=0;o=e.end||E>=e.end||h>=e.end){t.finished=!0;return}let Q=n[g],l=n[i],c=n[E],f=n[h],y=.5*(c-Q),S=Q-2.5*l+2*c-.5*f,w=.5*(f-Q)+1.5*(l-c);A[o]=((w*d+S)*d+y)*d+l,s+=e.playbackStep*t.currentTuningCalculated}}t.sample.cursor=s}var on=.001,bA=100,qt=90,rr=15e-6,JA=class t{currentSampleTime=0;sampleRate;currentAttenuationDb=bA;state=0;releaseStartDb=bA;releaseStartTimeSamples=0;currentReleaseGain=1;attackDuration=0;decayDuration=0;releaseDuration=0;attenuation=0;attenuationTarget=0;sustainDbRelative=0;delayEnd=0;attackEnd=0;holdEnd=0;decayEnd=0;constructor(A,e){this.sampleRate=A,this.canEndOnSilentSustain=e/10>=qt}static startRelease(A){A.volumeEnvelope.releaseStartTimeSamples=A.volumeEnvelope.currentSampleTime,A.volumeEnvelope.currentReleaseGain=VA(A.volumeEnvelope.currentAttenuationDb),t.recalculate(A)}static recalculate(A){let e=A.volumeEnvelope,s=h=>Math.max(0,Math.floor(KA(h)*e.sampleRate));e.attenuationTarget=Math.max(0,Math.min(A.modulatedGenerators[r.initialAttenuation],1440))/10,e.sustainDbRelative=Math.min(bA,A.modulatedGenerators[r.sustainVolEnv]/10);let n=Math.min(bA,e.sustainDbRelative);e.attackDuration=s(A.modulatedGenerators[r.attackVolEnv]);let o=A.modulatedGenerators[r.decayVolEnv],g=(60-A.targetKey)*A.modulatedGenerators[r.keyNumToVolEnvDecay],i=n/bA;e.decayDuration=s(o+g)*i,e.releaseDuration=s(A.modulatedGenerators[r.releaseVolEnv]),e.delayEnd=s(A.modulatedGenerators[r.delayVolEnv]),e.attackEnd=e.attackDuration+e.delayEnd;let E=(60-A.targetKey)*A.modulatedGenerators[r.keyNumToVolEnvHold];if(e.holdEnd=s(A.modulatedGenerators[r.holdVolEnv]+E)+e.attackEnd,e.decayEnd=e.decayDuration+e.holdEnd,e.state===0&&e.attackEnd===0&&(e.state=2),A.isInRelease){let h=Math.max(0,Math.min(bA,e.sustainDbRelative)),d=h/bA;switch(e.decayDuration=s(o+g)*d,e.state){case 0:e.releaseStartDb=bA;break;case 1:let l=1-(e.attackEnd-e.releaseStartTimeSamples)/e.attackDuration;e.releaseStartDb=20*Math.log10(l)*-1;break;case 2:e.releaseStartDb=0;break;case 3:e.releaseStartDb=(1-(e.decayEnd-e.releaseStartTimeSamples)/e.decayDuration)*h;break;case 4:e.releaseStartDb=h;break}e.releaseStartDb=Math.max(0,Math.min(e.releaseStartDb,bA)),e.releaseStartDb>=qt&&(A.finished=!0),e.currentReleaseGain=VA(e.releaseStartDb);let Q=(bA-e.releaseStartDb)/bA;e.releaseDuration*=Q}}static apply(A,e,s,n){let o=A.volumeEnvelope,g=s/10,i=n;if(A.isInRelease){let h=o.currentSampleTime-o.releaseStartTimeSamples;if(h>=o.releaseDuration){for(let Q=0;Q=e.length)return;o.state++;case 1:for(;o.currentSampleTime=e.length)return}o.state++;case 2:for(;o.currentSampleTime=e.length)return;o.state++;case 3:for(;o.currentSampleTime=e.length)return;o.state++;case 4:for(o.canEndOnSilentSustain&&o.sustainDbRelative>=qt&&(A.finished=!0);;)if(o.attenuation+=(o.attenuationTarget-o.attenuation)*i,e[E]*=VA(o.sustainDbRelative+g+o.attenuation),o.currentAttenuationDb=o.sustainDbRelative,o.currentSampleTime++,++E>=e.length)return}}};var pe=class t{a0=0;a1=0;a2=0;a3=0;a4=0;x1=0;x2=0;y1=0;y2=0;reasonanceCb=0;reasonanceGain=1;cutoffCents=13501;cutoffHz=20001;static apply(A,e,s,n){if(n&&s>13499&&A.filter.reasonanceCb===0)return;let o=A.filter;(o.cutoffCents!==s||o.reasonanceCb!==A.modulatedGenerators[r.initialFilterQ])&&(o.cutoffCents=s,o.reasonanceCb=A.modulatedGenerators[r.initialFilterQ],t.calculateCoefficients(o));for(let g=0;g=A.releaseStartTime&&(A.isInRelease=!0,JA.startRelease(A),YA.startRelease(A),A.sample.loopingMode===3&&(A.sample.isLooping=!1)),A.modulatedGenerators[r.initialAttenuation]>2500){A.isInRelease&&(A.finished=!0);return}let g=A.targetKey,i=A.modulatedGenerators[r.fineTune]+t.customControllers[hA.channelTuning]+t.customControllers[hA.channelTransposeFine]+t.customControllers[hA.masterTuning]+t.channelOctaveTuning[A.midiNote%12]+t.keyCentTuning[A.midiNote],E=A.modulatedGenerators[r.coarseTune]+t.customControllers[hA.channelTuningSemitones],h=this.tunings[t.preset.program]?.[A.realKey];h?.midiNote>=0&&(g=h.midiNote,i+=h.centTuning),i+=(g-A.sample.rootKey)*A.modulatedGenerators[r.scaleTuning];let d=A.modulatedGenerators[r.vibLfoToPitch];if(d!==0){let I=A.startTime+KA(A.modulatedGenerators[r.delayVibLFO]),rA=Le(A.modulatedGenerators[r.freqVibLFO]),O=it(I,rA,currentTime);i+=O*(d*t.customControllers[hA.modulationMultiplier])}let Q=A.modulatedGenerators[r.initialFilterFc],l=Q,c=A.modulatedGenerators[r.modLfoToPitch],f=A.modulatedGenerators[r.modLfoToVolume],y=A.modulatedGenerators[r.modLfoToFilterFc],S=0;if(c+y+f!==0){let I=A.startTime+KA(A.modulatedGenerators[r.delayModLFO]),rA=Le(A.modulatedGenerators[r.freqModLFO]),O=it(I,rA,currentTime);i+=O*(c*t.customControllers[hA.modulationMultiplier]),S=-O*f,l+=O*y}if(t.channelVibrato.depth>0){let I=it(A.startTime+t.channelVibrato.delay,t.channelVibrato.rate,currentTime);I&&(i+=I*t.channelVibrato.depth)}let w=A.modulatedGenerators[r.modEnvToPitch],H=A.modulatedGenerators[r.modEnvToFilterFc],R=YA.getValue(A,currentTime);l+=R*H,i+=R*w;let x=~~(i+E*100);x!==A.currentTuningCents&&(A.currentTuningCents=x,A.currentTuningCalculated=Math.pow(2,x/1200));let G=new Float32Array(e.length);switch(this.interpolationType){case me.linear:default:tn(A,G);break;case me.nearestNeighbor:sn(A,G);break;case me.fourthOrder:nn(A,G)}pe.apply(A,G,l,Q>13499),JA.apply(A,G,S,this.volumeEnvelopeSmoothingFactor),this.panVoice(A,G,e,s,n,o)}function ir(t,A){let e=0;return t.drumChannel&&(e+=5),A.isInRelease&&(e-=5),e+=A.velocity/25,e-=A.volumeEnvelope.state,A.isInRelease&&(e-=5),e-=A.volumeEnvelope.currentAttenuationDb/50,e}function gn(t){let A=[];for(let s of this.workletProcessorChannels)for(let n of s.voices)if(!n.finished){let o=ir(s,n);A.push({channel:s,voice:n,priority:o})}A.sort((s,n)=>s.priority-n.priority);let e=A.slice(0,t);for(let{channel:s,voice:n}of e){let o=s.voices.indexOf(n);o>-1&&s.voices.splice(o,1)}}function In(t,A=Cn){t.releaseStartTime=currentTime,t.releaseStartTime-t.startTimeBn=t);var ar=function(t){var A,e,s,n,o,g,i,E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h="",d=0;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");do n=E.indexOf(t.charAt(d++)),o=E.indexOf(t.charAt(d++)),g=E.indexOf(t.charAt(d++)),i=E.indexOf(t.charAt(d++)),A=n<<2|o>>4,e=(15&o)<<4|g>>2,s=(3&g)<<6|i,h+=String.fromCharCode(A),g!==64&&(h+=String.fromCharCode(e)),i!==64&&(h+=String.fromCharCode(s));while(d1&&(I.thisProgram=process.argv[1].replace(/\\/g,"/")),I.arguments=process.argv.slice(2),typeof module<"u",process.on("uncaughtException",function(C){if(!(C instanceof Ge))throw C}),process.on("unhandledRejection",function(C,B){process.exit(1)}),I.quit=function(C){process.exit(C)},I.inspect=function(){return"[Emscripten Module object]"}):IA?(typeof read<"u"&&(I.read=function(B){return read(B)}),I.readBinary=function(B){var u;return typeof readbuffer=="function"?new Uint8Array(readbuffer(B)):(ee(typeof(u=read(B,"binary"))=="object"),u)},typeof scriptArgs<"u"?I.arguments=scriptArgs:typeof arguments<"u"&&(I.arguments=arguments),typeof quit=="function"&&(I.quit=function(C){quit(C)})):(O||AA)&&(O?document.currentScript&&(nA=document.currentScript.src):nA=self.location.href,nA=nA.indexOf("blob:")!==0?nA.split("/").slice(0,-1).join("/")+"/":"",I.read=function(B){var u=new XMLHttpRequest;return u.open("GET",B,!1),u.send(null),u.responseText},AA&&(I.readBinary=function(B){var u=new XMLHttpRequest;return u.open("GET",B,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)}),I.readAsync=function(B,u,m){var L=new XMLHttpRequest;L.open("GET",B,!0),L.responseType="arraybuffer",L.onload=function(){if(L.status==200||L.status==0&&L.response){u(L.response);return}m()},L.onerror=m,L.send(null)},I.setWindowTitle=function(C){document.title=C});var eA=I.print||(typeof console<"u"?console.log.bind(console):typeof print<"u"?print:null),lA=I.printErr||(typeof printErr<"u"?printErr:typeof console<"u"&&console.warn.bind(console)||eA);for(t in rA)rA.hasOwnProperty(t)&&(I[t]=rA[t]);function LA(C){var B=c;return c=c+C+15&-16,B}function As(C){var B=E[R>>2],u=B+C+15&-16;return E[R>>2]=u,u>=mA&&!Is()?(E[R>>2]=B,0):B}function es(C,B){return B||(B=16),C=Math.ceil(C/B)*B}function Ko(C){switch(C){case"i1":case"i8":return 1;case"i16":return 2;case"i32":case"float":return 4;case"i64":case"double":return 8;default:if(C[C.length-1]==="*")return 4;if(C[0]!=="i")return 0;var B=parseInt(C.substr(1));return ee(B%8==0),B/8}}function we(C){we.shown||(we.shown={}),we.shown[C]||(we.shown[C]=1,lA(C))}rA=void 0;var Vo={"f64-rem":function(C,B){return C%B},debugger:function(){}},Qt=[];function mr(C,B){for(var u=0,m=u;m>>0)+4294967296*+(B>>>0):+(C>>>0)+4294967296*+(0|B)}function dt(C,B,u){return u&&u.length?I["dynCall_"+C].apply(null,[B].concat(u)):I["dynCall_"+C].call(null,B)}var Ye=0,ts=0;function ee(C,B){C||zA("Assertion failed: "+B)}function ss(C){var B=I["_"+C];return ee(B,"Cannot call unknown function "+C+", make sure it is exported"),B}var ns={stackSave:function(){wt()},stackRestore:function(){kt()},arrayToC:function(C){var B,u,m=Oe(C.length);return B=C,u=m,n.set(B,u),m},stringToC:function(C){var B=0;if(C!=null&&C!==0){var u=(C.length<<2)+1;B=Oe(u),is(C,B,u)}return B}},Oo={string:ns.stringToC,array:ns.arrayToC};function os(C,B,u,m,L){var W=ss(C),j=[],Y=0;if(m)for(var pA=0;pA>0]=B;break;case"i16":g[C>>1]=B;break;case"i32":E[C>>2]=B;break;case"i64":tempI64=[B>>>0,+jo(tempDouble=B)>=1?tempDouble>0?(0|Ar(+cs(tempDouble/4294967296),4294967295))>>>0:~~+$o((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0],E[C>>2]=tempI64[0],E[C+4>>2]=tempI64[1];break;case"float":d[C>>2]=B;break;case"double":Q[C>>3]=B;break;default:zA("invalid type for setValue: "+u)}}function Dr(C,B,u){switch((B=B||"i8").charAt(B.length-1)==="*"&&(B="i32"),B){case"i1":case"i8":return n[C>>0];case"i16":return g[C>>1];case"i32":case"i64":return E[C>>2];case"float":return d[C>>2];case"double":return Q[C>>3];default:zA("invalid type for getValue: "+B)}return null}function kr(C,B,u,m){typeof C=="number"?(W=!0,j=C):(W=!1,j=C.length);var L=typeof B=="string"?B:null;if(Y=u==4?m:[typeof Ve=="function"?Ve:LA,Oe,LA,As][u===void 0?2:u](Math.max(j,L?1:B.length)),W){for(m=Y,ee((3&Y)==0),pA=Y+(-4&j);m>2]=0;for(pA=Y+j;m>0]=0;return Y}if(L==="i8")return C.subarray||C.slice?o.set(C,Y):o.set(new Uint8Array(C),Y),Y;for(var W,j,Y,pA,CA,EA,aA,Z=0;Z>0],(m!=0||B)&&(j++,!B||j!=B););B||(B=j);var Y="";if(W<128){for(;B>0;)L=String.fromCharCode.apply(String,o.subarray(C,C+Math.min(B,1024))),Y=Y?Y+L:L,C+=1024,B-=1024;return Y}return u=C,function(CA,EA){for(var aA=EA;CA[aA];)++aA;if(aA-EA>16&&CA.subarray&&rs)return rs.decode(CA.subarray(EA,aA));for(var Z,FA,UA,TA,vA,ie,HA="";;){if(!(Z=CA[EA++]))return HA;if(!(128&Z)){HA+=String.fromCharCode(Z);continue}if(FA=63&CA[EA++],(224&Z)==192){HA+=String.fromCharCode((31&Z)<<6|FA);continue}if(UA=63&CA[EA++],(240&Z)==224?Z=(15&Z)<<12|FA<<6|UA:(TA=63&CA[EA++],(248&Z)==240?Z=(7&Z)<<18|FA<<12|UA<<6|TA:(vA=63&CA[EA++],Z=(252&Z)==248?(3&Z)<<24|FA<<18|UA<<12|TA<<6|vA:(1&Z)<<30|FA<<24|UA<<18|TA<<12|vA<<6|(ie=63&CA[EA++]))),Z<65536)HA+=String.fromCharCode(Z);else{var xe=Z-65536;HA+=String.fromCharCode(55296|xe>>10,56320|1023&xe)}}}(o,u)}function Fr(C){for(var B="";;){var u=n[C++>>0];if(!u)return B;B+=String.fromCharCode(u)}}function Rr(C,B){return function(m,L,W){for(var j=0;j>0]=m.charCodeAt(j);W||(n[L>>0]=0)}(C,B,!1)}var rs=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Pe(C,B,u,m){if(!(m>0))return 0;for(var L=u,W=u+m-1,j=0;j=55296&&Y<=57343&&(Y=65536+((1023&Y)<<10)|1023&C.charCodeAt(++j)),Y<=127){if(u>=W)break;B[u++]=Y}else if(Y<=2047){if(u+1>=W)break;B[u++]=192|Y>>6,B[u++]=128|63&Y}else if(Y<=65535){if(u+2>=W)break;B[u++]=224|Y>>12,B[u++]=128|Y>>6&63,B[u++]=128|63&Y}else if(Y<=2097151){if(u+3>=W)break;B[u++]=240|Y>>18,B[u++]=128|Y>>12&63,B[u++]=128|Y>>6&63,B[u++]=128|63&Y}else if(Y<=67108863){if(u+4>=W)break;B[u++]=248|Y>>24,B[u++]=128|Y>>18&63,B[u++]=128|Y>>12&63,B[u++]=128|Y>>6&63,B[u++]=128|63&Y}else{if(u+5>=W)break;B[u++]=252|Y>>30,B[u++]=128|Y>>24&63,B[u++]=128|Y>>18&63,B[u++]=128|Y>>12&63,B[u++]=128|Y>>6&63,B[u++]=128|63&Y}}return B[u]=0,u-L}function is(C,B,u){return Pe(C,o,B,u)}function qe(C){for(var B=0,u=0;u=55296&&m<=57343&&(m=65536+((1023&m)<<10)|1023&C.charCodeAt(++u)),m<=127?++B:m<=2047?B+=2:m<=65535?B+=3:m<=2097151?B+=4:m<=67108863?B+=5:B+=6}return B}var as=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function Gr(C){for(var B=C,u=B>>1;g[u];)++u;if((B=u<<1)-C>32&&as)return as.decode(o.subarray(C,B));for(var m=0,L="";;){var W=g[C+2*m>>1];if(W==0)return L;++m,L+=String.fromCharCode(W)}}function xr(C,B,u){if(u===void 0&&(u=2147483647),u<2)return 0;for(var m=B,L=(u-=2)<2*C.length?u/2:C.length,W=0;W>1]=j,B+=2}return g[B>>1]=0,B-m}function Mr(C){return 2*C.length}function Nr(C){for(var B=0,u="";;){var m=E[C+4*B>>2];if(m==0)return u;if(++B,m>=65536){var L=m-65536;u+=String.fromCharCode(55296|L>>10,56320|1023&L)}else u+=String.fromCharCode(m)}}function br(C,B,u){if(u===void 0&&(u=2147483647),u<4)return 0;for(var m=B,L=m+u-4,W=0;W=55296&&j<=57343&&(j=65536+((1023&j)<<10)|1023&C.charCodeAt(++W)),E[B>>2]=j,(B+=4)+4>L)break}return E[B>>2]=0,B-m}function Lr(C){for(var B=0,u=0;u=55296&&m<=57343&&++u,B+=4}return B}function Ur(C){var B=qe(C)+1,u=Ve(B);return u&&Pe(C,n,u,B),u}function Tr(C){var B=qe(C)+1,u=Oe(B);return Pe(C,n,u,B),u}function vr(C){return C}function Hr(){var C,B=function(){var m=Error();if(!m.stack){try{throw Error(0)}catch(L){m=L}if(!m.stack)return"(no stack trace available)"}return m.stack.toString()}();return I.extraStackTrace&&(B+=` -`+I.extraStackTrace()),(C=B).replace(/__Z[\w\d_]+/g,function(u){var m,L=m=u;return u===L?u:u+" ["+L+"]"})}function ft(C,B){return C%B>0&&(C+=B-C%B),C}function gs(C){I.buffer=s=C}function mt(){I.HEAP8=n=new Int8Array(s),I.HEAP16=g=new Int16Array(s),I.HEAP32=E=new Int32Array(s),I.HEAPU8=o=new Uint8Array(s),I.HEAPU16=i=new Uint16Array(s),I.HEAPU32=h=new Uint32Array(s),I.HEAPF32=d=new Float32Array(s),I.HEAPF64=Q=new Float64Array(s)}function Is(){var C=I.usingWasm?65536:16777216,B=2147483648-C;if(E[R>>2]>B)return!1;var u=mA;for(mA=Math.max(mA,16777216);mA>2];)mA=mA<=536870912?ft(2*mA,C):Math.min(ft((3*mA+2147483648)/4,C),B);var m=I.reallocBuffer(mA);return m&&m.byteLength==mA?(gs(m),mt(),!0):(mA=u,!1)}l=c=y=S=w=H=R=0,f=!1,I.reallocBuffer||(I.reallocBuffer=function(C){try{if(ArrayBuffer.transfer)B=ArrayBuffer.transfer(s,C);else{var B,u=n;B=new ArrayBuffer(C),new Int8Array(B).set(u)}}catch{return!1}return!!er(B)&&B});try{(x=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get))(new ArrayBuffer(4))}catch{x=function(B){return B.byteLength}}var pt=I.TOTAL_STACK||5242880,mA=I.TOTAL_MEMORY||16777216;function Wo(){return mA}function Fe(C){for(;C.length>0;){var B=C.shift();if(typeof B=="function"){B();continue}var u=B.func;typeof u=="number"?B.arg===void 0?I.dynCall_v(u):I.dynCall_vi(u,B.arg):u(B.arg===void 0?null:B.arg)}}mA=0?C:B<=32?2*Math.abs(1<=m&&(B<=32||C>m)&&(C=-2*m+C),C}var jo=Math.abs,$o=Math.ceil,cs=Math.floor,Ar=Math.min,re=0,Dt=null,Re=null;function Or(C){return C}I.preloadedImages={},I.preloadedAudios={};var ls="data:application/octet-stream;base64,";function Ke(C){return String.prototype.startsWith?C.startsWith(ls):C.indexOf(ls)===0}(function(){var B="main.wast",u="main.wasm",m="main.temp.asm.js";Ke(B)||(B=iA(B)),Ke(u)||(u=iA(u)),Ke(m)||(m=iA(m));var L={global:null,env:null,asm2wasm:Vo,parent:I},W=null;function j(aA){return aA}function Y(){try{if(I.wasmBinary)return new Uint8Array(I.wasmBinary);if(I.readBinary)return I.readBinary(u);throw"both async and sync fetching of the wasm failed"}catch(aA){zA(aA)}}I.asmPreload=I.asm;var pA=I.reallocBuffer,CA=function(aA){aA=ft(aA,I.usingWasm?65536:16777216);var Z=I.buffer.byteLength;if(I.usingWasm)try{var FA=I.wasmMemory.grow((aA-Z)/65536);return FA!==-1?I.buffer=I.wasmMemory.buffer:null}catch{return null}};I.reallocBuffer=function(aA){return EA==="asmjs"?pA(aA):CA(aA)};var EA="";I.asm=function(aA,Z,FA){var UA;if(!(Z=UA=Z).table){var TA,vA=I.wasmTableSize;vA===void 0&&(vA=1024);var ie=I.wasmMaxTableSize;typeof WebAssembly=="object"&&typeof WebAssembly.Table=="function"?ie!==void 0?Z.table=new WebAssembly.Table({initial:vA,maximum:ie,element:"anyfunc"}):Z.table=new WebAssembly.Table({initial:vA,element:"anyfunc"}):Z.table=Array(vA),I.wasmTable=Z.table}return Z.memoryBase||(Z.memoryBase=I.STATIC_BASE),Z.tableBase||(Z.tableBase=0),TA=function(xe,Be,Rt){if(typeof WebAssembly!="object")return lA("no native wasm support detected"),!1;if(!(I.wasmMemory instanceof WebAssembly.Memory))return lA("no native wasm Memory in use"),!1;function Ze(ZA,WA){if((W=ZA.exports).memory){var Me,Gt,ds;Me=W.memory,Gt=I.buffer,Me.byteLength0?u:qe(C)+1,L=Array(m),W=Pe(C,L,0,L.length);return B&&(L.length=W),L}function _r(C){for(var B=[],u=0;u255&&(m&=255),B.push(String.fromCharCode(m))}return B.join("")}c+=16,R=LA(4),w=(y=S=es(c))+pt,H=es(w),E[R>>2]=H,f=!0,I.wasmTableSize=4,I.wasmMaxTableSize=4,I.asmGlobalArg={},I.asmLibraryArg={abort:zA,assert:ee,enlargeMemory:Is,getTotalMemory:Wo,abortOnCannotGrowMemory:function(){zA("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+mA+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_iii:function(B,u,m){var L=wt();try{return I.dynCall_iii(B,u,m)}catch(W){if(kt(L),typeof W!="number"&&W!=="longjmp")throw W;I.setThrew(1,0)}},___assert_fail:function(B,u,m,L){zA("Assertion failed: "+Je(B)+", at: "+[u?Je(u):"unknown filename",m,L?Je(L):"unknown function"])},___setErrNo:function(B){return I.___errno_location&&(E[I.___errno_location()>>2]=B),B},_abort:function(){I.abort()},_emscripten_memcpy_big:function(B,u,m){return o.set(o.subarray(u,u+m),B),B},_llvm_floor_f64:cs,DYNAMICTOP_PTR:R,tempDoublePtr:xA,ABORT:Ye,STACKTOP:S,STACK_MAX:w};var Qs=I.asm(I.asmGlobalArg,I.asmLibraryArg,s);I.asm=Qs,I.___errno_location=function(){return I.asm.___errno_location.apply(null,arguments)};var er=I._emscripten_replace_memory=function(){return I.asm._emscripten_replace_memory.apply(null,arguments)};I._free=function(){return I.asm._free.apply(null,arguments)};var Ve=I._malloc=function(){return I.asm._malloc.apply(null,arguments)};I._memcpy=function(){return I.asm._memcpy.apply(null,arguments)},I._memset=function(){return I.asm._memset.apply(null,arguments)},I._sbrk=function(){return I.asm._sbrk.apply(null,arguments)},I._stb_vorbis_js_channels=function(){return I.asm._stb_vorbis_js_channels.apply(null,arguments)},I._stb_vorbis_js_close=function(){return I.asm._stb_vorbis_js_close.apply(null,arguments)},I._stb_vorbis_js_decode=function(){return I.asm._stb_vorbis_js_decode.apply(null,arguments)},I._stb_vorbis_js_open=function(){return I.asm._stb_vorbis_js_open.apply(null,arguments)},I._stb_vorbis_js_sample_rate=function(){return I.asm._stb_vorbis_js_sample_rate.apply(null,arguments)},I.establishStackSpace=function(){return I.asm.establishStackSpace.apply(null,arguments)},I.getTempRet0=function(){return I.asm.getTempRet0.apply(null,arguments)},I.runPostSets=function(){return I.asm.runPostSets.apply(null,arguments)},I.setTempRet0=function(){return I.asm.setTempRet0.apply(null,arguments)},I.setThrew=function(){return I.asm.setThrew.apply(null,arguments)};var Oe=I.stackAlloc=function(){return I.asm.stackAlloc.apply(null,arguments)},kt=I.stackRestore=function(){return I.asm.stackRestore.apply(null,arguments)},wt=I.stackSave=function(){return I.asm.stackSave.apply(null,arguments)};function Ge(C){this.name="ExitStatus",this.message="Program terminated with exit("+C+")",this.status=C}function Ft(C){C=C||I.arguments,!(re>0)&&(function(){if(I.preRun)for(typeof I.preRun=="function"&&(I.preRun=[I.preRun]);I.preRun.length;)_o(I.preRun.shift());Fe(Cs)}(),!(re>0)&&(I.calledRun||(I.setStatus?(I.setStatus("Running..."),setTimeout(function(){setTimeout(function(){I.setStatus("")},1),B()},1)):B())));function B(){!I.calledRun&&(I.calledRun=!0,Ye||(St||(St=!0,Fe(yt)),Fe(Es),I.onRuntimeInitialized&&I.onRuntimeInitialized(),function(){if(I.postRun)for(typeof I.postRun=="function"&&(I.postRun=[I.postRun]);I.postRun.length;)zo(I.postRun.shift());Fe(hs)}()))}}function zr(C,B){(!B||!I.noExitRuntime||C!==0)&&(I.noExitRuntime||(Ye=!0,ts=C,S=G,Fe(Bs),Xo=!0,I.onExit&&I.onExit(C)),I.quit(C,new Ge(C)))}function zA(C){throw I.onAbort&&I.onAbort(C),C!==void 0?(eA(C),lA(C),C=JSON.stringify(C)):C="",Ye=!0,ts=1,"abort("+C+"). Build with -s ASSERTIONS=1 for more info."}if(I.dynCall_iii=function(){return I.asm.dynCall_iii.apply(null,arguments)},I.asm=Qs,I.ccall=os,I.cwrap=function(B,u,m,L){var W=(m=m||[]).every(function(j){return j==="number"});return u!=="string"&&W&&!L?ss(B):function(){return os(B,u,m,arguments,L)}},Ge.prototype=Error(),Ge.prototype.constructor=Ge,Re=function C(){I.calledRun||Ft(),I.calledRun||(Re=C)},I.run=Ft,I.abort=zA,I.preInit)for(typeof I.preInit=="function"&&(I.preInit=[I.preInit]);I.preInit.length>0;)I.preInit.pop()();I.noExitRuntime=!0,Ft(),I.onRuntimeInitialized=()=>{En=!0,Bn()},_A.decode=function(C){return function(u){if(!En)throw Error("Not initialized");var m={};function L(Be){return new Int32Array(I.HEAPU8.buffer,Be,1)[0]}function W(Be,Rt){var Ze=new ArrayBuffer(Rt*Float32Array.BYTES_PER_ELEMENT),he=new Float32Array(Ze);return he.set(new Float32Array(I.HEAPU8.buffer,Be,Rt)),he}m.open=I.cwrap("stb_vorbis_js_open","number",[]),m.close=I.cwrap("stb_vorbis_js_close","void",["number"]),m.channels=I.cwrap("stb_vorbis_js_channels","number",["number"]),m.sampleRate=I.cwrap("stb_vorbis_js_sample_rate","number",["number"]),m.decode=I.cwrap("stb_vorbis_js_decode","number",["number","number","number","number","number"]);var j,Y,pA,CA,EA=m.open(),aA=(j=u,Y=u.byteLength,pA=I._malloc(Y),(CA=new Uint8Array(I.HEAPU8.buffer,pA,Y)).set(new Uint8Array(j,0,Y)),CA),Z=I._malloc(4),FA=I._malloc(4),UA=m.decode(EA,aA.byteOffset,aA.byteLength,Z,FA);if(I._free(aA.byteOffset),UA<0)throw m.close(EA),I._free(Z),Error("stbvorbis decode failed: "+UA);for(var TA=m.channels(EA),vA=Array(TA),ie=new Int32Array(I.HEAPU32.buffer,L(Z),TA),HA=0;HA=0&&(s=this.workletProcessorChannels[e]),t.messageType){case sA.noteOn:this.noteOn(e,A[0],A[1],A[2]);break;case sA.noteOff:this.noteOff(e,A);break;case sA.pitchWheel:this.pitchWheel(e,A[0],A[1]);break;case sA.ccChange:this.controllerChange(e,A[0],A[1],A[2]);break;case sA.customcCcChange:s.customControllers[A[0]]=A[1];break;case sA.killNote:this.killNote(e,A);break;case sA.programChange:this.programChange(e,A[0],A[1]);break;case sA.channelPressure:this.channelPressure(e,A);break;case sA.polyPressure:this.polyPressure(e,A[0],A[1]);break;case sA.ccReset:e===PA?this.resetAllControllers():this.resetControllers(e);break;case sA.systemExclusive:this.systemExclusive(A);break;case sA.setChannelVibrato:if(e===PA)for(let g=0;g{let e=(A.midiControllers[dA+P.pitchWheelRange]>>7)+(A.midiControllers[dA+P.pitchWheelRange]&127)/127;return{voicesAmount:A.voices.length,pitchBend:A.midiControllers[dA+P.pitchWheel],pitchBendRangeSemitones:e,isMuted:A.isMuted,isDrum:A.drumChannel}});this.post({messageType:DA.channelProperties,messageData:t})}function gr(t,A,e){let s=t,n=A<<7|e;return t===127&&A===127&&e===127?{midiNote:-1,centTuning:null}:{midiNote:s,centTuning:n*.0061}}function Qn(t,A=0){let e=t[0];if(!(this.deviceID!==PA&&t[1]!==127&&this.deviceID!==t[1]))switch(e){default:U(`%cUnrecognized SysEx: %c${SA(t)}`,a.warn,a.unrecognized);break;case 126:case 127:switch(t[2]){case 4:let n;switch(t[3]){case 1:let o=t[5]<<7|t[4];this.setMIDIVolume(o/16384),p(`%cMaster Volume. Volume: %c${o}`,a.info,a.value);break;case 2:let i=((t[5]<<7|t[4])-8192)/8192;this.setMasterPan(i),p(`%cMaster Pan. Pan: %c${i}`,a.info,a.value);break;case 3:let E=(t[5]<<7|t[6])-8192;n=Math.floor(E/81.92),this.setMasterTuning(n),p(`%cMaster Fine Tuning. Cents: %c${n}`,a.info,a.value);break;case 4:n=(t[5]-64)*100,this.setMasterTuning(n),p(`%cMaster Coarse Tuning. Cents: %c${n}`,a.info,a.value);break;default:U(`%cUnrecognized MIDI Device Control Real-time message: %c${SA(t)}`,a.warn,a.unrecognized)}break;case 9:t[3]===1?(p("%cGM system on",a.info),this.system="gm"):t[3]===3?(p("%cGM2 system on",a.info),this.system="gm2"):(p("%cGM system off, defaulting to GS",a.info),this.system="gs");break;case 8:switch(t[3]){case 2:case 7:let o=4;t[3]===7&&o++;let g=t[o++],i=t[o++];for(let h=0;h>1&1)===1&&this.setOctaveTuning(15+A,E);for(let h=0;h<7;h++)(t[5]>>h&1)===1&&this.setOctaveTuning(7+h+A,E);for(let h=0;h<7;h++)(t[6]>>h&1)===1&&this.setOctaveTuning(h+A,E);p(`%cMIDI Octave Scale ${t[3]===8?"(1 byte)":"(2 bytes)"} tuning via Tuning: %c${E.join(" ")}`,a.info,a.value);break;default:U(`%cUnrecognized MIDI Tuning standard message: %c${SA(t)}`,a.warn,a.unrecognized);break}break;default:U(`%cUnrecognized MIDI Realtime/non realtime message: %c${SA(t)}`,a.warn,a.unrecognized)}break;case 65:let s=function(){U(`%cUnrecognized Roland %cGS %cSysEx: %c${SA(t)}`,a.warn,a.recognized,a.warn,a.unrecognized)};if(t[2]===66&&t[3]===18){let n=t[7];if(t[6]===127){n===0?(p("%cGS Reset received!",a.info),this.resetAllControllers(!1),this.system="gs"):n===127&&(p("%cGS system off, switching to GM2",a.info),this.resetAllControllers(!1),this.system="gm2");return}else if(t[4]===64){if((t[5]&16)>0){let o=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][t[5]&15]+A;switch(t[6]){default:s();break;case 21:let g=n>0&&t[5]>>4;this.setDrums(o,g),p(`%cChannel %c${o}%c ${g?"is now a drum channel":"now isn't a drum channel"}%c via: %c${SA(t)}`,a.info,a.value,a.recognized,a.info,a.value);return;case 22:let i=n-64;this.transposeChannel(o,i),p(`%cChannel %c${o}%c pitch shift. Semitones %c${i}%c, with %c${SA(t)}`,a.info,a.recognized,a.info,a.value,a.info,a.value);return;case 28:let E=n;E===0&&(E=Math.floor(Math.random()*128)),this.controllerChange(o,k.pan,E);break;case 33:this.controllerChange(o,k.chorusDepth,n);break;case 34:this.controllerChange(o,k.reverbDepth,n);break;case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:let h=t.length-9,d=new Int8Array(12);for(let l=0;l=this.workletProcessorChannels.length)return;let o=t[6];switch(t[5]){case 1:this.controllerChange(n,k.bankSelect,o);break;case 2:this.controllerChange(n,k.lsbForControl0BankSelect,o);break;case 3:this.programChange(n,o);break;case 8:let g=this.workletProcessorChannels[n];if(g.drumChannel)return;let i=o-64;g.channelTransposeKeyShift=i;break;case 11:this.controllerChange(n,k.mainVolume,o);break;case 14:let E=o;E===0&&(E=Math.floor(Math.random()*127)),this.controllerChange(n,k.pan,E);break;case 19:this.controllerChange(n,k.reverbDepth,o);break;case 18:this.controllerChange(n,k.chorusDepth,o);break;default:U(`%cUnrecognized Yamaha XG Part Setup: %c${t[5].toString(16).toUpperCase()}`,a.warn,a.unrecognized)}}else this.system==="xg"&&U(`%cUnrecognized Yamaha XG SysEx: %c${SA(t)}`,a.warn,a.unrecognized);else this.system==="xg"&&U(`%cUnrecognized Yamaha SysEx: %c${SA(t)}`,a.warn,a.unrecognized);break}}var Ir=1e3/200;function un(t,A,e){if(A.transformAmount===0)return A.currentValue=0,0;let s;if(A.sourceUsesCC)s=t[A.sourceIndex];else{let h=A.sourceIndex+dA;switch(A.sourceIndex){case P.noController:s=16383;break;case P.noteOnKeyNum:s=e.midiNote<<7;break;case P.noteOnVelocity:s=e.velocity<<7;break;case P.polyPressure:s=e.pressure<<7;break;default:s=t[h];break}}let n=Ee[A.sourceCurveType][A.sourcePolarity][A.sourceDirection][s],o;if(A.secSrcUsesCC)o=t[A.secSrcIndex];else{let h=A.secSrcIndex+dA;switch(A.secSrcIndex){case P.noController:o=16383;break;case P.noteOnKeyNum:o=e.midiNote<<7;break;case P.noteOnVelocity:o=e.velocity<<7;break;case P.polyPressure:o=e.pressure<<7;break;default:o=t[h]}}let g=Ee[A.secSrcCurveType][A.secSrcPolarity][A.secSrcDirection][o],i=A.transformAmount;A.isEffectModulator&&i<=1e3&&(i*=Ir,i=Math.min(i,1e3));let E=n*g*i;return A.transformType===2&&(E=Math.abs(E)),A.currentValue=E,E}function $A(t,A,e=-1,s=0){let n=t.modulators,o=t.generators,g=t.modulatedGenerators;if(e===-1){g.set(o),n.forEach(h=>{let d=J[h.modulatorDestination],Q=g[h.modulatorDestination]+un(A,h,t);g[h.modulatorDestination]=Math.max(d.min,Math.min(Q,d.max))}),JA.recalculate(t),YA.recalculate(t);return}let i=new Set([r.initialAttenuation,r.delayVolEnv,r.attackVolEnv,r.holdVolEnv,r.decayVolEnv,r.sustainVolEnv,r.releaseVolEnv,r.keyNumToVolEnvHold,r.keyNumToVolEnvDecay]),E=new Set;n.forEach(h=>{if(h.sourceUsesCC===e&&h.sourceIndex===s||h.secSrcUsesCC===e&&h.secSrcIndex===s){let d=h.modulatorDestination;E.has(d)||(g[d]=o[d],un(A,h,t),n.forEach(Q=>{if(Q.modulatorDestination===d){let l=J[h.modulatorDestination],c=g[h.modulatorDestination]+Q.currentValue;g[h.modulatorDestination]=Math.max(l.min,Math.min(c,l.max))}}),E.add(d))}}),[...E].some(h=>i.has(h))&&JA.recalculate(t),YA.recalculate(t)}var Ee=[];for(let t=0;t<4;t++){Ee[t]=[[new Float32Array(fA),new Float32Array(fA)],[new Float32Array(fA),new Float32Array(fA)]];for(let A=0;A200&&e<40||this.highPerformanceMode&&e<10||g.isMuted)return;let i=A+g.channelTransposeKeyShift,E=i;if(A>127||A<0)return;let h=g.preset.program;this.tunings[h]?.[A]?.midiNote>=0&&(E=this.tunings[h]?.[A].midiNote),g.velocityOverride>0&&(e=g.velocityOverride);let d=this.keyModifierManager.getVelocity(t,A);d>-1&&(e=d);let Q=this.getWorkletVoices(t,E,e,g,o,i,s),l=g.voices;Q.forEach(c=>{let f=c.generators[r.exclusiveClass];f!==0&&l.forEach(G=>{G.generators[r.exclusiveClass]===f&&(this.releaseVoice(G,fn),G.modulatedGenerators[r.releaseVolEnv]=-7e3,G.modulatedGenerators[r.releaseModEnv]=-7e3,JA.recalculate(G),YA.recalculate(G))}),$A(c,g.midiControllers);let y=c.modulatedGenerators[r.startAddrsOffset]+c.modulatedGenerators[r.startAddrsCoarseOffset]*32768,S=c.modulatedGenerators[r.endAddrOffset]+c.modulatedGenerators[r.endAddrsCoarseOffset]*32768,w=c.modulatedGenerators[r.startloopAddrsOffset]+c.modulatedGenerators[r.startloopAddrsCoarseOffset]*32768,H=c.modulatedGenerators[r.endloopAddrsOffset]+c.modulatedGenerators[r.endloopAddrsCoarseOffset]*32768,R=c.sample,x=G=>Math.max(0,Math.min(R.sampleData.length-1,G));if(R.cursor=x(R.cursor+y),R.end=x(R.end+S),R.loopStart=x(R.loopStart+w),R.loopEnd=x(R.loopEnd+H),R.loopEndthis.voiceCap&&this.voiceKilling(Q.length),l.push(...Q),n&&(this.sendChannelProperties(),this.callEvent("noteon",{midiNote:A,channel:t,velocity:e}))}function mn(t,A){if(A>127||A<0){U("Received a noteOn for note",A,"Ignoring.");return}let e=A+this.workletProcessorChannels[t].channelTransposeKeyShift;if(this.highPerformanceMode&&!this.workletProcessorChannels[t].drumChannel){this.killNote(t,e);return}this.workletProcessorChannels[t].voices.forEach(n=>{n.realKey!==e||n.isInRelease===!0||(this.workletProcessorChannels[t].holdPedal?this.workletProcessorChannels[t].sustainedVoices.push(n):this.releaseVoice(n))}),this.callEvent("noteoff",{midiNote:A,channel:t})}function pn(t,A){this.workletProcessorChannels[t].voices.forEach(e=>{e.realKey===A&&(e.modulatedGenerators[r.releaseVolEnv]=-12e3,this.releaseVoice(e))})}function yn(t,A=!1){let e=this.workletProcessorChannels[t].voices;A?(e.length=0,this.workletProcessorChannels[t].sustainedVoices.length=0,this.sendChannelProperties()):(e.forEach(s=>{s.isInRelease||this.releaseVoice(s)}),this.workletProcessorChannels[t].sustainedVoices.forEach(s=>{this.releaseVoice(s)}))}function Sn(t=!1){p("%cStop all received!",a.info);for(let A=0;A$A(n,this.workletProcessorChannels[t].midiControllers,0,P.pitchWheel)),this.sendChannelProperties()}function Mn(t,A){let e=this.workletProcessorChannels[t];e.midiControllers[dA+P.channelPressure]=A<<7,this.workletProcessorChannels[t].voices.forEach(s=>$A(s,e.midiControllers,0,P.channelPressure)),this.callEvent("channelpressure",{channel:t,pressure:A})}function Nn(t,A,e){this.workletProcessorChannels[t].voices.forEach(s=>{s.midiNote===A&&(s.pressure=e,$A(s,this.workletProcessorChannels[t].midiControllers,0,P.polyPressure))}),this.callEvent("polypressure",{channel:t,midiNote:A,pressure:e})}function bn(t,A){if(A.length!==12)throw new Error("Tuning is not the length of 12.");this.workletProcessorChannels[t].channelOctaveTuning=A}function Ln(t,A,e,s=!1){let n=this.workletProcessorChannels[t];if(n===void 0){U(`Trying to access channel ${t} which does not exist... ignoring!`);return}if(A>127){if(!s)return;switch(A){default:return;case Ut.velocityOverride:n.velocityOverride=e}}if(A>=k.lsbForControl1ModulationWheel&&A<=k.lsbForControl13EffectControl2&&A!==k.lsbForControl6DataEntry){let o=A-32;if(n.lockedControllers[o])return;n.midiControllers[o]=n.midiControllers[o]&16256|e&127,n.voices.forEach(g=>$A(g,n.midiControllers,1,o))}switch(A){case k.allNotesOff:this.stopAll(t);break;case k.allSoundOff:this.stopAll(t,!0);break;case k.bankSelect:let o=e;if(!s){switch(this.system){case"gm":p(`%cIgnoring the Bank Select (${e}), as the synth is in GM mode.`,a.info);return;case"xg":o===120||o===126||o===127?this.setDrums(t,!0):t%16!==RA&&this.setDrums(t,!1);break;case"gm2":o===120&&this.setDrums(t,!0)}n.drumChannel&&(o=128),o===128&&!n.drumChannel&&(o=XA(n))}te(n,o);break;case k.lsbForControl0BankSelect:this.system==="xg"?n.drumChannel||e!==127&&te(n,e):this.system==="gm2"&&te(n,e);break;case k.RPNLsb:n.RPValue=n.RPValue<<7|e,n.dataEntryState=wA.RPFine;break;case k.RPNMsb:n.RPValue=e,n.dataEntryState=wA.RPCoarse;break;case k.NRPNMsb:n.NRPCoarse=e,n.dataEntryState=wA.NRPCoarse;break;case k.NRPNLsb:n.NRPFine=e,n.dataEntryState=wA.NRPFine;break;case k.dataEntryMsb:this.dataEntryCoarse(t,e);break;case k.lsbForControl6DataEntry:this.dataEntryFine(t,e);break;case k.resetAllControllers:this.resetControllers(t);break;case k.sustainPedal:e>=64?n.holdPedal=!0:(n.holdPedal=!1,n.sustainedVoices.forEach(g=>{this.releaseVoice(g)}),n.sustainedVoices=[]);break;default:if(n.lockedControllers[A])return;n.midiControllers[A]=e<<7,n.voices.forEach(g=>$A(g,n.midiControllers,1,A));break}this.callEvent("controllerchange",{channel:t,controllerNumber:A,controllerValue:e})}function Un(t){this.midiVolume=t,this.setMasterPan(this.pan)}function Tn(t){this.masterGain=t*Kt,this.setMasterPan(this.pan)}function vn(t){this.pan=t,t=t/2+.5,this.panLeft=1-t,this.panRight=t}function Hn(t,A){A&&this.stopAll(t,!0),this.workletProcessorChannels[t].isMuted=A,this.sendChannelProperties(),this.callEvent("mutechannel",{channel:t,isMuted:A})}function Yn(t){this.workletProcessorChannels[t].lockGSNRPNParams=!0,this.workletProcessorChannels[t].channelVibrato.rate=0,this.workletProcessorChannels[t].channelVibrato.delay=0,this.workletProcessorChannels[t].channelVibrato.depth=0}function Jn(t,A,e,s){this.workletProcessorChannels[t].lockGSNRPNParams||(this.workletProcessorChannels[t].channelVibrato.rate=e,this.workletProcessorChannels[t].channelVibrato.delay=s,this.workletProcessorChannels[t].channelVibrato.depth=A)}function Pn(t,A){let e=this.workletProcessorChannels[t],s=()=>{e.channelVibrato.delay===0&&e.channelVibrato.rate===0&&e.channelVibrato.depth===0&&(e.channelVibrato.depth=50,e.channelVibrato.rate=8,e.channelVibrato.delay=.6)};switch(e.dataEntryState){default:case wA.Idle:break;case wA.NRPFine:if(this.system!=="gs"||e.lockGSNRPNParams)return;switch(e.NRPCoarse){default:if(A===64)return;U(`%cUnrecognized NRPN for %c${t}%c: %c(0x${e.NRPCoarse.toString(16).toUpperCase()} 0x${e.NRPFine.toString(16).toUpperCase()})%c data value: %c${A}`,a.warn,a.recognized,a.warn,a.unrecognized,a.warn,a.value);break;case 1:switch(e.NRPFine){default:if(A===64)return;U(`%cUnrecognized NRPN for %c${t}%c: %c(0x${e.NRPCoarse.toString(16)} 0x${e.NRPFine.toString(16)})%c data value: %c${A}`,a.warn,a.recognized,a.warn,a.unrecognized,a.warn,a.value);break;case 8:if(A===64)return;s(),e.channelVibrato.rate=A/64*8,p(`%cVibrato rate for %c${t}%c is now set to %c${A} = ${e.channelVibrato.rate}%cHz.`,a.info,a.recognized,a.info,a.value,a.info);break;case 9:if(A===64)return;s(),e.channelVibrato.depth=A/2,p(`%cVibrato depth for %c${t}%c is now set to %c${A} = ${e.channelVibrato.depth}%c cents range of detune.`,a.info,a.recognized,a.info,a.value,a.info);break;case 10:if(A===64)return;s(),e.channelVibrato.delay=A/64/3,p(`%cVibrato delay for %c${t}%c is now set to %c${A} = ${e.channelVibrato.delay}%c seconds.`,a.info,a.recognized,a.info,a.value,a.info);break;case 32:let g=A;this.controllerChange(t,k.brightness,A),p(`%cFilter cutoff for %c${t}%c is now set to %c${g}`,a.info,a.recognized,a.info,a.value)}break;case 24:let n=A-64;e.keyCentTuning[e.NRPFine]=n*100,p(`%cGS drum key tuning. MIDI note: %c${e.NRPFine}%c semitones: %c${n}`,a.info,a.recognized,a.info,a.value);break;case 29:let o=A;this.controllerChange(t,k.reverbDepth,o),p(`%cGS Drum reverb for %c${t}%c: %c${o}`,a.info,a.recognized,a.info,a.value);break}break;case wA.RPCoarse:case wA.RPFine:switch(e.RPValue){default:U(`%cUnrecognized RPN for %c${t}%c: %c(0x${e.RPValue.toString(16)})%c data value: %c${A}`,a.warn,a.recognized,a.warn,a.unrecognized,a.warn,a.value);break;case 0:e.midiControllers[dA+P.pitchWheelRange]=A<<7,p(`%cChannel ${t} bend range. Semitones: %c${A}`,a.info,a.value);break;case 2:this.setChannelTuningSemitones(t,A-64);break;case 1:this.setChannelTuning(t,A-64,!1);break;case 5:this.setModulationDepth(t,A*100);break;case 16383:this.resetParameters(t);break}}}function qn(t,A){let e=this.workletProcessorChannels[t];switch(e.dataEntryState){default:break;case wA.RPCoarse:case wA.RPFine:switch(e.RPValue){default:break;case 0:if(A===0)break;e.midiControllers[dA+P.pitchWheelRange]|=A;let s=(e.midiControllers[dA+P.pitchWheelRange]>>7)+A/127;p(`%cChannel ${t} bend range. Semitones: %c${s}`,a.info,a.value);break;case 1:let o=e.customControllers[hA.channelTuning]<<7|A;this.setChannelTuning(t,o*.01220703125);break;case 5:let i=e.customControllers[hA.modulationMultiplier]*50+A/128*100;this.setModulationDepth(t,i);break;case 16383:this.resetParameters(t);break}}}function Kn(t=!0){t&&p("%cResetting all controllers!",a.info),this.callEvent("allcontrollerreset",void 0);for(let A=0;A>7});if(this.workletProcessorChannels[A].lockedControllers[dA+P.pitchWheel]===!1){let s=this.workletProcessorChannels[A].midiControllers[dA+P.pitchWheel],n=s>>7,o=s&127;this.callEvent("pitchwheel",{channel:A,MSB:n,LSB:o})}}this.tunings=[],this.tunings=[];for(let A=0;127>A;A++)this.tunings.push([]);this.setMIDIVolume(1),this.system=At}function Vn(t){let A=this.workletProcessorChannels[t],e=A.lockedControllers.reduce((n,o,g)=>(o&&n.push(g),n),[]);A.channelOctaveTuning.fill(0),A.keyCentTuning.fill(0);for(let n=0;n>7}),A.midiControllers[n]=o}A.channelVibrato={rate:0,depth:0,delay:0},A.holdPedal=!1;let s=A.customControllers[hA.channelTransposeFine];A.customControllers.set(Lt),A.customControllers[hA.channelTransposeFine]=s,this.resetParameters(t)}function On(t){let A=this.workletProcessorChannels[t];A.NRPCoarse=0,A.NRPFine=0,A.RPValue=0,A.dataEntryState=wA.Idle}function Zn(){let t=4;for(let s of this.instruments)t+=s.instrumentZones.reduce((n,o)=>(o.generators=o.generators.filter(g=>g.generatorType!==r.sampleID&&g.generatorType!==r.keyRange&&g.generatorType!==r.velRange),(o.velRange.max!==127||o.velRange.min!==0)&&o.generators.unshift({generatorType:r.velRange,generatorValue:o.velRange.max<<8|Math.max(o.velRange.min,0)}),(o.keyRange.max!==127||o.keyRange.min!==0)&&o.generators.unshift({generatorType:r.keyRange,generatorValue:o.keyRange.max<<8|Math.max(o.keyRange.min,0)}),o.isGlobal||o.generators.push({generatorType:r.sampleID,generatorValue:this.samples.indexOf(o.sample)}),o.generators.length*4+n),0);let A=new b(t),e=0;for(let s of this.instruments)for(let n of s.instrumentZones){n.generatorZoneStartIndex=e;for(let o of n.generators)N(A,o.generatorType),N(A,o.generatorValue),e++}return V(A,0),gA(new oA("igen",A.length,A))}function Wn(t,A,e,s,n){let o=this.samples.map((h,d)=>{e&&h.compressSample(s,n);let Q=h.getRawData();return p(`%cEncoded sample %c${d}. ${h.sampleName}%c of %c${this.samples.length}`,a.info,a.recognized,a.info,a.recognized),Q}),g=this.samples.reduce((h,d,Q)=>h+o[Q].length+46,0),i=new b(g);this.samples.forEach((h,d)=>{let Q=o[d],l,c,f=Q.length;h.isCompressed?(l=i.currentIndex,c=l+Q.length):(l=i.currentIndex/2,c=l+Q.length/2,f+=46),t.push(l),i.set(Q,i.currentIndex),i.currentIndex+=f,A.push(c)});let E=gA(new oA("smpl",i.length,i),new b([115,100,116,97]));return gA(new oA("LIST",E.length,E))}function Xn(t,A){let s=new b(46*(this.samples.length+1));return this.samples.forEach((n,o)=>{yA(s,n.sampleName,20);let g=t[o];V(s,g);let i=A[o];V(s,i);let E=n.sampleLoopStartIndex+g,h=n.sampleLoopEndIndex+g;n.isCompressed&&(E-=g,h-=g),V(s,E),V(s,h),V(s,n.sampleRate),s[s.currentIndex++]=n.samplePitch,s[s.currentIndex++]=n.samplePitchCorrection,N(s,n.sampleLink),N(s,n.sampleType)}),yA(s,"EOS",46),gA(new oA("shdr",s.length,s))}function _n(){let t=10;for(let s of this.instruments)t+=s.instrumentZones.reduce((n,o)=>o.modulators.length*10+n,0);let A=new b(t),e=0;for(let s of this.instruments)for(let n of s.instrumentZones){n.modulatorZoneStartIndex=e;for(let o of n.modulators)N(A,o.sourceEnum),N(A,o.modulatorDestination),N(A,o.transformAmount),N(A,o.secondarySourceEnum),N(A,o.transformType),e++}return de(A,0,10),gA(new oA("imod",A.length,A))}function zn(){let t=this.instruments.reduce((o,g)=>g.instrumentZones.length*4+o,4),A=new b(t),e=0,s=0,n=0;for(let o of this.instruments){o.instrumentZoneIndex=e;for(let g of o.instrumentZones)g.zoneID=e,N(A,s),N(A,n),s+=g.generators.length,n+=g.modulators.length,e++}return N(A,s),N(A,n),gA(new oA("ibag",A.length,A))}function jn(){let t=this.instruments.length*22+22,A=new b(t),e=0,s=0;for(let n of this.instruments)yA(A,n.instrumentName,20),N(A,e),e+=n.instrumentZones.length,n.instrumentID=s,s++;return yA(A,"EOI",20),N(A,e),gA(new oA("inst",A.length,A))}function $n(){let t=4;for(let s of this.presets)t+=s.presetZones.reduce((n,o)=>(o.generators=o.generators.filter(g=>g.generatorType!==r.instrument&&g.generatorType!==r.keyRange&&g.generatorType!==r.velRange),(o.velRange.max!==127||o.velRange.min!==0)&&o.generators.unshift({generatorType:r.velRange,generatorValue:o.velRange.max<<8|Math.max(o.velRange.min,0)}),(o.keyRange.max!==127||o.keyRange.min!==0)&&o.generators.unshift({generatorType:r.keyRange,generatorValue:o.keyRange.max<<8|Math.max(o.keyRange.min,0)}),o.isGlobal||o.generators.push({generatorType:r.instrument,generatorValue:this.instruments.indexOf(o.instrument)}),o.generators.length*4+n),0);let A=new b(t),e=0;for(let s of this.presets)for(let n of s.presetZones){n.generatorZoneStartIndex=e;for(let o of n.generators)N(A,o.generatorType),N(A,o.generatorValue);e+=n.generators.length}return N(A,0),N(A,0),gA(new oA("pgen",A.length,A))}function Ao(){let t=10;for(let s of this.presets)t+=s.presetZones.reduce((n,o)=>o.modulators.length*10+n,0);let A=new b(t),e=0;for(let s of this.presets)for(let n of s.presetZones){n.modulatorZoneStartIndex=e;for(let o of n.modulators)N(A,o.sourceEnum),N(A,o.modulatorDestination),N(A,o.transformAmount),N(A,o.secondarySourceEnum),N(A,o.transformType),e++}return de(A,0,10),gA(new oA("pmod",A.length,A))}function eo(){let t=this.presets.reduce((o,g)=>g.presetZones.length*4+o,4),A=new b(t),e=0,s=0,n=0;for(let o of this.presets){o.presetZoneStartIndex=e;for(let g of o.presetZones)g.zoneID=e,N(A,s),N(A,n),s+=g.generators.length,n+=g.modulators.length,e++}return N(A,s),N(A,n),gA(new oA("pbag",A.length,A))}function to(){let t=this.presets.length*38+38,A=new b(t),e=0;for(let s of this.presets)yA(A,s.presetName,20),N(A,s.program),N(A,s.bank),N(A,e),V(A,s.library),V(A,s.genre),V(A,s.morphology),e+=s.presetZones.length;return yA(A,"EOP",20),N(A,0),N(A,0),N(A,e),V(A,0),V(A,0),V(A,0),gA(new oA("phdr",A.length,A))}var Cr={compress:!1,compressionQuality:.5,compressionFunction:void 0};function so(t=Cr){if(t.compress&&typeof t.compressionFunction!="function")throw new TypeError("No compression function supplied but compression enabled.");QA("%cSaving soundfont...",a.info),p(`%cCompression: %c${t?.compress||"false"}%c quality: %c${t?.compressionQuality||"none"}`,a.info,a.recognized,a.info,a.recognized),p("%cWriting INFO...",a.info);let A=[];this.soundFontInfo.ISFT="SpessaSynth",t?.compress&&(this.soundFontInfo.ifil="3.0");for(let[x,G]of Object.entries(this.soundFontInfo))if(x==="ifil"||x==="iver"){let I=parseInt(G.split(".")[0]),rA=parseInt(G.split(".")[1]),O=new b(4);N(O,I),N(O,rA),A.push(gA(new oA(x,4,O)))}else if(x==="DMOD")A.push(gA(new oA(x,G.length,G)));else{let I=new b(G.length);yA(I,G),A.push(gA(new oA(x,G.length,I)))}let e=cA([new b([73,78,70,79]),...A]),s=gA(new oA("LIST",e.length,e));p("%cWriting SDTA...",a.info);let n=[],o=[],g=Wn.call(this,n,o,t?.compress,t?.compressionQuality??.5,t.compressionFunction);p("%cWriting PDTA...",a.info),p("%cWriting SHDR...",a.info);let i=Xn.call(this,n,o);p("%cWriting IGEN...",a.info);let E=Zn.call(this);p("%cWriting IMOD...",a.info);let h=_n.call(this);p("%cWriting IBAG...",a.info);let d=zn.call(this);p("%cWriting INST...",a.info);let Q=jn.call(this),l=$n.call(this);p("%cWriting PMOD...",a.info);let c=Ao.call(this);p("%cWriting PBAG...",a.info);let f=eo.call(this);p("%cWriting PHDR...",a.info);let y=to.call(this),S=cA([new b([112,100,116,97]),y,f,c,l,Q,d,h,E,i]),w=gA(new oA("LIST",S.length,S));p("%cWriting the output file...",a.info);let H=cA([new b([115,102,98,107]),s,g,w]),R=gA(new oA("RIFF",H.length,H));return p(`%cSaved succesfully! Final file size: %c${R.length}`,a.info,a.recognized),K(),R}var Ue=class{velRange={min:-1,max:127};keyRange={min:-1,max:127};isGlobal=!1;generators=[];modulators=[];get hasKeyRange(){return this.keyRange.min!==-1}get hasVelRange(){return this.velRange.min!==-1}getGeneratorValue(A,e){return this.generators.find(s=>s.generatorType===A)?.generatorValue??e}};var OA=class extends Ue{sample=void 0;useCount=0;deleteZone(){this.useCount--,!this.isGlobal&&this.sample.useCount--}},ye=class extends Ue{instrument=void 0;deleteZone(){this.isGlobal||this.instrument.removeUseCount()}};var Er=new Set([r.velRange,r.keyRange,r.instrument,r.exclusiveClass,r.endOper,r.sampleModes,r.startloopAddrsOffset,r.startloopAddrsCoarseOffset,r.endloopAddrsOffset,r.endloopAddrsCoarseOffset,r.startAddrsOffset,r.startAddrsCoarseOffset,r.endAddrOffset,r.endAddrsCoarseOffset,r.initialAttenuation,r.fineTune,r.coarseTune,r.keyNumToVolEnvHold,r.keyNumToVolEnvDecay,r.keyNumToModEnvHold,r.keyNumToModEnvDecay]);function no(t,A=!0){function e(Q,l){Q.push(...l.filter(c=>!Q.find(f=>f.generatorType===c.generatorType)))}function s(Q,l){return{min:Math.max(Q.min,l.min),max:Math.min(Q.max,l.max)}}function n(Q,l){Q.push(...l.filter(c=>!Q.find(f=>X.isIdentical(c,f))))}let o=[],g=[],i=[],E={min:0,max:127},h={min:0,max:127},d=t.presetZones.find(Q=>Q.isGlobal);d&&(g.push(...d.generators),i.push(...d.modulators),E=d.keyRange,h=d.velRange);for(let Q of t.presetZones){if(Q.isGlobal)continue;let l=Q.keyRange;Q.hasKeyRange||(l=E);let c=Q.velRange;Q.hasVelRange||(c=h);let f=Q.generators.map(I=>new T(I.generatorType,I.generatorValue));e(f,g);let y=[...Q.modulators];n(y,i);let S=Q.instrument.instrumentZones,w=[],H=[],R={min:0,max:127},x={min:0,max:127},G=S.find(I=>I.isGlobal);G&&(w.push(...G.generators),H.push(...G.modulators),R=G.keyRange,x=G.velRange);for(let I of S){if(I.isGlobal)continue;let rA=I.keyRange;I.hasKeyRange||(rA=R);let O=I.velRange;if(I.hasVelRange||(O=x),rA=s(rA,l),O=s(O,c),rA.maxnew T(eA.generatorType,eA.generatorValue));e(AA,w);let $=[...I.modulators];n($,H);let IA=[...$];for(let eA of y){let lA=IA.findIndex(LA=>X.isIdentical(eA,LA));lA!==-1?IA[lA]=IA[lA].sumTransform(eA):IA.push(eA)}let nA=AA.map(eA=>new T(eA.generatorType,eA.generatorValue));for(let eA of f){if(eA.generatorType===r.velRange||eA.generatorType===r.keyRange||eA.generatorType===r.instrument||eA.generatorType===r.endOper||eA.generatorType===r.sampleModes)continue;let lA=AA.findIndex(LA=>LA.generatorType===eA.generatorType);if(lA!==-1){let LA=nA[lA].generatorValue+eA.generatorValue;nA[lA]=new T(eA.generatorType,LA)}else{let LA=J[eA.generatorType].def+eA.generatorValue;nA.push(new T(eA.generatorType,LA))}}nA=nA.filter(eA=>eA.generatorType!==r.sampleID&&eA.generatorType!==r.keyRange&&eA.generatorType!==r.velRange&&eA.generatorType!==r.endOper&&eA.generatorType!==r.instrument&&eA.generatorValue!==J[eA.generatorType].def);let iA=new OA;iA.keyRange=rA,iA.velRange=O,iA.keyRange.min===0&&iA.keyRange.max===127&&(iA.keyRange.min=-1),iA.velRange.min===0&&iA.velRange.max===127&&(iA.velRange.min=-1),iA.isGlobal=!1,iA.sample=I.sample,iA.generators=nA,iA.modulators=IA,o.push(iA)}}if(A){let Q=new OA;Q.isGlobal=!0;for(let f=0;f<58;f++){if(Er.has(f))continue;let y={},S=J[f]?.def||0;y[S]=0;for(let w of o){let H=w.generators.find(G=>G.generatorType===f);if(H){let G=H.generatorValue;y[G]===void 0?y[G]=1:y[G]++}else y[S]++;let R;switch(f){default:continue;case r.decayVolEnv:R=r.keyNumToVolEnvDecay;break;case r.holdVolEnv:R=r.keyNumToVolEnvHold;break;case r.decayModEnv:R=r.keyNumToModEnvDecay;break;case r.holdModEnv:R=r.keyNumToModEnvHold}if(w.generators.find(G=>G.generatorType===R)!==void 0){y={};break}}if(Object.keys(y).length>0){let w=Object.entries(y).reduce((R,x)=>R[1]{let x=R.generators.findIndex(G=>G.generatorType===f);x!==-1?R.generators[x].generatorValue===H&&R.generators.splice(x,1):H!==S&&R.generators.push(new T(f,S))})}}let c=o.find(f=>!f.isGlobal).modulators.map(f=>X.copy(f));for(let f of c){let y=!0;for(let S of o){if(S.isGlobal||!y)continue;S.modulators.find(H=>X.isIdentical(H,f))||(y=!1)}if(y===!0){Q.modulators.push(X.copy(f));for(let S of o){let w=S.modulators.find(H=>X.isIdentical(H,f));w.transformAmount===f.transformAmount&&S.modulators.splice(S.modulators.indexOf(w),1)}}}o.splice(0,0,Q)}return o}var oo=20;function at(t,A,e,s,n,o,g){let i=g===0?0:1,E=new b(oo+i*16);V(E,oo),N(E,A),N(E,e);let h=s*.4,d=Math.floor(h*-65536);V(E,d),V(E,0);let Q=o-n,l=0;switch(g){default:case 0:i=0;break;case 1:l=0,i=1;break;case 3:l=1,i=1}return V(E,i),i===1&&(V(E,16),V(E,l),V(E,n),V(E,Q)),tA("wsmp",E)}var v={none:0,modLfo:1,velocity:2,keyNum:3,volEnv:4,modEnv:5,pitchWheel:6,polyPressure:7,channelPressure:8,vibratoLfo:9,modulationWheel:129,volume:135,pan:138,expression:139,chorus:219,reverb:221,pitchWheelRange:256,fineTune:257,coarseTune:258};var D={none:0,gain:1,reserved:2,pitch:3,pan:4,keyNum:5,chorusSend:128,reverbSend:129,modLfoFreq:260,modLfoDelay:261,vibLfoFreq:276,vibLfoDelay:277,volEnvAttack:518,volEnvDecay:519,volEnvRelease:521,volEnvSustain:522,volEnvDelay:523,volEnvHold:524,modEnvAttack:778,modEnvDecay:779,modEnvRelease:781,modEnvSustain:782,modEnvDelay:783,modEnvHold:784,filterCutoff:1280,filterQ:1281};var Te=class{source;control;destination;scale;transform;constructor(A,e,s,n,o){this.source=A,this.control=e,this.destination=s,this.scale=n,this.transform=o}writeArticulator(){let A=new b(12);return N(A,this.source),N(A,this.control),N(A,this.destination),N(A,this.transform),V(A,this.scale<<16),A}};function ro(t,A){if(t)switch(A){default:return;case k.modulationWheel:return v.modulationWheel;case k.mainVolume:return v.volume;case k.pan:return v.pan;case k.expressionController:return v.expression;case k.chorusDepth:return v.chorus;case k.reverbDepth:return v.reverb}else switch(A){default:return;case P.noteOnKeyNum:return v.keyNum;case P.noteOnVelocity:return v.velocity;case P.noController:return v.none;case P.polyPressure:return v.polyPressure;case P.channelPressure:return v.channelPressure;case P.pitchWheel:return v.pitchWheel;case P.pitchWheelRange:return v.pitchWheelRange}}function io(t,A){switch(t){default:return;case r.initialAttenuation:return{dest:D.gain,amount:-A};case r.fineTune:return D.pitch;case r.pan:return D.pan;case r.keyNum:return D.keyNum;case r.reverbEffectsSend:return D.reverbSend;case r.chorusEffectsSend:return D.chorusSend;case r.freqModLFO:return D.modLfoFreq;case r.delayModLFO:return D.modLfoDelay;case r.delayVibLFO:return D.vibLfoDelay;case r.freqVibLFO:return D.vibLfoFreq;case r.delayVolEnv:return D.volEnvDelay;case r.attackVolEnv:return D.volEnvAttack;case r.holdVolEnv:return D.volEnvHold;case r.decayVolEnv:return D.volEnvDecay;case r.sustainVolEnv:return{dest:D.volEnvSustain,amount:1e3-A};case r.releaseVolEnv:return D.volEnvRelease;case r.delayModEnv:return D.modEnvDelay;case r.attackModEnv:return D.modEnvAttack;case r.holdModEnv:return D.modEnvHold;case r.decayModEnv:return D.modEnvDecay;case r.sustainModEnv:return{dest:D.modEnvSustain,amount:1e3-A};case r.releaseModEnv:return D.modEnvRelease;case r.initialFilterFc:return D.filterCutoff;case r.initialFilterQ:return D.filterQ}}function ao(t,A){switch(t){default:return;case r.modEnvToFilterFc:return{source:v.modEnv,dest:D.filterCutoff,amt:A,isBipolar:!1};case r.modEnvToPitch:return{source:v.modEnv,dest:D.pitch,amt:A,isBipolar:!1};case r.modLfoToFilterFc:return{source:v.modLfo,dest:D.filterCutoff,amt:A,isBipolar:!0};case r.modLfoToVolume:return{source:v.modLfo,dest:D.gain,amt:A,isBipolar:!0};case r.modLfoToPitch:return{source:v.modLfo,dest:D.pitch,amt:A,isBipolar:!0};case r.vibLfoToPitch:return{source:v.vibratoLfo,dest:D.pitch,amt:A,isBipolar:!0};case r.keyNumToVolEnvHold:return{source:v.keyNum,dest:D.volEnvHold,amt:A,isBipolar:!0};case r.keyNumToVolEnvDecay:return{source:v.keyNum,dest:D.volEnvDecay,amt:A,isBipolar:!0};case r.keyNumToModEnvHold:return{source:v.keyNum,dest:D.modEnvHold,amt:A,isBipolar:!0};case r.keyNumToModEnvDecay:return{source:v.keyNum,dest:D.modEnvDecay,amt:A,isBipolar:!0};case r.scaleTuning:return{source:v.keyNum,dest:D.pitch,amt:A*128,isBipolar:!1}}}function go(t){let A=io(t.generatorType,t.generatorValue),e=A,s=0,n=t.generatorValue;A?.amount!==void 0&&(n=A.amount,e=A.dest);let o=ao(t.generatorType,t.generatorValue);if(o!==void 0)n=o.amt,e=o.dest,s=o.source;else if(e===void 0){U(`Invalid generator type: ${t.generatorType}`);return}return new Te(s,0,e,n,0)}function Io(t){if(t.transformType!==0){U("Other transform types are not supported.");return}let A=ro(t.sourceUsesCC,t.sourceIndex),e=t.sourceCurveType,s=t.sourcePolarity,n=t.sourceDirection;if(A===void 0){U(`Invalid source: ${t.sourceIndex}, CC: ${t.sourceUsesCC}`);return}let o=ro(t.secSrcUsesCC,t.secSrcIndex),g=t.secSrcCurveType,i=t.secSrcPolarity,E=t.secSrcDirection;if(o===void 0){U(`Invalid secondary source: ${t.secSrcIndex}, CC: ${t.secSrcUsesCC}`);return}let h=io(t.modulatorDestination,t.transformAmount),d=h,Q=t.transformAmount;h?.dest!==void 0&&(d=h.dest,Q=h.amount);let l=ao(t.modulatorDestination,t.transformAmount);if(l!==void 0)Q=l.amt,o=A,g=e,i=s,E=n,e=uA.linear,s=l.isBipolar?1:0,n=0,A=l.source,d=l.dest;else if(d===void 0){U(`Invalid destination: ${t.modulatorDestination}`);return}let c=0;return c|=g<<4,c|=i<<8,c|=E<<9,c|=e<<10,c|=s<<14,c|=n<<15,new Te(A,o,d,Q,c)}var Br=new Set([r.sampleModes,r.initialAttenuation,r.keyRange,r.velRange,r.sampleID,r.fineTune,r.coarseTune,r.startAddrsOffset,r.startAddrsCoarseOffset,r.endAddrOffset,r.endAddrsCoarseOffset,r.startloopAddrsOffset,r.startloopAddrsCoarseOffset,r.endloopAddrsOffset,r.endloopAddrsCoarseOffset,r.overridingRootKey,r.exclusiveClass]);function gt(t){for(let o=0;of.generatorType===i);if(E===void 0)continue;let h=g.generatorValue*-128,d=60/128*h,Q=E.generatorValue-d,l=t.generators.indexOf(g),c=t.generators.indexOf(E);t.generators[c]=new T(i,Q,!1),t.generators[l]=new T(g.generatorType,h,!1)}let A=t.generators.reduce((o,g)=>{if(Br.has(g.generatorType))return o;let i=go(g);return i!==void 0?(o.push(i),p("%cSucceeded converting to DLS Articulator!",a.recognized)):U("Failed converting to DLS Articulator!"),o},[]),e=t.modulators.reduce((o,g)=>{let i=Io(g);return i!==void 0?(o.push(i),p("%cSucceeded converting to DLS Articulator!",a.recognized)):U("Failed converting to DLS Articulator!"),o},[]);A.push(...e);let s=new b(8);V(s,8),V(s,A.length);let n=A.map(o=>o.writeArticulator());return tA("art2",cA([s,...n]))}function Co(t,A){let e=new b(14);N(e,Math.max(t.keyRange.min,0)),N(e,t.keyRange.max),N(e,Math.max(t.velRange.min,0)),N(e,t.velRange.max),N(e,0);let s=t.getGeneratorValue(r.exclusiveClass,0);N(e,s),N(e,0);let n=tA("rgnh",e),o=t.getGeneratorValue(r.overridingRootKey,t.sample.samplePitch);t.getGeneratorValue(r.scaleTuning,A.getGeneratorValue(r.scaleTuning,100))===0&&t.keyRange.max-t.keyRange.min===0&&(o=t.keyRange.min);let i=at(t.sample,o,t.getGeneratorValue(r.fineTune,0)+t.getGeneratorValue(r.coarseTune,0)*100+t.sample.samplePitchCorrection,t.getGeneratorValue(r.initialAttenuation,0),t.sample.sampleLoopStartIndex+t.getGeneratorValue(r.startloopAddrsOffset,0)+t.getGeneratorValue(r.startloopAddrsCoarseOffset,0)*32768,t.sample.sampleLoopEndIndex+t.getGeneratorValue(r.endloopAddrsOffset,0)+t.getGeneratorValue(r.endloopAddrsCoarseOffset,0)*32768,t.getGeneratorValue(r.sampleModes,0)),E=new b(12);N(E,0),N(E,0);let h=0;switch(t.sample.sampleType){default:case 1:case 4:h=0;break;case 2:h=1}V(E,h),V(E,this.samples.indexOf(t.sample));let d=tA("wlnk",E),Q=gt(t),l=tA("lar2",Q,!1,!0);return tA("rgn2",cA([n,i,d,l]),!1,!0)}function Eo(t){QA(`%cWriting %c${t.presetName}%c...`,a.info,a.recognized,a.info);let A=no(t),e=A.reduce((l,c)=>c.isGlobal?l:l+1,0),s=new b(12);V(s,e);let n=(t.bank&127)<<8;t.bank===128&&(n|=1<<31),V(s,n),V(s,t.program&127);let o=tA("insh",s),g=new b(0),i=A.find(l=>l.isGlobal===!0);if(i){let l=gt(i);g=tA("lar2",l,!1,!0)}let E=cA(A.reduce((l,c)=>(c.isGlobal||l.push(Co.apply(this,[c,i])),l),[])),h=tA("lrgn",E,!1,!0),d=tA("INAM",ge(t.presetName)),Q=tA("INFO",d,!1,!0);return K(),tA("ins ",cA([o,h,g,Q]),!1,!0)}function Bo(){let t=cA(this.presets.map(A=>Eo.apply(this,[A])));return tA("lins",t,!1,!0)}function ho(t){let A=new b(18);N(A,1),N(A,1),V(A,t.sampleRate),V(A,t.sampleRate*2),N(A,2),N(A,16);let e=tA("fmt ",A),s=at(t,t.samplePitch,t.samplePitchCorrection,0,t.sampleLoopStartIndex,t.sampleLoopEndIndex,1),n=t.getAudioData(),o;if(t.isCompressed){let E=new Int16Array(n.length);for(let h=0;h{let n=ho(s);return A.push(t),t+=n.length,n});return{data:tA("wvpl",cA(e),!1,!0),indexes:A}}function lo(){QA("%cSaving DLS...",a.info);let t=new b(4);V(t,this.presets.length);let A=tA("colh",t);QA("%cWriting instruments...",a.info);let e=Bo.apply(this);p("%cSuccess!",a.recognized),K(),QA("%cWriting WAVE samples...",a.info);let s=co.apply(this),n=s.data,o=s.indexes;p("%cSucceeded!",a.recognized),K();let g=new b(8+4*o.length);V(g,8),V(g,o.length);for(let Q of o)V(g,Q);let i=tA("ptbl",g);this.soundFontInfo.ICMT=(this.soundFontInfo.ICMT||"Soundfont")+` -Converted from SF2 to DLS using SpessaSynth`,this.soundFontInfo.ISFT="SpessaSynth";let E=[];for(let[Q,l]of Object.entries(this.soundFontInfo))Q!=="ICMT"&&Q!=="INAM"&&Q!=="ICRD"&&Q!=="IENG"&&Q!=="ICOP"&&Q!=="ISFT"&&Q!=="ISBJ"||E.push(tA(Q,ge(l)));let h=tA("INFO",cA(E),!1,!0),d=new b(A.length+e.length+i.length+n.length+h.length+4);return yA(d,"DLS "),d.set(cA([A,e,i,n,h]),4),p("%cSaved succesfully!",a.recognized),K(),tA("RIFF",d)}var oe=class t{constructor(A=void 0){this.soundFontInfo={},this.presets=[],this.samples=[],this.instruments=[],this.defaultModulators=Xe.map(e=>X.copy(e)),A?.presets&&(this.presets.push(...A.presets),this.soundFontInfo=A.info)}static mergeSoundfonts(...A){let e=A.shift(),s=e.presets;for(;A.length;)A.shift().presets.forEach(o=>{s.find(g=>g.bank===o.bank&&g.program===o.program)===void 0&&s.push(o)});return new t({presets:s,info:e.soundFontInfo})}removeUnusedElements(){this.instruments.forEach(A=>{A.useCount<1&&A.instrumentZones.forEach(e=>{e.isGlobal||e.sample.useCount--})}),this.instruments=this.instruments.filter(A=>A.useCount>0),this.samples=this.samples.filter(A=>A.useCount>0)}deleteInstrument(A){if(A.useCount>0)throw new Error(`Cannot delete an instrument that has ${A.useCount} usages.`);this.instruments.splice(this.instruments.indexOf(A),1),A.deleteInstrument(),this.removeUnusedElements()}deletePreset(A){A.deletePreset(),this.presets.splice(this.presets.indexOf(A),1),this.removeUnusedElements()}deleteSample(A){if(A.useCount>0)throw new Error(`Cannot delete sample that has ${A.useCount} usages.`);this.samples.splice(this.samples.indexOf(A),1),this.removeUnusedElements()}setSampleIDOffset(A){this.presets.forEach(e=>e.sampleIDOffset=A)}getPresetNoFallback(A,e,s=!1){let n=this.presets.find(o=>o.bank===A&&o.program===e);if(n)return n;if(s!==!1)return A===128?this.presets.find(o=>o.bank===128):this.presets.find(o=>o.program===e)}getPreset(A,e){let s=this.presets.find(n=>n.bank===A&&n.program===e);return s||(A===128?(s=this.presets.find(n=>n.bank===128&&n.program===e),s||(s=this.presets.find(n=>n.bank===128))):s=this.presets.find(n=>n.program===e&&n.bank!==128),s&&U(`%cPreset ${A}.${e} not found. Replaced with %c${s.presetName} (${s.bank}.${s.program})`,a.warn,a.recognized)),s||(U(`Preset ${e} not found. Defaulting to`,this.presets[0].presetName),s=this.presets[0]),s}getPresetByName(A){let e=this.presets.find(s=>s.presetName===A);return e||(U("Preset not found. Defaulting to:",this.presets[0].presetName),e=this.presets[0]),e}parsingError(A){throw new Error(`SF parsing error: ${A} The file may be corrupted.`)}destroySoundfont(){delete this.presets,delete this.instruments,delete this.samples}};oe.prototype.write=so;oe.prototype.writeDLS=lo;function Qo(t){QA("%cLoading instruments...",a.info);for(let A=0;AA.deleteZone()),this.presetZones.length=0}deleteZone(A){this.presetZones[A].deleteZone(),this.presetZones.splice(A,1)}preload(A,e){for(let s=A;s{o.sample.isSampleLoaded||o.sample.getAudioData()})}preloadSpecific(A,e){this.getSamplesAndGenerators(A,e).forEach(s=>{s.sample.isSampleLoaded||s.sample.getAudioData()})}getSamplesAndGenerators(A,e){let s=this.foundSamplesAndGenerators[A][e];if(s)return s;if(this.presetZones.length<1)return[];function n(c,f){return f>=c.min&&f<=c.max}function o(c,f){c.push(...f.filter(y=>!c.find(S=>S.generatorType===y.generatorType)))}function g(c,f){c.push(...f.filter(y=>!c.find(S=>X.isIdentical(y,S))))}let i=[],E=this.presetZones[0].isGlobal?[...this.presetZones[0].generators]:[],h=this.presetZones[0].isGlobal?[...this.presetZones[0].modulators]:[],d=this.presetZones[0].isGlobal?this.presetZones[0].keyRange:{min:0,max:127},Q=this.presetZones[0].isGlobal?this.presetZones[0].velRange:{min:0,max:127};return this.presetZones.filter(c=>n(c.hasKeyRange?c.keyRange:d,A)&&n(c.hasVelRange?c.velRange:Q,e)&&!c.isGlobal).forEach(c=>{if(c.instrument.instrumentZones.length<1)return;let f=c.generators,y=c.modulators,S=c.instrument.instrumentZones[0],w=S.isGlobal?[...S.generators]:[],H=S.isGlobal?[...S.modulators]:[],R=S.isGlobal?S.keyRange:{min:0,max:127},x=S.isGlobal?S.velRange:{min:0,max:127};c.instrument.instrumentZones.filter(I=>n(I.hasKeyRange?I.keyRange:R,A)&&n(I.hasVelRange?I.velRange:x,e)&&!I.isGlobal).forEach(I=>{let rA=[...I.generators],O=[...I.modulators];o(f,E),o(rA,w),g(y,h),g(O,H),g(O,this.defaultModulators);let AA=[...O];for(let $=0;$X.isIdentical(IA,iA));nA!==-1?AA[nA]=AA[nA].sumTransform(IA):AA.push(IA)}i.push({instrumentGenerators:rA,presetGenerators:f,modulators:AA,sample:I.sample,sampleID:I.generators.find($=>$.generatorType===r.sampleID).generatorValue})})}),this.foundSamplesAndGenerators[A][e]=i,i}};var De=class{constructor(){this.instrumentName="",this.instrumentZones=[],this._useCount=0}get useCount(){return this._useCount}addUseCount(){this._useCount++,this.instrumentZones.forEach(A=>A.useCount++)}removeUseCount(){this._useCount--;for(let A=0;AA.deleteZone()),this.instrumentZones.length=0}safeDeleteZone(A){return this.instrumentZones[A].useCount--,this.instrumentZones[A].useCount<1?(this.deleteZone(A),!0):!1}deleteZone(A){this.instrumentZones[A].deleteZone(),this.instrumentZones.splice(A,1)}};var It=class extends Se{constructor(A,e){super(Xe),this.program=e&127,this.bank=A>>8&127,A>>31&&(this.bank=128),this.DLSInstrument=new De,this.DLSInstrument.addUseCount();let n=new ye;n.instrument=this.DLSInstrument,this.presetZones=[n]}};function uo(t){this.verifyHeader(t,"LIST"),this.verifyText(_(t.chunkData,4),"ins ");let A=[];for(;t.chunkData.length>t.chunkData.currentIndex;)A.push(z(t.chunkData));let e=A.find(c=>c.header==="insh");if(!e)throw K(),new Error("No instrument header!");let s=F(e.chunkData,4),n=F(e.chunkData,4),o=F(e.chunkData,4),g=new It(n,o),i="unnamedPreset",E=GA(A,"INFO");if(E){let c=z(E.chunkData);for(;c.header!=="INAM";)c=z(E.chunkData);i=_(c.chunkData,c.chunkData.length).trim()}g.presetName=i,g.DLSInstrument.instrumentName=i,ae(`%cParsing %c"${i}"%c...`,a.info,a.recognized,a.info);let h=GA(A,"lrgn");if(!h)throw K(),new Error("No region list!");let d=new OA;d.isGlobal=!0;let Q=GA(A,"lart"),l=GA(A,"lar2");(l!==void 0||Q!==void 0)&&this.readLart(Q,l,d),d.generators=d.generators.filter(c=>c.generatorValue!==J[c.generatorType].def),d.modulators.find(c=>c.modulatorDestination===r.reverbEffectsSend)===void 0&&d.modulators.push(new X({srcEnum:219,dest:r.reverbEffectsSend,amt:1e3,secSrcEnum:0,transform:0})),d.modulators.find(c=>c.modulatorDestination===r.chorusEffectsSend)===void 0&&d.modulators.push(new X({srcEnum:221,dest:r.chorusEffectsSend,amt:1e3,secSrcEnum:0,transform:0})),g.DLSInstrument.instrumentZones.push(d);for(let c=0;c>10&15;H===uA.linear&&w!==uA.linear&&(H=w);let R=s>>14&1,x=s>>15&1;g===r.initialAttenuation&&n<0&&(x=1),l=qA(H,R,x,i.isCC,i.enum)}let c=s>>4&15,f=s>>8&1,y=s>>9&1,S=qA(c,f,y,Q.isCC,Q.enum);if(E){let w=S;S=l,l=w}return new X({srcEnum:l,secSrcEnum:S,dest:g,transform:0,amt:d})}function Vt(t,A){let e=t.chunkData,s=[],n=[];F(e,4);let o=F(e,4);for(let g=0;g>16;if(i===0&&E===0&&d===0){let c;switch(h){case D.pan:c=new T(r.pan,l);break;case D.gain:c=new T(r.initialAttenuation,-l*10/.4);break;case D.filterCutoff:c=new T(r.initialFilterFc,l);break;case D.filterQ:c=new T(r.initialFilterQ,l);break;case D.modLfoFreq:c=new T(r.freqModLFO,l);break;case D.modLfoDelay:c=new T(r.delayModLFO,l);break;case D.vibLfoFreq:c=new T(r.freqVibLFO,l);break;case D.vibLfoDelay:c=new T(r.delayVibLFO,l);break;case D.volEnvDelay:c=new T(r.delayVolEnv,l);break;case D.volEnvAttack:c=new T(r.attackVolEnv,l);break;case D.volEnvHold:c=new T(r.holdVolEnv,l,!1);break;case D.volEnvDecay:c=new T(r.decayVolEnv,l,!1);break;case D.volEnvRelease:c=new T(r.releaseVolEnv,l);break;case D.volEnvSustain:let f=1e3-l;c=new T(r.sustainVolEnv,f);break;case D.modEnvDelay:c=new T(r.delayModEnv,l);break;case D.modEnvAttack:c=new T(r.attackModEnv,l);break;case D.modEnvHold:c=new T(r.holdModEnv,l,!1);break;case D.modEnvDecay:c=new T(r.decayModEnv,l,!1);break;case D.modEnvRelease:c=new T(r.releaseModEnv,l);break;case D.modEnvSustain:let y=1e3-l;c=new T(r.sustainModEnv,y);break;case D.reverbSend:c=new T(r.reverbEffectsSend,l);break;case D.chorusSend:c=new T(r.chorusEffectsSend,l);break;case D.pitch:let S=Math.floor(l/100),w=Math.floor(l-S*100);c=new T(r.fineTune,w),s.push(new T(r.coarseTune,S));break}c&&s.push(c)}else{let c=!0;if(E===v.none)if(i===v.modLfo&&h===D.pitch)s.push(new T(r.modLfoToPitch,l));else if(i===v.modLfo&&h===D.gain)s.push(new T(r.modLfoToVolume,l));else if(i===v.modLfo&&h===D.filterCutoff)s.push(new T(r.modLfoToFilterFc,l));else if(i===v.vibratoLfo&&h===D.pitch)s.push(new T(r.vibLfoToPitch,l));else if(i===v.modEnv&&h===D.pitch)s.push(new T(r.modEnvToPitch,l));else if(i===v.modEnv&&h===D.filterCutoff)s.push(new T(r.modEnvToFilterFc,l));else if(i===v.keyNum&&h===D.pitch)s.push(new T(r.scaleTuning,l/128));else if(i===v.keyNum&&h===D.volEnvHold){s.push(new T(r.keyNumToVolEnvHold,l/-128));let f=Math.round(60/128*l);s.forEach(y=>{y.generatorType===r.holdVolEnv&&(y.generatorValue+=f)})}else if(i===v.keyNum&&h===D.volEnvDecay){s.push(new T(r.keyNumToVolEnvDecay,l/-128));let f=Math.round(60/128*l);s.forEach(y=>{y.generatorType===r.decayVolEnv&&(y.generatorValue+=f)})}else if(i===v.keyNum&&h===D.modEnvHold){s.push(new T(r.keyNumToModEnvHold,l/-128));let f=Math.round(60/128*l);s.forEach(y=>{y.generatorType===r.holdModEnv&&(y.generatorValue+=f)})}else if(i===v.keyNum&&h===D.modEnvDecay){s.push(new T(r.keyNumToModEnvDecay,l/-128));let f=Math.round(60/128*l);s.forEach(y=>{y.generatorType===r.decayModEnv&&(y.generatorValue+=f)})}else c=!1;else c=!1;if(c===!1){let f=mo(i,E,h,d,l);f?(n.push(f),p("%cSucceeded converting to SF2 Modulator!",a.recognized)):U("Failed converting to SF2 Modulator!")}}}return A&&n.push(new X({srcEnum:129,dest:r.vibLfoToPitch,amt:0,secSrcEnum:0,transform:0}),new X({srcEnum:13,dest:r.vibLfoToPitch,amt:0,secSrcEnum:0,transform:0})),{modulators:n,generators:s}}function po(t,A,e){if(t)for(;t.chunkData.currentIndext.chunkData.currentIndex;)A.push(z(t.chunkData));let e=A.find(O=>O.header==="rgnh"),s=F(e.chunkData,2),n=F(e.chunkData,2),o=F(e.chunkData,2),g=F(e.chunkData,2),i=new Ct({min:s,max:n},{min:o,max:g});F(e.chunkData,2);let E=F(e.chunkData,2);E!==0&&i.generators.push(new T(r.exclusiveClass,E));let h=GA(A,"lart"),d=GA(A,"lar2");this.readLart(h,d,i),i.isGlobal=!1;let Q=A.find(O=>O.header==="wsmp");F(Q.chunkData,4);let l=F(Q.chunkData,2),c=ne(Q.chunkData[Q.chunkData.currentIndex++],Q.chunkData[Q.chunkData.currentIndex++]),y=(F(Q.chunkData,4)|0)/-655360;F(Q.chunkData,4);let S=F(Q.chunkData,4),w,H={start:0,end:0};if(S===0)w=0;else{F(Q.chunkData,4),F(Q.chunkData,4)===0?w=1:w=3,H.start=F(Q.chunkData,4);let AA=F(Q.chunkData,4);H.end=H.start+AA}let R=A.find(O=>O.header==="wlnk");if(R===void 0)return;F(R.chunkData,2),F(R.chunkData,2),F(R.chunkData,4);let x=F(R.chunkData,4),G=this.samples[x];if(G===void 0)throw new Error("Invalid sample ID!");let rA=(y||G.sampleDbAttenuation)*10/.4;return i.setWavesample(rA,w,H,l,G,x,c),i}var ke=class{constructor(A,e,s,n,o,g,i,E){this.sampleName=A,this.sampleRate=e,this.samplePitch=s,this.samplePitchCorrection=n,this.sampleLink=o,this.sampleType=g,this.sampleLoopStartIndex=i,this.sampleLoopEndIndex=E,this.isCompressed=(g&16)>0,this.compressedData=void 0,this.useCount=0}getRawData(){let A=new Error("Not implemented");throw A.name="NotImplementedError",A}compressSample(A,e){if(!this.isCompressed)try{this.compressedData=e([this.getAudioData()],1,this.sampleRate,A),this.sampleType|=16,this.isCompressed=!0}catch{U(`Failed to compress ${this.sampleName}. Leaving as uncompressed!`),this.isCompressed=!1,this.compressedData=void 0,this.sampleType&=-17}}getAudioData(){let A=new Error("Not implemented");throw A.name="NotImplementedError",A}};var Et=class extends ke{sampleDbAttenuation;sampleData;constructor(A,e,s,n,o,g,i,E){super(A,e,s,n,0,1,o,g),this.sampleData=i,this.sampleDbAttenuation=E}getAudioData(){return this.sampleData}getRawData(){if(this.isCompressed){if(!this.compressedData)throw new Error("Compressed but no data?? This shouldn't happen!!");return this.compressedData}let A=new Uint8Array(this.sampleData.length*2);for(let e=0;e>8&255}return A}};var So={PCM:1,ALAW:6};function lr(t,A){let e=Math.pow(2,A*8-1),s=Math.pow(2,A*8),n,o=!1;A===1?(n=255,o=!0):n=e;let g=t.size/A,i=new Float32Array(g);for(let E=0;E=e&&(h-=s),i[E]=h/n)}return i}function Qr(t,A){let e=t.size/A,s=new Float32Array(e);for(let n=0;n>4,E=g&15;i>0&&(E+=16),E=(E<<4)+8,i>1&&(E=E<127?E:-E;s[n]=h/32678}return s}function Do(t){QA("%cLoading Wave samples...",a.recognized);let A=0;for(;t.chunkData.currentIndexG.header==="fmt ");if(!n)throw new Error("No fmt chunk in the wave file!");let o=F(n.chunkData,2),g=F(n.chunkData,2);if(g!==1)throw new Error(`Only mono samples are supported. Fmt reports ${g} channels`);let i=F(n.chunkData,4);F(n.chunkData,4),F(n.chunkData,2);let h=F(n.chunkData,2)/8,d=!1,Q=s.find(G=>G.header==="data");Q||this.parsingError("No data chunk in the WAVE chunk!");let l;switch(o){default:d=!0,l=new Float32Array(Q.size/h);break;case So.PCM:l=lr(Q,h);break;case So.ALAW:l=Qr(Q,h);break}let c=GA(s,"INFO"),f=`Unnamed ${A}`;if(c){let G=z(c.chunkData);for(;G.header!=="INAM"&&c.chunkData.currentIndexG.header==="wsmp");if(x){F(x.chunkData,4),y=F(x.chunkData,2),S=ne(x.chunkData[x.chunkData.currentIndex++],x.chunkData[x.chunkData.currentIndex++]);let G=Math.trunc(S/100);if(y+=G,S-=G*100,R=(F(x.chunkData,4)|0)/-655360,F(x.chunkData,4),F(x.chunkData,4)===1){F(x.chunkData,8),w=F(x.chunkData,4);let O=F(x.chunkData,4);H=w+O}}else U("No wsmp chunk in wave... using sane defaults.");d&&console.error(`Failed to load '${f}': Unsupported format: (${o})`),this.samples.push(new Et(f,i,y,S,w,H,l,R)),A++,p(`%cLoaded sample %c${f}`,a.info,a.recognized)}K()}var Ae=class extends oe{constructor(A){super(),this.dataArray=new b(A),ae("%cParsing DLS...",a.info),this.dataArray||(K(),this.parsingError("No data provided!"));let e=z(this.dataArray,!1);this.verifyHeader(e,"riff"),this.verifyText(_(this.dataArray,4).toLowerCase(),"dls ");let s=[];for(;this.dataArray.currentIndex(w.messageStatusByte&240)===M.noteOn);S&&c.push(S.ticks)}this.firstNoteOn=Math.min(...c),p(`%cFirst note-on detected at: %c${this.firstNoteOn}%c ticks!`,a.info,a.recognized,a.info),d!==null&&Q===null?(d=this.firstNoteOn,Q=this.lastVoiceEventTick):(d===null&&(d=this.firstNoteOn),(Q===null||Q===0)&&(Q=this.lastVoiceEventTick)),this.loop={start:d,end:Q},p(`%cLoop points: start: %c${this.loop.start}%c end: %c${this.loop.end}`,a.info,a.recognized,a.info,a.recognized);let f=0;for(let y of this.midiPorts)if(y!==-1){f=y;break}if(this.midiPorts=this.midiPorts.map(y=>y===-1?f:y),this.midiPortChannelOffsets.length===0&&(this.midiPortChannelOffsets=[0]),this.midiPortChannelOffsets.length<2?p("%cNo additional MIDI Ports detected.",a.info):p("%cMIDI Ports detected!",a.recognized),!g)if(this.tracks.length>1){if(this.tracks[0].find(y=>y.messageStatusByte>=M.noteOn&&y.messageStatusByteS.messageStatusByte===M.trackName);y&&(this.rawMidiName=y.messageData,this.midiName=_(y.messageData,y.messageData.length,void 0,!1))}}else{let y=this.tracks[0].find(S=>S.messageStatusByte===M.trackName);y&&(this.rawMidiName=y.messageData,this.midiName=_(y.messageData,y.messageData.length,void 0,!1))}if(this.fileName=e,this.midiName=this.midiName.trim(),this.midiName.length===0){p("%cNo name detected. Using the alt name!",a.info),this.midiName=ms(e),this.rawMidiName=new Uint8Array(this.midiName.length);for(let y=0;yl>Q?l:Q),s=[];for(let Q=0;Q{g[f]>=c.length||c[g[f]].ticks0;){let Q=E(),l=t.tracks[Q];if(g[Q]>=l.length){i--;continue}let c=l[g[Q]];if(g[Q]++,c.messageStatusByte===M.midiPort){h[Q]=c.messageData[0];continue}let f=c.messageStatusByte&240;if(f!==M.noteOn&&f!==M.controllerChange&&f!==M.programChange&&f!==M.systemExclusive)continue;let y=(c.messageStatusByte&15)+t.midiPortChannelOffsets[h[Q]]||0,S=s[y];switch(f){case M.programChange:S.program=c.messageData[0],n(S);break;case M.controllerChange:if(c.messageData[0]!==k.bankSelect||d==="gs"&&S.drums)continue;let w=c.messageData[1],H=Math.max(0,w-t.bankOffset);if(d==="xg"){let G=w===120||w===126||w===127;G!==S.drums?(S.drums=G,S.bank=S.drums?128:H,n(S)):S.bank=S.drums?128:H;continue}s[y].bank=H;break;case M.noteOn:if(c.messageData[1]===0)continue;n(S),o[S.string].add(`${c.messageData[0]}-${c.messageData[1]}`);break;case M.systemExclusive:if(c.messageData[0]!==65||c.messageData[2]!==66||c.messageData[3]!==18||c.messageData[4]!==64||!(c.messageData[5]&16)||c.messageData[6]!==21){c.messageData[0]===67&&c.messageData[2]===76&&c.messageData[5]===126&&c.messageData[6]===0&&(d="xg");continue}let R=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][c.messageData[5]&15]+t.midiPortChannelOffsets[h[Q]],x=!!(c.messageData[7]>0&&c.messageData[5]>>4);S=s[R],S.drums=x,S.bank=x?128:0,n(S);break}}for(let Q of Object.keys(o))o[Q].size===0&&(p(`%cDetected change but no keys for %c${Q}`,a.info,a.value),delete o[Q]);return K(),o}function Hs(t,A){this.midiData.usedChannelsOnTrack[t].size!==0&&(this.midiPortChannelOffset===0&&(this.midiPortChannelOffset+=16,this.midiPortChannelOffsets[A]=0),this.midiPortChannelOffsets[A]===void 0&&(this.synth.workletProcessorChannels.length{this.assignMIDIPort(s,e)}),this.duration=this.midiData.duration,this.firstNoteTime=fe(this.midiData.firstNoteOn,this.midiData),p(`%cTotal song time: ${xt(Math.ceil(this.duration)).time}`,a.recognized),this.post(NA.songChange,[new et(this.midiData),this.songIndex,A]),this.duration<=1&&(U(`%cVery short song: (${xt(Math.round(this.duration)).time}). Disabling loop!`,a.warn),this.loop=!1),A)this.play(!0);else{let e=this._skipToFirstNoteOn?this.midiData.firstNoteOn-1:0;this.setTimeTicks(e),this.pause()}}function Js(t,A=!0){this.songs=t.reduce((e,s)=>{if(s.duration)return e.push(s),e;try{e.push(new ot(s.binary,s.altName||""))}catch(n){return this.post(NA.midiError,n.message),e}return e},[]),!(this.songs.length<1)&&(this.songIndex=0,this.songs.length>1&&(this.loop=!1),this.loadNewSequence(this.songs[this.songIndex],A))}function Ps(){if(this.songs.length===1){this.currentTime=0;return}this.songIndex++,this.songIndex%=this.songs.length,this.loadNewSequence(this.songs[this.songIndex])}function qs(){if(this.songs.length===1){this.currentTime=0;return}this.songIndex--,this.songIndex<0&&(this.songIndex=this.songs.length-1),this.loadNewSequence(this.songs[this.songIndex])}var be=ue.slice(0,128);function Ks(t,A=void 0){this.oneTickToSeconds=60/(120*this.midiData.timeDivision),this.synth.resetAllControllers(),this.sendMIDIReset(),this._resetTimers();let e=this.synth.workletProcessorChannels.length,s=Array(e).fill(8192),n=[];for(let i=0;ii===k.dataDecrement||i===k.dataIncrement||i===k.dataEntryMsb||i===k.dataDecrement||i===k.lsbForControl6DataEntry||i===k.RPNLsb||i===k.RPNMsb||i===k.NRPNLsb||i===k.NRPNMsb||i===k.bankSelect||i===k.lsbForControl0BankSelect||i===k.resetAllControllers,g=[];for(let i=0;i=A)break}else if(this.playedTime>=t)break;let h=Ne(E.messageStatusByte),d=h.channel+(this.midiPortChannelOffsets[this.midiPorts[i]]||0);switch(h.status){case M.noteOn:case M.noteOff:case M.keySignature:break;case M.pitchBend:s[d]=E.messageData[1]<<7|E.messageData[0];break;case M.programChange:let l=n[d];l.program=E.messageData[0],l.actualBank=l.bank;break;case M.controllerChange:let c=E.messageData[0];if(o(c)){let f=E.messageData[1];if(c===k.bankSelect){n[d].bank=f;break}else c===k.resetAllControllers&&(g[d]=Array.from(be));this.sendMIDIMessages?this.sendMIDICC(d,c,f):this.synth.controllerChange(d,c,f)}else g[d]===void 0&&(g[d]=Array.from(be)),g[d][c]=E.messageData[1];break;default:this._processEvent(E,i);break}this.eventIndex[i]++,i=this._findFirstEventIndex();let Q=this.tracks[i][this.eventIndex[i]];if(Q===void 0)return this.stop(),!1;this.playedTime+=this.oneTickToSeconds*(Q.ticks-E.ticks)}if(this.sendMIDIMessages){for(let i=0;i>7,s[i]&127),g[i]!==void 0&&g[i].forEach((E,h)=>{E!==be[h]&&!o(h)&&this.sendMIDICC(i,h,E)}),n[i].program>=0&&n[i].actualBank>=0){let E=n[i].actualBank;this.sendMIDICC(i,k.bankSelect,E),this.sendMIDIProgramChange(i,n[i].program)}}else for(let i=0;i>7,s[i]&127),g[i]!==void 0&&g[i].forEach((E,h)=>{E!==be[h]&&!o(h)&&this.synth.controllerChange(i,h,E)}),n[i].program>=0&&n[i].actualBank>=0){let E=n[i].actualBank;this.synth.controllerChange(i,k.bankSelect,E),this.synth.programChange(i,n[i].program)}return!0}function Vs(t=!1){if(this.midiData!==void 0){if(t){this.pausedTime=void 0,this.currentTime=0;return}if(this.currentTime>=this.duration){this.pausedTime=void 0,this.currentTime=0;return}this.paused&&(this._recalculateStartTime(this.pausedTime),this.pausedTime=void 0),this.sendMIDIMessages||this.playingNotes.forEach(A=>{this.synth.noteOn(A.channel,A.midiNote,A.velocity,!1,!0)}),this.setProcessHandler()}}function Os(t){this.stop(),this.playingNotes=[],this.pausedTime=void 0,this.post(NA.timeChange,currentTime-fe(t,this.midiData));let A=this._playTo(0,t);this._recalculateStartTime(this.playedTime),A&&this.play()}function Zs(t){this.absoluteStartTime=currentTime-t/this._playbackRate}function Ws(t,A){switch(t){default:break;case MA.loadNewSongList:this.loadNewSongList(A[0],A[1]);break;case MA.pause:this.pause();break;case MA.play:this.play(A);break;case MA.stop:this.stop();break;case MA.setTime:this.currentTime=A;break;case MA.changeMIDIMessageSending:this.sendMIDIMessages=A;break;case MA.setPlaybackRate:this.playbackRate=A;break;case MA.setLoop:this.loop=A;break;case MA.changeSong:A?this.nextSong():this.previousSong();break;case MA.getMIDI:this.post(NA.getMIDI,this.midiData);break;case MA.setSkipToFirstNote:this._skipToFirstNoteOn=A;break;case MA.setPreservePlaybackState:this.preservePlaybackState=A}}function Xs(t,A=void 0){this.synth.enableEventSystem&&this.synth.post({messageType:DA.sequencerSpecific,messageData:{messageType:t,messageData:A}})}function _s(t){this.post(NA.midiEvent,t)}function zs(t,A,e){t%=16,this.sendMIDIMessages&&this.sendMIDIMessage([M.controllerChange|t,A,e])}function js(t,A){t%=16,this.sendMIDIMessages&&this.sendMIDIMessage([M.programChange|t,A])}function $s(t,A,e){t%=16,this.sendMIDIMessages&&this.sendMIDIMessage([M.pitchBend|t,e,A])}function An(){if(this.sendMIDIMessages){this.sendMIDIMessage([M.reset]);for(let t=0;t<$e;t++)this.sendMIDIMessage([M.controllerChange|t,k.allSoundOff,0]),this.sendMIDIMessage([M.controllerChange|t,k.resetAllControllers,0])}}var BA=class{constructor(A){this.synth=A,this.ignoreEvents=!1,this.sendMIDIMessages=!1,this.loopCount=1/0,this.currentLoopCount=this.loopCount,this.eventIndex=[],this.songIndex=0,this.playedTime=0,this.pausedTime=void 0,this.absoluteStartTime=currentTime,this._playbackRate=1,this.playingNotes=[],this.loop=!0,this.midiData=void 0,this.midiPorts=[],this.midiPortChannelOffset=0,this.midiPortChannelOffsets={},this._skipToFirstNoteOn=!0,this.preservePlaybackState=!1}set playbackRate(A){let e=this.currentTime;this._playbackRate=A,this.currentTime=e}get currentTime(){return this.pausedTime!==void 0?this.pausedTime:(currentTime-this.absoluteStartTime)*this._playbackRate}set currentTime(A){if(A>this.duration||A<0){this._skipToFirstNoteOn?this.setTimeTicks(this.midiData.firstNoteOn-1):this.setTimeTicks(0);return}if(this._skipToFirstNoteOn&&Aen?440*Math.pow(2,(t-6900)/1200):vt[~~t-rt]}var Yt=-1660,or=1600,Ht=new Float32Array((or-Yt)*100+1);for(let t=0;t.5?1:0,s?e*2-1:e;case uA.concave:return s?(e=e*2-1,e<0?-jA[~~(e*-fA)]:jA[~~(e*fA)]):jA[~~(e*fA)];case uA.convex:return s?(e=e*2-1,e<0?-Ie[~~(e*-fA)]:Ie[~~(e*fA)]):Ie[~~(e*fA)]}}var Jt=1,Pt=new Float32Array(1e3);for(let t=0;t=e.loopEnd;)s-=o;let i=~~s,E=i+1;for(;E>=e.loopEnd;)E-=o;let h=s-i,d=n[E],Q=n[i];A[g]=Q+(d-Q)*h,s+=e.playbackStep*t.currentTuningCalculated}}else{if(e.loopingMode===2&&!t.isInRelease)return;for(let o=0;o=e.end){t.finished=!0;return}let E=s-g,h=n[i],d=n[g];A[o]=d+(h-d)*E,s+=e.playbackStep*t.currentTuningCalculated}}t.sample.cursor=s}function sn(t,A){let e=t.sample,s=e.cursor,n=e.loopEnd-e.loopStart,o=e.sampleData;if(t.sample.isLooping)for(let g=0;g=e.loopEnd;)s-=n;let i=~~s+1;for(;i>=e.loopEnd;)i-=n;A[g]=o[i],s+=e.playbackStep*t.currentTuningCalculated}else{if(e.loopingMode===2&&!t.isInRelease)return;for(let g=0;g=e.end){t.finished=!0;return}A[g]=o[i],s+=e.playbackStep*t.currentTuningCalculated}}e.cursor=s}function nn(t,A){let e=t.sample,s=e.cursor,n=e.sampleData;if(e.isLooping){let o=e.loopEnd-e.loopStart;for(let g=0;g=e.loopEnd;)s-=o;let i=~~s,E=i+1,h=E+1,d=h+1,Q=s-i;E>=e.loopEnd&&(E-=o),h>=e.loopEnd&&(h-=o),d>=e.loopEnd&&(d-=o);let l=n[i],c=n[E],f=n[h],y=n[d],S=.5*(f-l),w=l-2.5*c+2*f-.5*y,H=.5*(y-l)+1.5*(c-f);A[g]=((H*Q+w)*Q+S)*Q+c,s+=e.playbackStep*t.currentTuningCalculated}}else{if(e.loopingMode===2&&!t.isInRelease)return;for(let o=0;o=e.end||E>=e.end||h>=e.end){t.finished=!0;return}let Q=n[g],l=n[i],c=n[E],f=n[h],y=.5*(c-Q),S=Q-2.5*l+2*c-.5*f,w=.5*(f-Q)+1.5*(l-c);A[o]=((w*d+S)*d+y)*d+l,s+=e.playbackStep*t.currentTuningCalculated}}t.sample.cursor=s}var on=.01,bA=100,qt=90,rr=15e-6,PA=class t{currentSampleTime=0;sampleRate;currentAttenuationDb=bA;state=0;releaseStartDb=bA;releaseStartTimeSamples=0;currentReleaseGain=1;attackDuration=0;decayDuration=0;releaseDuration=0;attenuation=0;attenuationTargetGain=0;attenuationTarget=0;sustainDbRelative=0;delayEnd=0;attackEnd=0;holdEnd=0;decayEnd=0;constructor(A,e){this.sampleRate=A,this.canEndOnSilentSustain=e/10>=qt}static startRelease(A){A.volumeEnvelope.releaseStartTimeSamples=A.volumeEnvelope.currentSampleTime,A.volumeEnvelope.currentReleaseGain=YA(A.volumeEnvelope.currentAttenuationDb),t.recalculate(A)}static recalculate(A){let e=A.volumeEnvelope,s=h=>Math.max(0,Math.floor(VA(h)*e.sampleRate));e.attenuationTarget=Math.max(0,Math.min(A.modulatedGenerators[r.initialAttenuation],1440))/10,e.attenuationTargetGain=YA(e.attenuationTarget),e.sustainDbRelative=Math.min(bA,A.modulatedGenerators[r.sustainVolEnv]/10);let n=Math.min(bA,e.sustainDbRelative);e.attackDuration=s(A.modulatedGenerators[r.attackVolEnv]);let o=A.modulatedGenerators[r.decayVolEnv],g=(60-A.targetKey)*A.modulatedGenerators[r.keyNumToVolEnvDecay],i=n/bA;e.decayDuration=s(o+g)*i,e.releaseDuration=s(A.modulatedGenerators[r.releaseVolEnv]),e.delayEnd=s(A.modulatedGenerators[r.delayVolEnv]),e.attackEnd=e.attackDuration+e.delayEnd;let E=(60-A.targetKey)*A.modulatedGenerators[r.keyNumToVolEnvHold];if(e.holdEnd=s(A.modulatedGenerators[r.holdVolEnv]+E)+e.attackEnd,e.decayEnd=e.decayDuration+e.holdEnd,e.state===0&&e.attackEnd===0&&(e.state=2),A.isInRelease){let h=Math.max(0,Math.min(bA,e.sustainDbRelative)),d=h/bA;switch(e.decayDuration=s(o+g)*d,e.state){case 0:e.releaseStartDb=bA;break;case 1:let l=1-(e.attackEnd-e.releaseStartTimeSamples)/e.attackDuration;e.releaseStartDb=20*Math.log10(l)*-1;break;case 2:e.releaseStartDb=0;break;case 3:e.releaseStartDb=(1-(e.decayEnd-e.releaseStartTimeSamples)/e.decayDuration)*h;break;case 4:e.releaseStartDb=h;break}e.releaseStartDb=Math.max(0,Math.min(e.releaseStartDb,bA)),e.releaseStartDb>=qt&&(A.finished=!0),e.currentReleaseGain=YA(e.releaseStartDb);let Q=(bA-e.releaseStartDb)/bA;e.releaseDuration*=Q}}static apply(A,e,s,n){let o=A.volumeEnvelope,g=s/10,i=n;if(A.isInRelease){let h=o.currentSampleTime-o.releaseStartTimeSamples;if(h>=o.releaseDuration){for(let Q=0;Q=e.length)return;o.state++;case 1:for(;o.currentSampleTime=e.length)return}o.state++;case 2:for(;o.currentSampleTime=e.length)return;o.state++;case 3:for(;o.currentSampleTime=e.length)return;o.state++;case 4:for(o.canEndOnSilentSustain&&o.sustainDbRelative>=qt&&(A.finished=!0);;)if(o.attenuation+=(o.attenuationTargetGain-o.attenuation)*i,e[E]*=o.attenuation*YA(o.sustainDbRelative+g),o.currentAttenuationDb=o.sustainDbRelative,o.currentSampleTime++,++E>=e.length)return}}};var pe=class t{a0=0;a1=0;a2=0;a3=0;a4=0;x1=0;x2=0;y1=0;y2=0;reasonanceCb=0;reasonanceGain=1;cutoffCents=13501;cutoffHz=20001;static apply(A,e,s,n){if(n&&s>13499&&A.filter.reasonanceCb===0)return;let o=A.filter;(o.cutoffCents!==s||o.reasonanceCb!==A.modulatedGenerators[r.initialFilterQ])&&(o.cutoffCents=s,o.reasonanceCb=A.modulatedGenerators[r.initialFilterQ],t.calculateCoefficients(o));for(let g=0;g=A.releaseStartTime&&(A.isInRelease=!0,PA.startRelease(A),JA.startRelease(A),A.sample.loopingMode===3&&(A.sample.isLooping=!1)),A.modulatedGenerators[r.initialAttenuation]>2500){A.isInRelease&&(A.finished=!0);return}let g=A.targetKey,i=A.modulatedGenerators[r.fineTune]+t.customControllers[hA.channelTuning]+t.customControllers[hA.channelTransposeFine]+t.customControllers[hA.masterTuning]+t.channelOctaveTuning[A.midiNote%12]+t.keyCentTuning[A.midiNote],E=A.modulatedGenerators[r.coarseTune]+t.customControllers[hA.channelTuningSemitones],h=this.tunings[t.preset.program]?.[A.realKey];h?.midiNote>=0&&(g=h.midiNote,i+=h.centTuning),i+=(g-A.sample.rootKey)*A.modulatedGenerators[r.scaleTuning];let d=A.modulatedGenerators[r.vibLfoToPitch];if(d!==0){let I=A.startTime+VA(A.modulatedGenerators[r.delayVibLFO]),rA=Le(A.modulatedGenerators[r.freqVibLFO]),O=it(I,rA,currentTime);i+=O*(d*t.customControllers[hA.modulationMultiplier])}let Q=A.modulatedGenerators[r.initialFilterFc],l=Q,c=A.modulatedGenerators[r.modLfoToPitch],f=A.modulatedGenerators[r.modLfoToVolume],y=A.modulatedGenerators[r.modLfoToFilterFc],S=0;if(c+y+f!==0){let I=A.startTime+VA(A.modulatedGenerators[r.delayModLFO]),rA=Le(A.modulatedGenerators[r.freqModLFO]),O=it(I,rA,currentTime);i+=O*(c*t.customControllers[hA.modulationMultiplier]),S=-O*f,l+=O*y}if(t.channelVibrato.depth>0){let I=it(A.startTime+t.channelVibrato.delay,t.channelVibrato.rate,currentTime);I&&(i+=I*t.channelVibrato.depth)}let w=A.modulatedGenerators[r.modEnvToPitch],H=A.modulatedGenerators[r.modEnvToFilterFc],R=JA.getValue(A,currentTime);l+=R*H,i+=R*w;let x=~~(i+E*100);x!==A.currentTuningCents&&(A.currentTuningCents=x,A.currentTuningCalculated=Math.pow(2,x/1200));let G=new Float32Array(e.length);switch(this.interpolationType){case me.linear:default:tn(A,G);break;case me.nearestNeighbor:sn(A,G);break;case me.fourthOrder:nn(A,G)}pe.apply(A,G,l,Q>13499),PA.apply(A,G,S,this.volumeEnvelopeSmoothingFactor),this.panVoice(A,G,e,s,n,o)}function ir(t,A){let e=0;return t.drumChannel&&(e+=5),A.isInRelease&&(e-=5),e+=A.velocity/25,e-=A.volumeEnvelope.state,A.isInRelease&&(e-=5),e-=A.volumeEnvelope.currentAttenuationDb/50,e}function gn(t){let A=[];for(let s of this.workletProcessorChannels)for(let n of s.voices)if(!n.finished){let o=ir(s,n);A.push({channel:s,voice:n,priority:o})}A.sort((s,n)=>s.priority-n.priority);let e=A.slice(0,t);for(let{channel:s,voice:n}of e){let o=s.voices.indexOf(n);o>-1&&s.voices.splice(o,1)}}function In(t,A=Cn){t.releaseStartTime=currentTime,t.releaseStartTime-t.startTimeBn=t);var ar=function(t){var A,e,s,n,o,g,i,E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h="",d=0;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");do n=E.indexOf(t.charAt(d++)),o=E.indexOf(t.charAt(d++)),g=E.indexOf(t.charAt(d++)),i=E.indexOf(t.charAt(d++)),A=n<<2|o>>4,e=(15&o)<<4|g>>2,s=(3&g)<<6|i,h+=String.fromCharCode(A),g!==64&&(h+=String.fromCharCode(e)),i!==64&&(h+=String.fromCharCode(s));while(d1&&(I.thisProgram=process.argv[1].replace(/\\/g,"/")),I.arguments=process.argv.slice(2),typeof module<"u",process.on("uncaughtException",function(C){if(!(C instanceof Ge))throw C}),process.on("unhandledRejection",function(C,B){process.exit(1)}),I.quit=function(C){process.exit(C)},I.inspect=function(){return"[Emscripten Module object]"}):IA?(typeof read<"u"&&(I.read=function(B){return read(B)}),I.readBinary=function(B){var u;return typeof readbuffer=="function"?new Uint8Array(readbuffer(B)):(ee(typeof(u=read(B,"binary"))=="object"),u)},typeof scriptArgs<"u"?I.arguments=scriptArgs:typeof arguments<"u"&&(I.arguments=arguments),typeof quit=="function"&&(I.quit=function(C){quit(C)})):(O||AA)&&(O?document.currentScript&&(nA=document.currentScript.src):nA=self.location.href,nA=nA.indexOf("blob:")!==0?nA.split("/").slice(0,-1).join("/")+"/":"",I.read=function(B){var u=new XMLHttpRequest;return u.open("GET",B,!1),u.send(null),u.responseText},AA&&(I.readBinary=function(B){var u=new XMLHttpRequest;return u.open("GET",B,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)}),I.readAsync=function(B,u,m){var L=new XMLHttpRequest;L.open("GET",B,!0),L.responseType="arraybuffer",L.onload=function(){if(L.status==200||L.status==0&&L.response){u(L.response);return}m()},L.onerror=m,L.send(null)},I.setWindowTitle=function(C){document.title=C});var eA=I.print||(typeof console<"u"?console.log.bind(console):typeof print<"u"?print:null),lA=I.printErr||(typeof printErr<"u"?printErr:typeof console<"u"&&console.warn.bind(console)||eA);for(t in rA)rA.hasOwnProperty(t)&&(I[t]=rA[t]);function LA(C){var B=c;return c=c+C+15&-16,B}function As(C){var B=E[R>>2],u=B+C+15&-16;return E[R>>2]=u,u>=mA&&!Is()?(E[R>>2]=B,0):B}function es(C,B){return B||(B=16),C=Math.ceil(C/B)*B}function Ko(C){switch(C){case"i1":case"i8":return 1;case"i16":return 2;case"i32":case"float":return 4;case"i64":case"double":return 8;default:if(C[C.length-1]==="*")return 4;if(C[0]!=="i")return 0;var B=parseInt(C.substr(1));return ee(B%8==0),B/8}}function we(C){we.shown||(we.shown={}),we.shown[C]||(we.shown[C]=1,lA(C))}rA=void 0;var Vo={"f64-rem":function(C,B){return C%B},debugger:function(){}},Qt=[];function mr(C,B){for(var u=0,m=u;m>>0)+4294967296*+(B>>>0):+(C>>>0)+4294967296*+(0|B)}function dt(C,B,u){return u&&u.length?I["dynCall_"+C].apply(null,[B].concat(u)):I["dynCall_"+C].call(null,B)}var Ye=0,ts=0;function ee(C,B){C||zA("Assertion failed: "+B)}function ss(C){var B=I["_"+C];return ee(B,"Cannot call unknown function "+C+", make sure it is exported"),B}var ns={stackSave:function(){wt()},stackRestore:function(){kt()},arrayToC:function(C){var B,u,m=Oe(C.length);return B=C,u=m,n.set(B,u),m},stringToC:function(C){var B=0;if(C!=null&&C!==0){var u=(C.length<<2)+1;B=Oe(u),is(C,B,u)}return B}},Oo={string:ns.stringToC,array:ns.arrayToC};function os(C,B,u,m,L){var W=ss(C),j=[],Y=0;if(m)for(var pA=0;pA>0]=B;break;case"i16":g[C>>1]=B;break;case"i32":E[C>>2]=B;break;case"i64":tempI64=[B>>>0,+jo(tempDouble=B)>=1?tempDouble>0?(0|Ar(+cs(tempDouble/4294967296),4294967295))>>>0:~~+$o((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0],E[C>>2]=tempI64[0],E[C+4>>2]=tempI64[1];break;case"float":d[C>>2]=B;break;case"double":Q[C>>3]=B;break;default:zA("invalid type for setValue: "+u)}}function Dr(C,B,u){switch((B=B||"i8").charAt(B.length-1)==="*"&&(B="i32"),B){case"i1":case"i8":return n[C>>0];case"i16":return g[C>>1];case"i32":case"i64":return E[C>>2];case"float":return d[C>>2];case"double":return Q[C>>3];default:zA("invalid type for getValue: "+B)}return null}function kr(C,B,u,m){typeof C=="number"?(W=!0,j=C):(W=!1,j=C.length);var L=typeof B=="string"?B:null;if(Y=u==4?m:[typeof Ve=="function"?Ve:LA,Oe,LA,As][u===void 0?2:u](Math.max(j,L?1:B.length)),W){for(m=Y,ee((3&Y)==0),pA=Y+(-4&j);m>2]=0;for(pA=Y+j;m>0]=0;return Y}if(L==="i8")return C.subarray||C.slice?o.set(C,Y):o.set(new Uint8Array(C),Y),Y;for(var W,j,Y,pA,CA,EA,aA,Z=0;Z>0],(m!=0||B)&&(j++,!B||j!=B););B||(B=j);var Y="";if(W<128){for(;B>0;)L=String.fromCharCode.apply(String,o.subarray(C,C+Math.min(B,1024))),Y=Y?Y+L:L,C+=1024,B-=1024;return Y}return u=C,function(CA,EA){for(var aA=EA;CA[aA];)++aA;if(aA-EA>16&&CA.subarray&&rs)return rs.decode(CA.subarray(EA,aA));for(var Z,FA,UA,TA,vA,ie,HA="";;){if(!(Z=CA[EA++]))return HA;if(!(128&Z)){HA+=String.fromCharCode(Z);continue}if(FA=63&CA[EA++],(224&Z)==192){HA+=String.fromCharCode((31&Z)<<6|FA);continue}if(UA=63&CA[EA++],(240&Z)==224?Z=(15&Z)<<12|FA<<6|UA:(TA=63&CA[EA++],(248&Z)==240?Z=(7&Z)<<18|FA<<12|UA<<6|TA:(vA=63&CA[EA++],Z=(252&Z)==248?(3&Z)<<24|FA<<18|UA<<12|TA<<6|vA:(1&Z)<<30|FA<<24|UA<<18|TA<<12|vA<<6|(ie=63&CA[EA++]))),Z<65536)HA+=String.fromCharCode(Z);else{var xe=Z-65536;HA+=String.fromCharCode(55296|xe>>10,56320|1023&xe)}}}(o,u)}function Fr(C){for(var B="";;){var u=n[C++>>0];if(!u)return B;B+=String.fromCharCode(u)}}function Rr(C,B){return function(m,L,W){for(var j=0;j>0]=m.charCodeAt(j);W||(n[L>>0]=0)}(C,B,!1)}var rs=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Pe(C,B,u,m){if(!(m>0))return 0;for(var L=u,W=u+m-1,j=0;j=55296&&Y<=57343&&(Y=65536+((1023&Y)<<10)|1023&C.charCodeAt(++j)),Y<=127){if(u>=W)break;B[u++]=Y}else if(Y<=2047){if(u+1>=W)break;B[u++]=192|Y>>6,B[u++]=128|63&Y}else if(Y<=65535){if(u+2>=W)break;B[u++]=224|Y>>12,B[u++]=128|Y>>6&63,B[u++]=128|63&Y}else if(Y<=2097151){if(u+3>=W)break;B[u++]=240|Y>>18,B[u++]=128|Y>>12&63,B[u++]=128|Y>>6&63,B[u++]=128|63&Y}else if(Y<=67108863){if(u+4>=W)break;B[u++]=248|Y>>24,B[u++]=128|Y>>18&63,B[u++]=128|Y>>12&63,B[u++]=128|Y>>6&63,B[u++]=128|63&Y}else{if(u+5>=W)break;B[u++]=252|Y>>30,B[u++]=128|Y>>24&63,B[u++]=128|Y>>18&63,B[u++]=128|Y>>12&63,B[u++]=128|Y>>6&63,B[u++]=128|63&Y}}return B[u]=0,u-L}function is(C,B,u){return Pe(C,o,B,u)}function qe(C){for(var B=0,u=0;u=55296&&m<=57343&&(m=65536+((1023&m)<<10)|1023&C.charCodeAt(++u)),m<=127?++B:m<=2047?B+=2:m<=65535?B+=3:m<=2097151?B+=4:m<=67108863?B+=5:B+=6}return B}var as=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function Gr(C){for(var B=C,u=B>>1;g[u];)++u;if((B=u<<1)-C>32&&as)return as.decode(o.subarray(C,B));for(var m=0,L="";;){var W=g[C+2*m>>1];if(W==0)return L;++m,L+=String.fromCharCode(W)}}function xr(C,B,u){if(u===void 0&&(u=2147483647),u<2)return 0;for(var m=B,L=(u-=2)<2*C.length?u/2:C.length,W=0;W>1]=j,B+=2}return g[B>>1]=0,B-m}function Mr(C){return 2*C.length}function Nr(C){for(var B=0,u="";;){var m=E[C+4*B>>2];if(m==0)return u;if(++B,m>=65536){var L=m-65536;u+=String.fromCharCode(55296|L>>10,56320|1023&L)}else u+=String.fromCharCode(m)}}function br(C,B,u){if(u===void 0&&(u=2147483647),u<4)return 0;for(var m=B,L=m+u-4,W=0;W=55296&&j<=57343&&(j=65536+((1023&j)<<10)|1023&C.charCodeAt(++W)),E[B>>2]=j,(B+=4)+4>L)break}return E[B>>2]=0,B-m}function Lr(C){for(var B=0,u=0;u=55296&&m<=57343&&++u,B+=4}return B}function Ur(C){var B=qe(C)+1,u=Ve(B);return u&&Pe(C,n,u,B),u}function Tr(C){var B=qe(C)+1,u=Oe(B);return Pe(C,n,u,B),u}function vr(C){return C}function Hr(){var C,B=function(){var m=Error();if(!m.stack){try{throw Error(0)}catch(L){m=L}if(!m.stack)return"(no stack trace available)"}return m.stack.toString()}();return I.extraStackTrace&&(B+=` +`+I.extraStackTrace()),(C=B).replace(/__Z[\w\d_]+/g,function(u){var m,L=m=u;return u===L?u:u+" ["+L+"]"})}function ft(C,B){return C%B>0&&(C+=B-C%B),C}function gs(C){I.buffer=s=C}function mt(){I.HEAP8=n=new Int8Array(s),I.HEAP16=g=new Int16Array(s),I.HEAP32=E=new Int32Array(s),I.HEAPU8=o=new Uint8Array(s),I.HEAPU16=i=new Uint16Array(s),I.HEAPU32=h=new Uint32Array(s),I.HEAPF32=d=new Float32Array(s),I.HEAPF64=Q=new Float64Array(s)}function Is(){var C=I.usingWasm?65536:16777216,B=2147483648-C;if(E[R>>2]>B)return!1;var u=mA;for(mA=Math.max(mA,16777216);mA>2];)mA=mA<=536870912?ft(2*mA,C):Math.min(ft((3*mA+2147483648)/4,C),B);var m=I.reallocBuffer(mA);return m&&m.byteLength==mA?(gs(m),mt(),!0):(mA=u,!1)}l=c=y=S=w=H=R=0,f=!1,I.reallocBuffer||(I.reallocBuffer=function(C){try{if(ArrayBuffer.transfer)B=ArrayBuffer.transfer(s,C);else{var B,u=n;B=new ArrayBuffer(C),new Int8Array(B).set(u)}}catch{return!1}return!!er(B)&&B});try{(x=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get))(new ArrayBuffer(4))}catch{x=function(B){return B.byteLength}}var pt=I.TOTAL_STACK||5242880,mA=I.TOTAL_MEMORY||16777216;function Wo(){return mA}function Fe(C){for(;C.length>0;){var B=C.shift();if(typeof B=="function"){B();continue}var u=B.func;typeof u=="number"?B.arg===void 0?I.dynCall_v(u):I.dynCall_vi(u,B.arg):u(B.arg===void 0?null:B.arg)}}mA=0?C:B<=32?2*Math.abs(1<=m&&(B<=32||C>m)&&(C=-2*m+C),C}var jo=Math.abs,$o=Math.ceil,cs=Math.floor,Ar=Math.min,re=0,Dt=null,Re=null;function Or(C){return C}I.preloadedImages={},I.preloadedAudios={};var ls="data:application/octet-stream;base64,";function Ke(C){return String.prototype.startsWith?C.startsWith(ls):C.indexOf(ls)===0}(function(){var B="main.wast",u="main.wasm",m="main.temp.asm.js";Ke(B)||(B=iA(B)),Ke(u)||(u=iA(u)),Ke(m)||(m=iA(m));var L={global:null,env:null,asm2wasm:Vo,parent:I},W=null;function j(aA){return aA}function Y(){try{if(I.wasmBinary)return new Uint8Array(I.wasmBinary);if(I.readBinary)return I.readBinary(u);throw"both async and sync fetching of the wasm failed"}catch(aA){zA(aA)}}I.asmPreload=I.asm;var pA=I.reallocBuffer,CA=function(aA){aA=ft(aA,I.usingWasm?65536:16777216);var Z=I.buffer.byteLength;if(I.usingWasm)try{var FA=I.wasmMemory.grow((aA-Z)/65536);return FA!==-1?I.buffer=I.wasmMemory.buffer:null}catch{return null}};I.reallocBuffer=function(aA){return EA==="asmjs"?pA(aA):CA(aA)};var EA="";I.asm=function(aA,Z,FA){var UA;if(!(Z=UA=Z).table){var TA,vA=I.wasmTableSize;vA===void 0&&(vA=1024);var ie=I.wasmMaxTableSize;typeof WebAssembly=="object"&&typeof WebAssembly.Table=="function"?ie!==void 0?Z.table=new WebAssembly.Table({initial:vA,maximum:ie,element:"anyfunc"}):Z.table=new WebAssembly.Table({initial:vA,element:"anyfunc"}):Z.table=Array(vA),I.wasmTable=Z.table}return Z.memoryBase||(Z.memoryBase=I.STATIC_BASE),Z.tableBase||(Z.tableBase=0),TA=function(xe,Be,Rt){if(typeof WebAssembly!="object")return lA("no native wasm support detected"),!1;if(!(I.wasmMemory instanceof WebAssembly.Memory))return lA("no native wasm Memory in use"),!1;function Ze(ZA,WA){if((W=ZA.exports).memory){var Me,Gt,ds;Me=W.memory,Gt=I.buffer,Me.byteLength0?u:qe(C)+1,L=Array(m),W=Pe(C,L,0,L.length);return B&&(L.length=W),L}function _r(C){for(var B=[],u=0;u255&&(m&=255),B.push(String.fromCharCode(m))}return B.join("")}c+=16,R=LA(4),w=(y=S=es(c))+pt,H=es(w),E[R>>2]=H,f=!0,I.wasmTableSize=4,I.wasmMaxTableSize=4,I.asmGlobalArg={},I.asmLibraryArg={abort:zA,assert:ee,enlargeMemory:Is,getTotalMemory:Wo,abortOnCannotGrowMemory:function(){zA("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+mA+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_iii:function(B,u,m){var L=wt();try{return I.dynCall_iii(B,u,m)}catch(W){if(kt(L),typeof W!="number"&&W!=="longjmp")throw W;I.setThrew(1,0)}},___assert_fail:function(B,u,m,L){zA("Assertion failed: "+Je(B)+", at: "+[u?Je(u):"unknown filename",m,L?Je(L):"unknown function"])},___setErrNo:function(B){return I.___errno_location&&(E[I.___errno_location()>>2]=B),B},_abort:function(){I.abort()},_emscripten_memcpy_big:function(B,u,m){return o.set(o.subarray(u,u+m),B),B},_llvm_floor_f64:cs,DYNAMICTOP_PTR:R,tempDoublePtr:xA,ABORT:Ye,STACKTOP:S,STACK_MAX:w};var Qs=I.asm(I.asmGlobalArg,I.asmLibraryArg,s);I.asm=Qs,I.___errno_location=function(){return I.asm.___errno_location.apply(null,arguments)};var er=I._emscripten_replace_memory=function(){return I.asm._emscripten_replace_memory.apply(null,arguments)};I._free=function(){return I.asm._free.apply(null,arguments)};var Ve=I._malloc=function(){return I.asm._malloc.apply(null,arguments)};I._memcpy=function(){return I.asm._memcpy.apply(null,arguments)},I._memset=function(){return I.asm._memset.apply(null,arguments)},I._sbrk=function(){return I.asm._sbrk.apply(null,arguments)},I._stb_vorbis_js_channels=function(){return I.asm._stb_vorbis_js_channels.apply(null,arguments)},I._stb_vorbis_js_close=function(){return I.asm._stb_vorbis_js_close.apply(null,arguments)},I._stb_vorbis_js_decode=function(){return I.asm._stb_vorbis_js_decode.apply(null,arguments)},I._stb_vorbis_js_open=function(){return I.asm._stb_vorbis_js_open.apply(null,arguments)},I._stb_vorbis_js_sample_rate=function(){return I.asm._stb_vorbis_js_sample_rate.apply(null,arguments)},I.establishStackSpace=function(){return I.asm.establishStackSpace.apply(null,arguments)},I.getTempRet0=function(){return I.asm.getTempRet0.apply(null,arguments)},I.runPostSets=function(){return I.asm.runPostSets.apply(null,arguments)},I.setTempRet0=function(){return I.asm.setTempRet0.apply(null,arguments)},I.setThrew=function(){return I.asm.setThrew.apply(null,arguments)};var Oe=I.stackAlloc=function(){return I.asm.stackAlloc.apply(null,arguments)},kt=I.stackRestore=function(){return I.asm.stackRestore.apply(null,arguments)},wt=I.stackSave=function(){return I.asm.stackSave.apply(null,arguments)};function Ge(C){this.name="ExitStatus",this.message="Program terminated with exit("+C+")",this.status=C}function Ft(C){C=C||I.arguments,!(re>0)&&(function(){if(I.preRun)for(typeof I.preRun=="function"&&(I.preRun=[I.preRun]);I.preRun.length;)_o(I.preRun.shift());Fe(Cs)}(),!(re>0)&&(I.calledRun||(I.setStatus?(I.setStatus("Running..."),setTimeout(function(){setTimeout(function(){I.setStatus("")},1),B()},1)):B())));function B(){!I.calledRun&&(I.calledRun=!0,Ye||(St||(St=!0,Fe(yt)),Fe(Es),I.onRuntimeInitialized&&I.onRuntimeInitialized(),function(){if(I.postRun)for(typeof I.postRun=="function"&&(I.postRun=[I.postRun]);I.postRun.length;)zo(I.postRun.shift());Fe(hs)}()))}}function zr(C,B){(!B||!I.noExitRuntime||C!==0)&&(I.noExitRuntime||(Ye=!0,ts=C,S=G,Fe(Bs),Xo=!0,I.onExit&&I.onExit(C)),I.quit(C,new Ge(C)))}function zA(C){throw I.onAbort&&I.onAbort(C),C!==void 0?(eA(C),lA(C),C=JSON.stringify(C)):C="",Ye=!0,ts=1,"abort("+C+"). Build with -s ASSERTIONS=1 for more info."}if(I.dynCall_iii=function(){return I.asm.dynCall_iii.apply(null,arguments)},I.asm=Qs,I.ccall=os,I.cwrap=function(B,u,m,L){var W=(m=m||[]).every(function(j){return j==="number"});return u!=="string"&&W&&!L?ss(B):function(){return os(B,u,m,arguments,L)}},Ge.prototype=Error(),Ge.prototype.constructor=Ge,Re=function C(){I.calledRun||Ft(),I.calledRun||(Re=C)},I.run=Ft,I.abort=zA,I.preInit)for(typeof I.preInit=="function"&&(I.preInit=[I.preInit]);I.preInit.length>0;)I.preInit.pop()();I.noExitRuntime=!0,Ft(),I.onRuntimeInitialized=()=>{En=!0,Bn()},_A.decode=function(C){return function(u){if(!En)throw Error("Not initialized");var m={};function L(Be){return new Int32Array(I.HEAPU8.buffer,Be,1)[0]}function W(Be,Rt){var Ze=new ArrayBuffer(Rt*Float32Array.BYTES_PER_ELEMENT),he=new Float32Array(Ze);return he.set(new Float32Array(I.HEAPU8.buffer,Be,Rt)),he}m.open=I.cwrap("stb_vorbis_js_open","number",[]),m.close=I.cwrap("stb_vorbis_js_close","void",["number"]),m.channels=I.cwrap("stb_vorbis_js_channels","number",["number"]),m.sampleRate=I.cwrap("stb_vorbis_js_sample_rate","number",["number"]),m.decode=I.cwrap("stb_vorbis_js_decode","number",["number","number","number","number","number"]);var j,Y,pA,CA,EA=m.open(),aA=(j=u,Y=u.byteLength,pA=I._malloc(Y),(CA=new Uint8Array(I.HEAPU8.buffer,pA,Y)).set(new Uint8Array(j,0,Y)),CA),Z=I._malloc(4),FA=I._malloc(4),UA=m.decode(EA,aA.byteOffset,aA.byteLength,Z,FA);if(I._free(aA.byteOffset),UA<0)throw m.close(EA),I._free(Z),Error("stbvorbis decode failed: "+UA);for(var TA=m.channels(EA),vA=Array(TA),ie=new Int32Array(I.HEAPU32.buffer,L(Z),TA),HA=0;HA=0&&(s=this.workletProcessorChannels[e]),t.messageType){case sA.noteOn:this.noteOn(e,A[0],A[1],A[2]);break;case sA.noteOff:this.noteOff(e,A);break;case sA.pitchWheel:this.pitchWheel(e,A[0],A[1]);break;case sA.ccChange:this.controllerChange(e,A[0],A[1],A[2]);break;case sA.customcCcChange:s.customControllers[A[0]]=A[1];break;case sA.killNote:this.killNote(e,A);break;case sA.programChange:this.programChange(e,A[0],A[1]);break;case sA.channelPressure:this.channelPressure(e,A);break;case sA.polyPressure:this.polyPressure(e,A[0],A[1]);break;case sA.ccReset:e===qA?this.resetAllControllers():this.resetControllers(e);break;case sA.systemExclusive:this.systemExclusive(A);break;case sA.setChannelVibrato:if(e===qA)for(let g=0;g{let e=(A.midiControllers[dA+P.pitchWheelRange]>>7)+(A.midiControllers[dA+P.pitchWheelRange]&127)/127;return{voicesAmount:A.voices.length,pitchBend:A.midiControllers[dA+P.pitchWheel],pitchBendRangeSemitones:e,isMuted:A.isMuted,isDrum:A.drumChannel}});this.post({messageType:DA.channelProperties,messageData:t})}function gr(t,A,e){let s=t,n=A<<7|e;return t===127&&A===127&&e===127?{midiNote:-1,centTuning:null}:{midiNote:s,centTuning:n*.0061}}function Qn(t,A=0){let e=t[0];if(!(this.deviceID!==qA&&t[1]!==127&&this.deviceID!==t[1]))switch(e){default:U(`%cUnrecognized SysEx: %c${SA(t)}`,a.warn,a.unrecognized);break;case 126:case 127:switch(t[2]){case 4:let n;switch(t[3]){case 1:let o=t[5]<<7|t[4];this.setMIDIVolume(o/16384),p(`%cMaster Volume. Volume: %c${o}`,a.info,a.value);break;case 2:let i=((t[5]<<7|t[4])-8192)/8192;this.setMasterPan(i),p(`%cMaster Pan. Pan: %c${i}`,a.info,a.value);break;case 3:let E=(t[5]<<7|t[6])-8192;n=Math.floor(E/81.92),this.setMasterTuning(n),p(`%cMaster Fine Tuning. Cents: %c${n}`,a.info,a.value);break;case 4:n=(t[5]-64)*100,this.setMasterTuning(n),p(`%cMaster Coarse Tuning. Cents: %c${n}`,a.info,a.value);break;default:U(`%cUnrecognized MIDI Device Control Real-time message: %c${SA(t)}`,a.warn,a.unrecognized)}break;case 9:t[3]===1?(p("%cGM system on",a.info),this.system="gm"):t[3]===3?(p("%cGM2 system on",a.info),this.system="gm2"):(p("%cGM system off, defaulting to GS",a.info),this.system="gs");break;case 8:switch(t[3]){case 2:case 7:let o=4;t[3]===7&&o++;let g=t[o++],i=t[o++];for(let h=0;h>1&1)===1&&this.setOctaveTuning(15+A,E);for(let h=0;h<7;h++)(t[5]>>h&1)===1&&this.setOctaveTuning(7+h+A,E);for(let h=0;h<7;h++)(t[6]>>h&1)===1&&this.setOctaveTuning(h+A,E);p(`%cMIDI Octave Scale ${t[3]===8?"(1 byte)":"(2 bytes)"} tuning via Tuning: %c${E.join(" ")}`,a.info,a.value);break;default:U(`%cUnrecognized MIDI Tuning standard message: %c${SA(t)}`,a.warn,a.unrecognized);break}break;default:U(`%cUnrecognized MIDI Realtime/non realtime message: %c${SA(t)}`,a.warn,a.unrecognized)}break;case 65:let s=function(){U(`%cUnrecognized Roland %cGS %cSysEx: %c${SA(t)}`,a.warn,a.recognized,a.warn,a.unrecognized)};if(t[2]===66&&t[3]===18){let n=t[7];if(t[6]===127){n===0?(p("%cGS Reset received!",a.info),this.resetAllControllers(!1),this.system="gs"):n===127&&(p("%cGS system off, switching to GM2",a.info),this.resetAllControllers(!1),this.system="gm2");return}else if(t[4]===64){if((t[5]&16)>0){let o=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][t[5]&15]+A;switch(t[6]){default:s();break;case 21:let g=n>0&&t[5]>>4;this.setDrums(o,g),p(`%cChannel %c${o}%c ${g?"is now a drum channel":"now isn't a drum channel"}%c via: %c${SA(t)}`,a.info,a.value,a.recognized,a.info,a.value);return;case 22:let i=n-64;this.transposeChannel(o,i),p(`%cChannel %c${o}%c pitch shift. Semitones %c${i}%c, with %c${SA(t)}`,a.info,a.recognized,a.info,a.value,a.info,a.value);return;case 28:let E=n;E===0&&(E=Math.floor(Math.random()*128)),this.controllerChange(o,k.pan,E);break;case 33:this.controllerChange(o,k.chorusDepth,n);break;case 34:this.controllerChange(o,k.reverbDepth,n);break;case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:let h=t.length-9,d=new Int8Array(12);for(let l=0;l=this.workletProcessorChannels.length)return;let o=t[6];switch(t[5]){case 1:this.controllerChange(n,k.bankSelect,o);break;case 2:this.controllerChange(n,k.lsbForControl0BankSelect,o);break;case 3:this.programChange(n,o);break;case 8:let g=this.workletProcessorChannels[n];if(g.drumChannel)return;let i=o-64;g.channelTransposeKeyShift=i;break;case 11:this.controllerChange(n,k.mainVolume,o);break;case 14:let E=o;E===0&&(E=Math.floor(Math.random()*127)),this.controllerChange(n,k.pan,E);break;case 19:this.controllerChange(n,k.reverbDepth,o);break;case 18:this.controllerChange(n,k.chorusDepth,o);break;default:U(`%cUnrecognized Yamaha XG Part Setup: %c${t[5].toString(16).toUpperCase()}`,a.warn,a.unrecognized)}}else this.system==="xg"&&U(`%cUnrecognized Yamaha XG SysEx: %c${SA(t)}`,a.warn,a.unrecognized);else this.system==="xg"&&U(`%cUnrecognized Yamaha SysEx: %c${SA(t)}`,a.warn,a.unrecognized);break}}var Ir=1e3/200;function un(t,A,e){if(A.transformAmount===0)return A.currentValue=0,0;let s;if(A.sourceUsesCC)s=t[A.sourceIndex];else{let h=A.sourceIndex+dA;switch(A.sourceIndex){case P.noController:s=16383;break;case P.noteOnKeyNum:s=e.midiNote<<7;break;case P.noteOnVelocity:s=e.velocity<<7;break;case P.polyPressure:s=e.pressure<<7;break;default:s=t[h];break}}let n=Ee[A.sourceCurveType][A.sourcePolarity][A.sourceDirection][s],o;if(A.secSrcUsesCC)o=t[A.secSrcIndex];else{let h=A.secSrcIndex+dA;switch(A.secSrcIndex){case P.noController:o=16383;break;case P.noteOnKeyNum:o=e.midiNote<<7;break;case P.noteOnVelocity:o=e.velocity<<7;break;case P.polyPressure:o=e.pressure<<7;break;default:o=t[h]}}let g=Ee[A.secSrcCurveType][A.secSrcPolarity][A.secSrcDirection][o],i=A.transformAmount;A.isEffectModulator&&i<=1e3&&(i*=Ir,i=Math.min(i,1e3));let E=n*g*i;return A.transformType===2&&(E=Math.abs(E)),A.currentValue=E,E}function $A(t,A,e=-1,s=0){let n=t.modulators,o=t.generators,g=t.modulatedGenerators;if(e===-1){g.set(o),n.forEach(h=>{let d=J[h.modulatorDestination],Q=g[h.modulatorDestination]+un(A,h,t);g[h.modulatorDestination]=Math.max(d.min,Math.min(Q,d.max))}),PA.recalculate(t),JA.recalculate(t);return}let i=new Set([r.initialAttenuation,r.delayVolEnv,r.attackVolEnv,r.holdVolEnv,r.decayVolEnv,r.sustainVolEnv,r.releaseVolEnv,r.keyNumToVolEnvHold,r.keyNumToVolEnvDecay]),E=new Set;n.forEach(h=>{if(h.sourceUsesCC===e&&h.sourceIndex===s||h.secSrcUsesCC===e&&h.secSrcIndex===s){let d=h.modulatorDestination;E.has(d)||(g[d]=o[d],un(A,h,t),n.forEach(Q=>{if(Q.modulatorDestination===d){let l=J[h.modulatorDestination],c=g[h.modulatorDestination]+Q.currentValue;g[h.modulatorDestination]=Math.max(l.min,Math.min(c,l.max))}}),E.add(d))}}),[...E].some(h=>i.has(h))&&PA.recalculate(t),JA.recalculate(t)}var Ee=[];for(let t=0;t<4;t++){Ee[t]=[[new Float32Array(fA),new Float32Array(fA)],[new Float32Array(fA),new Float32Array(fA)]];for(let A=0;A200&&e<40||this.highPerformanceMode&&e<10||g.isMuted)return;let i=A+g.channelTransposeKeyShift,E=i;if(A>127||A<0)return;let h=g.preset.program;this.tunings[h]?.[A]?.midiNote>=0&&(E=this.tunings[h]?.[A].midiNote),g.velocityOverride>0&&(e=g.velocityOverride);let d=this.keyModifierManager.getVelocity(t,A);d>-1&&(e=d);let Q=this.getWorkletVoices(t,E,e,g,o,i,s),l=g.voices;Q.forEach(c=>{let f=c.generators[r.exclusiveClass];f!==0&&l.forEach(G=>{G.generators[r.exclusiveClass]===f&&(this.releaseVoice(G,fn),G.modulatedGenerators[r.releaseVolEnv]=-7e3,G.modulatedGenerators[r.releaseModEnv]=-7e3,PA.recalculate(G),JA.recalculate(G))}),$A(c,g.midiControllers);let y=c.modulatedGenerators[r.startAddrsOffset]+c.modulatedGenerators[r.startAddrsCoarseOffset]*32768,S=c.modulatedGenerators[r.endAddrOffset]+c.modulatedGenerators[r.endAddrsCoarseOffset]*32768,w=c.modulatedGenerators[r.startloopAddrsOffset]+c.modulatedGenerators[r.startloopAddrsCoarseOffset]*32768,H=c.modulatedGenerators[r.endloopAddrsOffset]+c.modulatedGenerators[r.endloopAddrsCoarseOffset]*32768,R=c.sample,x=G=>Math.max(0,Math.min(R.sampleData.length-1,G));if(R.cursor=x(R.cursor+y),R.end=x(R.end+S),R.loopStart=x(R.loopStart+w),R.loopEnd=x(R.loopEnd+H),R.loopEndthis.voiceCap&&this.voiceKilling(Q.length),l.push(...Q),n&&(this.sendChannelProperties(),this.callEvent("noteon",{midiNote:A,channel:t,velocity:e}))}function mn(t,A){if(A>127||A<0){U("Received a noteOn for note",A,"Ignoring.");return}let e=A+this.workletProcessorChannels[t].channelTransposeKeyShift;if(this.highPerformanceMode&&!this.workletProcessorChannels[t].drumChannel){this.killNote(t,e);return}this.workletProcessorChannels[t].voices.forEach(n=>{n.realKey!==e||n.isInRelease===!0||(this.workletProcessorChannels[t].holdPedal?this.workletProcessorChannels[t].sustainedVoices.push(n):this.releaseVoice(n))}),this.callEvent("noteoff",{midiNote:A,channel:t})}function pn(t,A){this.workletProcessorChannels[t].voices.forEach(e=>{e.realKey===A&&(e.modulatedGenerators[r.releaseVolEnv]=-12e3,this.releaseVoice(e))})}function yn(t,A=!1){let e=this.workletProcessorChannels[t].voices;A?(e.length=0,this.workletProcessorChannels[t].sustainedVoices.length=0,this.sendChannelProperties()):(e.forEach(s=>{s.isInRelease||this.releaseVoice(s)}),this.workletProcessorChannels[t].sustainedVoices.forEach(s=>{this.releaseVoice(s)}))}function Sn(t=!1){p("%cStop all received!",a.info);for(let A=0;A$A(n,this.workletProcessorChannels[t].midiControllers,0,P.pitchWheel)),this.sendChannelProperties()}function Mn(t,A){let e=this.workletProcessorChannels[t];e.midiControllers[dA+P.channelPressure]=A<<7,this.workletProcessorChannels[t].voices.forEach(s=>$A(s,e.midiControllers,0,P.channelPressure)),this.callEvent("channelpressure",{channel:t,pressure:A})}function Nn(t,A,e){this.workletProcessorChannels[t].voices.forEach(s=>{s.midiNote===A&&(s.pressure=e,$A(s,this.workletProcessorChannels[t].midiControllers,0,P.polyPressure))}),this.callEvent("polypressure",{channel:t,midiNote:A,pressure:e})}function bn(t,A){if(A.length!==12)throw new Error("Tuning is not the length of 12.");this.workletProcessorChannels[t].channelOctaveTuning=A}function Ln(t,A,e,s=!1){let n=this.workletProcessorChannels[t];if(n===void 0){U(`Trying to access channel ${t} which does not exist... ignoring!`);return}if(A>127){if(!s)return;switch(A){default:return;case Ut.velocityOverride:n.velocityOverride=e}}if(A>=k.lsbForControl1ModulationWheel&&A<=k.lsbForControl13EffectControl2&&A!==k.lsbForControl6DataEntry){let o=A-32;if(n.lockedControllers[o])return;n.midiControllers[o]=n.midiControllers[o]&16256|e&127,n.voices.forEach(g=>$A(g,n.midiControllers,1,o))}switch(A){case k.allNotesOff:this.stopAll(t);break;case k.allSoundOff:this.stopAll(t,!0);break;case k.bankSelect:let o=e;if(!s){switch(this.system){case"gm":p(`%cIgnoring the Bank Select (${e}), as the synth is in GM mode.`,a.info);return;case"xg":o===120||o===126||o===127?this.setDrums(t,!0):t%16!==RA&&this.setDrums(t,!1);break;case"gm2":o===120&&this.setDrums(t,!0)}n.drumChannel&&(o=128),o===128&&!n.drumChannel&&(o=XA(n))}te(n,o);break;case k.lsbForControl0BankSelect:this.system==="xg"?n.drumChannel||e!==127&&te(n,e):this.system==="gm2"&&te(n,e);break;case k.RPNLsb:n.RPValue=n.RPValue<<7|e,n.dataEntryState=wA.RPFine;break;case k.RPNMsb:n.RPValue=e,n.dataEntryState=wA.RPCoarse;break;case k.NRPNMsb:n.NRPCoarse=e,n.dataEntryState=wA.NRPCoarse;break;case k.NRPNLsb:n.NRPFine=e,n.dataEntryState=wA.NRPFine;break;case k.dataEntryMsb:this.dataEntryCoarse(t,e);break;case k.lsbForControl6DataEntry:this.dataEntryFine(t,e);break;case k.resetAllControllers:this.resetControllers(t);break;case k.sustainPedal:e>=64?n.holdPedal=!0:(n.holdPedal=!1,n.sustainedVoices.forEach(g=>{this.releaseVoice(g)}),n.sustainedVoices=[]);break;default:if(n.lockedControllers[A])return;n.midiControllers[A]=e<<7,n.voices.forEach(g=>$A(g,n.midiControllers,1,A));break}this.callEvent("controllerchange",{channel:t,controllerNumber:A,controllerValue:e})}function Un(t){this.midiVolume=t,this.setMasterPan(this.pan)}function Tn(t){this.masterGain=t*Kt,this.setMasterPan(this.pan)}function vn(t){this.pan=t,t=t/2+.5,this.panLeft=1-t,this.panRight=t}function Hn(t,A){A&&this.stopAll(t,!0),this.workletProcessorChannels[t].isMuted=A,this.sendChannelProperties(),this.callEvent("mutechannel",{channel:t,isMuted:A})}function Yn(t){this.workletProcessorChannels[t].lockGSNRPNParams=!0,this.workletProcessorChannels[t].channelVibrato.rate=0,this.workletProcessorChannels[t].channelVibrato.delay=0,this.workletProcessorChannels[t].channelVibrato.depth=0}function Jn(t,A,e,s){this.workletProcessorChannels[t].lockGSNRPNParams||(this.workletProcessorChannels[t].channelVibrato.rate=e,this.workletProcessorChannels[t].channelVibrato.delay=s,this.workletProcessorChannels[t].channelVibrato.depth=A)}function Pn(t,A){let e=this.workletProcessorChannels[t],s=()=>{e.channelVibrato.delay===0&&e.channelVibrato.rate===0&&e.channelVibrato.depth===0&&(e.channelVibrato.depth=50,e.channelVibrato.rate=8,e.channelVibrato.delay=.6)};switch(e.dataEntryState){default:case wA.Idle:break;case wA.NRPFine:if(this.system!=="gs"||e.lockGSNRPNParams)return;switch(e.NRPCoarse){default:if(A===64)return;U(`%cUnrecognized NRPN for %c${t}%c: %c(0x${e.NRPCoarse.toString(16).toUpperCase()} 0x${e.NRPFine.toString(16).toUpperCase()})%c data value: %c${A}`,a.warn,a.recognized,a.warn,a.unrecognized,a.warn,a.value);break;case 1:switch(e.NRPFine){default:if(A===64)return;U(`%cUnrecognized NRPN for %c${t}%c: %c(0x${e.NRPCoarse.toString(16)} 0x${e.NRPFine.toString(16)})%c data value: %c${A}`,a.warn,a.recognized,a.warn,a.unrecognized,a.warn,a.value);break;case 8:if(A===64)return;s(),e.channelVibrato.rate=A/64*8,p(`%cVibrato rate for %c${t}%c is now set to %c${A} = ${e.channelVibrato.rate}%cHz.`,a.info,a.recognized,a.info,a.value,a.info);break;case 9:if(A===64)return;s(),e.channelVibrato.depth=A/2,p(`%cVibrato depth for %c${t}%c is now set to %c${A} = ${e.channelVibrato.depth}%c cents range of detune.`,a.info,a.recognized,a.info,a.value,a.info);break;case 10:if(A===64)return;s(),e.channelVibrato.delay=A/64/3,p(`%cVibrato delay for %c${t}%c is now set to %c${A} = ${e.channelVibrato.delay}%c seconds.`,a.info,a.recognized,a.info,a.value,a.info);break;case 32:let g=A;this.controllerChange(t,k.brightness,A),p(`%cFilter cutoff for %c${t}%c is now set to %c${g}`,a.info,a.recognized,a.info,a.value)}break;case 24:let n=A-64;e.keyCentTuning[e.NRPFine]=n*100,p(`%cGS drum key tuning. MIDI note: %c${e.NRPFine}%c semitones: %c${n}`,a.info,a.recognized,a.info,a.value);break;case 29:let o=A;this.controllerChange(t,k.reverbDepth,o),p(`%cGS Drum reverb for %c${t}%c: %c${o}`,a.info,a.recognized,a.info,a.value);break}break;case wA.RPCoarse:case wA.RPFine:switch(e.RPValue){default:U(`%cUnrecognized RPN for %c${t}%c: %c(0x${e.RPValue.toString(16)})%c data value: %c${A}`,a.warn,a.recognized,a.warn,a.unrecognized,a.warn,a.value);break;case 0:e.midiControllers[dA+P.pitchWheelRange]=A<<7,p(`%cChannel ${t} bend range. Semitones: %c${A}`,a.info,a.value);break;case 2:this.setChannelTuningSemitones(t,A-64);break;case 1:this.setChannelTuning(t,A-64,!1);break;case 5:this.setModulationDepth(t,A*100);break;case 16383:this.resetParameters(t);break}}}function qn(t,A){let e=this.workletProcessorChannels[t];switch(e.dataEntryState){default:break;case wA.RPCoarse:case wA.RPFine:switch(e.RPValue){default:break;case 0:if(A===0)break;e.midiControllers[dA+P.pitchWheelRange]|=A;let s=(e.midiControllers[dA+P.pitchWheelRange]>>7)+A/127;p(`%cChannel ${t} bend range. Semitones: %c${s}`,a.info,a.value);break;case 1:let o=e.customControllers[hA.channelTuning]<<7|A;this.setChannelTuning(t,o*.01220703125);break;case 5:let i=e.customControllers[hA.modulationMultiplier]*50+A/128*100;this.setModulationDepth(t,i);break;case 16383:this.resetParameters(t);break}}}function Kn(t=!0){t&&p("%cResetting all controllers!",a.info),this.callEvent("allcontrollerreset",void 0);for(let A=0;A>7});if(this.workletProcessorChannels[A].lockedControllers[dA+P.pitchWheel]===!1){let s=this.workletProcessorChannels[A].midiControllers[dA+P.pitchWheel],n=s>>7,o=s&127;this.callEvent("pitchwheel",{channel:A,MSB:n,LSB:o})}}this.tunings=[],this.tunings=[];for(let A=0;127>A;A++)this.tunings.push([]);this.setMIDIVolume(1),this.system=At}function Vn(t){let A=this.workletProcessorChannels[t],e=A.lockedControllers.reduce((n,o,g)=>(o&&n.push(g),n),[]);A.channelOctaveTuning.fill(0),A.keyCentTuning.fill(0);for(let n=0;n>7}),A.midiControllers[n]=o}A.channelVibrato={rate:0,depth:0,delay:0},A.holdPedal=!1;let s=A.customControllers[hA.channelTransposeFine];A.customControllers.set(Lt),A.customControllers[hA.channelTransposeFine]=s,this.resetParameters(t)}function On(t){let A=this.workletProcessorChannels[t];A.NRPCoarse=0,A.NRPFine=0,A.RPValue=0,A.dataEntryState=wA.Idle}function Zn(){let t=4;for(let s of this.instruments)t+=s.instrumentZones.reduce((n,o)=>(o.generators=o.generators.filter(g=>g.generatorType!==r.sampleID&&g.generatorType!==r.keyRange&&g.generatorType!==r.velRange),(o.velRange.max!==127||o.velRange.min!==0)&&o.generators.unshift({generatorType:r.velRange,generatorValue:o.velRange.max<<8|Math.max(o.velRange.min,0)}),(o.keyRange.max!==127||o.keyRange.min!==0)&&o.generators.unshift({generatorType:r.keyRange,generatorValue:o.keyRange.max<<8|Math.max(o.keyRange.min,0)}),o.isGlobal||o.generators.push({generatorType:r.sampleID,generatorValue:this.samples.indexOf(o.sample)}),o.generators.length*4+n),0);let A=new b(t),e=0;for(let s of this.instruments)for(let n of s.instrumentZones){n.generatorZoneStartIndex=e;for(let o of n.generators)N(A,o.generatorType),N(A,o.generatorValue),e++}return V(A,0),gA(new oA("igen",A.length,A))}function Wn(t,A,e,s,n){let o=this.samples.map((h,d)=>{e&&h.compressSample(s,n);let Q=h.getRawData();return p(`%cEncoded sample %c${d}. ${h.sampleName}%c of %c${this.samples.length}`,a.info,a.recognized,a.info,a.recognized),Q}),g=this.samples.reduce((h,d,Q)=>h+o[Q].length+46,0),i=new b(g);this.samples.forEach((h,d)=>{let Q=o[d],l,c,f=Q.length;h.isCompressed?(l=i.currentIndex,c=l+Q.length):(l=i.currentIndex/2,c=l+Q.length/2,f+=46),t.push(l),i.set(Q,i.currentIndex),i.currentIndex+=f,A.push(c)});let E=gA(new oA("smpl",i.length,i),new b([115,100,116,97]));return gA(new oA("LIST",E.length,E))}function Xn(t,A){let s=new b(46*(this.samples.length+1));return this.samples.forEach((n,o)=>{yA(s,n.sampleName,20);let g=t[o];V(s,g);let i=A[o];V(s,i);let E=n.sampleLoopStartIndex+g,h=n.sampleLoopEndIndex+g;n.isCompressed&&(E-=g,h-=g),V(s,E),V(s,h),V(s,n.sampleRate),s[s.currentIndex++]=n.samplePitch,s[s.currentIndex++]=n.samplePitchCorrection,N(s,n.sampleLink),N(s,n.sampleType)}),yA(s,"EOS",46),gA(new oA("shdr",s.length,s))}function _n(){let t=10;for(let s of this.instruments)t+=s.instrumentZones.reduce((n,o)=>o.modulators.length*10+n,0);let A=new b(t),e=0;for(let s of this.instruments)for(let n of s.instrumentZones){n.modulatorZoneStartIndex=e;for(let o of n.modulators)N(A,o.sourceEnum),N(A,o.modulatorDestination),N(A,o.transformAmount),N(A,o.secondarySourceEnum),N(A,o.transformType),e++}return de(A,0,10),gA(new oA("imod",A.length,A))}function zn(){let t=this.instruments.reduce((o,g)=>g.instrumentZones.length*4+o,4),A=new b(t),e=0,s=0,n=0;for(let o of this.instruments){o.instrumentZoneIndex=e;for(let g of o.instrumentZones)g.zoneID=e,N(A,s),N(A,n),s+=g.generators.length,n+=g.modulators.length,e++}return N(A,s),N(A,n),gA(new oA("ibag",A.length,A))}function jn(){let t=this.instruments.length*22+22,A=new b(t),e=0,s=0;for(let n of this.instruments)yA(A,n.instrumentName,20),N(A,e),e+=n.instrumentZones.length,n.instrumentID=s,s++;return yA(A,"EOI",20),N(A,e),gA(new oA("inst",A.length,A))}function $n(){let t=4;for(let s of this.presets)t+=s.presetZones.reduce((n,o)=>(o.generators=o.generators.filter(g=>g.generatorType!==r.instrument&&g.generatorType!==r.keyRange&&g.generatorType!==r.velRange),(o.velRange.max!==127||o.velRange.min!==0)&&o.generators.unshift({generatorType:r.velRange,generatorValue:o.velRange.max<<8|Math.max(o.velRange.min,0)}),(o.keyRange.max!==127||o.keyRange.min!==0)&&o.generators.unshift({generatorType:r.keyRange,generatorValue:o.keyRange.max<<8|Math.max(o.keyRange.min,0)}),o.isGlobal||o.generators.push({generatorType:r.instrument,generatorValue:this.instruments.indexOf(o.instrument)}),o.generators.length*4+n),0);let A=new b(t),e=0;for(let s of this.presets)for(let n of s.presetZones){n.generatorZoneStartIndex=e;for(let o of n.generators)N(A,o.generatorType),N(A,o.generatorValue);e+=n.generators.length}return N(A,0),N(A,0),gA(new oA("pgen",A.length,A))}function Ao(){let t=10;for(let s of this.presets)t+=s.presetZones.reduce((n,o)=>o.modulators.length*10+n,0);let A=new b(t),e=0;for(let s of this.presets)for(let n of s.presetZones){n.modulatorZoneStartIndex=e;for(let o of n.modulators)N(A,o.sourceEnum),N(A,o.modulatorDestination),N(A,o.transformAmount),N(A,o.secondarySourceEnum),N(A,o.transformType),e++}return de(A,0,10),gA(new oA("pmod",A.length,A))}function eo(){let t=this.presets.reduce((o,g)=>g.presetZones.length*4+o,4),A=new b(t),e=0,s=0,n=0;for(let o of this.presets){o.presetZoneStartIndex=e;for(let g of o.presetZones)g.zoneID=e,N(A,s),N(A,n),s+=g.generators.length,n+=g.modulators.length,e++}return N(A,s),N(A,n),gA(new oA("pbag",A.length,A))}function to(){let t=this.presets.length*38+38,A=new b(t),e=0;for(let s of this.presets)yA(A,s.presetName,20),N(A,s.program),N(A,s.bank),N(A,e),V(A,s.library),V(A,s.genre),V(A,s.morphology),e+=s.presetZones.length;return yA(A,"EOP",20),N(A,0),N(A,0),N(A,e),V(A,0),V(A,0),V(A,0),gA(new oA("phdr",A.length,A))}var Cr={compress:!1,compressionQuality:.5,compressionFunction:void 0};function so(t=Cr){if(t.compress&&typeof t.compressionFunction!="function")throw new TypeError("No compression function supplied but compression enabled.");QA("%cSaving soundfont...",a.info),p(`%cCompression: %c${t?.compress||"false"}%c quality: %c${t?.compressionQuality||"none"}`,a.info,a.recognized,a.info,a.recognized),p("%cWriting INFO...",a.info);let A=[];this.soundFontInfo.ISFT="SpessaSynth",t?.compress&&(this.soundFontInfo.ifil="3.0");for(let[x,G]of Object.entries(this.soundFontInfo))if(x==="ifil"||x==="iver"){let I=parseInt(G.split(".")[0]),rA=parseInt(G.split(".")[1]),O=new b(4);N(O,I),N(O,rA),A.push(gA(new oA(x,4,O)))}else if(x==="DMOD")A.push(gA(new oA(x,G.length,G)));else{let I=new b(G.length);yA(I,G),A.push(gA(new oA(x,G.length,I)))}let e=cA([new b([73,78,70,79]),...A]),s=gA(new oA("LIST",e.length,e));p("%cWriting SDTA...",a.info);let n=[],o=[],g=Wn.call(this,n,o,t?.compress,t?.compressionQuality??.5,t.compressionFunction);p("%cWriting PDTA...",a.info),p("%cWriting SHDR...",a.info);let i=Xn.call(this,n,o);p("%cWriting IGEN...",a.info);let E=Zn.call(this);p("%cWriting IMOD...",a.info);let h=_n.call(this);p("%cWriting IBAG...",a.info);let d=zn.call(this);p("%cWriting INST...",a.info);let Q=jn.call(this),l=$n.call(this);p("%cWriting PMOD...",a.info);let c=Ao.call(this);p("%cWriting PBAG...",a.info);let f=eo.call(this);p("%cWriting PHDR...",a.info);let y=to.call(this),S=cA([new b([112,100,116,97]),y,f,c,l,Q,d,h,E,i]),w=gA(new oA("LIST",S.length,S));p("%cWriting the output file...",a.info);let H=cA([new b([115,102,98,107]),s,g,w]),R=gA(new oA("RIFF",H.length,H));return p(`%cSaved succesfully! Final file size: %c${R.length}`,a.info,a.recognized),K(),R}var Ue=class{velRange={min:-1,max:127};keyRange={min:-1,max:127};isGlobal=!1;generators=[];modulators=[];get hasKeyRange(){return this.keyRange.min!==-1}get hasVelRange(){return this.velRange.min!==-1}getGeneratorValue(A,e){return this.generators.find(s=>s.generatorType===A)?.generatorValue??e}};var OA=class extends Ue{sample=void 0;useCount=0;deleteZone(){this.useCount--,!this.isGlobal&&this.sample.useCount--}},ye=class extends Ue{instrument=void 0;deleteZone(){this.isGlobal||this.instrument.removeUseCount()}};var Er=new Set([r.velRange,r.keyRange,r.instrument,r.exclusiveClass,r.endOper,r.sampleModes,r.startloopAddrsOffset,r.startloopAddrsCoarseOffset,r.endloopAddrsOffset,r.endloopAddrsCoarseOffset,r.startAddrsOffset,r.startAddrsCoarseOffset,r.endAddrOffset,r.endAddrsCoarseOffset,r.initialAttenuation,r.fineTune,r.coarseTune,r.keyNumToVolEnvHold,r.keyNumToVolEnvDecay,r.keyNumToModEnvHold,r.keyNumToModEnvDecay]);function no(t,A=!0){function e(Q,l){Q.push(...l.filter(c=>!Q.find(f=>f.generatorType===c.generatorType)))}function s(Q,l){return{min:Math.max(Q.min,l.min),max:Math.min(Q.max,l.max)}}function n(Q,l){Q.push(...l.filter(c=>!Q.find(f=>X.isIdentical(c,f))))}let o=[],g=[],i=[],E={min:0,max:127},h={min:0,max:127},d=t.presetZones.find(Q=>Q.isGlobal);d&&(g.push(...d.generators),i.push(...d.modulators),E=d.keyRange,h=d.velRange);for(let Q of t.presetZones){if(Q.isGlobal)continue;let l=Q.keyRange;Q.hasKeyRange||(l=E);let c=Q.velRange;Q.hasVelRange||(c=h);let f=Q.generators.map(I=>new T(I.generatorType,I.generatorValue));e(f,g);let y=[...Q.modulators];n(y,i);let S=Q.instrument.instrumentZones,w=[],H=[],R={min:0,max:127},x={min:0,max:127},G=S.find(I=>I.isGlobal);G&&(w.push(...G.generators),H.push(...G.modulators),R=G.keyRange,x=G.velRange);for(let I of S){if(I.isGlobal)continue;let rA=I.keyRange;I.hasKeyRange||(rA=R);let O=I.velRange;if(I.hasVelRange||(O=x),rA=s(rA,l),O=s(O,c),rA.maxnew T(eA.generatorType,eA.generatorValue));e(AA,w);let $=[...I.modulators];n($,H);let IA=[...$];for(let eA of y){let lA=IA.findIndex(LA=>X.isIdentical(eA,LA));lA!==-1?IA[lA]=IA[lA].sumTransform(eA):IA.push(eA)}let nA=AA.map(eA=>new T(eA.generatorType,eA.generatorValue));for(let eA of f){if(eA.generatorType===r.velRange||eA.generatorType===r.keyRange||eA.generatorType===r.instrument||eA.generatorType===r.endOper||eA.generatorType===r.sampleModes)continue;let lA=AA.findIndex(LA=>LA.generatorType===eA.generatorType);if(lA!==-1){let LA=nA[lA].generatorValue+eA.generatorValue;nA[lA]=new T(eA.generatorType,LA)}else{let LA=J[eA.generatorType].def+eA.generatorValue;nA.push(new T(eA.generatorType,LA))}}nA=nA.filter(eA=>eA.generatorType!==r.sampleID&&eA.generatorType!==r.keyRange&&eA.generatorType!==r.velRange&&eA.generatorType!==r.endOper&&eA.generatorType!==r.instrument&&eA.generatorValue!==J[eA.generatorType].def);let iA=new OA;iA.keyRange=rA,iA.velRange=O,iA.keyRange.min===0&&iA.keyRange.max===127&&(iA.keyRange.min=-1),iA.velRange.min===0&&iA.velRange.max===127&&(iA.velRange.min=-1),iA.isGlobal=!1,iA.sample=I.sample,iA.generators=nA,iA.modulators=IA,o.push(iA)}}if(A){let Q=new OA;Q.isGlobal=!0;for(let f=0;f<58;f++){if(Er.has(f))continue;let y={},S=J[f]?.def||0;y[S]=0;for(let w of o){let H=w.generators.find(G=>G.generatorType===f);if(H){let G=H.generatorValue;y[G]===void 0?y[G]=1:y[G]++}else y[S]++;let R;switch(f){default:continue;case r.decayVolEnv:R=r.keyNumToVolEnvDecay;break;case r.holdVolEnv:R=r.keyNumToVolEnvHold;break;case r.decayModEnv:R=r.keyNumToModEnvDecay;break;case r.holdModEnv:R=r.keyNumToModEnvHold}if(w.generators.find(G=>G.generatorType===R)!==void 0){y={};break}}if(Object.keys(y).length>0){let w=Object.entries(y).reduce((R,x)=>R[1]{let x=R.generators.findIndex(G=>G.generatorType===f);x!==-1?R.generators[x].generatorValue===H&&R.generators.splice(x,1):H!==S&&R.generators.push(new T(f,S))})}}let c=o.find(f=>!f.isGlobal).modulators.map(f=>X.copy(f));for(let f of c){let y=!0;for(let S of o){if(S.isGlobal||!y)continue;S.modulators.find(H=>X.isIdentical(H,f))||(y=!1)}if(y===!0){Q.modulators.push(X.copy(f));for(let S of o){let w=S.modulators.find(H=>X.isIdentical(H,f));w.transformAmount===f.transformAmount&&S.modulators.splice(S.modulators.indexOf(w),1)}}}o.splice(0,0,Q)}return o}var oo=20;function at(t,A,e,s,n,o,g){let i=g===0?0:1,E=new b(oo+i*16);V(E,oo),N(E,A),N(E,e);let h=s*.4,d=Math.floor(h*-65536);V(E,d),V(E,0);let Q=o-n,l=0;switch(g){default:case 0:i=0;break;case 1:l=0,i=1;break;case 3:l=1,i=1}return V(E,i),i===1&&(V(E,16),V(E,l),V(E,n),V(E,Q)),tA("wsmp",E)}var v={none:0,modLfo:1,velocity:2,keyNum:3,volEnv:4,modEnv:5,pitchWheel:6,polyPressure:7,channelPressure:8,vibratoLfo:9,modulationWheel:129,volume:135,pan:138,expression:139,chorus:219,reverb:221,pitchWheelRange:256,fineTune:257,coarseTune:258};var D={none:0,gain:1,reserved:2,pitch:3,pan:4,keyNum:5,chorusSend:128,reverbSend:129,modLfoFreq:260,modLfoDelay:261,vibLfoFreq:276,vibLfoDelay:277,volEnvAttack:518,volEnvDecay:519,volEnvRelease:521,volEnvSustain:522,volEnvDelay:523,volEnvHold:524,modEnvAttack:778,modEnvDecay:779,modEnvRelease:781,modEnvSustain:782,modEnvDelay:783,modEnvHold:784,filterCutoff:1280,filterQ:1281};var Te=class{source;control;destination;scale;transform;constructor(A,e,s,n,o){this.source=A,this.control=e,this.destination=s,this.scale=n,this.transform=o}writeArticulator(){let A=new b(12);return N(A,this.source),N(A,this.control),N(A,this.destination),N(A,this.transform),V(A,this.scale<<16),A}};function ro(t,A){if(t)switch(A){default:return;case k.modulationWheel:return v.modulationWheel;case k.mainVolume:return v.volume;case k.pan:return v.pan;case k.expressionController:return v.expression;case k.chorusDepth:return v.chorus;case k.reverbDepth:return v.reverb}else switch(A){default:return;case P.noteOnKeyNum:return v.keyNum;case P.noteOnVelocity:return v.velocity;case P.noController:return v.none;case P.polyPressure:return v.polyPressure;case P.channelPressure:return v.channelPressure;case P.pitchWheel:return v.pitchWheel;case P.pitchWheelRange:return v.pitchWheelRange}}function io(t,A){switch(t){default:return;case r.initialAttenuation:return{dest:D.gain,amount:-A};case r.fineTune:return D.pitch;case r.pan:return D.pan;case r.keyNum:return D.keyNum;case r.reverbEffectsSend:return D.reverbSend;case r.chorusEffectsSend:return D.chorusSend;case r.freqModLFO:return D.modLfoFreq;case r.delayModLFO:return D.modLfoDelay;case r.delayVibLFO:return D.vibLfoDelay;case r.freqVibLFO:return D.vibLfoFreq;case r.delayVolEnv:return D.volEnvDelay;case r.attackVolEnv:return D.volEnvAttack;case r.holdVolEnv:return D.volEnvHold;case r.decayVolEnv:return D.volEnvDecay;case r.sustainVolEnv:return{dest:D.volEnvSustain,amount:1e3-A};case r.releaseVolEnv:return D.volEnvRelease;case r.delayModEnv:return D.modEnvDelay;case r.attackModEnv:return D.modEnvAttack;case r.holdModEnv:return D.modEnvHold;case r.decayModEnv:return D.modEnvDecay;case r.sustainModEnv:return{dest:D.modEnvSustain,amount:1e3-A};case r.releaseModEnv:return D.modEnvRelease;case r.initialFilterFc:return D.filterCutoff;case r.initialFilterQ:return D.filterQ}}function ao(t,A){switch(t){default:return;case r.modEnvToFilterFc:return{source:v.modEnv,dest:D.filterCutoff,amt:A,isBipolar:!1};case r.modEnvToPitch:return{source:v.modEnv,dest:D.pitch,amt:A,isBipolar:!1};case r.modLfoToFilterFc:return{source:v.modLfo,dest:D.filterCutoff,amt:A,isBipolar:!0};case r.modLfoToVolume:return{source:v.modLfo,dest:D.gain,amt:A,isBipolar:!0};case r.modLfoToPitch:return{source:v.modLfo,dest:D.pitch,amt:A,isBipolar:!0};case r.vibLfoToPitch:return{source:v.vibratoLfo,dest:D.pitch,amt:A,isBipolar:!0};case r.keyNumToVolEnvHold:return{source:v.keyNum,dest:D.volEnvHold,amt:A,isBipolar:!0};case r.keyNumToVolEnvDecay:return{source:v.keyNum,dest:D.volEnvDecay,amt:A,isBipolar:!0};case r.keyNumToModEnvHold:return{source:v.keyNum,dest:D.modEnvHold,amt:A,isBipolar:!0};case r.keyNumToModEnvDecay:return{source:v.keyNum,dest:D.modEnvDecay,amt:A,isBipolar:!0};case r.scaleTuning:return{source:v.keyNum,dest:D.pitch,amt:A*128,isBipolar:!1}}}function go(t){let A=io(t.generatorType,t.generatorValue),e=A,s=0,n=t.generatorValue;A?.amount!==void 0&&(n=A.amount,e=A.dest);let o=ao(t.generatorType,t.generatorValue);if(o!==void 0)n=o.amt,e=o.dest,s=o.source;else if(e===void 0){U(`Invalid generator type: ${t.generatorType}`);return}return new Te(s,0,e,n,0)}function Io(t){if(t.transformType!==0){U("Other transform types are not supported.");return}let A=ro(t.sourceUsesCC,t.sourceIndex),e=t.sourceCurveType,s=t.sourcePolarity,n=t.sourceDirection;if(A===void 0){U(`Invalid source: ${t.sourceIndex}, CC: ${t.sourceUsesCC}`);return}let o=ro(t.secSrcUsesCC,t.secSrcIndex),g=t.secSrcCurveType,i=t.secSrcPolarity,E=t.secSrcDirection;if(o===void 0){U(`Invalid secondary source: ${t.secSrcIndex}, CC: ${t.secSrcUsesCC}`);return}let h=io(t.modulatorDestination,t.transformAmount),d=h,Q=t.transformAmount;h?.dest!==void 0&&(d=h.dest,Q=h.amount);let l=ao(t.modulatorDestination,t.transformAmount);if(l!==void 0)Q=l.amt,o=A,g=e,i=s,E=n,e=uA.linear,s=l.isBipolar?1:0,n=0,A=l.source,d=l.dest;else if(d===void 0){U(`Invalid destination: ${t.modulatorDestination}`);return}let c=0;return c|=g<<4,c|=i<<8,c|=E<<9,c|=e<<10,c|=s<<14,c|=n<<15,new Te(A,o,d,Q,c)}var Br=new Set([r.sampleModes,r.initialAttenuation,r.keyRange,r.velRange,r.sampleID,r.fineTune,r.coarseTune,r.startAddrsOffset,r.startAddrsCoarseOffset,r.endAddrOffset,r.endAddrsCoarseOffset,r.startloopAddrsOffset,r.startloopAddrsCoarseOffset,r.endloopAddrsOffset,r.endloopAddrsCoarseOffset,r.overridingRootKey,r.exclusiveClass]);function gt(t){for(let o=0;of.generatorType===i);if(E===void 0)continue;let h=g.generatorValue*-128,d=60/128*h,Q=E.generatorValue-d,l=t.generators.indexOf(g),c=t.generators.indexOf(E);t.generators[c]=new T(i,Q,!1),t.generators[l]=new T(g.generatorType,h,!1)}let A=t.generators.reduce((o,g)=>{if(Br.has(g.generatorType))return o;let i=go(g);return i!==void 0?(o.push(i),p("%cSucceeded converting to DLS Articulator!",a.recognized)):U("Failed converting to DLS Articulator!"),o},[]),e=t.modulators.reduce((o,g)=>{let i=Io(g);return i!==void 0?(o.push(i),p("%cSucceeded converting to DLS Articulator!",a.recognized)):U("Failed converting to DLS Articulator!"),o},[]);A.push(...e);let s=new b(8);V(s,8),V(s,A.length);let n=A.map(o=>o.writeArticulator());return tA("art2",cA([s,...n]))}function Co(t,A){let e=new b(14);N(e,Math.max(t.keyRange.min,0)),N(e,t.keyRange.max),N(e,Math.max(t.velRange.min,0)),N(e,t.velRange.max),N(e,0);let s=t.getGeneratorValue(r.exclusiveClass,0);N(e,s),N(e,0);let n=tA("rgnh",e),o=t.getGeneratorValue(r.overridingRootKey,t.sample.samplePitch);t.getGeneratorValue(r.scaleTuning,A.getGeneratorValue(r.scaleTuning,100))===0&&t.keyRange.max-t.keyRange.min===0&&(o=t.keyRange.min);let i=at(t.sample,o,t.getGeneratorValue(r.fineTune,0)+t.getGeneratorValue(r.coarseTune,0)*100+t.sample.samplePitchCorrection,t.getGeneratorValue(r.initialAttenuation,0),t.sample.sampleLoopStartIndex+t.getGeneratorValue(r.startloopAddrsOffset,0)+t.getGeneratorValue(r.startloopAddrsCoarseOffset,0)*32768,t.sample.sampleLoopEndIndex+t.getGeneratorValue(r.endloopAddrsOffset,0)+t.getGeneratorValue(r.endloopAddrsCoarseOffset,0)*32768,t.getGeneratorValue(r.sampleModes,0)),E=new b(12);N(E,0),N(E,0);let h=0;switch(t.sample.sampleType){default:case 1:case 4:h=0;break;case 2:h=1}V(E,h),V(E,this.samples.indexOf(t.sample));let d=tA("wlnk",E),Q=gt(t),l=tA("lar2",Q,!1,!0);return tA("rgn2",cA([n,i,d,l]),!1,!0)}function Eo(t){QA(`%cWriting %c${t.presetName}%c...`,a.info,a.recognized,a.info);let A=no(t),e=A.reduce((l,c)=>c.isGlobal?l:l+1,0),s=new b(12);V(s,e);let n=(t.bank&127)<<8;t.bank===128&&(n|=1<<31),V(s,n),V(s,t.program&127);let o=tA("insh",s),g=new b(0),i=A.find(l=>l.isGlobal===!0);if(i){let l=gt(i);g=tA("lar2",l,!1,!0)}let E=cA(A.reduce((l,c)=>(c.isGlobal||l.push(Co.apply(this,[c,i])),l),[])),h=tA("lrgn",E,!1,!0),d=tA("INAM",ge(t.presetName)),Q=tA("INFO",d,!1,!0);return K(),tA("ins ",cA([o,h,g,Q]),!1,!0)}function Bo(){let t=cA(this.presets.map(A=>Eo.apply(this,[A])));return tA("lins",t,!1,!0)}function ho(t){let A=new b(18);N(A,1),N(A,1),V(A,t.sampleRate),V(A,t.sampleRate*2),N(A,2),N(A,16);let e=tA("fmt ",A),s=at(t,t.samplePitch,t.samplePitchCorrection,0,t.sampleLoopStartIndex,t.sampleLoopEndIndex,1),n=t.getAudioData(),o;if(t.isCompressed){let E=new Int16Array(n.length);for(let h=0;h{let n=ho(s);return A.push(t),t+=n.length,n});return{data:tA("wvpl",cA(e),!1,!0),indexes:A}}function lo(){QA("%cSaving DLS...",a.info);let t=new b(4);V(t,this.presets.length);let A=tA("colh",t);QA("%cWriting instruments...",a.info);let e=Bo.apply(this);p("%cSuccess!",a.recognized),K(),QA("%cWriting WAVE samples...",a.info);let s=co.apply(this),n=s.data,o=s.indexes;p("%cSucceeded!",a.recognized),K();let g=new b(8+4*o.length);V(g,8),V(g,o.length);for(let Q of o)V(g,Q);let i=tA("ptbl",g);this.soundFontInfo.ICMT=(this.soundFontInfo.ICMT||"Soundfont")+` +Converted from SF2 to DLS using SpessaSynth`,this.soundFontInfo.ISFT="SpessaSynth";let E=[];for(let[Q,l]of Object.entries(this.soundFontInfo))Q!=="ICMT"&&Q!=="INAM"&&Q!=="ICRD"&&Q!=="IENG"&&Q!=="ICOP"&&Q!=="ISFT"&&Q!=="ISBJ"||E.push(tA(Q,ge(l)));let h=tA("INFO",cA(E),!1,!0),d=new b(A.length+e.length+i.length+n.length+h.length+4);return yA(d,"DLS "),d.set(cA([A,e,i,n,h]),4),p("%cSaved succesfully!",a.recognized),K(),tA("RIFF",d)}var oe=class t{constructor(A=void 0){this.soundFontInfo={},this.presets=[],this.samples=[],this.instruments=[],this.defaultModulators=Xe.map(e=>X.copy(e)),A?.presets&&(this.presets.push(...A.presets),this.soundFontInfo=A.info)}static mergeSoundfonts(...A){let e=A.shift(),s=e.presets;for(;A.length;)A.shift().presets.forEach(o=>{s.find(g=>g.bank===o.bank&&g.program===o.program)===void 0&&s.push(o)});return new t({presets:s,info:e.soundFontInfo})}removeUnusedElements(){this.instruments.forEach(A=>{A.useCount<1&&A.instrumentZones.forEach(e=>{e.isGlobal||e.sample.useCount--})}),this.instruments=this.instruments.filter(A=>A.useCount>0),this.samples=this.samples.filter(A=>A.useCount>0)}deleteInstrument(A){if(A.useCount>0)throw new Error(`Cannot delete an instrument that has ${A.useCount} usages.`);this.instruments.splice(this.instruments.indexOf(A),1),A.deleteInstrument(),this.removeUnusedElements()}deletePreset(A){A.deletePreset(),this.presets.splice(this.presets.indexOf(A),1),this.removeUnusedElements()}deleteSample(A){if(A.useCount>0)throw new Error(`Cannot delete sample that has ${A.useCount} usages.`);this.samples.splice(this.samples.indexOf(A),1),this.removeUnusedElements()}setSampleIDOffset(A){this.presets.forEach(e=>e.sampleIDOffset=A)}getPresetNoFallback(A,e,s=!1){let n=this.presets.find(o=>o.bank===A&&o.program===e);if(n)return n;if(s!==!1)return A===128?this.presets.find(o=>o.bank===128):this.presets.find(o=>o.program===e)}getPreset(A,e){let s=this.presets.find(n=>n.bank===A&&n.program===e);return s||(A===128?(s=this.presets.find(n=>n.bank===128&&n.program===e),s||(s=this.presets.find(n=>n.bank===128))):s=this.presets.find(n=>n.program===e&&n.bank!==128),s&&U(`%cPreset ${A}.${e} not found. Replaced with %c${s.presetName} (${s.bank}.${s.program})`,a.warn,a.recognized)),s||(U(`Preset ${e} not found. Defaulting to`,this.presets[0].presetName),s=this.presets[0]),s}getPresetByName(A){let e=this.presets.find(s=>s.presetName===A);return e||(U("Preset not found. Defaulting to:",this.presets[0].presetName),e=this.presets[0]),e}parsingError(A){throw new Error(`SF parsing error: ${A} The file may be corrupted.`)}destroySoundfont(){delete this.presets,delete this.instruments,delete this.samples}};oe.prototype.write=so;oe.prototype.writeDLS=lo;function Qo(t){QA("%cLoading instruments...",a.info);for(let A=0;AA.deleteZone()),this.presetZones.length=0}deleteZone(A){this.presetZones[A].deleteZone(),this.presetZones.splice(A,1)}preload(A,e){for(let s=A;s{o.sample.isSampleLoaded||o.sample.getAudioData()})}preloadSpecific(A,e){this.getSamplesAndGenerators(A,e).forEach(s=>{s.sample.isSampleLoaded||s.sample.getAudioData()})}getSamplesAndGenerators(A,e){let s=this.foundSamplesAndGenerators[A][e];if(s)return s;if(this.presetZones.length<1)return[];function n(c,f){return f>=c.min&&f<=c.max}function o(c,f){c.push(...f.filter(y=>!c.find(S=>S.generatorType===y.generatorType)))}function g(c,f){c.push(...f.filter(y=>!c.find(S=>X.isIdentical(y,S))))}let i=[],E=this.presetZones[0].isGlobal?[...this.presetZones[0].generators]:[],h=this.presetZones[0].isGlobal?[...this.presetZones[0].modulators]:[],d=this.presetZones[0].isGlobal?this.presetZones[0].keyRange:{min:0,max:127},Q=this.presetZones[0].isGlobal?this.presetZones[0].velRange:{min:0,max:127};return this.presetZones.filter(c=>n(c.hasKeyRange?c.keyRange:d,A)&&n(c.hasVelRange?c.velRange:Q,e)&&!c.isGlobal).forEach(c=>{if(c.instrument.instrumentZones.length<1)return;let f=c.generators,y=c.modulators,S=c.instrument.instrumentZones[0],w=S.isGlobal?[...S.generators]:[],H=S.isGlobal?[...S.modulators]:[],R=S.isGlobal?S.keyRange:{min:0,max:127},x=S.isGlobal?S.velRange:{min:0,max:127};c.instrument.instrumentZones.filter(I=>n(I.hasKeyRange?I.keyRange:R,A)&&n(I.hasVelRange?I.velRange:x,e)&&!I.isGlobal).forEach(I=>{let rA=[...I.generators],O=[...I.modulators];o(f,E),o(rA,w),g(y,h),g(O,H),g(O,this.defaultModulators);let AA=[...O];for(let $=0;$X.isIdentical(IA,iA));nA!==-1?AA[nA]=AA[nA].sumTransform(IA):AA.push(IA)}i.push({instrumentGenerators:rA,presetGenerators:f,modulators:AA,sample:I.sample,sampleID:I.generators.find($=>$.generatorType===r.sampleID).generatorValue})})}),this.foundSamplesAndGenerators[A][e]=i,i}};var De=class{constructor(){this.instrumentName="",this.instrumentZones=[],this._useCount=0}get useCount(){return this._useCount}addUseCount(){this._useCount++,this.instrumentZones.forEach(A=>A.useCount++)}removeUseCount(){this._useCount--;for(let A=0;AA.deleteZone()),this.instrumentZones.length=0}safeDeleteZone(A){return this.instrumentZones[A].useCount--,this.instrumentZones[A].useCount<1?(this.deleteZone(A),!0):!1}deleteZone(A){this.instrumentZones[A].deleteZone(),this.instrumentZones.splice(A,1)}};var It=class extends Se{constructor(A,e){super(Xe),this.program=e&127,this.bank=A>>8&127,A>>31&&(this.bank=128),this.DLSInstrument=new De,this.DLSInstrument.addUseCount();let n=new ye;n.instrument=this.DLSInstrument,this.presetZones=[n]}};function uo(t){this.verifyHeader(t,"LIST"),this.verifyText(_(t.chunkData,4),"ins ");let A=[];for(;t.chunkData.length>t.chunkData.currentIndex;)A.push(z(t.chunkData));let e=A.find(c=>c.header==="insh");if(!e)throw K(),new Error("No instrument header!");let s=F(e.chunkData,4),n=F(e.chunkData,4),o=F(e.chunkData,4),g=new It(n,o),i="unnamedPreset",E=GA(A,"INFO");if(E){let c=z(E.chunkData);for(;c.header!=="INAM";)c=z(E.chunkData);i=_(c.chunkData,c.chunkData.length).trim()}g.presetName=i,g.DLSInstrument.instrumentName=i,ae(`%cParsing %c"${i}"%c...`,a.info,a.recognized,a.info);let h=GA(A,"lrgn");if(!h)throw K(),new Error("No region list!");let d=new OA;d.isGlobal=!0;let Q=GA(A,"lart"),l=GA(A,"lar2");(l!==void 0||Q!==void 0)&&this.readLart(Q,l,d),d.generators=d.generators.filter(c=>c.generatorValue!==J[c.generatorType].def),d.modulators.find(c=>c.modulatorDestination===r.reverbEffectsSend)===void 0&&d.modulators.push(new X({srcEnum:219,dest:r.reverbEffectsSend,amt:1e3,secSrcEnum:0,transform:0})),d.modulators.find(c=>c.modulatorDestination===r.chorusEffectsSend)===void 0&&d.modulators.push(new X({srcEnum:221,dest:r.chorusEffectsSend,amt:1e3,secSrcEnum:0,transform:0})),g.DLSInstrument.instrumentZones.push(d);for(let c=0;c>10&15;H===uA.linear&&w!==uA.linear&&(H=w);let R=s>>14&1,x=s>>15&1;g===r.initialAttenuation&&n<0&&(x=1),l=KA(H,R,x,i.isCC,i.enum)}let c=s>>4&15,f=s>>8&1,y=s>>9&1,S=KA(c,f,y,Q.isCC,Q.enum);if(E){let w=S;S=l,l=w}return new X({srcEnum:l,secSrcEnum:S,dest:g,transform:0,amt:d})}function Vt(t,A){let e=t.chunkData,s=[],n=[];F(e,4);let o=F(e,4);for(let g=0;g>16;if(i===0&&E===0&&d===0){let c;switch(h){case D.pan:c=new T(r.pan,l);break;case D.gain:c=new T(r.initialAttenuation,-l*10/.4);break;case D.filterCutoff:c=new T(r.initialFilterFc,l);break;case D.filterQ:c=new T(r.initialFilterQ,l);break;case D.modLfoFreq:c=new T(r.freqModLFO,l);break;case D.modLfoDelay:c=new T(r.delayModLFO,l);break;case D.vibLfoFreq:c=new T(r.freqVibLFO,l);break;case D.vibLfoDelay:c=new T(r.delayVibLFO,l);break;case D.volEnvDelay:c=new T(r.delayVolEnv,l);break;case D.volEnvAttack:c=new T(r.attackVolEnv,l);break;case D.volEnvHold:c=new T(r.holdVolEnv,l,!1);break;case D.volEnvDecay:c=new T(r.decayVolEnv,l,!1);break;case D.volEnvRelease:c=new T(r.releaseVolEnv,l);break;case D.volEnvSustain:let f=1e3-l;c=new T(r.sustainVolEnv,f);break;case D.modEnvDelay:c=new T(r.delayModEnv,l);break;case D.modEnvAttack:c=new T(r.attackModEnv,l);break;case D.modEnvHold:c=new T(r.holdModEnv,l,!1);break;case D.modEnvDecay:c=new T(r.decayModEnv,l,!1);break;case D.modEnvRelease:c=new T(r.releaseModEnv,l);break;case D.modEnvSustain:let y=1e3-l;c=new T(r.sustainModEnv,y);break;case D.reverbSend:c=new T(r.reverbEffectsSend,l);break;case D.chorusSend:c=new T(r.chorusEffectsSend,l);break;case D.pitch:let S=Math.floor(l/100),w=Math.floor(l-S*100);c=new T(r.fineTune,w),s.push(new T(r.coarseTune,S));break}c&&s.push(c)}else{let c=!0;if(E===v.none)if(i===v.modLfo&&h===D.pitch)s.push(new T(r.modLfoToPitch,l));else if(i===v.modLfo&&h===D.gain)s.push(new T(r.modLfoToVolume,l));else if(i===v.modLfo&&h===D.filterCutoff)s.push(new T(r.modLfoToFilterFc,l));else if(i===v.vibratoLfo&&h===D.pitch)s.push(new T(r.vibLfoToPitch,l));else if(i===v.modEnv&&h===D.pitch)s.push(new T(r.modEnvToPitch,l));else if(i===v.modEnv&&h===D.filterCutoff)s.push(new T(r.modEnvToFilterFc,l));else if(i===v.keyNum&&h===D.pitch)s.push(new T(r.scaleTuning,l/128));else if(i===v.keyNum&&h===D.volEnvHold){s.push(new T(r.keyNumToVolEnvHold,l/-128));let f=Math.round(60/128*l);s.forEach(y=>{y.generatorType===r.holdVolEnv&&(y.generatorValue+=f)})}else if(i===v.keyNum&&h===D.volEnvDecay){s.push(new T(r.keyNumToVolEnvDecay,l/-128));let f=Math.round(60/128*l);s.forEach(y=>{y.generatorType===r.decayVolEnv&&(y.generatorValue+=f)})}else if(i===v.keyNum&&h===D.modEnvHold){s.push(new T(r.keyNumToModEnvHold,l/-128));let f=Math.round(60/128*l);s.forEach(y=>{y.generatorType===r.holdModEnv&&(y.generatorValue+=f)})}else if(i===v.keyNum&&h===D.modEnvDecay){s.push(new T(r.keyNumToModEnvDecay,l/-128));let f=Math.round(60/128*l);s.forEach(y=>{y.generatorType===r.decayModEnv&&(y.generatorValue+=f)})}else c=!1;else c=!1;if(c===!1){let f=mo(i,E,h,d,l);f?(n.push(f),p("%cSucceeded converting to SF2 Modulator!",a.recognized)):U("Failed converting to SF2 Modulator!")}}}return A&&n.push(new X({srcEnum:129,dest:r.vibLfoToPitch,amt:0,secSrcEnum:0,transform:0}),new X({srcEnum:13,dest:r.vibLfoToPitch,amt:0,secSrcEnum:0,transform:0})),{modulators:n,generators:s}}function po(t,A,e){if(t)for(;t.chunkData.currentIndext.chunkData.currentIndex;)A.push(z(t.chunkData));let e=A.find(O=>O.header==="rgnh"),s=F(e.chunkData,2),n=F(e.chunkData,2),o=F(e.chunkData,2),g=F(e.chunkData,2),i=new Ct({min:s,max:n},{min:o,max:g});F(e.chunkData,2);let E=F(e.chunkData,2);E!==0&&i.generators.push(new T(r.exclusiveClass,E));let h=GA(A,"lart"),d=GA(A,"lar2");this.readLart(h,d,i),i.isGlobal=!1;let Q=A.find(O=>O.header==="wsmp");F(Q.chunkData,4);let l=F(Q.chunkData,2),c=ne(Q.chunkData[Q.chunkData.currentIndex++],Q.chunkData[Q.chunkData.currentIndex++]),y=(F(Q.chunkData,4)|0)/-655360;F(Q.chunkData,4);let S=F(Q.chunkData,4),w,H={start:0,end:0};if(S===0)w=0;else{F(Q.chunkData,4),F(Q.chunkData,4)===0?w=1:w=3,H.start=F(Q.chunkData,4);let AA=F(Q.chunkData,4);H.end=H.start+AA}let R=A.find(O=>O.header==="wlnk");if(R===void 0)return;F(R.chunkData,2),F(R.chunkData,2),F(R.chunkData,4);let x=F(R.chunkData,4),G=this.samples[x];if(G===void 0)throw new Error("Invalid sample ID!");let rA=(y||G.sampleDbAttenuation)*10/.4;return i.setWavesample(rA,w,H,l,G,x,c),i}var ke=class{constructor(A,e,s,n,o,g,i,E){this.sampleName=A,this.sampleRate=e,this.samplePitch=s,this.samplePitchCorrection=n,this.sampleLink=o,this.sampleType=g,this.sampleLoopStartIndex=i,this.sampleLoopEndIndex=E,this.isCompressed=(g&16)>0,this.compressedData=void 0,this.useCount=0}getRawData(){let A=new Error("Not implemented");throw A.name="NotImplementedError",A}compressSample(A,e){if(!this.isCompressed)try{this.compressedData=e([this.getAudioData()],1,this.sampleRate,A),this.sampleType|=16,this.isCompressed=!0}catch{U(`Failed to compress ${this.sampleName}. Leaving as uncompressed!`),this.isCompressed=!1,this.compressedData=void 0,this.sampleType&=-17}}getAudioData(){let A=new Error("Not implemented");throw A.name="NotImplementedError",A}};var Et=class extends ke{sampleDbAttenuation;sampleData;constructor(A,e,s,n,o,g,i,E){super(A,e,s,n,0,1,o,g),this.sampleData=i,this.sampleDbAttenuation=E}getAudioData(){return this.sampleData}getRawData(){if(this.isCompressed){if(!this.compressedData)throw new Error("Compressed but no data?? This shouldn't happen!!");return this.compressedData}let A=new Uint8Array(this.sampleData.length*2);for(let e=0;e>8&255}return A}};var So={PCM:1,ALAW:6};function lr(t,A){let e=Math.pow(2,A*8-1),s=Math.pow(2,A*8),n,o=!1;A===1?(n=255,o=!0):n=e;let g=t.size/A,i=new Float32Array(g);for(let E=0;E=e&&(h-=s),i[E]=h/n)}return i}function Qr(t,A){let e=t.size/A,s=new Float32Array(e);for(let n=0;n>4,E=g&15;i>0&&(E+=16),E=(E<<4)+8,i>1&&(E=E<127?E:-E;s[n]=h/32678}return s}function Do(t){QA("%cLoading Wave samples...",a.recognized);let A=0;for(;t.chunkData.currentIndexG.header==="fmt ");if(!n)throw new Error("No fmt chunk in the wave file!");let o=F(n.chunkData,2),g=F(n.chunkData,2);if(g!==1)throw new Error(`Only mono samples are supported. Fmt reports ${g} channels`);let i=F(n.chunkData,4);F(n.chunkData,4),F(n.chunkData,2);let h=F(n.chunkData,2)/8,d=!1,Q=s.find(G=>G.header==="data");Q||this.parsingError("No data chunk in the WAVE chunk!");let l;switch(o){default:d=!0,l=new Float32Array(Q.size/h);break;case So.PCM:l=lr(Q,h);break;case So.ALAW:l=Qr(Q,h);break}let c=GA(s,"INFO"),f=`Unnamed ${A}`;if(c){let G=z(c.chunkData);for(;G.header!=="INAM"&&c.chunkData.currentIndexG.header==="wsmp");if(x){F(x.chunkData,4),y=F(x.chunkData,2),S=ne(x.chunkData[x.chunkData.currentIndex++],x.chunkData[x.chunkData.currentIndex++]);let G=Math.trunc(S/100);if(y+=G,S-=G*100,R=(F(x.chunkData,4)|0)/-655360,F(x.chunkData,4),F(x.chunkData,4)===1){F(x.chunkData,8),w=F(x.chunkData,4);let O=F(x.chunkData,4);H=w+O}}else U("No wsmp chunk in wave... using sane defaults.");d&&console.error(`Failed to load '${f}': Unsupported format: (${o})`),this.samples.push(new Et(f,i,y,S,w,H,l,R)),A++,p(`%cLoaded sample %c${f}`,a.info,a.recognized)}K()}var Ae=class extends oe{constructor(A){super(),this.dataArray=new b(A),ae("%cParsing DLS...",a.info),this.dataArray||(K(),this.parsingError("No data provided!"));let e=z(this.dataArray,!1);this.verifyHeader(e,"riff"),this.verifyText(_(this.dataArray,4).toLowerCase(),"dls ");let s=[];for(;this.dataArray.currentIndexE.header==="colh");o||(K(),this.parsingError("No colh chunk!")),this.instrumentAmount=F(o.chunkData,4),p(`%cInstruments amount: %c${this.instrumentAmount}`,a.info,a.recognized);let g=GA(s,"wvpl");g||(K(),this.parsingError("No wvpl chunk!")),this.readDLSSamples(g);let i=GA(s,"lins");i||(K(),this.parsingError("No lins chunk!")),this.readDLSInstrumentList(i),this.presets.sort((E,h)=>E.program-h.program+(E.bank-h.bank)),p(`%cParsing finished! %c"${this.soundFontInfo.INAM||"UNNAMED"}"%c has %c${this.presets.length} %cpresets, %c${this.instruments.length}%c instruments and %c${this.samples.length}%c samples.`,a.info,a.recognized,a.info,a.recognized,a.info,a.recognized,a.info,a.recognized,a.info),K()}verifyHeader(A,e){A.header.toLowerCase()!==e.toLowerCase()&&(K(),this.parsingError(`Invalid DLS chunk header! Expected "${e.toLowerCase()}" got "${A.header.toLowerCase()}"`))}verifyText(A,e){A.toLowerCase()!==e.toLowerCase()&&(K(),this.parsingError(`FourCC error: Expected "${e.toLowerCase()}" got "${A.toLowerCase()}"`))}parsingError(A){throw new Error(`DLS parse error: ${A} The file may be corrupted.`)}destroySoundfont(){super.destroySoundfont(),delete this.dataArray}};Ae.prototype.readDLSInstrumentList=Qo;Ae.prototype.readDLSInstrument=uo;Ae.prototype.readRegion=yo;Ae.prototype.readLart=po;Ae.prototype.readDLSSamples=Do;var Ot=class extends ke{constructor(A,e,s,n,o,g,i,E,h,d,Q,l,c){super(A,g,i,E,h,d,n-e/2,o-e/2),this.sampleName=A,this.sampleStartIndex=e,this.sampleEndIndex=s,this.isSampleLoaded=!1,this.sampleID=l,this.sampleLength=this.sampleEndIndex-this.sampleStartIndex,this.sampleDataArray=Q,this.sampleData=new Float32Array(0),this.isCompressed&&(this.sampleLoopStartIndex+=this.sampleStartIndex/2,this.sampleLoopEndIndex+=this.sampleStartIndex/2,this.sampleLength=99999999),this.isDataRaw=c}getRawData(){let A=this.sampleDataArray;if(this.isCompressed){if(this.compressedData)return this.compressedData;let e=A.currentIndex;return A.slice(this.sampleStartIndex/2+e,this.sampleEndIndex/2+e)}else{if(!this.isDataRaw)throw new Error("Writing SF2Pack samples is not supported.");let e=A.currentIndex;return A.slice(e+this.sampleStartIndex,e+this.sampleEndIndex)}}decodeVorbis(){if(this.sampleLength<1)return;let A=this.sampleDataArray,e=A.currentIndex,s=A.slice(this.sampleStartIndex/2+e,this.sampleEndIndex/2+e);this.sampleData=new Float32Array(0);try{let n=_A.decode(s.buffer);this.sampleData=n.data[0]}catch(n){throw new Error(`Ogg Vorbis decode error: ${n}`)}}getAudioData(){return this.isSampleLoaded?this.sampleData:this.sampleLength<1?new Float32Array(1):this.isCompressed?(this.decodeVorbis(),this.isSampleLoaded=!0,this.sampleData):this.isDataRaw?this.loadUncompressedData():this.getUncompressedReadyData()}loadUncompressedData(){if(this.isCompressed)return U("Trying to load a compressed sample via loadUncompressedData()... aborting!"),new Float32Array(0);let A=new Float32Array(this.sampleLength/2),e=this.sampleDataArray.currentIndex,s=new Int16Array(this.sampleDataArray.slice(e+this.sampleStartIndex,e+this.sampleEndIndex).buffer);for(let n=0;nt.chunkData.currentIndex;){let o=ur(n,t.chunkData,A,e);s.push(o),n++}return s.length>1&&s.pop(),s}function ur(t,A,e,s){let n=_(A,20),o=F(A,4)*2,g=F(A,4)*2,i=F(A,4),E=F(A,4),h=F(A,4),d=A[A.currentIndex++];d===255&&(d=60);let Q=Ts(A[A.currentIndex++]),l=F(A,2),c=F(A,2);return new Ot(n,o,g,i,E,h,d,Q,l,c,e,t,s)}var Zt=class extends T{constructor(A){super();let e=A.currentIndex;this.generatorType=A[e+1]<<8|A[e],this.generatorValue=ne(A[e+2],A[e+3]),A.currentIndex+=4}};function Wt(t){let A=[];for(;t.chunkData.length>t.chunkData.currentIndex;)A.push(new Zt(t.chunkData));return A.length>1&&A.pop(),A}var Xt=class extends De{constructor(A){super(),this.instrumentName=_(A.chunkData,20).trim(),this.instrumentZoneIndex=F(A.chunkData,2),this.instrumentZonesAmount=0}getInstrumentZones(A,e){this.instrumentZonesAmount=A;for(let s=this.instrumentZoneIndex;st.chunkData.currentIndex;){let s=new Xt(t);if(e.length>0){let n=s.instrumentZoneIndex-e[e.length-1].instrumentZoneIndex;e[e.length-1].getInstrumentZones(n,A)}e.push(s)}return e.length>1&&e.pop(),e}var _t=class extends OA{constructor(A){super(),this.generatorZoneStartIndex=F(A,2),this.modulatorZoneStartIndex=F(A,2),this.modulatorZoneSize=0,this.generatorZoneSize=0,this.isGlobal=!0}setZoneSize(A,e){this.modulatorZoneSize=A,this.generatorZoneSize=e}getGenerators(A){for(let e=this.generatorZoneStartIndex;es.generatorType===r.sampleID);e&&(this.sample=A[e.generatorValue],this.isGlobal=!1,this.sample.useCount++)}getKeyRange(){let A=this.generators.find(e=>e.generatorType===r.keyRange);A&&(this.keyRange.min=A.generatorValue&127,this.keyRange.max=A.generatorValue>>8&127)}getVelRange(){let A=this.generators.find(e=>e.generatorType===r.velRange);A&&(this.velRange.min=A.generatorValue&127,this.velRange.max=A.generatorValue>>8&127)}};function Fo(t,A,e,s){let n=[];for(;t.chunkData.length>t.chunkData.currentIndex;){let o=new _t(t.chunkData);if(n.length>0){let g=o.modulatorZoneStartIndex-n[n.length-1].modulatorZoneStartIndex,i=o.generatorZoneStartIndex-n[n.length-1].generatorZoneStartIndex;n[n.length-1].setZoneSize(g,i),n[n.length-1].getGenerators(A),n[n.length-1].getModulators(e),n[n.length-1].getSample(s),n[n.length-1].getKeyRange(),n[n.length-1].getVelRange()}n.push(o)}return n.length>1&&n.pop(),n}var zt=class extends ye{constructor(A){super(),this.generatorZoneStartIndex=F(A,2),this.modulatorZoneStartIndex=F(A,2),this.modulatorZoneSize=0,this.generatorZoneSize=0,this.isGlobal=!0}setZoneSize(A,e){this.modulatorZoneSize=A,this.generatorZoneSize=e}getGenerators(A){for(let e=this.generatorZoneStartIndex;es.generatorType===r.instrument);e&&(this.instrument=A[e.generatorValue],this.instrument.addUseCount(),this.isGlobal=!1)}getKeyRange(){let A=this.generators.find(e=>e.generatorType===r.keyRange);A&&(this.keyRange.min=A.generatorValue&127,this.keyRange.max=A.generatorValue>>8&127)}getVelRange(){let A=this.generators.find(e=>e.generatorType===r.velRange);A&&(this.velRange.min=A.generatorValue&127,this.velRange.max=A.generatorValue>>8&127)}};function Ro(t,A,e,s){let n=[];for(;t.chunkData.length>t.chunkData.currentIndex;){let o=new zt(t.chunkData);if(n.length>0){let g=o.modulatorZoneStartIndex-n[n.length-1].modulatorZoneStartIndex,i=o.generatorZoneStartIndex-n[n.length-1].generatorZoneStartIndex;n[n.length-1].setZoneSize(g,i),n[n.length-1].getGenerators(A),n[n.length-1].getModulators(e),n[n.length-1].getInstrument(s),n[n.length-1].getKeyRange(),n[n.length-1].getVelRange()}n.push(o)}return n.length>1&&n.pop(),n}var jt=class extends Se{constructor(A,e){super(e),this.presetName=_(A.chunkData,20).trim().replace(/\d{3}:\d{3}/,""),this.program=F(A.chunkData,2),this.bank=F(A.chunkData,2),this.presetZoneStartIndex=F(A.chunkData,2),this.library=F(A.chunkData,4),this.genre=F(A.chunkData,4),this.morphology=F(A.chunkData,4),this.presetZonesAmount=0}getPresetZones(A,e){this.presetZonesAmount=A;for(let s=this.presetZoneStartIndex;st.chunkData.currentIndex;){let n=new jt(t,e);if(s.length>0){let o=n.presetZoneStartIndex-s[s.length-1].presetZoneStartIndex;s[s.length-1].getPresetZones(o,A)}s.push(n)}return s.length>1&&s.pop(),s}var $t=class extends X{constructor(A){super({srcEnum:F(A,2),dest:F(A,2),amt:ne(A[A.currentIndex++],A[A.currentIndex++]),secSrcEnum:F(A,2),transform:F(A,2)})}};function Bt(t){let A=[];for(;t.chunkData.length>t.chunkData.currentIndex;)A.push(new $t(t.chunkData));return A}var ht=class extends oe{constructor(A,e=!0){super(),e&&console.warn("Using the constructor directly is deprecated. Use loadSoundFont instead."),this.dataArray=new b(A),ae("%cParsing SoundFont...",a.info),this.dataArray||(K(),this.parsingError("No data provided!"));let s=z(this.dataArray,!1);this.verifyHeader(s,"riff");let n=_(this.dataArray,4).toLowerCase();if(n!=="sfbk"&&n!=="sfpk")throw K(),new SyntaxError(`Invalid soundFont! Expected "sfbk" or "sfpk" got "${n}"`);let o=n==="sfpk",g=z(this.dataArray);for(this.verifyHeader(g,"list"),_(g.chunkData,4);g.chunkData.length>g.chunkData.currentIndex;){let $=z(g.chunkData),IA;switch($.header.toLowerCase()){case"ifil":case"iver":IA=`${F($.chunkData,2)}.${F($.chunkData,2)}`,this.soundFontInfo[$.header]=IA;break;case"icmt":IA=_($.chunkData,$.chunkData.length,void 0,!1),this.soundFontInfo[$.header]=IA;break;case"dmod":let nA=Bt($);nA.pop(),IA=`Modulators: ${nA.length}`;let iA=this.defaultModulators;this.defaultModulators=nA,this.defaultModulators.push(...iA.filter(eA=>!this.defaultModulators.find(lA=>X.isIdentical(eA,lA)))),this.soundFontInfo[$.header]=$.chunkData;break;default:IA=_($.chunkData,$.chunkData.length),this.soundFontInfo[$.header]=IA}p(`%c"${$.header}": %c"${IA}"`,a.info,a.recognized)}let i=z(this.dataArray,!1);this.verifyHeader(i,"list"),this.verifyText(_(this.dataArray,4),"sdta"),p("%cVerifying smpl chunk...",a.warn);let E=z(this.dataArray,!1);this.verifyHeader(E,"smpl");let h;if(o){p("%cSF2Pack detected, attempting to decode the smpl chunk...",a.info);try{h=_A.decode(this.dataArray.buffer.slice(this.dataArray.currentIndex,this.dataArray.currentIndex+i.size-12)).data[0]}catch($){throw K(),new Error(`SF2Pack Ogg Vorbis decode error: ${$}`)}p(`%cDecoded the smpl chunk! Length: %c${h.length}`,a.info,a.value)}else h=this.dataArray,this.sampleDataStartIndex=this.dataArray.currentIndex;p(`%cSkipping sample chunk, length: %c${i.size-12}`,a.info,a.value),this.dataArray.currentIndex+=i.size-12,p("%cLoading preset data chunk...",a.warn);let d=z(this.dataArray);this.verifyHeader(d,"list"),_(d.chunkData,4);let Q=z(d.chunkData);this.verifyHeader(Q,"phdr");let l=z(d.chunkData);this.verifyHeader(l,"pbag");let c=z(d.chunkData);this.verifyHeader(c,"pmod");let f=z(d.chunkData);this.verifyHeader(f,"pgen");let y=z(d.chunkData);this.verifyHeader(y,"inst");let S=z(d.chunkData);this.verifyHeader(S,"ibag");let w=z(d.chunkData);this.verifyHeader(w,"imod");let H=z(d.chunkData);this.verifyHeader(H,"igen");let R=z(d.chunkData);this.verifyHeader(R,"shdr"),this.dataArray.currentIndex=this.sampleDataStartIndex,this.samples.push(...ko(R,h,!o));let x=Wt(H),G=Bt(w),I=Fo(S,x,G,this.samples);this.instruments=wo(y,I);let rA=Wt(f),O=Bt(c),AA=Ro(l,rA,O,this.instruments);this.presets.push(...Go(Q,AA,this.defaultModulators)),this.presets.sort(($,IA)=>$.program-IA.program+($.bank-IA.bank)),p(`%cParsing finished! %c"${this.soundFontInfo.INAM}"%c has %c${this.presets.length} %cpresets, - %c${this.instruments.length}%c instruments and %c${this.samples.length}%c samples.`,a.info,a.recognized,a.info,a.recognized,a.info,a.recognized,a.info,a.recognized,a.info),K(),o&&delete this.dataArray}verifyHeader(A,e){A.header.toLowerCase()!==e.toLowerCase()&&(K(),this.parsingError(`Invalid chunk header! Expected "${e.toLowerCase()}" got "${A.header.toLowerCase()}"`))}verifyText(A,e){A.toLowerCase()!==e.toLowerCase()&&(K(),this.parsingError(`Invalid FourCC: Expected "${e.toLowerCase()}" got "${A.toLowerCase()}"\``))}destroySoundfont(){super.destroySoundfont(),delete this.dataArray}};function ve(t){let A=t.slice(8,12),e=new b(A);return _(e,4,void 0,!1).toLowerCase()==="dls "?new Ae(t):new ht(t,!1)}function xo(t,A,e=!1){let s=this.workletProcessorChannels[t];if(s===void 0){U(`Trying to access channel ${t} which does not exist... ignoring!`);return}if(s.lockPreset)return;let n=XA(s),o,g;if(this.overrideSoundfont){let i=n===128?128:n-this.soundfontBankOffset,E=this.overrideSoundfont.getPresetNoFallback(i,A);E?(o=n,g=E,s.presetUsesOverride=!0):(g=this.soundfontManager.getPreset(n,A),o=g.bank,s.presetUsesOverride=!1)}else g=this.soundfontManager.getPreset(n,A),o=g.bank,s.presetUsesOverride=!1;this.setPreset(t,g),this.callEvent("programchange",{channel:t,program:g.program,bank:o,userCalled:e})}function Mo(t,A){if(this.overrideSoundfont){let e=t===128?128:t-this.soundfontBankOffset,s=this.overrideSoundfont.getPresetNoFallback(e,A);if(s)return s}return this.soundfontManager.getPreset(t,A)}function No(t,A){if(!this.workletProcessorChannels[t].lockPreset){delete this.workletProcessorChannels[t].preset,this.workletProcessorChannels[t].preset=A,this.workletProcessorChannels[t].cachedVoices=[];for(let e=0;e<128;e++)this.workletProcessorChannels[t].cachedVoices.push([])}}function bo(t,A){let e=this.workletProcessorChannels[t];e.lockPreset||e.drumChannel!==A&&(A?(e.channelTransposeKeyShift=0,e.drumChannel=!0,this.setPreset(t,this.getPreset(XA(e),e.preset.program))):(e.drumChannel=!1,this.setPreset(t,this.getPreset(XA(e),e.preset.program))),e.presetUsesOverride=!1,this.callEvent("drumchange",{channel:t,isDrumChannel:e.drumChannel}),this.sendChannelProperties())}function Lo(){let t=this.soundfontManager.getPresetList();this.overrideSoundfont!==void 0&&this.overrideSoundfont.presets.forEach(A=>{let e=A.bank===128?128:A.bank+this.soundfontBankOffset,s=t.find(n=>n.bank===e&&n.program===A.program);s!==void 0?s.presetName=A.presetName:t.push({presetName:A.presetName,bank:e,program:A.program})}),this.callEvent("presetlistchange",t)}function Uo(t=!0,A=!0){this.stopAllChannels(!0),A&&(delete this.overrideSoundfont,this.overrideSoundfont=void 0),this.defaultPreset=this.getPreset(0,0),this.drumPreset=this.getPreset(128,0);for(let e=0;e{this.programChange(s,e.preset.program)}),this.post({messageType:DA.ready,messageData:void 0}),this.sendPresetList(),p("%cSpessaSynth is ready!",a.recognized)}function vo(t,A){this.soundfontBankOffset=A,this.reloadSoundFont(t,!0),this.overrideSoundfont.samples.forEach(e=>e.getAudioData()),this._snapshot!==void 0&&(this.applySynthesizerSnapshot(this._snapshot),this.resetAllControllers())}function Ho(){let A={channelSnapshots:this.workletProcessorChannels.map(e=>({program:e.preset.program,bank:XA(e),lockPreset:e.lockPreset,patchName:e.preset.presetName,midiControllers:e.midiControllers,lockedControllers:e.lockedControllers,customControllers:e.customControllers,channelVibrato:e.channelVibrato,lockVibrato:e.lockGSNRPNParams,channelTransposeKeyShift:e.channelTransposeKeyShift,channelOctaveTuning:e.channelOctaveTuning,keyCentTuning:e.keyCentTuning,velocityOverride:e.velocityOverride,isMuted:e.isMuted,drumChannel:e.drumChannel})),mainVolume:this.midiVolume,pan:this.pan,transposition:this.transposition,system:this.system,interpolation:this.interpolationType,keyMappings:this.keyModifierManager.getMappings()};this.post({messageType:DA.synthesizerSnapshot,messageData:A})}function Yo(t){for(this.system=t.system,this.setMasterGain(t.mainVolume),this.setMasterPan(t.pan),this.transposeAllChannels(t.transposition),this.interpolationType=t.interpolation,this.keyModifierManager.setMappings(t.keyMappings);this.workletProcessorChannels.length{let s=this.workletProcessorChannels[e];this.muteChannel(e,A.isMuted),this.setDrums(e,A.drumChannel),s.midiControllers=A.midiControllers,s.lockedControllers=A.lockedControllers,s.customControllers=A.customControllers,s.channelVibrato=A.channelVibrato,s.lockGSNRPNParams=A.lockVibrato,s.channelTransposeKeyShift=A.channelTransposeKeyShift,s.channelOctaveTuning=A.channelOctaveTuning,s.velocityOverride=A.velocityOverride,s.lockPreset=!1,te(s,A.bank),this.programChange(e,A.program),s.lockPreset=A.lockPreset}),p("%cFinished restoring controllers!",a.info)}var ct=class{constructor(A,e){this.ready=e,this.totalSoundfontOffset=0,this.reloadManager(A)}_assingSampleOffsets(){let A=0;this.soundfontList.forEach(e=>{e.soundfont.setSampleIDOffset(A),A+=e.soundfont.samples.length}),this.totalSoundfontOffset=A}generatePresetList(){this._assingSampleOffsets();let A={};for(let e=this.soundfontList.length-1;e>=0;e--){let s=this.soundfontList[e],n=new Set;for(let o of s.soundfont.presets){let g=`${o.bank+s.bankOffset}-${o.program}`;n.has(g)||(n.add(g),A[g]=o.presetName)}}this.presetList=[];for(let[e,s]of Object.entries(A)){let n=e.split("-");this.presetList.push({presetName:s,program:parseInt(n[1]),bank:parseInt(n[0])})}}handleMessage(A,e){switch(A){case Qe.addNewSoundFont:this.addNewSoundFont(e[0],e[1],e[2]);break;case Qe.reloadSoundFont:this.reloadManager(e);break;case Qe.deleteSoundFont:this.deleteSoundFont(e);break;case Qe.rearrangeSoundFonts:this.rearrangeSoundFonts(e)}}getPresetList(){return this.presetList.slice()}reloadManager(A){let e=ve(A);this.soundfontList=[],this.soundfontList.push({id:"main",bankOffset:0,soundfont:e}),this.generatePresetList(),this.ready()}deleteSoundFont(A){if(this.soundfontList.length===0){U("1 soundfont left. Aborting!");return}let e=this.soundfontList.findIndex(s=>s.id===A);if(e===-1){U(`No soundfont with id of "${A}" found. Aborting!`);return}delete this.soundfontList[e].soundfont.presets,delete this.soundfontList[e].soundfont.instruments,delete this.soundfontList[e].soundfont.samples,this.soundfontList.splice(e,1),this.generatePresetList()}addNewSoundFont(A,e,s){if(this.soundfontList.find(n=>n.id===e)!==void 0)throw new Error("Cannot overwrite the existing soundfont. Use soundfontManager.delete(id) instead.");this.soundfontList.push({id:e,soundfont:ve(A),bankOffset:s}),this.generatePresetList(),this.ready()}rearrangeSoundFonts(A){this.soundfontList.sort((e,s)=>A.indexOf(e.id)-A.indexOf(s.id)),this.generatePresetList()}getPreset(A,e){if(this.soundfontList.length<1)throw new Error("No soundfonts! This should never happen.");for(let s of this.soundfontList){let n=s.soundfont.getPresetNoFallback(A-s.bankOffset,e);if(n!==void 0)return n}if(A!==128){for(let s of this.soundfontList){let n=s.soundfont.presets.find(o=>o.program===e);if(n)return n}return this.soundfontList[0].soundfont.presets[0]}else{for(let s of this.soundfontList){let n=s.soundfont.presets.find(o=>o.bank===128);if(n)return n}return this.soundfontList[0].soundfont.presets[0]}}destroyManager(){this.soundfontList.forEach(A=>{A.soundfont.destroySoundfont()}),delete this.soundfontList}};var lt=class{sampleData;playbackStep=0;cursor=0;rootKey=0;loopStart=0;loopEnd=0;end=0;loopingMode=0;isLooping=!1;constructor(A,e,s,n,o,g,i,E){this.sampleData=A,this.playbackStep=e,this.cursor=s,this.rootKey=n,this.loopStart=o,this.loopEnd=g,this.end=i,this.loopingMode=E,this.isLooping=this.loopingMode===1||this.loopingMode===3}},He=class t{sample;filter=new pe;generators;modulators=[];modulatedGenerators;finished=!1;isInRelease=!1;channelNumber=0;velocity=0;midiNote=0;pressure=0;targetKey=0;modulationEnvelope=new YA;volumeEnvelope;startTime=0;releaseStartTime=1/0;currentTuningCents=0;currentTuningCalculated=1;currentPan=.5;realKey;constructor(A,e,s,n,o,g,i,E,h,d){this.sample=e,this.generators=h,this.modulatedGenerators=new Int16Array(h),this.modulators=d,this.velocity=n,this.midiNote=s,this.channelNumber=o,this.startTime=g,this.targetKey=i,this.realKey=E,this.volumeEnvelope=new JA(A,h[r.sustainVolEnv])}static copy(A,e){let s=A.sample,n=new lt(s.sampleData,s.playbackStep,s.cursor,s.rootKey,s.loopStart,s.loopEnd,s.end,s.loopingMode);return new t(A.volumeEnvelope.sampleRate,n,A.midiNote,A.velocity,A.channelNumber,e,A.targetKey,A.realKey,A.generators,A.modulators.map(o=>X.copy(o)))}};function Jo(t,A,e,s,n,o,g=!1){let i,E=s.cachedVoices[A]?.[e],h=this.keyModifierManager.hasOverridePatch(t,A);if(E!==void 0&&!h)return E.map(l=>He.copy(l,n));let d=!0,Q=s.preset;if(h){d=!1;let l=this.keyModifierManager.getPatch(t,A);Q=this.soundfontManager.getPreset(l.bank,l.program)}return i=Q.getSamplesAndGenerators(A,e).reduce((l,c)=>{if(c.sample.sampleData===void 0)return U(`Discarding invalid sample: ${c.sample.sampleName}`),l;let f=new Int16Array(60);for(let G=0;G<60;G++)f[G]=Rs(G,c.presetGenerators,c.instrumentGenerators);f[r.initialAttenuation]=Math.floor(f[r.initialAttenuation]*.4);let y=c.sample.samplePitch;f[r.overridingRootKey]>-1&&(y=f[r.overridingRootKey]);let S=A;f[r.keyNum]>-1&&(S=f[r.keyNum]);let w=c.sample.sampleLoopStartIndex,H=c.sample.sampleLoopEndIndex,R=f[r.sampleModes],x=new lt(c.sample.getAudioData(),c.sample.sampleRate/sampleRate*Math.pow(2,c.sample.samplePitchCorrection/1200),0,y,w,H,Math.floor(c.sample.sampleData.length)-1,R);return f[r.velocity]>-1&&(e=f[r.velocity]),g&&Fs([{Sample:c.sample.sampleName,Generators:f,Modulators:c.modulators.map(G=>G.debugString()),Velocity:e,TargetKey:S,MidiNote:A,WorkletSample:x}]),l.push(new He(sampleRate,x,A,e,t,n,S,o,f,c.modulators.map(G=>X.copy(G)))),l},[]),d&&(s.cachedVoices[A][e]=i.map(l=>He.copy(l,n))),i}var dr=4600,fr=2e3,Po=Math.PI/2;function qo(t,A,e,s,n,o){if(isNaN(A[0]))return;let g=(Math.max(-500,Math.min(500,t.modulatedGenerators[r.pan]))+500)/1e3;t.currentPan+=(g-t.currentPan)*this.panSmoothingFactor;let i=this.currentGain,E=Math.cos(Po*t.currentPan)*i*this.panLeft,h=Math.sin(Po*t.currentPan)*i*this.panRight,d=this.reverbGain*t.modulatedGenerators[r.reverbEffectsSend]/dr*i,Q=this.chorusGain*t.modulatedGenerators[r.chorusEffectsSend]/fr;if(d>0&&!this.oneOutputMode){let l=n[0],c=n[1];for(let f=0;f0&&!this.oneOutputMode){let l=o[0],c=o[1],f=E*Q,y=h*Q;for(let S=0;S0)for(let l=0;l0)for(let l=0;lthis.handleMessage(e.data),A.processorOptions.startRenderingData&&(this._snapshot!==void 0&&(this.applySynthesizerSnapshot(this._snapshot),this.resetAllControllers()),p("%cRendering enabled! Starting render.",a.info),A.processorOptions.startRenderingData.parsedMIDI&&(A.processorOptions.startRenderingData?.loopCount!==void 0?(this.sequencer.loopCount=A.processorOptions.startRenderingData?.loopCount,this.sequencer.loop=!0):this.sequencer.loop=!1,this.sequencer.loadNewSongList([A.processorOptions.startRenderingData.parsedMIDI]))),_A.isInitialized.then(()=>{this.postReady(),p("%cSpessaSynth is ready!",a.recognized)})}get currentGain(){return this.masterGain*this.midiVolume}post(A){this.enableEventSystem&&this.port.postMessage(A)}postReady(){this.enableEventSystem&&this.port.postMessage({messageType:DA.ready,messageData:void 0})}debugMessage(){p({channels:this.workletProcessorChannels,voicesAmount:this.totalVoicesAmount,outputAmount:this._outputsAmount,dumpedSamples:this.workletDumpedSamplesList})}process(A,e){if(!this.alive)return!1;this.processTickCallback&&this.processTickCallback();let s=0;return this.workletProcessorChannels.forEach((n,o)=>{if(n.voices.length<1||n.isMuted)return;let g,i,E,h,d;if(this.oneOutputMode){let l=e[0];g=o%16*2,i=l[g],E=l[g+1]}else g=o%this._outputsAmount+2,i=e[g][0],E=e[g][1],h=e[0],d=e[1];let Q=n.voices;n.voices=[],Q.forEach(l=>{this.renderVoice(n,l,i,E,h,d),l.finished||n.voices.push(l)}),s+=n.voices.length}),s!==this.totalVoicesAmount&&(this.totalVoicesAmount=s,this.sendChannelProperties()),!0}destroyWorkletProcessor(){this.alive=!1,this.workletProcessorChannels.forEach(A=>{delete A.midiControllers,delete A.voices,delete A.sustainedVoices,delete A.cachedVoices,delete A.lockedControllers,delete A.preset,delete A.customControllers}),delete this.workletProcessorChannels,delete this.sequencer.midiData,delete this.sequencer,this.soundfontManager.destroyManager(),delete this.soundfontManager}};q.prototype.renderVoice=an;q.prototype.releaseVoice=In;q.prototype.voiceKilling=gn;q.prototype.getWorkletVoices=Jo;q.prototype.handleMessage=hn;q.prototype.sendChannelProperties=ln;q.prototype.callEvent=cn;q.prototype.systemExclusive=Qn;q.prototype.noteOn=dn;q.prototype.noteOff=mn;q.prototype.polyPressure=Nn;q.prototype.killNote=pn;q.prototype.stopAll=yn;q.prototype.stopAllChannels=Sn;q.prototype.muteChannel=Hn;q.prototype.setVibrato=Jn;q.prototype.disableAndLockGSNRPN=Yn;q.prototype.dataEntryCoarse=Pn;q.prototype.dataEntryFine=qn;q.prototype.createWorkletChannel=Gs;q.prototype.controllerChange=Ln;q.prototype.channelPressure=Mn;q.prototype.resetAllControllers=Kn;q.prototype.resetControllers=Vn;q.prototype.resetParameters=On;q.prototype.setMasterGain=Tn;q.prototype.setMasterPan=vn;q.prototype.setMIDIVolume=Un;q.prototype.transposeAllChannels=Dn;q.prototype.transposeChannel=kn;q.prototype.setChannelTuning=wn;q.prototype.setChannelTuningSemitones=Fn;q.prototype.setMasterTuning=Rn;q.prototype.setModulationDepth=Gn;q.prototype.pitchWheel=xn;q.prototype.setOctaveTuning=bn;q.prototype.programChange=xo;q.prototype.getPreset=Mo;q.prototype.setPreset=No;q.prototype.setDrums=bo;q.prototype.reloadSoundFont=To;q.prototype.clearSoundFont=Uo;q.prototype.setEmbeddedSoundFont=vo;q.prototype.sendPresetList=Lo;q.prototype.sendSynthesizerSnapshot=Ho;q.prototype.applySynthesizerSnapshot=Yo;q.prototype.panVoice=qo;registerProcessor(xs,q);p("%cProcessor succesfully registered!",a.recognized); + %c${this.instruments.length}%c instruments and %c${this.samples.length}%c samples.`,a.info,a.recognized,a.info,a.recognized,a.info,a.recognized,a.info,a.recognized,a.info),K(),o&&delete this.dataArray}verifyHeader(A,e){A.header.toLowerCase()!==e.toLowerCase()&&(K(),this.parsingError(`Invalid chunk header! Expected "${e.toLowerCase()}" got "${A.header.toLowerCase()}"`))}verifyText(A,e){A.toLowerCase()!==e.toLowerCase()&&(K(),this.parsingError(`Invalid FourCC: Expected "${e.toLowerCase()}" got "${A.toLowerCase()}"\``))}destroySoundfont(){super.destroySoundfont(),delete this.dataArray}};function ve(t){let A=t.slice(8,12),e=new b(A);return _(e,4,void 0,!1).toLowerCase()==="dls "?new Ae(t):new ht(t,!1)}function xo(t,A,e=!1){let s=this.workletProcessorChannels[t];if(s===void 0){U(`Trying to access channel ${t} which does not exist... ignoring!`);return}if(s.lockPreset)return;let n=XA(s),o,g;if(this.overrideSoundfont){let i=n===128?128:n-this.soundfontBankOffset,E=this.overrideSoundfont.getPresetNoFallback(i,A);E?(o=n,g=E,s.presetUsesOverride=!0):(g=this.soundfontManager.getPreset(n,A),o=g.bank,s.presetUsesOverride=!1)}else g=this.soundfontManager.getPreset(n,A),o=g.bank,s.presetUsesOverride=!1;this.setPreset(t,g),this.callEvent("programchange",{channel:t,program:g.program,bank:o,userCalled:e})}function Mo(t,A){if(this.overrideSoundfont){let e=t===128?128:t-this.soundfontBankOffset,s=this.overrideSoundfont.getPresetNoFallback(e,A);if(s)return s}return this.soundfontManager.getPreset(t,A)}function No(t,A){if(!this.workletProcessorChannels[t].lockPreset){delete this.workletProcessorChannels[t].preset,this.workletProcessorChannels[t].preset=A,this.workletProcessorChannels[t].cachedVoices=[];for(let e=0;e<128;e++)this.workletProcessorChannels[t].cachedVoices.push([])}}function bo(t,A){let e=this.workletProcessorChannels[t];e.lockPreset||e.drumChannel!==A&&(A?(e.channelTransposeKeyShift=0,e.drumChannel=!0,this.setPreset(t,this.getPreset(XA(e),e.preset.program))):(e.drumChannel=!1,this.setPreset(t,this.getPreset(XA(e),e.preset.program))),e.presetUsesOverride=!1,this.callEvent("drumchange",{channel:t,isDrumChannel:e.drumChannel}),this.sendChannelProperties())}function Lo(){let t=this.soundfontManager.getPresetList();this.overrideSoundfont!==void 0&&this.overrideSoundfont.presets.forEach(A=>{let e=A.bank===128?128:A.bank+this.soundfontBankOffset,s=t.find(n=>n.bank===e&&n.program===A.program);s!==void 0?s.presetName=A.presetName:t.push({presetName:A.presetName,bank:e,program:A.program})}),this.callEvent("presetlistchange",t)}function Uo(t=!0,A=!0){this.stopAllChannels(!0),A&&(delete this.overrideSoundfont,this.overrideSoundfont=void 0),this.defaultPreset=this.getPreset(0,0),this.drumPreset=this.getPreset(128,0);for(let e=0;e{this.programChange(s,e.preset.program)}),this.post({messageType:DA.ready,messageData:void 0}),this.sendPresetList(),p("%cSpessaSynth is ready!",a.recognized)}function vo(t,A){this.soundfontBankOffset=A,this.reloadSoundFont(t,!0),this.overrideSoundfont.samples.forEach(e=>e.getAudioData()),this._snapshot!==void 0&&(this.applySynthesizerSnapshot(this._snapshot),this.resetAllControllers())}function Ho(){let A={channelSnapshots:this.workletProcessorChannels.map(e=>({program:e.preset.program,bank:XA(e),lockPreset:e.lockPreset,patchName:e.preset.presetName,midiControllers:e.midiControllers,lockedControllers:e.lockedControllers,customControllers:e.customControllers,channelVibrato:e.channelVibrato,lockVibrato:e.lockGSNRPNParams,channelTransposeKeyShift:e.channelTransposeKeyShift,channelOctaveTuning:e.channelOctaveTuning,keyCentTuning:e.keyCentTuning,velocityOverride:e.velocityOverride,isMuted:e.isMuted,drumChannel:e.drumChannel})),mainVolume:this.midiVolume,pan:this.pan,transposition:this.transposition,system:this.system,interpolation:this.interpolationType,keyMappings:this.keyModifierManager.getMappings()};this.post({messageType:DA.synthesizerSnapshot,messageData:A})}function Yo(t){for(this.system=t.system,this.setMasterGain(t.mainVolume),this.setMasterPan(t.pan),this.transposeAllChannels(t.transposition),this.interpolationType=t.interpolation,this.keyModifierManager.setMappings(t.keyMappings);this.workletProcessorChannels.length{let s=this.workletProcessorChannels[e];this.muteChannel(e,A.isMuted),this.setDrums(e,A.drumChannel),s.midiControllers=A.midiControllers,s.lockedControllers=A.lockedControllers,s.customControllers=A.customControllers,s.channelVibrato=A.channelVibrato,s.lockGSNRPNParams=A.lockVibrato,s.channelTransposeKeyShift=A.channelTransposeKeyShift,s.channelOctaveTuning=A.channelOctaveTuning,s.velocityOverride=A.velocityOverride,s.lockPreset=!1,te(s,A.bank),this.programChange(e,A.program),s.lockPreset=A.lockPreset}),p("%cFinished restoring controllers!",a.info)}var ct=class{constructor(A,e){this.ready=e,this.totalSoundfontOffset=0,this.reloadManager(A)}_assingSampleOffsets(){let A=0;this.soundfontList.forEach(e=>{e.soundfont.setSampleIDOffset(A),A+=e.soundfont.samples.length}),this.totalSoundfontOffset=A}generatePresetList(){this._assingSampleOffsets();let A={};for(let e=this.soundfontList.length-1;e>=0;e--){let s=this.soundfontList[e],n=new Set;for(let o of s.soundfont.presets){let g=`${o.bank+s.bankOffset}-${o.program}`;n.has(g)||(n.add(g),A[g]=o.presetName)}}this.presetList=[];for(let[e,s]of Object.entries(A)){let n=e.split("-");this.presetList.push({presetName:s,program:parseInt(n[1]),bank:parseInt(n[0])})}}handleMessage(A,e){switch(A){case Qe.addNewSoundFont:this.addNewSoundFont(e[0],e[1],e[2]);break;case Qe.reloadSoundFont:this.reloadManager(e);break;case Qe.deleteSoundFont:this.deleteSoundFont(e);break;case Qe.rearrangeSoundFonts:this.rearrangeSoundFonts(e)}}getPresetList(){return this.presetList.slice()}reloadManager(A){let e=ve(A);this.soundfontList=[],this.soundfontList.push({id:"main",bankOffset:0,soundfont:e}),this.generatePresetList(),this.ready()}deleteSoundFont(A){if(this.soundfontList.length===0){U("1 soundfont left. Aborting!");return}let e=this.soundfontList.findIndex(s=>s.id===A);if(e===-1){U(`No soundfont with id of "${A}" found. Aborting!`);return}delete this.soundfontList[e].soundfont.presets,delete this.soundfontList[e].soundfont.instruments,delete this.soundfontList[e].soundfont.samples,this.soundfontList.splice(e,1),this.generatePresetList()}addNewSoundFont(A,e,s){if(this.soundfontList.find(n=>n.id===e)!==void 0)throw new Error("Cannot overwrite the existing soundfont. Use soundfontManager.delete(id) instead.");this.soundfontList.push({id:e,soundfont:ve(A),bankOffset:s}),this.generatePresetList(),this.ready()}rearrangeSoundFonts(A){this.soundfontList.sort((e,s)=>A.indexOf(e.id)-A.indexOf(s.id)),this.generatePresetList()}getPreset(A,e){if(this.soundfontList.length<1)throw new Error("No soundfonts! This should never happen.");for(let s of this.soundfontList){let n=s.soundfont.getPresetNoFallback(A-s.bankOffset,e);if(n!==void 0)return n}if(A!==128){for(let s of this.soundfontList){let n=s.soundfont.presets.find(o=>o.program===e);if(n)return n}return this.soundfontList[0].soundfont.presets[0]}else{for(let s of this.soundfontList){let n=s.soundfont.presets.find(o=>o.bank===128);if(n)return n}return this.soundfontList[0].soundfont.presets[0]}}destroyManager(){this.soundfontList.forEach(A=>{A.soundfont.destroySoundfont()}),delete this.soundfontList}};var lt=class{sampleData;playbackStep=0;cursor=0;rootKey=0;loopStart=0;loopEnd=0;end=0;loopingMode=0;isLooping=!1;constructor(A,e,s,n,o,g,i,E){this.sampleData=A,this.playbackStep=e,this.cursor=s,this.rootKey=n,this.loopStart=o,this.loopEnd=g,this.end=i,this.loopingMode=E,this.isLooping=this.loopingMode===1||this.loopingMode===3}},He=class t{sample;filter=new pe;generators;modulators=[];modulatedGenerators;finished=!1;isInRelease=!1;channelNumber=0;velocity=0;midiNote=0;pressure=0;targetKey=0;modulationEnvelope=new JA;volumeEnvelope;startTime=0;releaseStartTime=1/0;currentTuningCents=0;currentTuningCalculated=1;currentPan=.5;realKey;constructor(A,e,s,n,o,g,i,E,h,d){this.sample=e,this.generators=h,this.modulatedGenerators=new Int16Array(h),this.modulators=d,this.velocity=n,this.midiNote=s,this.channelNumber=o,this.startTime=g,this.targetKey=i,this.realKey=E,this.volumeEnvelope=new PA(A,h[r.sustainVolEnv])}static copy(A,e){let s=A.sample,n=new lt(s.sampleData,s.playbackStep,s.cursor,s.rootKey,s.loopStart,s.loopEnd,s.end,s.loopingMode);return new t(A.volumeEnvelope.sampleRate,n,A.midiNote,A.velocity,A.channelNumber,e,A.targetKey,A.realKey,A.generators,A.modulators.map(o=>X.copy(o)))}};function Jo(t,A,e,s,n,o,g=!1){let i,E=s.cachedVoices[A]?.[e],h=this.keyModifierManager.hasOverridePatch(t,A);if(E!==void 0&&!h)return E.map(l=>He.copy(l,n));let d=!0,Q=s.preset;if(h){d=!1;let l=this.keyModifierManager.getPatch(t,A);Q=this.soundfontManager.getPreset(l.bank,l.program)}return i=Q.getSamplesAndGenerators(A,e).reduce((l,c)=>{if(c.sample.sampleData===void 0)return U(`Discarding invalid sample: ${c.sample.sampleName}`),l;let f=new Int16Array(60);for(let G=0;G<60;G++)f[G]=Rs(G,c.presetGenerators,c.instrumentGenerators);f[r.initialAttenuation]=Math.floor(f[r.initialAttenuation]*.4);let y=c.sample.samplePitch;f[r.overridingRootKey]>-1&&(y=f[r.overridingRootKey]);let S=A;f[r.keyNum]>-1&&(S=f[r.keyNum]);let w=c.sample.sampleLoopStartIndex,H=c.sample.sampleLoopEndIndex,R=f[r.sampleModes],x=new lt(c.sample.getAudioData(),c.sample.sampleRate/sampleRate*Math.pow(2,c.sample.samplePitchCorrection/1200),0,y,w,H,Math.floor(c.sample.sampleData.length)-1,R);return f[r.velocity]>-1&&(e=f[r.velocity]),g&&Fs([{Sample:c.sample.sampleName,Generators:f,Modulators:c.modulators.map(G=>G.debugString()),Velocity:e,TargetKey:S,MidiNote:A,WorkletSample:x}]),l.push(new He(sampleRate,x,A,e,t,n,S,o,f,c.modulators.map(G=>X.copy(G)))),l},[]),d&&(s.cachedVoices[A][e]=i.map(l=>He.copy(l,n))),i}var dr=4600,fr=2e3,Po=Math.PI/2;function qo(t,A,e,s,n,o){if(isNaN(A[0]))return;let g=(Math.max(-500,Math.min(500,t.modulatedGenerators[r.pan]))+500)/1e3;t.currentPan+=(g-t.currentPan)*this.panSmoothingFactor;let i=this.currentGain,E=Math.cos(Po*t.currentPan)*i*this.panLeft,h=Math.sin(Po*t.currentPan)*i*this.panRight,d=this.reverbGain*t.modulatedGenerators[r.reverbEffectsSend]/dr*i,Q=this.chorusGain*t.modulatedGenerators[r.chorusEffectsSend]/fr;if(d>0&&!this.oneOutputMode){let l=n[0],c=n[1];for(let f=0;f0&&!this.oneOutputMode){let l=o[0],c=o[1],f=E*Q,y=h*Q;for(let S=0;S0)for(let l=0;l0)for(let l=0;lthis.handleMessage(e.data),A.processorOptions.startRenderingData&&(this._snapshot!==void 0&&(this.applySynthesizerSnapshot(this._snapshot),this.resetAllControllers()),p("%cRendering enabled! Starting render.",a.info),A.processorOptions.startRenderingData.parsedMIDI&&(A.processorOptions.startRenderingData?.loopCount!==void 0?(this.sequencer.loopCount=A.processorOptions.startRenderingData?.loopCount,this.sequencer.loop=!0):this.sequencer.loop=!1,this.sequencer.loadNewSongList([A.processorOptions.startRenderingData.parsedMIDI]))),_A.isInitialized.then(()=>{this.postReady(),p("%cSpessaSynth is ready!",a.recognized)})}get currentGain(){return this.masterGain*this.midiVolume}post(A){this.enableEventSystem&&this.port.postMessage(A)}postReady(){this.enableEventSystem&&this.port.postMessage({messageType:DA.ready,messageData:void 0})}debugMessage(){p({channels:this.workletProcessorChannels,voicesAmount:this.totalVoicesAmount,outputAmount:this._outputsAmount,dumpedSamples:this.workletDumpedSamplesList})}process(A,e){if(!this.alive)return!1;this.processTickCallback&&this.processTickCallback();let s=0;return this.workletProcessorChannels.forEach((n,o)=>{if(n.voices.length<1||n.isMuted)return;let g,i,E,h,d;if(this.oneOutputMode){let l=e[0];g=o%16*2,i=l[g],E=l[g+1]}else g=o%this._outputsAmount+2,i=e[g][0],E=e[g][1],h=e[0],d=e[1];let Q=n.voices;n.voices=[],Q.forEach(l=>{this.renderVoice(n,l,i,E,h,d),l.finished||n.voices.push(l)}),s+=n.voices.length}),s!==this.totalVoicesAmount&&(this.totalVoicesAmount=s,this.sendChannelProperties()),!0}destroyWorkletProcessor(){this.alive=!1,this.workletProcessorChannels.forEach(A=>{delete A.midiControllers,delete A.voices,delete A.sustainedVoices,delete A.cachedVoices,delete A.lockedControllers,delete A.preset,delete A.customControllers}),delete this.workletProcessorChannels,delete this.sequencer.midiData,delete this.sequencer,this.soundfontManager.destroyManager(),delete this.soundfontManager}};q.prototype.renderVoice=an;q.prototype.releaseVoice=In;q.prototype.voiceKilling=gn;q.prototype.getWorkletVoices=Jo;q.prototype.handleMessage=hn;q.prototype.sendChannelProperties=ln;q.prototype.callEvent=cn;q.prototype.systemExclusive=Qn;q.prototype.noteOn=dn;q.prototype.noteOff=mn;q.prototype.polyPressure=Nn;q.prototype.killNote=pn;q.prototype.stopAll=yn;q.prototype.stopAllChannels=Sn;q.prototype.muteChannel=Hn;q.prototype.setVibrato=Jn;q.prototype.disableAndLockGSNRPN=Yn;q.prototype.dataEntryCoarse=Pn;q.prototype.dataEntryFine=qn;q.prototype.createWorkletChannel=Gs;q.prototype.controllerChange=Ln;q.prototype.channelPressure=Mn;q.prototype.resetAllControllers=Kn;q.prototype.resetControllers=Vn;q.prototype.resetParameters=On;q.prototype.setMasterGain=Tn;q.prototype.setMasterPan=vn;q.prototype.setMIDIVolume=Un;q.prototype.transposeAllChannels=Dn;q.prototype.transposeChannel=kn;q.prototype.setChannelTuning=wn;q.prototype.setChannelTuningSemitones=Fn;q.prototype.setMasterTuning=Rn;q.prototype.setModulationDepth=Gn;q.prototype.pitchWheel=xn;q.prototype.setOctaveTuning=bn;q.prototype.programChange=xo;q.prototype.getPreset=Mo;q.prototype.setPreset=No;q.prototype.setDrums=bo;q.prototype.reloadSoundFont=To;q.prototype.clearSoundFont=Uo;q.prototype.setEmbeddedSoundFont=vo;q.prototype.sendPresetList=Lo;q.prototype.sendSynthesizerSnapshot=Ho;q.prototype.applySynthesizerSnapshot=Yo;q.prototype.panVoice=qo;registerProcessor(xs,q);p("%cProcessor succesfully registered!",a.recognized); diff --git a/src/spessasynth_lib/synthetizer/worklet_system/worklet_methods/note_on.js b/src/spessasynth_lib/synthetizer/worklet_system/worklet_methods/note_on.js index c1f49c3..aecbba5 100644 --- a/src/spessasynth_lib/synthetizer/worklet_system/worklet_methods/note_on.js +++ b/src/spessasynth_lib/synthetizer/worklet_system/worklet_methods/note_on.js @@ -117,7 +117,7 @@ export function noteOn(channel, midiNote, velocity, enableDebugging = false, sen } // set the current attenuation to target, // as it's interpolated (we don't want 0 attenuation for even a split second) - voice.volumeEnvelope.attenuation = voice.volumeEnvelope.attenuationTarget; + voice.volumeEnvelope.attenuation = voice.volumeEnvelope.attenuationTargetGain; // set initial pan to avoid split second changing from middle to the correct value voice.currentPan = ((Math.max( -500, diff --git a/src/spessasynth_lib/synthetizer/worklet_system/worklet_utilities/volume_envelope.js b/src/spessasynth_lib/synthetizer/worklet_system/worklet_utilities/volume_envelope.js index 2f23665..b3ab532 100644 --- a/src/spessasynth_lib/synthetizer/worklet_system/worklet_utilities/volume_envelope.js +++ b/src/spessasynth_lib/synthetizer/worklet_system/worklet_utilities/volume_envelope.js @@ -7,7 +7,7 @@ import { generatorTypes } from "../../../soundfont/basic_soundfont/generator.js" * purpose: applies a volume envelope for a given voice */ -export const VOLUME_ENVELOPE_SMOOTHING_FACTOR = 0.001; +export const VOLUME_ENVELOPE_SMOOTHING_FACTOR = 0.01; const DB_SILENCE = 100; const PERCEIVED_DB_SILENCE = 90; @@ -77,12 +77,17 @@ export class WorkletVolumeEnvelope */ releaseDuration = 0; /** - * The voice's absolute attenuation in dB + * The voice's absolute attenuation as linear gain * @type {number} */ attenuation = 0; /** - * The attenuation target, which the "attenuation" property is linearly interpolated towards + * The attenuation target, which the "attenuation" property is linearly interpolated towards (gain) + * @type {number} + */ + attenuationTargetGain = 0; + /** + * The attenuation target, which the "attenuation" property is linearly interpolated towards (dB) * @type {number} */ attenuationTarget = 0; @@ -155,6 +160,7 @@ export class WorkletVolumeEnvelope 0, Math.min(voice.modulatedGenerators[generatorTypes.initialAttenuation], 1440) ) / 10; // divide by ten to get decibels + env.attenuationTargetGain = decibelAttenuationToGain(env.attenuationTarget); env.sustainDbRelative = Math.min(DB_SILENCE, voice.modulatedGenerators[generatorTypes.sustainVolEnv] / 10); const sustainDb = Math.min(DB_SILENCE, env.sustainDbRelative); @@ -276,9 +282,9 @@ export class WorkletVolumeEnvelope for (let i = 0; i < audioBuffer.length; i++) { // attenuation interpolation - env.attenuation += (env.attenuationTarget - env.attenuation) * attenuationSmoothing; + env.attenuation += (env.attenuationTargetGain - env.attenuation) * attenuationSmoothing; let db = (elapsedRelease / env.releaseDuration) * dbDifference + env.releaseStartDb; - env.currentReleaseGain = decibelAttenuationToGain(db + decibelOffset + env.attenuation); + env.currentReleaseGain = env.attenuation * decibelAttenuationToGain(db + decibelOffset); audioBuffer[i] *= env.currentReleaseGain; env.currentSampleTime++; elapsedRelease++; @@ -315,11 +321,12 @@ export class WorkletVolumeEnvelope while (env.currentSampleTime < env.attackEnd) { // attenuation interpolation - env.attenuation += (env.attenuationTarget - env.attenuation) * attenuationSmoothing; + env.attenuation += (env.attenuationTargetGain - env.attenuation) * attenuationSmoothing; // Special case: linear gain ramp instead of linear db ramp let linearAttenuation = 1 - (env.attackEnd - env.currentSampleTime) / env.attackDuration; // 0 to 1 - audioBuffer[filledBuffer] *= linearAttenuation * decibelAttenuationToGain(env.attenuation + decibelOffset); + audioBuffer[filledBuffer] *= linearAttenuation * env.attenuation * decibelAttenuationToGain( + decibelOffset); // set current attenuation to peak as its invalid during this phase env.currentAttenuationDb = 0; @@ -337,9 +344,9 @@ export class WorkletVolumeEnvelope while (env.currentSampleTime < env.holdEnd) { // attenuation interpolation - env.attenuation += (env.attenuationTarget - env.attenuation) * attenuationSmoothing; + env.attenuation += (env.attenuationTargetGain - env.attenuation) * attenuationSmoothing; - audioBuffer[filledBuffer] *= decibelAttenuationToGain(env.attenuation + decibelOffset); + audioBuffer[filledBuffer] *= env.attenuation * decibelAttenuationToGain(decibelOffset); env.currentAttenuationDb = 0; env.currentSampleTime++; @@ -356,10 +363,10 @@ export class WorkletVolumeEnvelope while (env.currentSampleTime < env.decayEnd) { // attenuation interpolation - env.attenuation += (env.attenuationTarget - env.attenuation) * attenuationSmoothing; + env.attenuation += (env.attenuationTargetGain - env.attenuation) * attenuationSmoothing; env.currentAttenuationDb = (1 - (env.decayEnd - env.currentSampleTime) / env.decayDuration) * env.sustainDbRelative; - audioBuffer[filledBuffer] *= decibelAttenuationToGain(env.currentAttenuationDb + decibelOffset + env.attenuation); + audioBuffer[filledBuffer] *= env.attenuation * decibelAttenuationToGain(env.currentAttenuationDb + decibelOffset); env.currentSampleTime++; if (++filledBuffer >= audioBuffer.length) @@ -379,9 +386,9 @@ export class WorkletVolumeEnvelope while (true) { // attenuation interpolation - env.attenuation += (env.attenuationTarget - env.attenuation) * attenuationSmoothing; + env.attenuation += (env.attenuationTargetGain - env.attenuation) * attenuationSmoothing; - audioBuffer[filledBuffer] *= decibelAttenuationToGain(env.sustainDbRelative + decibelOffset + env.attenuation); + audioBuffer[filledBuffer] *= env.attenuation * decibelAttenuationToGain(env.sustainDbRelative + decibelOffset); env.currentAttenuationDb = env.sustainDbRelative; env.currentSampleTime++; if (++filledBuffer >= audioBuffer.length) diff --git a/src/website/js/synthesizer_ui/methods/key_modifier_ui.js b/src/website/js/synthesizer_ui/methods/key_modifier_ui.js index cc196ed..8d88378 100644 --- a/src/website/js/synthesizer_ui/methods/key_modifier_ui.js +++ b/src/website/js/synthesizer_ui/methods/key_modifier_ui.js @@ -56,7 +56,18 @@ async function doModifyKey(synth, locale, keyboard, presetList) }; const presetOptions = {}; presetOptions["unchanged"] = locale.getLocaleString(LOCALE_PATH + "modifyKey.preset.unchanged"); - for (const p of presetList) + for (const p of presetList.toSorted((p1, p2) => + { + if (p1.presetName < p2.presetName) + { + return -1; + } + if (p1.presetName > p2.presetName) + { + return 1; + } + return 0; + })) { presetOptions[p.presetName] = p.presetName; } diff --git a/src/website/minified/demo_main.min.js b/src/website/minified/demo_main.min.js index a6479f2..ffe480a 100644 --- a/src/website/minified/demo_main.min.js +++ b/src/website/minified/demo_main.min.js @@ -1,4 +1,4 @@ -var vE=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(i,A)=>(typeof require<"u"?require:i)[A]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var j5=class extends Uint8Array{currentIndex;constructor(i){super(i),this.currentIndex=0}};function St(n){let i=n.reduce((d,p)=>d+p.length,0),A=new j5(i),c=0;for(let d of n)A.set(d,c),c+=d.length;return A}function w$(n){n=Math.floor(n);let i=Math.floor(n/60),A=Math.round(n-i*60);return{minutes:i,seconds:A,time:`${i.toString().padStart(2,"0")}:${A.toString().padStart(2,"0")}`}}function qC(n){return n.trim().replaceAll(".mid","").replaceAll(".rmi","").replaceAll("_"," ")}var C1={warn:"color: orange;",unrecognized:"color: red;",info:"color: aqua;",recognized:"color: lime",value:"color: yellow; background-color: black;"};var y7=class{constructor(i,A,c){this.ticks=i,this.messageStatusByte=A,this.messageData=c}};var Z3={noteOff:128,noteOn:144,polyPressure:160,controllerChange:176,programChange:192,channelPressure:208,pitchBend:224,systemExclusive:240,timecode:241,songPosition:242,songSelect:243,tuneRequest:246,clock:248,start:250,continue:251,stop:252,activeSensing:254,reset:255,sequenceNumber:0,text:1,copyright:2,trackName:3,instrumentName:4,lyric:5,marker:6,cuePoint:7,programName:8,midiChannelPrefix:32,midiPort:33,endOfTrack:47,setTempo:81,smpteOffset:84,timeSignature:88,keySignature:89,sequenceSpecific:127};function $y(n){let i=n&240,A=n&15,c=-1,d=n;return i>=128&&i<=224&&(c=A,d=i),{status:d,channel:c}}var $3={bankSelect:0,modulationWheel:1,breathController:2,footController:4,portamentoTime:5,dataEntryMsb:6,mainVolume:7,balance:8,pan:10,expressionController:11,effectControl1:12,effectControl2:13,generalPurposeController1:16,generalPurposeController2:17,generalPurposeController3:18,generalPurposeController4:19,lsbForControl0BankSelect:32,lsbForControl1ModulationWheel:33,lsbForControl2BreathController:34,lsbForControl4FootController:36,lsbForControl5PortamentoTime:37,lsbForControl6DataEntry:38,lsbForControl7MainVolume:39,lsbForControl8Balance:40,lsbForControl10Pan:42,lsbForControl11ExpressionController:43,lsbForControl12EffectControl1:44,lsbForControl13EffectControl2:45,sustainPedal:64,portamentoOnOff:65,sostenutoPedal:66,softPedal:67,legatoFootswitch:68,hold2Pedal:69,soundVariation:70,timbreHarmonicContent:71,releaseTime:72,attackTime:73,brightness:74,soundController6:75,soundController7:76,soundController8:77,soundController9:78,soundController10:79,generalPurposeController5:80,generalPurposeController6:81,generalPurposeController7:82,generalPurposeController8:83,portamentoControl:84,reverbDepth:91,tremoloDepth:92,chorusDepth:93,detuneDepth:94,phaserDepth:95,dataIncrement:96,dataDecrement:97,NRPNLsb:98,NRPNMsb:99,RPNLsb:100,RPNMsb:101,allSoundOff:120,resetAllControllers:121,localControlOnOff:122,allNotesOff:123,omniModeOff:124,omniModeOn:125,monoModeOn:126,polyModeOn:127};var kE=class{constructor(){this.events={noteoff:{},noteon:{},pitchwheel:{},controllerchange:{},programchange:{},channelpressure:{},polypressure:{},drumchange:{},stopall:{},newchannel:{},mutechannel:{},presetlistchange:{},allcontrollerreset:{},soundfonterror:{}}}addEvent(i,A,c){this.events[i][A]=c}removeEvent(i,A){delete this.events[i][A]}callEvent(i,A){this.events[i]&&Object.values(this.events[i]).forEach(c=>c(A))}};var Hr={nodesAmount:4,defaultDelay:.03,delayVariation:.01,stereoDifference:.02,oscillatorFrequency:.2,oscillatorFrequencyVariation:.05,oscillatorGain:.003},kp=class{constructor(i,A=Hr){let c=i.context;this.input=new ChannelSplitterNode(c,{numberOfOutputs:2});let d=new ChannelMergerNode(c,{numberOfInputs:2}),p=[],U=[],H=A.oscillatorFrequency,O=A.defaultDelay;for(let P=0;P{let p=await d.arrayBuffer();A.buffer=await n.decodeAudioData(p)})}return A}var Q4={noteOff:0,noteOn:1,ccChange:2,programChange:3,channelPressure:4,polyPressure:5,killNote:6,ccReset:7,setChannelVibrato:8,soundFontManager:9,stopAll:10,killNotes:11,muteChannel:12,addNewChannel:13,customcCcChange:14,debugMessage:15,systemExclusive:16,setMasterParameter:17,setDrums:18,pitchWheel:19,transpose:20,highPerformanceMode:21,lockController:22,sequencerSpecific:23,requestSynthesizerSnapshot:24,setLogLevel:25,keyModifierManager:26,setEffectsGain:27,destroyWorklet:28},Sp={mainVolume:0,masterPan:1,voicesCap:2,interpolationType:3},s7=-1,v$={channelProperties:0,eventCall:1,reportedCurrentTime:2,sequencerSpecific:3,synthesizerSnapshot:4,ready:5,soundfontError:6,identify:7};var wD=!1,vD=!0,HC=!1;function _5(...n){wD&&console.info(...n)}function I9(...n){vD&&console.warn(...n)}function M7(...n){HC&&console.group(...n)}function y8(...n){HC&&console.groupCollapsed(...n)}function g9(){HC&&console.groupEnd()}var cy={chorusEnabled:!0,chorusConfig:Hr,reverbEnabled:!0,reverbImpulseResponse:void 0};var bp={reloadSoundFont:0,addNewSoundFont:2,deleteSoundFont:3,rearrangeSoundFonts:4};var SE=class{constructor(i){this.soundfontList=[{id:"main",bankOffset:0}],this._port=i.worklet.port,this.synth=i}_sendToWorklet(i,A){this._port.postMessage({messageType:Q4.soundFontManager,messageData:[i,A]})}async addNewSoundFont(i,A,c=0){if(this.soundfontList.find(d=>d.id===A)!==void 0)throw new Error("Cannot overwrite the existing soundfont. Use soundfontManager.delete(id) instead.");this._sendToWorklet(bp.addNewSoundFont,[i,A,c]),await new Promise(d=>this.synth.resolveWhenReady=d),this.soundfontList.push({id:A,bankOffset:c})}deleteSoundFont(i){if(this.soundfontList.length===0){I9("1 soundfont left. Aborting!");return}if(this.soundfontList.findIndex(A=>A.id===i)===-1){I9(`No soundfont with id of "${i}" found. Aborting!`);return}this._sendToWorklet(bp.deleteSoundFont,i)}rearrangeSoundFonts(i){this._sendToWorklet(bp.rearrangeSoundFonts,i),this.soundfontList.sort((A,c)=>i.indexOf(A.id)-i.indexOf(c.id))}async reloadManager(i){this._sendToWorklet(bp.reloadSoundFont,i),await new Promise(A=>this.synth.resolveWhenReady=A)}};var m0={INVALID:-1,startAddrsOffset:0,endAddrOffset:1,startloopAddrsOffset:2,endloopAddrsOffset:3,startAddrsCoarseOffset:4,modLfoToPitch:5,vibLfoToPitch:6,modEnvToPitch:7,initialFilterFc:8,initialFilterQ:9,modLfoToFilterFc:10,modEnvToFilterFc:11,endAddrsCoarseOffset:12,modLfoToVolume:13,unused1:14,chorusEffectsSend:15,reverbEffectsSend:16,pan:17,unused2:18,unused3:19,unused4:20,delayModLFO:21,freqModLFO:22,delayVibLFO:23,freqVibLFO:24,delayModEnv:25,attackModEnv:26,holdModEnv:27,decayModEnv:28,sustainModEnv:29,releaseModEnv:30,keyNumToModEnvHold:31,keyNumToModEnvDecay:32,delayVolEnv:33,attackVolEnv:34,holdVolEnv:35,decayVolEnv:36,sustainVolEnv:37,releaseVolEnv:38,keyNumToVolEnvHold:39,keyNumToVolEnvDecay:40,instrument:41,reserved1:42,keyRange:43,velRange:44,startloopAddrsCoarseOffset:45,keyNum:46,velocity:47,initialAttenuation:48,reserved2:49,endloopAddrsCoarseOffset:50,coarseTune:51,fineTune:52,sampleID:53,sampleModes:54,reserved3:55,scaleTuning:56,exclusiveClass:57,overridingRootKey:58,unused5:59,endOper:60},Z6=[];Z6[m0.startAddrsOffset]={min:0,max:32768,def:0};Z6[m0.endAddrOffset]={min:-32768,max:32768,def:0};Z6[m0.startloopAddrsOffset]={min:-32768,max:32768,def:0};Z6[m0.endloopAddrsOffset]={min:-32768,max:32768,def:0};Z6[m0.startAddrsCoarseOffset]={min:0,max:32768,def:0};Z6[m0.modLfoToPitch]={min:-12e3,max:12e3,def:0};Z6[m0.vibLfoToPitch]={min:-12e3,max:12e3,def:0};Z6[m0.modEnvToPitch]={min:-12e3,max:12e3,def:0};Z6[m0.initialFilterFc]={min:1500,max:13500,def:13500};Z6[m0.initialFilterQ]={min:0,max:960,def:0};Z6[m0.modLfoToFilterFc]={min:-12e3,max:12e3,def:0};Z6[m0.modEnvToFilterFc]={min:-12e3,max:12e3,def:0};Z6[m0.endAddrsCoarseOffset]={min:-32768,max:32768,def:0};Z6[m0.modLfoToVolume]={min:-960,max:960,def:0};Z6[m0.chorusEffectsSend]={min:0,max:1e3,def:0};Z6[m0.reverbEffectsSend]={min:0,max:1e3,def:0};Z6[m0.pan]={min:-500,max:500,def:0};Z6[m0.delayModLFO]={min:-12e3,max:5e3,def:-12e3};Z6[m0.freqModLFO]={min:-16e3,max:4500,def:0};Z6[m0.delayVibLFO]={min:-12e3,max:5e3,def:-12e3};Z6[m0.freqVibLFO]={min:-16e3,max:4500,def:0};Z6[m0.delayModEnv]={min:-32768,max:5e3,def:-32768};Z6[m0.attackModEnv]={min:-32768,max:8e3,def:-32768};Z6[m0.holdModEnv]={min:-12e3,max:5e3,def:-12e3};Z6[m0.decayModEnv]={min:-12e3,max:8e3,def:-12e3};Z6[m0.sustainModEnv]={min:0,max:1e3,def:0};Z6[m0.releaseModEnv]={min:-7200,max:8e3,def:-12e3};Z6[m0.keyNumToModEnvHold]={min:-1200,max:1200,def:0};Z6[m0.keyNumToModEnvDecay]={min:-1200,max:1200,def:0};Z6[m0.delayVolEnv]={min:-12e3,max:5e3,def:-12e3};Z6[m0.attackVolEnv]={min:-12e3,max:8e3,def:-12e3};Z6[m0.holdVolEnv]={min:-12e3,max:5e3,def:-12e3};Z6[m0.decayVolEnv]={min:-12e3,max:8e3,def:-12e3};Z6[m0.sustainVolEnv]={min:0,max:1440,def:0};Z6[m0.releaseVolEnv]={min:-7200,max:8e3,def:-12e3};Z6[m0.keyNumToVolEnvHold]={min:-1200,max:1200,def:0};Z6[m0.keyNumToVolEnvDecay]={min:-1200,max:1200,def:0};Z6[m0.startloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};Z6[m0.keyNum]={min:-1,max:127,def:-1};Z6[m0.velocity]={min:-1,max:127,def:-1};Z6[m0.initialAttenuation]={min:-250,max:1440,def:0};Z6[m0.endloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};Z6[m0.coarseTune]={min:-120,max:120,def:0};Z6[m0.fineTune]={min:-12700,max:12700,def:0};Z6[m0.scaleTuning]={min:0,max:1200,def:100};Z6[m0.exclusiveClass]={min:0,max:99999,def:0};Z6[m0.overridingRootKey]={min:-1,max:127,def:-1};Z6[m0.sampleModes]={min:0,max:3,def:0};var u6=class{generatorType=m0.INVALID;generatorValue=0;constructor(i=m0.INVALID,A=0,c=!0){if(this.generatorType=i,A===void 0)throw new Error("No value provided.");if(this.generatorValue=Math.round(A),c){let d=Z6[i];d!==void 0&&(this.generatorValue=Math.max(d.min,Math.min(d.max,this.generatorValue)))}}};var q4={noController:0,noteOnVelocity:2,noteOnKeyNum:3,polyPressure:10,channelPressure:13,pitchWheel:14,pitchWheelRange:16,link:127},X7={linear:0,concave:1,convex:2,switch:3},$e=class n{currentValue=0;constructor(i){this.sourceEnum=i.srcEnum,this.modulatorDestination=i.dest,this.secondarySourceEnum=i.secSrcEnum,this.transformAmount=i.amt,this.transformType=i.transform,this.modulatorDestination>58&&(this.modulatorDestination=m0.INVALID),this.sourcePolarity=this.sourceEnum>>9&1,this.sourceDirection=this.sourceEnum>>8&1,this.sourceUsesCC=this.sourceEnum>>7&1,this.sourceIndex=this.sourceEnum&127,this.sourceCurveType=this.sourceEnum>>10&3,this.secSrcPolarity=this.secondarySourceEnum>>9&1,this.secSrcDirection=this.secondarySourceEnum>>8&1,this.secSrcUsesCC=this.secondarySourceEnum>>7&1,this.secSrcIndex=this.secondarySourceEnum&127,this.secSrcCurveType=this.secondarySourceEnum>>10&3,this.isEffectModulator=(this.sourceEnum===219||this.sourceEnum===221)&&this.secondarySourceEnum===0&&(this.modulatorDestination===m0.reverbEffectsSend||this.modulatorDestination===m0.chorusEffectsSend)}static copy(i){return new n({srcEnum:i.sourceEnum,secSrcEnum:i.secondarySourceEnum,transform:i.transformType,amt:i.transformAmount,dest:i.modulatorDestination})}static isIdentical(i,A){return i.sourceEnum===A.sourceEnum&&i.modulatorDestination===A.modulatorDestination&&i.secondarySourceEnum===A.secondarySourceEnum&&i.transformType===A.transformType}sumTransform(i){return new n({srcEnum:this.sourceEnum,secSrcEnum:this.secondarySourceEnum,dest:this.modulatorDestination,transform:this.transformType,amt:this.transformAmount+i.transformAmount})}debugString(){function i(d,p){return Object.keys(d).find(U=>d[U]===p)}let A=i(X7,this.sourceCurveType);A+=this.sourcePolarity===0?" unipolar ":" bipolar ",A+=this.sourceDirection===0?"forwards ":"backwards ",this.sourceUsesCC?A+=i($3,this.sourceIndex):A+=i(q4,this.sourceIndex);let c=i(X7,this.secSrcCurveType);return c+=this.secSrcPolarity===0?" unipolar ":" bipolar ",c+=this.secSrcCurveType===0?"forwards ":"backwards ",this.secSrcUsesCC?c+=i($3,this.secSrcIndex):c+=i(q4,this.secSrcIndex),`Modulator: +var vE=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(i,A)=>(typeof require<"u"?require:i)[A]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var j5=class extends Uint8Array{currentIndex;constructor(i){super(i),this.currentIndex=0}};function St(n){let i=n.reduce((d,p)=>d+p.length,0),A=new j5(i),c=0;for(let d of n)A.set(d,c),c+=d.length;return A}function w$(n){n=Math.floor(n);let i=Math.floor(n/60),A=Math.round(n-i*60);return{minutes:i,seconds:A,time:`${i.toString().padStart(2,"0")}:${A.toString().padStart(2,"0")}`}}function qC(n){return n.trim().replaceAll(".mid","").replaceAll(".rmi","").replaceAll("_"," ")}var C1={warn:"color: orange;",unrecognized:"color: red;",info:"color: aqua;",recognized:"color: lime",value:"color: yellow; background-color: black;"};var y7=class{constructor(i,A,c){this.ticks=i,this.messageStatusByte=A,this.messageData=c}};var Z3={noteOff:128,noteOn:144,polyPressure:160,controllerChange:176,programChange:192,channelPressure:208,pitchBend:224,systemExclusive:240,timecode:241,songPosition:242,songSelect:243,tuneRequest:246,clock:248,start:250,continue:251,stop:252,activeSensing:254,reset:255,sequenceNumber:0,text:1,copyright:2,trackName:3,instrumentName:4,lyric:5,marker:6,cuePoint:7,programName:8,midiChannelPrefix:32,midiPort:33,endOfTrack:47,setTempo:81,smpteOffset:84,timeSignature:88,keySignature:89,sequenceSpecific:127};function $y(n){let i=n&240,A=n&15,c=-1,d=n;return i>=128&&i<=224&&(c=A,d=i),{status:d,channel:c}}var $3={bankSelect:0,modulationWheel:1,breathController:2,footController:4,portamentoTime:5,dataEntryMsb:6,mainVolume:7,balance:8,pan:10,expressionController:11,effectControl1:12,effectControl2:13,generalPurposeController1:16,generalPurposeController2:17,generalPurposeController3:18,generalPurposeController4:19,lsbForControl0BankSelect:32,lsbForControl1ModulationWheel:33,lsbForControl2BreathController:34,lsbForControl4FootController:36,lsbForControl5PortamentoTime:37,lsbForControl6DataEntry:38,lsbForControl7MainVolume:39,lsbForControl8Balance:40,lsbForControl10Pan:42,lsbForControl11ExpressionController:43,lsbForControl12EffectControl1:44,lsbForControl13EffectControl2:45,sustainPedal:64,portamentoOnOff:65,sostenutoPedal:66,softPedal:67,legatoFootswitch:68,hold2Pedal:69,soundVariation:70,timbreHarmonicContent:71,releaseTime:72,attackTime:73,brightness:74,soundController6:75,soundController7:76,soundController8:77,soundController9:78,soundController10:79,generalPurposeController5:80,generalPurposeController6:81,generalPurposeController7:82,generalPurposeController8:83,portamentoControl:84,reverbDepth:91,tremoloDepth:92,chorusDepth:93,detuneDepth:94,phaserDepth:95,dataIncrement:96,dataDecrement:97,NRPNLsb:98,NRPNMsb:99,RPNLsb:100,RPNMsb:101,allSoundOff:120,resetAllControllers:121,localControlOnOff:122,allNotesOff:123,omniModeOff:124,omniModeOn:125,monoModeOn:126,polyModeOn:127};var kE=class{constructor(){this.events={noteoff:{},noteon:{},pitchwheel:{},controllerchange:{},programchange:{},channelpressure:{},polypressure:{},drumchange:{},stopall:{},newchannel:{},mutechannel:{},presetlistchange:{},allcontrollerreset:{},soundfonterror:{}}}addEvent(i,A,c){this.events[i][A]=c}removeEvent(i,A){delete this.events[i][A]}callEvent(i,A){this.events[i]&&Object.values(this.events[i]).forEach(c=>c(A))}};var Hr={nodesAmount:4,defaultDelay:.03,delayVariation:.01,stereoDifference:.02,oscillatorFrequency:.2,oscillatorFrequencyVariation:.05,oscillatorGain:.003},kp=class{constructor(i,A=Hr){let c=i.context;this.input=new ChannelSplitterNode(c,{numberOfOutputs:2});let d=new ChannelMergerNode(c,{numberOfInputs:2}),p=[],O=[],H=A.oscillatorFrequency,P=A.defaultDelay;for(let U=0;U{let p=await d.arrayBuffer();A.buffer=await n.decodeAudioData(p)})}return A}var Q4={noteOff:0,noteOn:1,ccChange:2,programChange:3,channelPressure:4,polyPressure:5,killNote:6,ccReset:7,setChannelVibrato:8,soundFontManager:9,stopAll:10,killNotes:11,muteChannel:12,addNewChannel:13,customcCcChange:14,debugMessage:15,systemExclusive:16,setMasterParameter:17,setDrums:18,pitchWheel:19,transpose:20,highPerformanceMode:21,lockController:22,sequencerSpecific:23,requestSynthesizerSnapshot:24,setLogLevel:25,keyModifierManager:26,setEffectsGain:27,destroyWorklet:28},Sp={mainVolume:0,masterPan:1,voicesCap:2,interpolationType:3},s7=-1,v$={channelProperties:0,eventCall:1,reportedCurrentTime:2,sequencerSpecific:3,synthesizerSnapshot:4,ready:5,soundfontError:6,identify:7};var wD=!1,vD=!0,HC=!1;function _5(...n){wD&&console.info(...n)}function I9(...n){vD&&console.warn(...n)}function M7(...n){HC&&console.group(...n)}function y8(...n){HC&&console.groupCollapsed(...n)}function g9(){HC&&console.groupEnd()}var cy={chorusEnabled:!0,chorusConfig:Hr,reverbEnabled:!0,reverbImpulseResponse:void 0};var bp={reloadSoundFont:0,addNewSoundFont:2,deleteSoundFont:3,rearrangeSoundFonts:4};var SE=class{constructor(i){this.soundfontList=[{id:"main",bankOffset:0}],this._port=i.worklet.port,this.synth=i}_sendToWorklet(i,A){this._port.postMessage({messageType:Q4.soundFontManager,messageData:[i,A]})}async addNewSoundFont(i,A,c=0){if(this.soundfontList.find(d=>d.id===A)!==void 0)throw new Error("Cannot overwrite the existing soundfont. Use soundfontManager.delete(id) instead.");this._sendToWorklet(bp.addNewSoundFont,[i,A,c]),await new Promise(d=>this.synth.resolveWhenReady=d),this.soundfontList.push({id:A,bankOffset:c})}deleteSoundFont(i){if(this.soundfontList.length===0){I9("1 soundfont left. Aborting!");return}if(this.soundfontList.findIndex(A=>A.id===i)===-1){I9(`No soundfont with id of "${i}" found. Aborting!`);return}this._sendToWorklet(bp.deleteSoundFont,i)}rearrangeSoundFonts(i){this._sendToWorklet(bp.rearrangeSoundFonts,i),this.soundfontList.sort((A,c)=>i.indexOf(A.id)-i.indexOf(c.id))}async reloadManager(i){this._sendToWorklet(bp.reloadSoundFont,i),await new Promise(A=>this.synth.resolveWhenReady=A)}};var m0={INVALID:-1,startAddrsOffset:0,endAddrOffset:1,startloopAddrsOffset:2,endloopAddrsOffset:3,startAddrsCoarseOffset:4,modLfoToPitch:5,vibLfoToPitch:6,modEnvToPitch:7,initialFilterFc:8,initialFilterQ:9,modLfoToFilterFc:10,modEnvToFilterFc:11,endAddrsCoarseOffset:12,modLfoToVolume:13,unused1:14,chorusEffectsSend:15,reverbEffectsSend:16,pan:17,unused2:18,unused3:19,unused4:20,delayModLFO:21,freqModLFO:22,delayVibLFO:23,freqVibLFO:24,delayModEnv:25,attackModEnv:26,holdModEnv:27,decayModEnv:28,sustainModEnv:29,releaseModEnv:30,keyNumToModEnvHold:31,keyNumToModEnvDecay:32,delayVolEnv:33,attackVolEnv:34,holdVolEnv:35,decayVolEnv:36,sustainVolEnv:37,releaseVolEnv:38,keyNumToVolEnvHold:39,keyNumToVolEnvDecay:40,instrument:41,reserved1:42,keyRange:43,velRange:44,startloopAddrsCoarseOffset:45,keyNum:46,velocity:47,initialAttenuation:48,reserved2:49,endloopAddrsCoarseOffset:50,coarseTune:51,fineTune:52,sampleID:53,sampleModes:54,reserved3:55,scaleTuning:56,exclusiveClass:57,overridingRootKey:58,unused5:59,endOper:60},Z6=[];Z6[m0.startAddrsOffset]={min:0,max:32768,def:0};Z6[m0.endAddrOffset]={min:-32768,max:32768,def:0};Z6[m0.startloopAddrsOffset]={min:-32768,max:32768,def:0};Z6[m0.endloopAddrsOffset]={min:-32768,max:32768,def:0};Z6[m0.startAddrsCoarseOffset]={min:0,max:32768,def:0};Z6[m0.modLfoToPitch]={min:-12e3,max:12e3,def:0};Z6[m0.vibLfoToPitch]={min:-12e3,max:12e3,def:0};Z6[m0.modEnvToPitch]={min:-12e3,max:12e3,def:0};Z6[m0.initialFilterFc]={min:1500,max:13500,def:13500};Z6[m0.initialFilterQ]={min:0,max:960,def:0};Z6[m0.modLfoToFilterFc]={min:-12e3,max:12e3,def:0};Z6[m0.modEnvToFilterFc]={min:-12e3,max:12e3,def:0};Z6[m0.endAddrsCoarseOffset]={min:-32768,max:32768,def:0};Z6[m0.modLfoToVolume]={min:-960,max:960,def:0};Z6[m0.chorusEffectsSend]={min:0,max:1e3,def:0};Z6[m0.reverbEffectsSend]={min:0,max:1e3,def:0};Z6[m0.pan]={min:-500,max:500,def:0};Z6[m0.delayModLFO]={min:-12e3,max:5e3,def:-12e3};Z6[m0.freqModLFO]={min:-16e3,max:4500,def:0};Z6[m0.delayVibLFO]={min:-12e3,max:5e3,def:-12e3};Z6[m0.freqVibLFO]={min:-16e3,max:4500,def:0};Z6[m0.delayModEnv]={min:-32768,max:5e3,def:-32768};Z6[m0.attackModEnv]={min:-32768,max:8e3,def:-32768};Z6[m0.holdModEnv]={min:-12e3,max:5e3,def:-12e3};Z6[m0.decayModEnv]={min:-12e3,max:8e3,def:-12e3};Z6[m0.sustainModEnv]={min:0,max:1e3,def:0};Z6[m0.releaseModEnv]={min:-7200,max:8e3,def:-12e3};Z6[m0.keyNumToModEnvHold]={min:-1200,max:1200,def:0};Z6[m0.keyNumToModEnvDecay]={min:-1200,max:1200,def:0};Z6[m0.delayVolEnv]={min:-12e3,max:5e3,def:-12e3};Z6[m0.attackVolEnv]={min:-12e3,max:8e3,def:-12e3};Z6[m0.holdVolEnv]={min:-12e3,max:5e3,def:-12e3};Z6[m0.decayVolEnv]={min:-12e3,max:8e3,def:-12e3};Z6[m0.sustainVolEnv]={min:0,max:1440,def:0};Z6[m0.releaseVolEnv]={min:-7200,max:8e3,def:-12e3};Z6[m0.keyNumToVolEnvHold]={min:-1200,max:1200,def:0};Z6[m0.keyNumToVolEnvDecay]={min:-1200,max:1200,def:0};Z6[m0.startloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};Z6[m0.keyNum]={min:-1,max:127,def:-1};Z6[m0.velocity]={min:-1,max:127,def:-1};Z6[m0.initialAttenuation]={min:-250,max:1440,def:0};Z6[m0.endloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};Z6[m0.coarseTune]={min:-120,max:120,def:0};Z6[m0.fineTune]={min:-12700,max:12700,def:0};Z6[m0.scaleTuning]={min:0,max:1200,def:100};Z6[m0.exclusiveClass]={min:0,max:99999,def:0};Z6[m0.overridingRootKey]={min:-1,max:127,def:-1};Z6[m0.sampleModes]={min:0,max:3,def:0};var u6=class{generatorType=m0.INVALID;generatorValue=0;constructor(i=m0.INVALID,A=0,c=!0){if(this.generatorType=i,A===void 0)throw new Error("No value provided.");if(this.generatorValue=Math.round(A),c){let d=Z6[i];d!==void 0&&(this.generatorValue=Math.max(d.min,Math.min(d.max,this.generatorValue)))}}};var q4={noController:0,noteOnVelocity:2,noteOnKeyNum:3,polyPressure:10,channelPressure:13,pitchWheel:14,pitchWheelRange:16,link:127},X7={linear:0,concave:1,convex:2,switch:3},$e=class n{currentValue=0;constructor(i){this.sourceEnum=i.srcEnum,this.modulatorDestination=i.dest,this.secondarySourceEnum=i.secSrcEnum,this.transformAmount=i.amt,this.transformType=i.transform,this.modulatorDestination>58&&(this.modulatorDestination=m0.INVALID),this.sourcePolarity=this.sourceEnum>>9&1,this.sourceDirection=this.sourceEnum>>8&1,this.sourceUsesCC=this.sourceEnum>>7&1,this.sourceIndex=this.sourceEnum&127,this.sourceCurveType=this.sourceEnum>>10&3,this.secSrcPolarity=this.secondarySourceEnum>>9&1,this.secSrcDirection=this.secondarySourceEnum>>8&1,this.secSrcUsesCC=this.secondarySourceEnum>>7&1,this.secSrcIndex=this.secondarySourceEnum&127,this.secSrcCurveType=this.secondarySourceEnum>>10&3,this.isEffectModulator=(this.sourceEnum===219||this.sourceEnum===221)&&this.secondarySourceEnum===0&&(this.modulatorDestination===m0.reverbEffectsSend||this.modulatorDestination===m0.chorusEffectsSend)}static copy(i){return new n({srcEnum:i.sourceEnum,secSrcEnum:i.secondarySourceEnum,transform:i.transformType,amt:i.transformAmount,dest:i.modulatorDestination})}static isIdentical(i,A){return i.sourceEnum===A.sourceEnum&&i.modulatorDestination===A.modulatorDestination&&i.secondarySourceEnum===A.secondarySourceEnum&&i.transformType===A.transformType}sumTransform(i){return new n({srcEnum:this.sourceEnum,secSrcEnum:this.secondarySourceEnum,dest:this.modulatorDestination,transform:this.transformType,amt:this.transformAmount+i.transformAmount})}debugString(){function i(d,p){return Object.keys(d).find(O=>d[O]===p)}let A=i(X7,this.sourceCurveType);A+=this.sourcePolarity===0?" unipolar ":" bipolar ",A+=this.sourceDirection===0?"forwards ":"backwards ",this.sourceUsesCC?A+=i($3,this.sourceIndex):A+=i(q4,this.sourceIndex);let c=i(X7,this.secSrcCurveType);return c+=this.secSrcPolarity===0?" unipolar ":" bipolar ",c+=this.secSrcCurveType===0?"forwards ":"backwards ",this.secSrcUsesCC?c+=i($3,this.secSrcIndex):c+=i(q4,this.secSrcIndex),`Modulator: Source: ${A} Secondary source: ${c} Destination: ${i(m0,this.modulatorDestination)} @@ -6,8 +6,8 @@ var vE=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(i,A)=>( Transform type: ${this.transformType} -`}},YC=960,VC=X7.concave;function Yr(n,i,A,c,d){return n<<10|i<<9|A<<8|c<<7|d}var bE=[new $e({srcEnum:Yr(VC,0,1,0,q4.noteOnVelocity),dest:m0.initialAttenuation,amt:YC,secSrcEnum:0,transform:0}),new $e({srcEnum:129,dest:m0.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(VC,0,1,1,$3.mainVolume),dest:m0.initialAttenuation,amt:YC,secSrcEnum:0,transform:0}),new $e({srcEnum:13,dest:m0.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new $e({srcEnum:526,dest:m0.fineTune,amt:12700,secSrcEnum:16,transform:0}),new $e({srcEnum:650,dest:m0.pan,amt:500,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(VC,0,1,1,$3.expressionController),dest:m0.initialAttenuation,amt:YC,secSrcEnum:0,transform:0}),new $e({srcEnum:219,dest:m0.reverbEffectsSend,amt:200,secSrcEnum:0,transform:0}),new $e({srcEnum:221,dest:m0.chorusEffectsSend,amt:200,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(X7.linear,0,0,0,q4.polyPressure),dest:m0.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(X7.linear,0,0,1,$3.tremoloDepth),dest:m0.modLfoToVolume,amt:24,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(X7.linear,1,0,1,$3.releaseTime),dest:m0.releaseVolEnv,amt:1200,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(X7.linear,1,0,1,$3.brightness),dest:m0.initialFilterFc,amt:6e3,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(X7.linear,1,0,1,$3.timbreHarmonicContent),dest:m0.initialFilterQ,amt:250,secSrcEnum:0,transform:0})];var k$=128,gy=147,kD=new Int16Array(gy).fill(0),a7=(n,i)=>kD[n]=i<<7;a7($3.mainVolume,100);a7($3.balance,64);a7($3.expressionController,127);a7($3.pan,64);a7($3.timbreHarmonicContent,64);a7($3.releaseTime,64);a7($3.attackTime,64);a7($3.brightness,64);a7($3.soundController6,64);a7($3.soundController7,64);a7($3.soundController8,64);a7($3.soundController9,64);a7($3.generalPurposeController6,64);a7($3.generalPurposeController8,64);a7(k$+q4.pitchWheel,64);a7(k$+q4.pitchWheelRange,2);var DE={channelTuning:0,channelTransposeFine:1,modulationMultiplier:2,masterTuning:3,channelTuningSemitones:4},uy=Object.keys(DE).length,SD=new Float32Array(uy);SD[DE.modulationMultiplier]=1;var dy={velocityOverride:128};var _E=class{velocity=-1;patch={bank:-1,program:-1};constructor(i=-1,A=-1,c=-1){this.velocity=i,this.patch={bank:A,program:c}}},xE={addMapping:0,deleteMapping:1,clearMappings:2};var LE=class{constructor(i){this.synth=i}_sendToWorklet(i,A){this.synth.post({messageType:Q4.keyModifierManager,messageData:[i,A]})}addModifier(i,A,c){let d=c?.velocity??-1,p=c?.patch?.program??-1,U=c?.patch?.bank??-1;this._sendToWorklet(xE.addMapping,[i,A,new _E(d,U,p)])}deleteModifier(i,A){this._sendToWorklet(xE.deleteMapping,[i,A])}clearModifiers(){this._sendToWorklet(xE.clearMappings,void 0)}};var bD="spessasynth-worklet-system",JC=350,R7=9,DD=16;var fu=class{constructor(i,A,c=!0,d=void 0,p=cy){_5("%cInitializing SpessaSynth synthesizer...",C1.info),this.context=i.context,this.targetNode=i;let U=d?.oneOutput===!0;this.eventHandler=new kE,this._voiceCap=JC,this._destroyed=!1,this._outputsAmount=DD,this.channelsAmount=this._outputsAmount,this.resolveWhenReady=void 0,this.isReady=new Promise(P=>this.resolveWhenReady=P),this.channelProperties=[];for(let P=0;Pthis.handleMessage(P.data),this.soundfontManager=new SE(this),this.keyModifierManager=new LE(this),this._snapshotCallback=void 0,this.sequencerCallbackFunction=void 0,this.effectsConfig.reverbEnabled&&!U&&(this.reverbProcessor=ly(this.context,this.effectsConfig.reverbImpulseResponse),this.reverbProcessor.connect(i),this.worklet.connect(this.reverbProcessor,0)),this.effectsConfig.chorusEnabled&&!U&&(this.chorusProcessor=new kp(i,this.effectsConfig.chorusConfig),this.worklet.connect(this.chorusProcessor.input,1)),U)this.worklet.connect(i,0);else for(let P=2;P{this.channelsAmount++})}get voiceCap(){return this._voiceCap}set voiceCap(i){this._setMasterParam(Sp.voicesCap,i),this._voiceCap=i}get highPerformanceMode(){return this._highPerformanceMode}set highPerformanceMode(i){this._highPerformanceMode=i}get currentTime(){return this.context.currentTime}get voicesAmount(){return this._voicesAmount}setLogLevel(i,A,c,d){this.post({channelNumber:s7,messageType:Q4.setLogLevel,messageData:[i,A,c,d]})}_setMasterParam(i,A){this.post({channelNumber:s7,messageType:Q4.setMasterParameter,messageData:[i,A]})}setInterpolationType(i){this._setMasterParam(Sp.interpolationType,i)}handleMessage(i){let A=i.messageData;switch(i.messageType){case v$.channelProperties:this.channelProperties=A,this._voicesAmount=this.channelProperties.reduce((c,d)=>c+d.voicesAmount,0);break;case v$.eventCall:this.eventHandler.callEvent(A.eventName,A.eventData);break;case v$.sequencerSpecific:this.sequencerCallbackFunction&&this.sequencerCallbackFunction(A.messageType,A.messageData);break;case v$.synthesizerSnapshot:this._snapshotCallback&&this._snapshotCallback(A);break;case v$.ready:this.resolveWhenReady();break;case v$.soundfontError:I9(new Error(A)),this.eventHandler.callEvent("soundfonterror",A);break}}async getSynthesizerSnapshot(){return new Promise(i=>{this._snapshotCallback=A=>{this._snapshotCallback=void 0,A.effectsConfig=this.effectsConfig,i(A)},this.post({messageType:Q4.requestSynthesizerSnapshot,messageData:void 0,channelNumber:s7})})}addNewChannel(i=!0){this.channelProperties.push({voicesAmount:0,pitchBend:0,pitchBendRangeSemitones:0,isMuted:!1,isDrum:!1}),i&&this.post({channelNumber:0,messageType:Q4.addNewChannel,messageData:null})}setVibrato(i,A){this.post({channelNumber:i,messageType:Q4.setChannelVibrato,messageData:A})}connectIndividualOutputs(i){if(i.length!==this._outputsAmount)throw new Error(`input nodes amount differs from the system's outputs amount! - Expected ${this._outputsAmount} got ${i.length}`);for(let A=0;A127||A<0)throw new Error(`Invalid controller number: ${A}`);c=Math.floor(c),A=Math.floor(A),this.post({channelNumber:i,messageType:Q4.ccChange,messageData:[A,c,d]})}resetControllers(){this.post({channelNumber:s7,messageType:Q4.ccReset,messageData:void 0})}channelPressure(i,A){this.post({channelNumber:i,messageType:Q4.channelPressure,messageData:A})}polyPressure(i,A,c){this.post({channelNumber:i,messageType:Q4.polyPressure,messageData:[A,c]})}post(i){if(this._destroyed)throw new Error("This synthesizer instance has been destroyed!");this.worklet.port.postMessage(i)}pitchWheel(i,A,c){this.post({channelNumber:i,messageType:Q4.pitchWheel,messageData:[A,c]})}transpose(i){this.transposeChannel(s7,i,!1)}transposeChannel(i,A,c=!1){this.post({channelNumber:i,messageType:Q4.transpose,messageData:[A,c]})}setMainVolume(i){this._setMasterParam(Sp.mainVolume,i)}setMasterPan(i){this._setMasterParam(Sp.masterPan,i)}setPitchBendRange(i,A){this.controllerChange(i,$3.RPNMsb,0),this.controllerChange(i,$3.dataEntryMsb,A),this.controllerChange(i,$3.RPNMsb,127),this.controllerChange(i,$3.RPNLsb,127),this.controllerChange(i,$3.dataEntryMsb,0)}programChange(i,A,c=!1){this.post({channelNumber:i,messageType:Q4.programChange,messageData:[A,c]})}velocityOverride(i,A){this.post({channelNumber:i,messageType:Q4.ccChange,messageData:[dy.velocityOverride,A,!0]})}lockController(i,A,c){this.post({channelNumber:i,messageType:Q4.lockController,messageData:[A,c]})}muteChannel(i,A){this.post({channelNumber:i,messageType:Q4.muteChannel,messageData:A})}async reloadSoundFont(i){I9("reloadSoundFont is deprecated. Please use the soundfontManager property instead."),await this.soundfontManager.reloadManager(i)}systemExclusive(i){this.post({channelNumber:s7,messageType:Q4.systemExclusive,messageData:Array.from(i)})}setDrums(i,A){this.post({channelNumber:i,messageType:Q4.setDrums,messageData:A})}sendMessage(i,A=0){let c=$y(i[0]);switch(c.channel+=A,c.status){case Z3.noteOn:let d=i[2];d>0?this.noteOn(c.channel,i[1],d):this.noteOff(c.channel,i[1]);break;case Z3.noteOff:this.noteOff(c.channel,i[1]);break;case Z3.pitchBend:this.pitchWheel(c.channel,i[2],i[1]);break;case Z3.controllerChange:this.controllerChange(c.channel,i[1],i[2]);break;case Z3.programChange:this.programChange(c.channel,i[1]);break;case Z3.polyPressure:this.polyPressure(c.channel,i[0],i[1]);break;case Z3.channelPressure:this.channelPressure(c.channel,i[1]);break;case Z3.systemExclusive:this.systemExclusive(new j5(i.slice(1)));break;case Z3.reset:this.stopAll(!0),this.resetControllers();break;default:break}}setReverbResponse(i){this.reverbProcessor.buffer=i,this.effectsConfig.reverbImpulseResponse=i}setChorusConfig(i){this.worklet.disconnect(this.chorusProcessor.input),this.chorusProcessor.delete(),delete this.chorusProcessor,this.chorusProcessor=new kp(this.targetNode,i),this.worklet.connect(this.chorusProcessor.input,1),this.effectsConfig.chorusConfig=i}setEffectsGain(i,A){this.post({messageType:Q4.setEffectsGain,messageData:[i,A]})}destroy(){this.reverbProcessor.disconnect(),this.chorusProcessor.delete(),this.post({messageType:Q4.destroyWorklet,messageData:void 0}),this.worklet.disconnect(),delete this.worklet,delete this.reverbProcessor,delete this.chorusProcessor,this._destroyed=!0}reverbateEverythingBecauseWhyNot(){for(let i=0;i{this.pressedKeys.delete(c),this.releaseNote(c,this.channel),this.synth.noteOff(this.channel,c)},i=(c,d)=>{let p;if(F7)p=127;else{let H=this.keys[0].getBoundingClientRect();if(this.keyboard.classList.contains("sideways")){let O=d.clientX-H.left,P=H.width;p=Math.floor((P-O)/P*127)}else{let O=d.clientY-H.top,P=H.height;p=Math.floor(O/P*127)}}this.onNotePressed&&this.onNotePressed(c,p),this.synth.noteOn(this.channel,c,p,this.enableDebugging)},A=c=>{let d=c.touches?Array.from(c.touches):[c],p=new Set;d.forEach(U=>{let H=document.elementFromPoint(U.clientX,U.clientY),O=parseInt(H.id.replace("note",""));p.add(O),!(isNaN(O)||O<0||this.pressedKeys.has(O))&&(this.pressedKeys.add(O),i(O,U))}),this.pressedKeys.forEach(U=>{p.has(U)||n(U)})};F7||(document.addEventListener("mousedown",c=>{this.mouseHeld=!0,A(c)}),document.addEventListener("mouseup",()=>{this.mouseHeld=!1,this.pressedKeys.forEach(c=>{n(c)})}),this.keyboard.onmousemove=c=>{this.mouseHeld&&A(c)},this.keyboard.onmouseleave=()=>{this.pressedKeys.forEach(c=>{n(c)})}),this.keyboard.ontouchstart=A.bind(this),this.keyboard.ontouchend=A.bind(this),this.keyboard.ontouchmove=A.bind(this)}var fy=20,Dp=class{onNotePressed=void 0;constructor(i,A){this.mouseHeld=!1,this.pressedKeys=new Set,this.mode="light",this.enableDebugging=!1,this.sizeChangeAnimationId=-1,this.modeChangeAnimationId=-1,this._keyRange={min:0,max:127},document.addEventListener("keydown",c=>{c.key==="Shift"&&(this.synth.controllerChange(this.channel,$3.sustainPedal,127),this.keyboard.style.filter="brightness(0.5)")}),document.addEventListener("keyup",c=>{c.key==="Shift"&&(this.synth.controllerChange(this.channel,$3.sustainPedal,0),this.keyboard.style.filter="")}),this.synth=A,this.channel=0,this.channelColors=i,this._shown=!0,this._createKeyboard(),this.synth.eventHandler.addEvent("noteon","keyboard-note-on",c=>{this.pressNote(c.midiNote,c.channel,c.velocity)}),this.synth.eventHandler.addEvent("noteoff","keyboard-note-off",c=>{this.releaseNote(c.midiNote,c.channel)}),this.synth.eventHandler.addEvent("stopall","keyboard-stop-all",()=>{this.clearNotes()}),this.synth.eventHandler.addEvent("mutechannel","keyboard-mute-channel",c=>{if(c.isMuted)for(let d=0;d<128;d++)this.releaseNote(d,c.channel)})}get shown(){return this._shown}set shown(i){i===!0?this.keyboard.style.display="":this.keyboard.style.display="none",this._shown=i}get keyRange(){return this._keyRange}set keyRange(i){if(i.max===void 0||i.min===void 0)throw new TypeError("No min or max property!");if(i.min>i.max){let A=i.min;i.min=i.max,i.max=A}i.min=Math.max(0,i.min),i.max=Math.min(127,i.max),this.setKeyRange(i,!0)}_createKeyboard(){this.keyboard=document.getElementById("keyboard"),this.keyboard.innerHTML="",this.keys=[],this.keyColors=[];for(let i=this._keyRange.min;i=0&&(p=A(i-1)),i<127&&(U=A(i+1)),U&&p?c.classList.add("between_sharps"):p?c.classList.add("left_sharp"):U&&c.classList.add("right_sharp")}return c}toggleMode(i=!0){if(this.mode==="light"?this.mode="dark":this.mode="light",!i){this.keys.forEach(c=>{c.classList.contains("flat_key")&&c.classList.toggle("flat_dark_key")});return}this.modeChangeAnimationId&&clearTimeout(this.modeChangeAnimationId),this.keyboard.classList.add("mode_transform"),document.body.scrollHeight<=window.innerHeight&&document.body.classList.add("no_scroll"),this.modeChangeAnimationId=setTimeout(()=>{this.keys.forEach(c=>{c.classList.contains("flat_key")&&c.classList.toggle("flat_dark_key")}),this.keyboard.classList.remove("mode_transform"),setTimeout(()=>document.body.classList.remove("no_scroll"),500)},500)}setKeyRange(i,A=!0){Math.abs(i.max-i.min)<12&&(i.min-=6,i.max=i.min+12);let d=900/(i.max-i.min+5),p=document.styleSheets[0].cssRules,U;for(let H of p)if(H.selectorText==="#keyboard .key"){U=H;break}if(U.style.setProperty("--pressed-transform-skew",`${8e-4/(d/7)}`),A){this.sizeChangeAnimationId&&clearTimeout(this.sizeChangeAnimationId);let H=getComputedStyle(this.keyboard),O=parseFloat(H.getPropertyValue("--current-min-height").replace(/[^\d.]+/g,"")),P=this.keyboard.getBoundingClientRect().height,W0=d/O,_=P*W0-P,e0=(this._keyRange.min+this._keyRange.max)/2,i0=(i.min+i.max)/2;this._keyRange=i;let a1=this.keys.find(C2=>C2.classList.contains("sharp_key")).getBoundingClientRect().width,_1=(e0-i0)*a1,f1=parseFloat(H.getPropertyValue("--key-border-radius").replace(/[^\d.]+/g,""));this.keyboard.style.marginTop=`${_}px`,this.keyboard.style.transition="",this.keyboard.style.transform=`scale(${W0}) translateX(${_1}px)`,this.keyboard.style.setProperty("--key-border-radius",`${f1/W0}vmin`),this.sizeChangeAnimationId=setTimeout(()=>{this.keyboard.style.setProperty("--current-min-height",`${d}`),this.keyboard.style.transition="none",this.keyboard.style.transform="",this.keyboard.style.marginTop="",this.keyboard.style.setProperty("--key-border-radius",""),this._createKeyboard(),setTimeout(()=>this.keyboard.style.transition="",75)},500)}else this.keyboard.style.setProperty("--current-min-height",`${d}`),this._keyRange=i,this._createKeyboard()}selectChannel(i){this.channel=i}pressNote(i,A,c){let d=this.keys[i-this._keyRange.min];if(d===void 0)return;d.classList.add("pressed");let p=d.classList.contains("sharp_key"),U=c/127,H=this.channelColors[A%16].match(/\d+(\.\d+)?/g).map(parseFloat),O;if(!p&&this.mode==="light"?O=`rgba(${H.slice(0,3).map(W0=>255-(255-W0)*U).join(", ")}, ${H[3]})`:O=`rgba(${H.slice(0,3).map(W0=>W0*U).join(", ")}, ${H[3]})`,d.style.background=O,this.mode==="dark"){let P=fy*U;d.style.boxShadow=`${O} 0px 0px ${P}px ${P/5}px`}this.keyColors[i-this._keyRange.min].push(this.channelColors[A%16])}releaseNote(i,A){let c=this.keys[i-this._keyRange.min];if(c===void 0)return;A%=this.channelColors.length;let d=this.keyColors[i-this._keyRange.min];if(!d)return;let p=d.findLastIndex(U=>U===this.channelColors[A]);p!==-1&&(d.splice(p,1),c.style.background=d[d.length-1],this.mode==="dark"&&(c.style.boxShadow=`0px 0px ${fy}px ${d[d.length-1]}`),d.length<1&&(c.classList.remove("pressed"),c.style.background="",c.style.boxShadow=""))}clearNotes(){this.keys.forEach((i,A)=>{i.classList.remove("pressed"),i.style.background="",i.style.boxShadow="",this.keyColors[A]=[]})}};Dp.prototype._handlePointers=hy;function S$(n,i){let A=n.replace(/[^\d,]/g,"").split(",");return`rgb(${i(parseInt(A[0]))}, ${i(parseInt(A[1]))}, ${i(parseInt(A[2]))})`}var xD="#000";function Iy(n,i,A){n.forEach(c=>{if(c.pressedProgress===0)return;i.fillStyle=c.color;let d=c.pressedProgress*c.velocity;if(i.globalAlpha=.5*d,A){i.fillRect(c.xPos,c.yPos-c.height*d,c.width,c.height*(d*2+1)),i.globalAlpha=1;return}i.fillRect(c.xPos-c.width*d,c.yPos,c.width*(d*2+1),c.height),i.globalAlpha=1}),n.forEach(c=>{i.fillStyle=c.color,i.save(),i.translate(c.xPos,c.yPos),i.fillRect(0,0,c.width,c.height),i.restore(),i.strokeStyle=xD,i.lineWidth=c.stroke,i.strokeRect(c.xPos,c.yPos,c.width,c.height)})}var zC=!1;function my(n=!0,i=!1){let A=(this.seq===void 0||this?.seq?.paused===!0)&&this.synth.voicesAmount===0&&!i;if(!this.renderBool||A)if(zC){n&&requestAnimationFrame(this.render.bind(this));return}else zC=!0;else zC=!1;if(n&&this.drawingContext.clearRect(0,0,this.canvas.width,this.canvas.height),this.renderAnalysers&&!this.synth.highPerformanceMode&&this.renderWaveforms(),this.renderNotes&&this.noteTimes){let p=this.computeNotePositions(this.synth.highPerformanceMode);this.synth.highPerformanceMode||Iy(p,this.drawingContext,this.sideways)}let c=performance.now()-this.frameTimeStart;this.frameTimeStart=performance.now();let d=1e3/c;this.drawingContext.textBaseline="hanging",this.drawingContext.textAlign="end",this.drawingContext.font=`${ME}px system-ui`,this.drawingContext.fillStyle="white",this.drawingContext.strokeStyle="white",this.drawingContext.fillText(`${this.notesOnScreen} notes`,this.canvas.width,ME*2+5),this.drawingContext.fillText(this.version,this.canvas.width,5),this.drawingContext.fillText(Math.round(d).toString()+" FPS",this.canvas.width,ME+5),this.onRender&&this.onRender(),n&&requestAnimationFrame(this.render.bind(this))}function py(n=!1){this.notesOnScreen=0;let i=this.sideways?this.canvas.height:this.canvas.width,A=this.sideways?this.canvas.width:this.canvas.height,c=this.keyRange.max-this.keyRange.min,d=i/(c+1),p=d-D$*2,U=this.noteFallingTimeMs/1e3,H=this.noteAfterTriggerTimeMs/1e3,O=this.seq.currentHighResolutionTime,P=O-H,W0=U+H,_=P+W0,e0=Cy/W0,i0=[];this.synth.channelProperties.forEach(_1=>{if(this.showVisualPitch){let f1=_1.pitchBend-8192+this.visualPitchBendOffset;i0.push(_1.pitchBendRangeSemitones*(f1/8192*d))}else i0.push(0)});let a1=[];return this.noteTimes.forEach((_1,f1)=>{if(_1.renderStartIndex>=_1.notes.length||!this.renderChannels[f1])return;let C2=_1.renderStartIndex,u2=_1.notes,I2=u2[C2],K2=-1;for(;I2.start<=_&&(C2++,!(this.notesOnScreen>By));){let J2=I2.start+I2.length;if(J2>P&&I2.length>0){let A0=I2.length/W0*A-D$*2;if(this.notesOnScreen<1e3||A0>e0){K2===-1&&(K2=C2-1);let C5=(I2.start-P)/W0*A,p3;if(this._notesFall?p3=A-A0-C5+D$:p3=C5+D$,I2.midiNotethis.keyRange.max){if(C2>=u2.length)break;I2=u2[C2];continue}let w3=I2.midiNote-this.keyRange.min,m6=d*w3+D$,v3,x6,u9,P3;if(this.sideways?(v3=p3,x6=m6,P3=p,u9=A0):(x6=p3,v3=m6,u9=p,P3=A0),this.notesOnScreen++,n)this.drawingContext.fillStyle=this.plainColors[f1],this.drawingContext.fillRect(v3+b$+D$,x6+b$,u9-b$*2,P3-b$*2);else{let w6;if(I2.start>O||J2=u2.length)break;I2=u2[C2]}K2>-1&&(_1.renderStartIndex=K2)}),a1.sort((_1,f1)=>f1.height-_1.height),a1}function Qy(){let n=this.canvas.width/4,i=this.canvas.height/4;this.channelAnalysers.forEach((A,c)=>{let d=c%4,p=Math.floor(c/4),U=!1;for(let _=c;_0){U=!0;break}if(!U){let _=this.canvas.width/4,e0=this.canvas.height/4,i0=_*d,a1=e0*p+e0/2;this.drawingContext.lineWidth=this.lineThickness,this.drawingContext.strokeStyle=this.channelColors[c],this.drawingContext.beginPath(),this.drawingContext.moveTo(i0,a1),this.drawingContext.lineTo(i0+_,a1),this.drawingContext.stroke();return}let H=new Float32Array(A.frequencyBinCount);A.getFloatTimeDomainData(H);let O=n*d,P=i*p+i/2,W0=this.waveMultiplier*i;if(this.drawingContext.lineWidth=this.lineThickness,this.drawingContext.strokeStyle=this.channelColors[c],this.drawingContext.beginPath(),this._stabilizeWaveforms){let _=H.length/4,e0=n/_,i0=Math.floor(_/2),a1=H.length-i0;for(let u2=a1;u2>=1;u2--)if(H[u2-1]<0&&H[u2]>=0){a1=u2;break}let _1=O,f1=a1-i0,C2=a1+i0;for(let u2=f1;u2{this.renderChannels[i.channel]=!i.isMuted}),this.updateFftSize()}function vy(){for(let n=0;n4096?this.delayNode.delayTime.value=d/this.synth.context.sampleRate/2:this.delayNode.delayTime.value=0)}}function ky(n){n.connectIndividualOutputs(this.channelAnalysers),n.eventHandler.addEvent("drumchange","renderer-drum-change",()=>{setTimeout(this.updateFftSize.bind(this),100)})}function Sy(){for(let n of this.channelAnalysers)n.disconnect();_5("%cAnalysers disconnected!",C1.recognized)}function by(n){this.seq=n,this.seq.addOnTimeChangeEvent(()=>this.resetIndexes(),"renderer-time-change"),this.seq.addOnSongChangeEvent(async i=>{if(this.calculateNoteTimes(await this.seq.getMIDI()),this.resetIndexes(),i.RMIDInfo?.IPIC!==void 0){let A=new Blob([i.RMIDInfo?.IPIC.buffer]),c=URL.createObjectURL(A),d=this.canvas.classList.contains("light_mode")?0:.9;this.canvas.style.background=`linear-gradient(rgba(0, 0, 0, ${d}), rgba(0, 0, 0, ${d})), center center / cover url("${c}")`}else this.canvas.style.background=""},"renderer-song-change")}function Dy(){this.noteTimes&&this.noteTimes.forEach(n=>n.renderStartIndex=0)}function KC(n,i){let A=0;for(let c=8*(i-1);c>=0;c-=8)A|=n[n.currentIndex++]<>>0}function _p(n,i){let A=new Array(i).fill(0);for(let c=i-1;c>=0;c--)A[c]=n&255,n>>=8;return A}var Iu=.02;function _y(n){function i(P){return P.messageData=new j5(P.messageData.buffer),P.messageData.currentIndex=0,6e7/KC(P.messageData,3)}let A=[],d=n.tracks.flat();d.sort((P,W0)=>P.ticks-W0.ticks);for(let P=0;P<16;P++)A.push({renderStartIndex:0,notes:[]});let p=0,U=60/(120*n.timeDivision),H=0,O=0;for(;H>4,_=P.messageStatusByte&15;if(W0===8){let e0=A[_].notes.findLast(i0=>i0.midiNote===P.messageData[0]&&i0.length===-1);if(e0){let i0=p-e0.start;e0.length=i0i0.midiNote===P.messageData[0]&&i0.length===-1);if(e0){let i0=p-e0.start;e0.length=i0=d.length)break;p+=U*(d[H].ticks-P.ticks)}O>0&&A.forEach((P,W0)=>P.notes.filter(_=>_.length===-1).forEach(_=>{let e0=p-_.start;_.length=e0i.max){let A=i.min;i.min=i.max,i.max=A}i.min=Math.max(0,i.min),i.max=Math.min(127,i.max),this._keyRange=i}toggleDarkMode(){this.canvas.classList.toggle("light_mode")}computeColors(){this.channelColors=this.plainColors.map(i=>{let A=this.drawingContext.createLinearGradient(0,0,this.canvas.width/128,0);return A.addColorStop(0,S$(i,c=>c*FE)),A.addColorStop(1,i),A}),this.darkerColors=this.plainColors.map(i=>{let A=this.drawingContext.createLinearGradient(0,0,this.canvas.width/128,0);return A.addColorStop(0,S$(i,c=>c*FE*RE)),A.addColorStop(1,S$(i,c=>c*RE)),A}),this.sidewaysChannelColors=this.plainColors.map(i=>{let A=this.drawingContext.createLinearGradient(0,0,0,this.canvas.width/128);return A.addColorStop(0,S$(i,c=>c*FE)),A.addColorStop(1,i),A}),this.sidewaysDarkerColors=this.plainColors.map(i=>{let A=this.drawingContext.createLinearGradient(0,0,0,this.canvas.width/128);return A.addColorStop(0,S$(i,c=>c*FE*RE)),A.addColorStop(1,S$(i,c=>c*RE)),A})}};T7.prototype.render=my;T7.prototype.computeNotePositions=py;T7.prototype.createChannelAnalysers=wy;T7.prototype.updateFftSize=vy;T7.prototype.connectChannelAnalysers=ky;T7.prototype.disconnectChannelAnalysers=Sy;T7.prototype.connectSequencer=by;T7.prototype.calculateNoteTimes=_y;T7.prototype.resetIndexes=Dy;T7.prototype.renderWaveforms=Qy;function s3(n,i){let A=0;for(let c=0;c>>0}function fi(n,i,A){for(let c=0;c>c*8&255}function j3(n,i){n[n.currentIndex++]=i&255,n[n.currentIndex++]=i>>8}function p9(n,i){fi(n,i,4)}function Ga(n,i){let A=i<<8|n;return A>32767?A-65536:A}function xy(n){return n>127?n-256:n}function y4(n,i,A=void 0,c=!0){if(A){let d=n.slice(n.currentIndex,n.currentIndex+i);return n.currentIndex+=i,new TextDecoder(A.replace(/[^\x20-\x7E]/g,"")).decode(d.buffer)}else{let d=!1,p="";for(let U=0;U127)&&H!==10){if(c){d=!0;continue}else if(H===0){d=!0;continue}}p+=String.fromCharCode(H)}}return p}}function N7(n,i=0){let A=n.length;i>0&&(A=i);let c=new j5(A);return P8(c,n,i),c}function P8(n,i,A=0){A>0&&i.length>A&&(i=i.slice(0,A));for(let c=0;ci.length)for(let c=0;cA.header!=="LIST"?!1:(A.chunkData.currentIndex=0,y4(A.chunkData,4)===i))}function TE(n){let i=[n&127];for(n>>=7;n>0;)i.unshift(n&127|128),n>>=7;return i}function NE(n){let i=[];for(let d of n.tracks){let p=[],U=0,H;for(let O of d){let P=O.ticks-U,W0;O.messageStatusByte<=Z3.keySignature||O.messageStatusByte===Z3.sequenceSpecific?W0=[255,O.messageStatusByte,...TE(O.messageData.length),...O.messageData]:O.messageStatusByte===Z3.systemExclusive?W0=[240,...TE(O.messageData.length),...O.messageData]:(W0=[],H!==O.messageStatusByte&&(H=O.messageStatusByte,W0.push(O.messageStatusByte)),W0.push(...O.messageData)),p.push(...TE(P)),p.push(...W0),U+=P}i.push(new Uint8Array(p))}function A(d,p){for(let U=0;U{n.tracks.forEach((a1,_1)=>{if(n.midiPorts[_1]===i0)for(let f1=a1.length-1;f1>=0;f1--)a1[f1].messageStatusByte>=128&&a1[f1].messageStatusByte<240&&(a1[f1].messageStatusByte&15)===e0&&a1.splice(f1,1)})};c.forEach(e0=>{let i0=e0%16,a1=e0-i0,_1=n.midiPortChannelOffsets.findIndex(f1=>f1===a1);p(i0,_1),_5(`%cRemoving channel %c${e0}%c!`,C1.info,C1.recognized,C1.info)});let U=!1,H="gs",O=[],P=[];n.tracks.forEach((e0,i0)=>{e0.forEach(a1=>{let _1=a1.messageStatusByte&240;_1===Z3.controllerChange?O.push({track:i0,message:a1,channel:a1.messageStatusByte&15}):_1===Z3.programChange?P.push({track:i0,message:a1,channel:a1.messageStatusByte&15}):a1.messageStatusByte===Z3.systemExclusive&&(a1.messageData[0]===67&&a1.messageData[2]===76&&a1.messageData[5]===126&&a1.messageData[6]===0?(_5("%cXG system on detected",C1.info),H="xg",U=!0):a1.messageData[0]===67&&a1.messageData[2]===76&&a1.messageData[3]===8&&a1.messageData[5]===3&&P.push({track:i0,message:a1,channel:a1.messageData[4]}))})});let W0=(e0,i0,a1)=>n.tracks.reduce((_1,f1,C2)=>{if(n.usedChannelsOnTrack[C2].has(e0)&&n.midiPorts[C2]===i0){let u2;a1?u2=f1.findIndex(I2=>(I2.messageStatusByte&240)===Z3.noteOn):u2=f1.findIndex(I2=>I2.messageStatusByte>128&&I2.messageStatusByte<240&&(I2.messageStatusByte&15)===e0&&!(I2.messageStatusByte&Z3.controllerChange===240&&(I2.messageData[0]===$3.resetAllControllers||I2.messageData[0]===$3.allNotesOff||I2.messageData[0]===$3.allSoundOff))),u2!==-1&&_1.push({index:u2,track:C2})}return _1},[]),_=(e0,i0,a1)=>{let _1=O.filter(f1=>f1.channel===e0&&f1.message.messageData[0]===a1&&n.midiPorts[f1.track]===i0);for(let f1=0;f1<_1.length;f1++){let C2=_1[f1];n.tracks[C2.track].splice(n.tracks[C2.track].indexOf(C2.message),1),O.splice(O.indexOf(C2),1)}};A.forEach(e0=>{let i0=e0.channel,a1=i0%16,_1=i0-a1,f1=n.midiPortChannelOffsets.findIndex(A0=>A0===_1),C2=e0.controllerValue,u2=e0.controllerNumber;_(a1,f1,u2),_5(`%cNo controller %c${u2}%c on channel %c${i0}%c found. Adding it!`,C1.info,C1.unrecognized,C1.info,C1.value,C1.info);let I2=W0(a1,f1,!0);if(I2.length===0){I9("Program change but no notes... ignoring!");return}let K2=I2.reduce((A0,C5)=>n.tracks[C5.track][C5.index].ticks{let i0=e0.channel%16,a1=e0.channel-i0,_1=n.midiPortChannelOffsets.findIndex(w3=>w3===a1),f1=e0.isDrum?0:e0.bank,C2=e0.program,u2=P.filter(w3=>n.midiPorts[w3.track]===_1&&w3.channel===i0);if(_(i0,_1,$3.bankSelect),_(i0,_1,$3.lsbForControl0BankSelect),(e0.isDrum||f1>0)&&!U&&(n.tracks.forEach(w3=>{for(let m6=0;m60);if(I2.length===0){I9("Program change but no notes... ignoring!");return}let K2=I2.reduce((w3,m6)=>n.tracks[m6.track][m6.index].ticks{if(n.midiPorts[u2]!==a1||!n.usedChannelsOnTrack[u2].has(i0))return;let I2=Z3.noteOn|i0,K2=Z3.noteOff|i0,J2=Z3.polyPressure|i0;C2.forEach(A0=>{A0.messageStatusByte!==I2&&A0.messageStatusByte!==K2&&A0.messageStatusByte!==J2||(A0.messageData[0]=Math.max(0,Math.min(127,A0.messageData[0]+_1)))})}),f1!==0){let C2=n.tracks.find((v3,x6)=>n.usedChannelsOnTrack[x6].has(e0.channel));if(C2===void 0){I9(`Channel ${e0.channel} unused but transpose requested???`);continue}let u2=Z3.noteOn|e0.channel%16,I2=C2.findIndex(v3=>v3.messageStatusByte===u2);if(I2===-1){I9(`No notes on channel ${e0.channel} but transpose requested???`);continue}let K2=C2[I2].ticks,J2=f1*64+64,A0=Z3.controllerChange|e0.channel%16,C5=new y7(K2,A0,new j5([$3.RPNMsb,0])),p3=new y7(K2,A0,new j5([$3.RPNLsb,1])),w3=new y7(K2,A0,new j5([$3.dataEntryMsb,J2])),m6=new y7(K2,A0,new j5([$3.lsbForControl6DataEntry,0]));C2.splice(I2,0,m6),C2.splice(I2,0,w3),C2.splice(I2,0,p3),C2.splice(I2,0,C5)}}g9()}function Ua(n,i){let A=[],c=[],d=[],p=[];i.channelSnapshots.forEach((U,H)=>{if(U.isMuted){c.push(H);return}let O=U.channelTransposeKeyShift+U.customControllers[DE.channelTransposeFine]/100;O!==0&&A.push({channel:H,keyShift:O}),U.lockPreset&&d.push({channel:H,program:U.program,bank:U.bank,isDrum:U.drumChannel}),U.lockedControllers.forEach((P,W0)=>{if(!P||W0>127||W0===$3.bankSelect)return;let _=U.midiControllers[W0]>>7;p.push({channel:H,controllerNumber:W0,controllerValue:_})})}),ND(n,d,p,c,A)}var O8={name:"INAM",album:"IPRD",artist:"IART",genre:"IGNR",picture:"IPIC",copyright:"ICOP",creationDate:"ICRD",comment:"ICMT",engineer:"IENG",software:"ISFT",encoding:"IENC",midiEncoding:"MENC",bankOffset:"DBNK"},Pa="utf-8",GD="Created using SpessaSynth";function Ly(n,i,A,c=0,d="Shift_JIS",p={},U=!0){if(M7("%cWriting the RMIDI File...",C1.info),_5(`%cConfiguration: Bank offset: %c${c}%c, encoding: %c${d}`,C1.info,C1.value,C1.info,C1.value),_5("metadata",p),_5("Initial bank offset",i.bankOffset),U){let C2=function(){let J2=0,A0=1/0;return i.tracks.forEach((C5,p3)=>{_1[p3]>=C5.length||C5[_1[p3]].ticksA0>J2?A0:J2),K2=[];for(let J2=0;J20;){let J2=C2(),A0=i.tracks[J2];if(_1[J2]>=A0.length){f1--;continue}let C5=A0[_1[J2]];_1[J2]++;let p3=i.midiPortChannelOffsets[u2[J2]];if(C5.messageStatusByte===Z3.midiPort){u2[J2]=C5.messageData[0];continue}let w3=C5.messageStatusByte&240;if(w3!==Z3.controllerChange&&w3!==Z3.programChange&&w3!==Z3.systemExclusive)continue;if(w3===Z3.systemExclusive){if(C5.messageData[0]!==65||C5.messageData[2]!==66||C5.messageData[3]!==18||C5.messageData[4]!==64||!(C5.messageData[5]&16)||C5.messageData[6]!==21){C5.messageData[0]===67&&C5.messageData[2]===76&&C5.messageData[5]===126&&C5.messageData[6]===0?i0="xg":C5.messageData[0]===65&&C5.messageData[2]===66&&C5.messageData[6]===127?i0="gs":C5.messageData[0]===126&&C5.messageData[2]===9&&(i0="gm",a1.push({tNum:J2,e:C5}));continue}let x6=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][C5.messageData[5]&15]+p3;K2[x6].drums=!!(C5.messageData[7]>0&&C5.messageData[5]>>4);continue}let m6=(C5.messageStatusByte&15)+p3,v3=K2[m6];if(w3===Z3.programChange){v3.drums?A.presets.findIndex(P3=>P3.program===C5.messageData[0]&&P3.bank===128)===-1&&(C5.messageData[0]=A.presets.find(P3=>P3.bank===128)?.program||0):A.presets.findIndex(P3=>P3.program===C5.messageData[0]&&P3.bank!==128)===-1&&(C5.messageData[0]=A.presets.find(P3=>P3.bank!==128)?.program||0),v3.program=C5.messageData[0];let x6=Math.max(0,v3.lastBank?.messageData[1]-i.bankOffset),u9=v3.drums?128:x6;if(v3.lastBank===void 0)continue;if(i0==="xg"&&v3.drums&&(K2[m6].lastBank.messageData[1]=127),A.presets.findIndex(P3=>P3.bank===u9&&P3.program===C5.messageData[0])===-1){let P3=A.presets.find(w6=>w6.program===C5.messageData[0])?.bank+c||c;v3.lastBank.messageData[1]=P3,_5(`%cNo preset %c${u9}:${C5.messageData[0]}%c. Changing bank to ${P3}.`,C1.info,C1.recognized,C1.info)}else{let w6=(u9===128?i0==="xg"?127:0:x6)+c;v3.lastBank.messageData[1]=w6,_5(`%cPreset %c${u9}:${C5.messageData[0]}%c exists. Changing bank to ${w6}.`,C1.info,C1.recognized,C1.info)}continue}C5.messageData[0]===$3.bankSelect&&(v3.hasBankSelect=!0,i0==="xg"&&(v3.drums=C5.messageData[1]===120||C5.messageData[1]===126||C5.messageData[1]===127),v3.lastBank=C5)}if(K2.forEach((J2,A0)=>{if(J2.hasBankSelect===!0)return;let C5=A0%16,p3=Z3.programChange|C5,w3=Math.floor(A0/16)*16,m6=i.midiPortChannelOffsets.indexOf(w3),v3=i.tracks.find((w6,Me)=>i.midiPorts[Me]===m6&&i.usedChannelsOnTrack[Me].has(C5));if(v3===void 0)return;let x6=v3.findIndex(w6=>w6.messageStatusByte===p3);if(x6===-1){let w6=v3.findIndex(er=>er.messageStatusByte>128&&er.messageStatusByte<240&&(er.messageStatusByte&15)===C5);if(w6===-1)return;let Me=v3[w6].ticks,Wr=A.getPreset(0,0).program;v3.splice(w6,0,new y7(Me,Z3.programChange|C5,new j5([Wr]))),x6=w6}_5(`%cAdding bank select for %c${A0}`,C1.info,C1.recognized);let u9=v3[x6].ticks,P3=A.getPreset(0,J2.program)?.bank+c||c;v3.splice(x6,0,new y7(u9,Z3.controllerChange|C5,new j5([$3.bankSelect,P3])))}),i0!=="gs"&&i0!=="xg"){for(let A0 of a1)i.tracks[A0.tNum].splice(i.tracks[A0.tNum].indexOf(A0.e),1);let J2=0;i.tracks[0][0].messageStatusByte===Z3.trackName&&J2++,i.tracks[0].splice(J2,0,ZC(0))}}let H=new j5(NE(i).buffer),O=[N7("INFO")],P=new TextEncoder;if(O.push(k6(O8.software,P.encode("SpessaSynth"),!0)),p.name!==void 0?(O.push(k6(O8.name,P.encode(p.name),!0)),d=Pa):O.push(k6(O8.name,i.rawMidiName,!0)),p.creationDate!==void 0)d=Pa,O.push(k6(O8.creationDate,P.encode(p.creationDate),!0));else{let i0=new Date().toLocaleString(void 0,{weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric"});O.push(k6(O8.creationDate,N7(i0),!0))}if(p.comment!==void 0&&(d=Pa,O.push(k6(O8.comment,P.encode(p.comment)))),p.engineer!==void 0&&O.push(k6(O8.engineer,P.encode(p.engineer),!0)),p.album!==void 0&&(d=Pa,O.push(k6(O8.album,P.encode(p.album),!0))),p.artist!==void 0&&(d=Pa,O.push(k6(O8.artist,P.encode(p.artist),!0))),p.genre!==void 0&&(d=Pa,O.push(k6(O8.genre,P.encode(p.genre),!0))),p.picture!==void 0&&O.push(k6(O8.picture,new Uint8Array(p.picture))),p.copyright!==void 0)d=Pa,O.push(k6(O8.copyright,P.encode(p.copyright),!0));else{let i0=i.copyright.length>0?i.copyright:GD;O.push(k6(O8.copyright,N7(i0)))}let W0=new j5(2);fi(W0,c,2),O.push(k6(O8.bankOffset,W0)),p.midiEncoding!==void 0&&(O.push(k6(O8.midiEncoding,P.encode(p.midiEncoding))),d=Pa),O.push(k6(O8.encoding,N7(d)));let _=St(O),e0=St([N7("RMID"),k6("data",H),k6("LIST",_),n]);return _5("%cFinished!",C1.info),g9(),k6("RIFF",e0)}function xp(n,i){let A=0;for(;n>0;){let c=i.tempoChanges.find(p=>p.ticks=128){this.MIDIout.send(c);return}break;case Oa.songChange:let d=A[0];this.songIndex=A[1],this.midiData=d,this.hasDummyData=!1,this.absoluteStartTime=0,this.duration=this.midiData.duration,Object.entries(this.onSongChange).forEach(H=>H[1](d)),A[2]===!0&&this.unpause();break;case Oa.textEvent:let p=A;this.onTextEvent&&this.onTextEvent(p[0],p[1]);break;case Oa.timeChange:let U=this.synth.currentTime-A;Object.entries(this.onTimeChange).forEach(H=>H[1](U)),this._recalculateStartTime(U),this.paused&&this._preservePlaybackState?this.pausedTime=U:this.unpause();break;case Oa.pause:this.pausedTime=this.currentTime,this.isFinished=A,this.isFinished&&Object.entries(this.onSongEnded).forEach(H=>H[1]());break;case Oa.midiError:if(this.onError)this.onError(A);else throw new Error("Sequencer error: "+A);return;case Oa.getMIDI:this._getMIDIResolve&&this._getMIDIResolve(A)}}_recalculateStartTime(i){this.absoluteStartTime=this.synth.currentTime-i/this._playbackRate,this.highResTimeOffset=(this.synth.currentTime-performance.now()/1e3)*this._playbackRate}async getMIDI(){return new Promise(i=>{this._getMIDIResolve=i,this._sendMessage(A7.getMIDI,void 0)})}loadNewSongList(i,A=!0){this.pause(),this.midiData=My,this.hasDummyData=!0,this.duration=99999,this._sendMessage(A7.loadNewSongList,[i,A]),this.songIndex=0,this.songsAmount=i.length,this.songsAmount>1&&(this.loop=!1),A===!1&&(this.pausedTime=this.currentTime)}connectMidiOutput(i){this.resetMIDIOut(),this.MIDIout=i,this._sendMessage(A7.changeMIDIMessageSending,i!==void 0),this.currentTime-=.1}pause(){if(this.paused){I9("Already paused");return}this.pausedTime=this.currentTime,this._sendMessage(A7.pause)}unpause(){this.pausedTime=void 0,this.isFinished=!1}play(i=!1){this.isFinished&&(i=!0),this._recalculateStartTime(this.pausedTime||0),this.unpause(),this._sendMessage(A7.play,i)}stop(){this._sendMessage(A7.stop)}};var Lp=["Shift_JIS","windows-1250","utf-8","utf-16","utf-16le","utf-16be","latin1","ISO-8859-1","ISO-8859-2","ISO-8859-3","ISO-8859-4","ISO-8859-5","ISO-8859-6","ISO-8859-7","ISO-8859-8","ISO-8859-9","ISO-8859-10","ISO-8859-11","ISO-8859-13","ISO-8859-14","ISO-8859-15","ISO-8859-16","windows-1251","windows-1252","windows-1253","windows-1254","windows-1255","windows-1256","windows-1257","windows-1258","EUC-JP","ISO-2022-JP","EUC-KR","Big5","GB18030"];function Ry(n){return` +`}},YC=960,VC=X7.concave;function Yr(n,i,A,c,d){return n<<10|i<<9|A<<8|c<<7|d}var bE=[new $e({srcEnum:Yr(VC,0,1,0,q4.noteOnVelocity),dest:m0.initialAttenuation,amt:YC,secSrcEnum:0,transform:0}),new $e({srcEnum:129,dest:m0.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(VC,0,1,1,$3.mainVolume),dest:m0.initialAttenuation,amt:YC,secSrcEnum:0,transform:0}),new $e({srcEnum:13,dest:m0.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new $e({srcEnum:526,dest:m0.fineTune,amt:12700,secSrcEnum:16,transform:0}),new $e({srcEnum:650,dest:m0.pan,amt:500,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(VC,0,1,1,$3.expressionController),dest:m0.initialAttenuation,amt:YC,secSrcEnum:0,transform:0}),new $e({srcEnum:219,dest:m0.reverbEffectsSend,amt:200,secSrcEnum:0,transform:0}),new $e({srcEnum:221,dest:m0.chorusEffectsSend,amt:200,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(X7.linear,0,0,0,q4.polyPressure),dest:m0.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(X7.linear,0,0,1,$3.tremoloDepth),dest:m0.modLfoToVolume,amt:24,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(X7.linear,1,0,1,$3.releaseTime),dest:m0.releaseVolEnv,amt:1200,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(X7.linear,1,0,1,$3.brightness),dest:m0.initialFilterFc,amt:6e3,secSrcEnum:0,transform:0}),new $e({srcEnum:Yr(X7.linear,1,0,1,$3.timbreHarmonicContent),dest:m0.initialFilterQ,amt:250,secSrcEnum:0,transform:0})];var k$=128,gy=147,kD=new Int16Array(gy).fill(0),a7=(n,i)=>kD[n]=i<<7;a7($3.mainVolume,100);a7($3.balance,64);a7($3.expressionController,127);a7($3.pan,64);a7($3.timbreHarmonicContent,64);a7($3.releaseTime,64);a7($3.attackTime,64);a7($3.brightness,64);a7($3.soundController6,64);a7($3.soundController7,64);a7($3.soundController8,64);a7($3.soundController9,64);a7($3.generalPurposeController6,64);a7($3.generalPurposeController8,64);a7(k$+q4.pitchWheel,64);a7(k$+q4.pitchWheelRange,2);var DE={channelTuning:0,channelTransposeFine:1,modulationMultiplier:2,masterTuning:3,channelTuningSemitones:4},uy=Object.keys(DE).length,SD=new Float32Array(uy);SD[DE.modulationMultiplier]=1;var dy={velocityOverride:128};var _E=class{velocity=-1;patch={bank:-1,program:-1};constructor(i=-1,A=-1,c=-1){this.velocity=i,this.patch={bank:A,program:c}}},xE={addMapping:0,deleteMapping:1,clearMappings:2};var LE=class{constructor(i){this.synth=i}_sendToWorklet(i,A){this.synth.post({messageType:Q4.keyModifierManager,messageData:[i,A]})}addModifier(i,A,c){let d=c?.velocity??-1,p=c?.patch?.program??-1,O=c?.patch?.bank??-1;this._sendToWorklet(xE.addMapping,[i,A,new _E(d,O,p)])}deleteModifier(i,A){this._sendToWorklet(xE.deleteMapping,[i,A])}clearModifiers(){this._sendToWorklet(xE.clearMappings,void 0)}};var bD="spessasynth-worklet-system",JC=350,R7=9,DD=16;var fu=class{constructor(i,A,c=!0,d=void 0,p=cy){_5("%cInitializing SpessaSynth synthesizer...",C1.info),this.context=i.context,this.targetNode=i;let O=d?.oneOutput===!0;this.eventHandler=new kE,this._voiceCap=JC,this._destroyed=!1,this._outputsAmount=DD,this.channelsAmount=this._outputsAmount,this.resolveWhenReady=void 0,this.isReady=new Promise(U=>this.resolveWhenReady=U),this.channelProperties=[];for(let U=0;Uthis.handleMessage(U.data),this.soundfontManager=new SE(this),this.keyModifierManager=new LE(this),this._snapshotCallback=void 0,this.sequencerCallbackFunction=void 0,this.effectsConfig.reverbEnabled&&!O&&(this.reverbProcessor=ly(this.context,this.effectsConfig.reverbImpulseResponse),this.reverbProcessor.connect(i),this.worklet.connect(this.reverbProcessor,0)),this.effectsConfig.chorusEnabled&&!O&&(this.chorusProcessor=new kp(i,this.effectsConfig.chorusConfig),this.worklet.connect(this.chorusProcessor.input,1)),O)this.worklet.connect(i,0);else for(let U=2;U{this.channelsAmount++})}get voiceCap(){return this._voiceCap}set voiceCap(i){this._setMasterParam(Sp.voicesCap,i),this._voiceCap=i}get highPerformanceMode(){return this._highPerformanceMode}set highPerformanceMode(i){this._highPerformanceMode=i}get currentTime(){return this.context.currentTime}get voicesAmount(){return this._voicesAmount}setLogLevel(i,A,c,d){this.post({channelNumber:s7,messageType:Q4.setLogLevel,messageData:[i,A,c,d]})}_setMasterParam(i,A){this.post({channelNumber:s7,messageType:Q4.setMasterParameter,messageData:[i,A]})}setInterpolationType(i){this._setMasterParam(Sp.interpolationType,i)}handleMessage(i){let A=i.messageData;switch(i.messageType){case v$.channelProperties:this.channelProperties=A,this._voicesAmount=this.channelProperties.reduce((c,d)=>c+d.voicesAmount,0);break;case v$.eventCall:this.eventHandler.callEvent(A.eventName,A.eventData);break;case v$.sequencerSpecific:this.sequencerCallbackFunction&&this.sequencerCallbackFunction(A.messageType,A.messageData);break;case v$.synthesizerSnapshot:this._snapshotCallback&&this._snapshotCallback(A);break;case v$.ready:this.resolveWhenReady();break;case v$.soundfontError:I9(new Error(A)),this.eventHandler.callEvent("soundfonterror",A);break}}async getSynthesizerSnapshot(){return new Promise(i=>{this._snapshotCallback=A=>{this._snapshotCallback=void 0,A.effectsConfig=this.effectsConfig,i(A)},this.post({messageType:Q4.requestSynthesizerSnapshot,messageData:void 0,channelNumber:s7})})}addNewChannel(i=!0){this.channelProperties.push({voicesAmount:0,pitchBend:0,pitchBendRangeSemitones:0,isMuted:!1,isDrum:!1}),i&&this.post({channelNumber:0,messageType:Q4.addNewChannel,messageData:null})}setVibrato(i,A){this.post({channelNumber:i,messageType:Q4.setChannelVibrato,messageData:A})}connectIndividualOutputs(i){if(i.length!==this._outputsAmount)throw new Error(`input nodes amount differs from the system's outputs amount! + Expected ${this._outputsAmount} got ${i.length}`);for(let A=0;A127||A<0)throw new Error(`Invalid controller number: ${A}`);c=Math.floor(c),A=Math.floor(A),this.post({channelNumber:i,messageType:Q4.ccChange,messageData:[A,c,d]})}resetControllers(){this.post({channelNumber:s7,messageType:Q4.ccReset,messageData:void 0})}channelPressure(i,A){this.post({channelNumber:i,messageType:Q4.channelPressure,messageData:A})}polyPressure(i,A,c){this.post({channelNumber:i,messageType:Q4.polyPressure,messageData:[A,c]})}post(i){if(this._destroyed)throw new Error("This synthesizer instance has been destroyed!");this.worklet.port.postMessage(i)}pitchWheel(i,A,c){this.post({channelNumber:i,messageType:Q4.pitchWheel,messageData:[A,c]})}transpose(i){this.transposeChannel(s7,i,!1)}transposeChannel(i,A,c=!1){this.post({channelNumber:i,messageType:Q4.transpose,messageData:[A,c]})}setMainVolume(i){this._setMasterParam(Sp.mainVolume,i)}setMasterPan(i){this._setMasterParam(Sp.masterPan,i)}setPitchBendRange(i,A){this.controllerChange(i,$3.RPNMsb,0),this.controllerChange(i,$3.dataEntryMsb,A),this.controllerChange(i,$3.RPNMsb,127),this.controllerChange(i,$3.RPNLsb,127),this.controllerChange(i,$3.dataEntryMsb,0)}programChange(i,A,c=!1){this.post({channelNumber:i,messageType:Q4.programChange,messageData:[A,c]})}velocityOverride(i,A){this.post({channelNumber:i,messageType:Q4.ccChange,messageData:[dy.velocityOverride,A,!0]})}lockController(i,A,c){this.post({channelNumber:i,messageType:Q4.lockController,messageData:[A,c]})}muteChannel(i,A){this.post({channelNumber:i,messageType:Q4.muteChannel,messageData:A})}async reloadSoundFont(i){I9("reloadSoundFont is deprecated. Please use the soundfontManager property instead."),await this.soundfontManager.reloadManager(i)}systemExclusive(i){this.post({channelNumber:s7,messageType:Q4.systemExclusive,messageData:Array.from(i)})}setDrums(i,A){this.post({channelNumber:i,messageType:Q4.setDrums,messageData:A})}sendMessage(i,A=0){let c=$y(i[0]);switch(c.channel+=A,c.status){case Z3.noteOn:let d=i[2];d>0?this.noteOn(c.channel,i[1],d):this.noteOff(c.channel,i[1]);break;case Z3.noteOff:this.noteOff(c.channel,i[1]);break;case Z3.pitchBend:this.pitchWheel(c.channel,i[2],i[1]);break;case Z3.controllerChange:this.controllerChange(c.channel,i[1],i[2]);break;case Z3.programChange:this.programChange(c.channel,i[1]);break;case Z3.polyPressure:this.polyPressure(c.channel,i[0],i[1]);break;case Z3.channelPressure:this.channelPressure(c.channel,i[1]);break;case Z3.systemExclusive:this.systemExclusive(new j5(i.slice(1)));break;case Z3.reset:this.stopAll(!0),this.resetControllers();break;default:break}}setReverbResponse(i){this.reverbProcessor.buffer=i,this.effectsConfig.reverbImpulseResponse=i}setChorusConfig(i){this.worklet.disconnect(this.chorusProcessor.input),this.chorusProcessor.delete(),delete this.chorusProcessor,this.chorusProcessor=new kp(this.targetNode,i),this.worklet.connect(this.chorusProcessor.input,1),this.effectsConfig.chorusConfig=i}setEffectsGain(i,A){this.post({messageType:Q4.setEffectsGain,messageData:[i,A]})}destroy(){this.reverbProcessor.disconnect(),this.chorusProcessor.delete(),this.post({messageType:Q4.destroyWorklet,messageData:void 0}),this.worklet.disconnect(),delete this.worklet,delete this.reverbProcessor,delete this.chorusProcessor,this._destroyed=!0}reverbateEverythingBecauseWhyNot(){for(let i=0;i{this.pressedKeys.delete(c),this.releaseNote(c,this.channel),this.synth.noteOff(this.channel,c)},i=(c,d)=>{let p;if(F7)p=127;else{let H=this.keys[0].getBoundingClientRect();if(this.keyboard.classList.contains("sideways")){let P=d.clientX-H.left,U=H.width;p=Math.floor((U-P)/U*127)}else{let P=d.clientY-H.top,U=H.height;p=Math.floor(P/U*127)}}this.onNotePressed&&this.onNotePressed(c,p),this.synth.noteOn(this.channel,c,p,this.enableDebugging)},A=c=>{let d=c.touches?Array.from(c.touches):[c],p=new Set;d.forEach(O=>{let H=document.elementFromPoint(O.clientX,O.clientY),P=parseInt(H.id.replace("note",""));p.add(P),!(isNaN(P)||P<0||this.pressedKeys.has(P))&&(this.pressedKeys.add(P),i(P,O))}),this.pressedKeys.forEach(O=>{p.has(O)||n(O)})};F7||(document.addEventListener("mousedown",c=>{this.mouseHeld=!0,A(c)}),document.addEventListener("mouseup",()=>{this.mouseHeld=!1,this.pressedKeys.forEach(c=>{n(c)})}),this.keyboard.onmousemove=c=>{this.mouseHeld&&A(c)},this.keyboard.onmouseleave=()=>{this.pressedKeys.forEach(c=>{n(c)})}),this.keyboard.ontouchstart=A.bind(this),this.keyboard.ontouchend=A.bind(this),this.keyboard.ontouchmove=A.bind(this)}var fy=20,Dp=class{onNotePressed=void 0;constructor(i,A){this.mouseHeld=!1,this.pressedKeys=new Set,this.mode="light",this.enableDebugging=!1,this.sizeChangeAnimationId=-1,this.modeChangeAnimationId=-1,this._keyRange={min:0,max:127},document.addEventListener("keydown",c=>{c.key==="Shift"&&(this.synth.controllerChange(this.channel,$3.sustainPedal,127),this.keyboard.style.filter="brightness(0.5)")}),document.addEventListener("keyup",c=>{c.key==="Shift"&&(this.synth.controllerChange(this.channel,$3.sustainPedal,0),this.keyboard.style.filter="")}),this.synth=A,this.channel=0,this.channelColors=i,this._shown=!0,this._createKeyboard(),this.synth.eventHandler.addEvent("noteon","keyboard-note-on",c=>{this.pressNote(c.midiNote,c.channel,c.velocity)}),this.synth.eventHandler.addEvent("noteoff","keyboard-note-off",c=>{this.releaseNote(c.midiNote,c.channel)}),this.synth.eventHandler.addEvent("stopall","keyboard-stop-all",()=>{this.clearNotes()}),this.synth.eventHandler.addEvent("mutechannel","keyboard-mute-channel",c=>{if(c.isMuted)for(let d=0;d<128;d++)this.releaseNote(d,c.channel)})}get shown(){return this._shown}set shown(i){i===!0?this.keyboard.style.display="":this.keyboard.style.display="none",this._shown=i}get keyRange(){return this._keyRange}set keyRange(i){if(i.max===void 0||i.min===void 0)throw new TypeError("No min or max property!");if(i.min>i.max){let A=i.min;i.min=i.max,i.max=A}i.min=Math.max(0,i.min),i.max=Math.min(127,i.max),this.setKeyRange(i,!0)}_createKeyboard(){this.keyboard=document.getElementById("keyboard"),this.keyboard.innerHTML="",this.keys=[],this.keyColors=[];for(let i=this._keyRange.min;i=0&&(p=A(i-1)),i<127&&(O=A(i+1)),O&&p?c.classList.add("between_sharps"):p?c.classList.add("left_sharp"):O&&c.classList.add("right_sharp")}return c}toggleMode(i=!0){if(this.mode==="light"?this.mode="dark":this.mode="light",!i){this.keys.forEach(c=>{c.classList.contains("flat_key")&&c.classList.toggle("flat_dark_key")});return}this.modeChangeAnimationId&&clearTimeout(this.modeChangeAnimationId),this.keyboard.classList.add("mode_transform"),document.body.scrollHeight<=window.innerHeight&&document.body.classList.add("no_scroll"),this.modeChangeAnimationId=setTimeout(()=>{this.keys.forEach(c=>{c.classList.contains("flat_key")&&c.classList.toggle("flat_dark_key")}),this.keyboard.classList.remove("mode_transform"),setTimeout(()=>document.body.classList.remove("no_scroll"),500)},500)}setKeyRange(i,A=!0){Math.abs(i.max-i.min)<12&&(i.min-=6,i.max=i.min+12);let d=900/(i.max-i.min+5),p=document.styleSheets[0].cssRules,O;for(let H of p)if(H.selectorText==="#keyboard .key"){O=H;break}if(O.style.setProperty("--pressed-transform-skew",`${8e-4/(d/7)}`),A){this.sizeChangeAnimationId&&clearTimeout(this.sizeChangeAnimationId);let H=getComputedStyle(this.keyboard),P=parseFloat(H.getPropertyValue("--current-min-height").replace(/[^\d.]+/g,"")),U=this.keyboard.getBoundingClientRect().height,W0=d/P,_=U*W0-U,e0=(this._keyRange.min+this._keyRange.max)/2,i0=(i.min+i.max)/2;this._keyRange=i;let a1=this.keys.find(C2=>C2.classList.contains("sharp_key")).getBoundingClientRect().width,_1=(e0-i0)*a1,f1=parseFloat(H.getPropertyValue("--key-border-radius").replace(/[^\d.]+/g,""));this.keyboard.style.marginTop=`${_}px`,this.keyboard.style.transition="",this.keyboard.style.transform=`scale(${W0}) translateX(${_1}px)`,this.keyboard.style.setProperty("--key-border-radius",`${f1/W0}vmin`),this.sizeChangeAnimationId=setTimeout(()=>{this.keyboard.style.setProperty("--current-min-height",`${d}`),this.keyboard.style.transition="none",this.keyboard.style.transform="",this.keyboard.style.marginTop="",this.keyboard.style.setProperty("--key-border-radius",""),this._createKeyboard(),setTimeout(()=>this.keyboard.style.transition="",75)},500)}else this.keyboard.style.setProperty("--current-min-height",`${d}`),this._keyRange=i,this._createKeyboard()}selectChannel(i){this.channel=i}pressNote(i,A,c){let d=this.keys[i-this._keyRange.min];if(d===void 0)return;d.classList.add("pressed");let p=d.classList.contains("sharp_key"),O=c/127,H=this.channelColors[A%16].match(/\d+(\.\d+)?/g).map(parseFloat),P;if(!p&&this.mode==="light"?P=`rgba(${H.slice(0,3).map(W0=>255-(255-W0)*O).join(", ")}, ${H[3]})`:P=`rgba(${H.slice(0,3).map(W0=>W0*O).join(", ")}, ${H[3]})`,d.style.background=P,this.mode==="dark"){let U=fy*O;d.style.boxShadow=`${P} 0px 0px ${U}px ${U/5}px`}this.keyColors[i-this._keyRange.min].push(this.channelColors[A%16])}releaseNote(i,A){let c=this.keys[i-this._keyRange.min];if(c===void 0)return;A%=this.channelColors.length;let d=this.keyColors[i-this._keyRange.min];if(!d)return;let p=d.findLastIndex(O=>O===this.channelColors[A]);p!==-1&&(d.splice(p,1),c.style.background=d[d.length-1],this.mode==="dark"&&(c.style.boxShadow=`0px 0px ${fy}px ${d[d.length-1]}`),d.length<1&&(c.classList.remove("pressed"),c.style.background="",c.style.boxShadow=""))}clearNotes(){this.keys.forEach((i,A)=>{i.classList.remove("pressed"),i.style.background="",i.style.boxShadow="",this.keyColors[A]=[]})}};Dp.prototype._handlePointers=hy;function S$(n,i){let A=n.replace(/[^\d,]/g,"").split(",");return`rgb(${i(parseInt(A[0]))}, ${i(parseInt(A[1]))}, ${i(parseInt(A[2]))})`}var xD="#000";function Iy(n,i,A){n.forEach(c=>{if(c.pressedProgress===0)return;i.fillStyle=c.color;let d=c.pressedProgress*c.velocity;if(i.globalAlpha=.5*d,A){i.fillRect(c.xPos,c.yPos-c.height*d,c.width,c.height*(d*2+1)),i.globalAlpha=1;return}i.fillRect(c.xPos-c.width*d,c.yPos,c.width*(d*2+1),c.height),i.globalAlpha=1}),n.forEach(c=>{i.fillStyle=c.color,i.save(),i.translate(c.xPos,c.yPos),i.fillRect(0,0,c.width,c.height),i.restore(),i.strokeStyle=xD,i.lineWidth=c.stroke,i.strokeRect(c.xPos,c.yPos,c.width,c.height)})}var zC=!1;function my(n=!0,i=!1){let A=(this.seq===void 0||this?.seq?.paused===!0)&&this.synth.voicesAmount===0&&!i;if(!this.renderBool||A)if(zC){n&&requestAnimationFrame(this.render.bind(this));return}else zC=!0;else zC=!1;if(n&&this.drawingContext.clearRect(0,0,this.canvas.width,this.canvas.height),this.renderAnalysers&&!this.synth.highPerformanceMode&&this.renderWaveforms(),this.renderNotes&&this.noteTimes){let p=this.computeNotePositions(this.synth.highPerformanceMode);this.synth.highPerformanceMode||Iy(p,this.drawingContext,this.sideways)}let c=performance.now()-this.frameTimeStart;this.frameTimeStart=performance.now();let d=1e3/c;this.drawingContext.textBaseline="hanging",this.drawingContext.textAlign="end",this.drawingContext.font=`${ME}px system-ui`,this.drawingContext.fillStyle="white",this.drawingContext.strokeStyle="white",this.drawingContext.fillText(`${this.notesOnScreen} notes`,this.canvas.width,ME*2+5),this.drawingContext.fillText(this.version,this.canvas.width,5),this.drawingContext.fillText(Math.round(d).toString()+" FPS",this.canvas.width,ME+5),this.onRender&&this.onRender(),n&&requestAnimationFrame(this.render.bind(this))}function py(n=!1){this.notesOnScreen=0;let i=this.sideways?this.canvas.height:this.canvas.width,A=this.sideways?this.canvas.width:this.canvas.height,c=this.keyRange.max-this.keyRange.min,d=i/(c+1),p=d-D$*2,O=this.noteFallingTimeMs/1e3,H=this.noteAfterTriggerTimeMs/1e3,P=this.seq.currentHighResolutionTime,U=P-H,W0=O+H,_=U+W0,e0=Cy/W0,i0=[];this.synth.channelProperties.forEach(_1=>{if(this.showVisualPitch){let f1=_1.pitchBend-8192+this.visualPitchBendOffset;i0.push(_1.pitchBendRangeSemitones*(f1/8192*d))}else i0.push(0)});let a1=[];return this.noteTimes.forEach((_1,f1)=>{if(_1.renderStartIndex>=_1.notes.length||!this.renderChannels[f1])return;let C2=_1.renderStartIndex,u2=_1.notes,I2=u2[C2],K2=-1;for(;I2.start<=_&&(C2++,!(this.notesOnScreen>By));){let J2=I2.start+I2.length;if(J2>U&&I2.length>0){let A0=I2.length/W0*A-D$*2;if(this.notesOnScreen<1e3||A0>e0){K2===-1&&(K2=C2-1);let C5=(I2.start-U)/W0*A,p3;if(this._notesFall?p3=A-A0-C5+D$:p3=C5+D$,I2.midiNotethis.keyRange.max){if(C2>=u2.length)break;I2=u2[C2];continue}let w3=I2.midiNote-this.keyRange.min,m6=d*w3+D$,v3,x6,u9,P3;if(this.sideways?(v3=p3,x6=m6,P3=p,u9=A0):(x6=p3,v3=m6,u9=p,P3=A0),this.notesOnScreen++,n)this.drawingContext.fillStyle=this.plainColors[f1],this.drawingContext.fillRect(v3+b$+D$,x6+b$,u9-b$*2,P3-b$*2);else{let w6;if(I2.start>P||J2=u2.length)break;I2=u2[C2]}K2>-1&&(_1.renderStartIndex=K2)}),a1.sort((_1,f1)=>f1.height-_1.height),a1}function Qy(){let n=this.canvas.width/4,i=this.canvas.height/4;this.channelAnalysers.forEach((A,c)=>{let d=c%4,p=Math.floor(c/4),O=!1;for(let _=c;_0){O=!0;break}if(!O){let _=this.canvas.width/4,e0=this.canvas.height/4,i0=_*d,a1=e0*p+e0/2;this.drawingContext.lineWidth=this.lineThickness,this.drawingContext.strokeStyle=this.channelColors[c],this.drawingContext.beginPath(),this.drawingContext.moveTo(i0,a1),this.drawingContext.lineTo(i0+_,a1),this.drawingContext.stroke();return}let H=new Float32Array(A.frequencyBinCount);A.getFloatTimeDomainData(H);let P=n*d,U=i*p+i/2,W0=this.waveMultiplier*i;if(this.drawingContext.lineWidth=this.lineThickness,this.drawingContext.strokeStyle=this.channelColors[c],this.drawingContext.beginPath(),this._stabilizeWaveforms){let _=H.length/4,e0=n/_,i0=Math.floor(_/2),a1=H.length-i0;for(let u2=a1;u2>=1;u2--)if(H[u2-1]<0&&H[u2]>=0){a1=u2;break}let _1=P,f1=a1-i0,C2=a1+i0;for(let u2=f1;u2{this.renderChannels[i.channel]=!i.isMuted}),this.updateFftSize()}function vy(){for(let n=0;n4096?this.delayNode.delayTime.value=d/this.synth.context.sampleRate/2:this.delayNode.delayTime.value=0)}}function ky(n){n.connectIndividualOutputs(this.channelAnalysers),n.eventHandler.addEvent("drumchange","renderer-drum-change",()=>{setTimeout(this.updateFftSize.bind(this),100)})}function Sy(){for(let n of this.channelAnalysers)n.disconnect();_5("%cAnalysers disconnected!",C1.recognized)}function by(n){this.seq=n,this.seq.addOnTimeChangeEvent(()=>this.resetIndexes(),"renderer-time-change"),this.seq.addOnSongChangeEvent(async i=>{if(this.calculateNoteTimes(await this.seq.getMIDI()),this.resetIndexes(),i.RMIDInfo?.IPIC!==void 0){let A=new Blob([i.RMIDInfo?.IPIC.buffer]),c=URL.createObjectURL(A),d=this.canvas.classList.contains("light_mode")?0:.9;this.canvas.style.background=`linear-gradient(rgba(0, 0, 0, ${d}), rgba(0, 0, 0, ${d})), center center / cover url("${c}")`}else this.canvas.style.background=""},"renderer-song-change")}function Dy(){this.noteTimes&&this.noteTimes.forEach(n=>n.renderStartIndex=0)}function KC(n,i){let A=0;for(let c=8*(i-1);c>=0;c-=8)A|=n[n.currentIndex++]<>>0}function _p(n,i){let A=new Array(i).fill(0);for(let c=i-1;c>=0;c--)A[c]=n&255,n>>=8;return A}var Iu=.02;function _y(n){function i(U){return U.messageData=new j5(U.messageData.buffer),U.messageData.currentIndex=0,6e7/KC(U.messageData,3)}let A=[],d=n.tracks.flat();d.sort((U,W0)=>U.ticks-W0.ticks);for(let U=0;U<16;U++)A.push({renderStartIndex:0,notes:[]});let p=0,O=60/(120*n.timeDivision),H=0,P=0;for(;H>4,_=U.messageStatusByte&15;if(W0===8){let e0=A[_].notes.findLast(i0=>i0.midiNote===U.messageData[0]&&i0.length===-1);if(e0){let i0=p-e0.start;e0.length=i0i0.midiNote===U.messageData[0]&&i0.length===-1);if(e0){let i0=p-e0.start;e0.length=i0=d.length)break;p+=O*(d[H].ticks-U.ticks)}P>0&&A.forEach((U,W0)=>U.notes.filter(_=>_.length===-1).forEach(_=>{let e0=p-_.start;_.length=e0i.max){let A=i.min;i.min=i.max,i.max=A}i.min=Math.max(0,i.min),i.max=Math.min(127,i.max),this._keyRange=i}toggleDarkMode(){this.canvas.classList.toggle("light_mode")}computeColors(){this.channelColors=this.plainColors.map(i=>{let A=this.drawingContext.createLinearGradient(0,0,this.canvas.width/128,0);return A.addColorStop(0,S$(i,c=>c*FE)),A.addColorStop(1,i),A}),this.darkerColors=this.plainColors.map(i=>{let A=this.drawingContext.createLinearGradient(0,0,this.canvas.width/128,0);return A.addColorStop(0,S$(i,c=>c*FE*RE)),A.addColorStop(1,S$(i,c=>c*RE)),A}),this.sidewaysChannelColors=this.plainColors.map(i=>{let A=this.drawingContext.createLinearGradient(0,0,0,this.canvas.width/128);return A.addColorStop(0,S$(i,c=>c*FE)),A.addColorStop(1,i),A}),this.sidewaysDarkerColors=this.plainColors.map(i=>{let A=this.drawingContext.createLinearGradient(0,0,0,this.canvas.width/128);return A.addColorStop(0,S$(i,c=>c*FE*RE)),A.addColorStop(1,S$(i,c=>c*RE)),A})}};T7.prototype.render=my;T7.prototype.computeNotePositions=py;T7.prototype.createChannelAnalysers=wy;T7.prototype.updateFftSize=vy;T7.prototype.connectChannelAnalysers=ky;T7.prototype.disconnectChannelAnalysers=Sy;T7.prototype.connectSequencer=by;T7.prototype.calculateNoteTimes=_y;T7.prototype.resetIndexes=Dy;T7.prototype.renderWaveforms=Qy;function s3(n,i){let A=0;for(let c=0;c>>0}function fi(n,i,A){for(let c=0;c>c*8&255}function j3(n,i){n[n.currentIndex++]=i&255,n[n.currentIndex++]=i>>8}function p9(n,i){fi(n,i,4)}function Ga(n,i){let A=i<<8|n;return A>32767?A-65536:A}function xy(n){return n>127?n-256:n}function y4(n,i,A=void 0,c=!0){if(A){let d=n.slice(n.currentIndex,n.currentIndex+i);return n.currentIndex+=i,new TextDecoder(A.replace(/[^\x20-\x7E]/g,"")).decode(d.buffer)}else{let d=!1,p="";for(let O=0;O127)&&H!==10){if(c){d=!0;continue}else if(H===0){d=!0;continue}}p+=String.fromCharCode(H)}}return p}}function N7(n,i=0){let A=n.length;i>0&&(A=i);let c=new j5(A);return P8(c,n,i),c}function P8(n,i,A=0){A>0&&i.length>A&&(i=i.slice(0,A));for(let c=0;ci.length)for(let c=0;cA.header!=="LIST"?!1:(A.chunkData.currentIndex=0,y4(A.chunkData,4)===i))}function TE(n){let i=[n&127];for(n>>=7;n>0;)i.unshift(n&127|128),n>>=7;return i}function NE(n){let i=[];for(let d of n.tracks){let p=[],O=0,H;for(let P of d){let U=P.ticks-O,W0;P.messageStatusByte<=Z3.keySignature||P.messageStatusByte===Z3.sequenceSpecific?W0=[255,P.messageStatusByte,...TE(P.messageData.length),...P.messageData]:P.messageStatusByte===Z3.systemExclusive?W0=[240,...TE(P.messageData.length),...P.messageData]:(W0=[],H!==P.messageStatusByte&&(H=P.messageStatusByte,W0.push(P.messageStatusByte)),W0.push(...P.messageData)),p.push(...TE(U)),p.push(...W0),O+=U}i.push(new Uint8Array(p))}function A(d,p){for(let O=0;O{n.tracks.forEach((a1,_1)=>{if(n.midiPorts[_1]===i0)for(let f1=a1.length-1;f1>=0;f1--)a1[f1].messageStatusByte>=128&&a1[f1].messageStatusByte<240&&(a1[f1].messageStatusByte&15)===e0&&a1.splice(f1,1)})};c.forEach(e0=>{let i0=e0%16,a1=e0-i0,_1=n.midiPortChannelOffsets.findIndex(f1=>f1===a1);p(i0,_1),_5(`%cRemoving channel %c${e0}%c!`,C1.info,C1.recognized,C1.info)});let O=!1,H="gs",P=[],U=[];n.tracks.forEach((e0,i0)=>{e0.forEach(a1=>{let _1=a1.messageStatusByte&240;_1===Z3.controllerChange?P.push({track:i0,message:a1,channel:a1.messageStatusByte&15}):_1===Z3.programChange?U.push({track:i0,message:a1,channel:a1.messageStatusByte&15}):a1.messageStatusByte===Z3.systemExclusive&&(a1.messageData[0]===67&&a1.messageData[2]===76&&a1.messageData[5]===126&&a1.messageData[6]===0?(_5("%cXG system on detected",C1.info),H="xg",O=!0):a1.messageData[0]===67&&a1.messageData[2]===76&&a1.messageData[3]===8&&a1.messageData[5]===3&&U.push({track:i0,message:a1,channel:a1.messageData[4]}))})});let W0=(e0,i0,a1)=>n.tracks.reduce((_1,f1,C2)=>{if(n.usedChannelsOnTrack[C2].has(e0)&&n.midiPorts[C2]===i0){let u2;a1?u2=f1.findIndex(I2=>(I2.messageStatusByte&240)===Z3.noteOn):u2=f1.findIndex(I2=>I2.messageStatusByte>128&&I2.messageStatusByte<240&&(I2.messageStatusByte&15)===e0&&!(I2.messageStatusByte&Z3.controllerChange===240&&(I2.messageData[0]===$3.resetAllControllers||I2.messageData[0]===$3.allNotesOff||I2.messageData[0]===$3.allSoundOff))),u2!==-1&&_1.push({index:u2,track:C2})}return _1},[]),_=(e0,i0,a1)=>{let _1=P.filter(f1=>f1.channel===e0&&f1.message.messageData[0]===a1&&n.midiPorts[f1.track]===i0);for(let f1=0;f1<_1.length;f1++){let C2=_1[f1];n.tracks[C2.track].splice(n.tracks[C2.track].indexOf(C2.message),1),P.splice(P.indexOf(C2),1)}};A.forEach(e0=>{let i0=e0.channel,a1=i0%16,_1=i0-a1,f1=n.midiPortChannelOffsets.findIndex(A0=>A0===_1),C2=e0.controllerValue,u2=e0.controllerNumber;_(a1,f1,u2),_5(`%cNo controller %c${u2}%c on channel %c${i0}%c found. Adding it!`,C1.info,C1.unrecognized,C1.info,C1.value,C1.info);let I2=W0(a1,f1,!0);if(I2.length===0){I9("Program change but no notes... ignoring!");return}let K2=I2.reduce((A0,C5)=>n.tracks[C5.track][C5.index].ticks{let i0=e0.channel%16,a1=e0.channel-i0,_1=n.midiPortChannelOffsets.findIndex(w3=>w3===a1),f1=e0.isDrum?0:e0.bank,C2=e0.program,u2=U.filter(w3=>n.midiPorts[w3.track]===_1&&w3.channel===i0);if(_(i0,_1,$3.bankSelect),_(i0,_1,$3.lsbForControl0BankSelect),(e0.isDrum||f1>0)&&!O&&(n.tracks.forEach(w3=>{for(let m6=0;m60);if(I2.length===0){I9("Program change but no notes... ignoring!");return}let K2=I2.reduce((w3,m6)=>n.tracks[m6.track][m6.index].ticks{if(n.midiPorts[u2]!==a1||!n.usedChannelsOnTrack[u2].has(i0))return;let I2=Z3.noteOn|i0,K2=Z3.noteOff|i0,J2=Z3.polyPressure|i0;C2.forEach(A0=>{A0.messageStatusByte!==I2&&A0.messageStatusByte!==K2&&A0.messageStatusByte!==J2||(A0.messageData[0]=Math.max(0,Math.min(127,A0.messageData[0]+_1)))})}),f1!==0){let C2=n.tracks.find((v3,x6)=>n.usedChannelsOnTrack[x6].has(e0.channel));if(C2===void 0){I9(`Channel ${e0.channel} unused but transpose requested???`);continue}let u2=Z3.noteOn|e0.channel%16,I2=C2.findIndex(v3=>v3.messageStatusByte===u2);if(I2===-1){I9(`No notes on channel ${e0.channel} but transpose requested???`);continue}let K2=C2[I2].ticks,J2=f1*64+64,A0=Z3.controllerChange|e0.channel%16,C5=new y7(K2,A0,new j5([$3.RPNMsb,0])),p3=new y7(K2,A0,new j5([$3.RPNLsb,1])),w3=new y7(K2,A0,new j5([$3.dataEntryMsb,J2])),m6=new y7(K2,A0,new j5([$3.lsbForControl6DataEntry,0]));C2.splice(I2,0,m6),C2.splice(I2,0,w3),C2.splice(I2,0,p3),C2.splice(I2,0,C5)}}g9()}function Ua(n,i){let A=[],c=[],d=[],p=[];i.channelSnapshots.forEach((O,H)=>{if(O.isMuted){c.push(H);return}let P=O.channelTransposeKeyShift+O.customControllers[DE.channelTransposeFine]/100;P!==0&&A.push({channel:H,keyShift:P}),O.lockPreset&&d.push({channel:H,program:O.program,bank:O.bank,isDrum:O.drumChannel}),O.lockedControllers.forEach((U,W0)=>{if(!U||W0>127||W0===$3.bankSelect)return;let _=O.midiControllers[W0]>>7;p.push({channel:H,controllerNumber:W0,controllerValue:_})})}),ND(n,d,p,c,A)}var O8={name:"INAM",album:"IPRD",artist:"IART",genre:"IGNR",picture:"IPIC",copyright:"ICOP",creationDate:"ICRD",comment:"ICMT",engineer:"IENG",software:"ISFT",encoding:"IENC",midiEncoding:"MENC",bankOffset:"DBNK"},Pa="utf-8",GD="Created using SpessaSynth";function Ly(n,i,A,c=0,d="Shift_JIS",p={},O=!0){if(M7("%cWriting the RMIDI File...",C1.info),_5(`%cConfiguration: Bank offset: %c${c}%c, encoding: %c${d}`,C1.info,C1.value,C1.info,C1.value),_5("metadata",p),_5("Initial bank offset",i.bankOffset),O){let C2=function(){let J2=0,A0=1/0;return i.tracks.forEach((C5,p3)=>{_1[p3]>=C5.length||C5[_1[p3]].ticksA0>J2?A0:J2),K2=[];for(let J2=0;J20;){let J2=C2(),A0=i.tracks[J2];if(_1[J2]>=A0.length){f1--;continue}let C5=A0[_1[J2]];_1[J2]++;let p3=i.midiPortChannelOffsets[u2[J2]];if(C5.messageStatusByte===Z3.midiPort){u2[J2]=C5.messageData[0];continue}let w3=C5.messageStatusByte&240;if(w3!==Z3.controllerChange&&w3!==Z3.programChange&&w3!==Z3.systemExclusive)continue;if(w3===Z3.systemExclusive){if(C5.messageData[0]!==65||C5.messageData[2]!==66||C5.messageData[3]!==18||C5.messageData[4]!==64||!(C5.messageData[5]&16)||C5.messageData[6]!==21){C5.messageData[0]===67&&C5.messageData[2]===76&&C5.messageData[5]===126&&C5.messageData[6]===0?i0="xg":C5.messageData[0]===65&&C5.messageData[2]===66&&C5.messageData[6]===127?i0="gs":C5.messageData[0]===126&&C5.messageData[2]===9&&(i0="gm",a1.push({tNum:J2,e:C5}));continue}let x6=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][C5.messageData[5]&15]+p3;K2[x6].drums=!!(C5.messageData[7]>0&&C5.messageData[5]>>4);continue}let m6=(C5.messageStatusByte&15)+p3,v3=K2[m6];if(w3===Z3.programChange){v3.drums?A.presets.findIndex(P3=>P3.program===C5.messageData[0]&&P3.bank===128)===-1&&(C5.messageData[0]=A.presets.find(P3=>P3.bank===128)?.program||0):A.presets.findIndex(P3=>P3.program===C5.messageData[0]&&P3.bank!==128)===-1&&(C5.messageData[0]=A.presets.find(P3=>P3.bank!==128)?.program||0),v3.program=C5.messageData[0];let x6=Math.max(0,v3.lastBank?.messageData[1]-i.bankOffset),u9=v3.drums?128:x6;if(v3.lastBank===void 0)continue;if(i0==="xg"&&v3.drums&&(K2[m6].lastBank.messageData[1]=127),A.presets.findIndex(P3=>P3.bank===u9&&P3.program===C5.messageData[0])===-1){let P3=A.presets.find(w6=>w6.program===C5.messageData[0])?.bank+c||c;v3.lastBank.messageData[1]=P3,_5(`%cNo preset %c${u9}:${C5.messageData[0]}%c. Changing bank to ${P3}.`,C1.info,C1.recognized,C1.info)}else{let w6=(u9===128?i0==="xg"?127:0:x6)+c;v3.lastBank.messageData[1]=w6,_5(`%cPreset %c${u9}:${C5.messageData[0]}%c exists. Changing bank to ${w6}.`,C1.info,C1.recognized,C1.info)}continue}C5.messageData[0]===$3.bankSelect&&(v3.hasBankSelect=!0,i0==="xg"&&(v3.drums=C5.messageData[1]===120||C5.messageData[1]===126||C5.messageData[1]===127),v3.lastBank=C5)}if(K2.forEach((J2,A0)=>{if(J2.hasBankSelect===!0)return;let C5=A0%16,p3=Z3.programChange|C5,w3=Math.floor(A0/16)*16,m6=i.midiPortChannelOffsets.indexOf(w3),v3=i.tracks.find((w6,Me)=>i.midiPorts[Me]===m6&&i.usedChannelsOnTrack[Me].has(C5));if(v3===void 0)return;let x6=v3.findIndex(w6=>w6.messageStatusByte===p3);if(x6===-1){let w6=v3.findIndex(er=>er.messageStatusByte>128&&er.messageStatusByte<240&&(er.messageStatusByte&15)===C5);if(w6===-1)return;let Me=v3[w6].ticks,Wr=A.getPreset(0,0).program;v3.splice(w6,0,new y7(Me,Z3.programChange|C5,new j5([Wr]))),x6=w6}_5(`%cAdding bank select for %c${A0}`,C1.info,C1.recognized);let u9=v3[x6].ticks,P3=A.getPreset(0,J2.program)?.bank+c||c;v3.splice(x6,0,new y7(u9,Z3.controllerChange|C5,new j5([$3.bankSelect,P3])))}),i0!=="gs"&&i0!=="xg"){for(let A0 of a1)i.tracks[A0.tNum].splice(i.tracks[A0.tNum].indexOf(A0.e),1);let J2=0;i.tracks[0][0].messageStatusByte===Z3.trackName&&J2++,i.tracks[0].splice(J2,0,ZC(0))}}let H=new j5(NE(i).buffer),P=[N7("INFO")],U=new TextEncoder;if(P.push(k6(O8.software,U.encode("SpessaSynth"),!0)),p.name!==void 0?(P.push(k6(O8.name,U.encode(p.name),!0)),d=Pa):P.push(k6(O8.name,i.rawMidiName,!0)),p.creationDate!==void 0)d=Pa,P.push(k6(O8.creationDate,U.encode(p.creationDate),!0));else{let i0=new Date().toLocaleString(void 0,{weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric"});P.push(k6(O8.creationDate,N7(i0),!0))}if(p.comment!==void 0&&(d=Pa,P.push(k6(O8.comment,U.encode(p.comment)))),p.engineer!==void 0&&P.push(k6(O8.engineer,U.encode(p.engineer),!0)),p.album!==void 0&&(d=Pa,P.push(k6(O8.album,U.encode(p.album),!0))),p.artist!==void 0&&(d=Pa,P.push(k6(O8.artist,U.encode(p.artist),!0))),p.genre!==void 0&&(d=Pa,P.push(k6(O8.genre,U.encode(p.genre),!0))),p.picture!==void 0&&P.push(k6(O8.picture,new Uint8Array(p.picture))),p.copyright!==void 0)d=Pa,P.push(k6(O8.copyright,U.encode(p.copyright),!0));else{let i0=i.copyright.length>0?i.copyright:GD;P.push(k6(O8.copyright,N7(i0)))}let W0=new j5(2);fi(W0,c,2),P.push(k6(O8.bankOffset,W0)),p.midiEncoding!==void 0&&(P.push(k6(O8.midiEncoding,U.encode(p.midiEncoding))),d=Pa),P.push(k6(O8.encoding,N7(d)));let _=St(P),e0=St([N7("RMID"),k6("data",H),k6("LIST",_),n]);return _5("%cFinished!",C1.info),g9(),k6("RIFF",e0)}function xp(n,i){let A=0;for(;n>0;){let c=i.tempoChanges.find(p=>p.ticks=128){this.MIDIout.send(c);return}break;case Oa.songChange:let d=A[0];this.songIndex=A[1],this.midiData=d,this.hasDummyData=!1,this.absoluteStartTime=0,this.duration=this.midiData.duration,Object.entries(this.onSongChange).forEach(H=>H[1](d)),A[2]===!0&&this.unpause();break;case Oa.textEvent:let p=A;this.onTextEvent&&this.onTextEvent(p[0],p[1]);break;case Oa.timeChange:let O=this.synth.currentTime-A;Object.entries(this.onTimeChange).forEach(H=>H[1](O)),this._recalculateStartTime(O),this.paused&&this._preservePlaybackState?this.pausedTime=O:this.unpause();break;case Oa.pause:this.pausedTime=this.currentTime,this.isFinished=A,this.isFinished&&Object.entries(this.onSongEnded).forEach(H=>H[1]());break;case Oa.midiError:if(this.onError)this.onError(A);else throw new Error("Sequencer error: "+A);return;case Oa.getMIDI:this._getMIDIResolve&&this._getMIDIResolve(A)}}_recalculateStartTime(i){this.absoluteStartTime=this.synth.currentTime-i/this._playbackRate,this.highResTimeOffset=(this.synth.currentTime-performance.now()/1e3)*this._playbackRate}async getMIDI(){return new Promise(i=>{this._getMIDIResolve=i,this._sendMessage(A7.getMIDI,void 0)})}loadNewSongList(i,A=!0){this.pause(),this.midiData=My,this.hasDummyData=!0,this.duration=99999,this._sendMessage(A7.loadNewSongList,[i,A]),this.songIndex=0,this.songsAmount=i.length,this.songsAmount>1&&(this.loop=!1),A===!1&&(this.pausedTime=this.currentTime)}connectMidiOutput(i){this.resetMIDIOut(),this.MIDIout=i,this._sendMessage(A7.changeMIDIMessageSending,i!==void 0),this.currentTime-=.1}pause(){if(this.paused){I9("Already paused");return}this.pausedTime=this.currentTime,this._sendMessage(A7.pause)}unpause(){this.pausedTime=void 0,this.isFinished=!1}play(i=!1){this.isFinished&&(i=!0),this._recalculateStartTime(this.pausedTime||0),this.unpause(),this._sendMessage(A7.play,i)}stop(){this._sendMessage(A7.stop)}};var Lp=["Shift_JIS","windows-1250","utf-8","utf-16","utf-16le","utf-16be","latin1","ISO-8859-1","ISO-8859-2","ISO-8859-3","ISO-8859-4","ISO-8859-5","ISO-8859-6","ISO-8859-7","ISO-8859-8","ISO-8859-9","ISO-8859-10","ISO-8859-11","ISO-8859-13","ISO-8859-14","ISO-8859-15","ISO-8859-16","windows-1251","windows-1252","windows-1253","windows-1254","windows-1255","windows-1256","windows-1257","windows-1258","EUC-JP","ISO-2022-JP","EUC-KR","Big5","GB18030"];function Ry(n){return` `}function _$(n){return` @@ -75,11 +75,11 @@ var vE=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(i,A)=>( `}function XC(n){return` -`}function pu(n,i){let A=document.createElement("div");return A.classList.add("control_buttons"),A.title=n,A.innerHTML=i,A}var oi={synthesizerUIShow:"s",settingsShow:"r",blackMidiMode:"b",midiPanic:"backspace",playPause:" ",toggleLoop:"l",toggleLyrics:"t",seekBackwards:"arrowleft",seekForwards:"arrowright",previousSong:"[",nextSong:"]",cinematicMode:"c",videoMode:"v"};function Vy(){navigator.mediaSession&&(navigator.mediaSession.metadata=new MediaMetadata({title:this.currentSongTitle,artist:"SpessaSynth"}),navigator.mediaSession.setActionHandler("play",()=>{this.seqPlay()}),navigator.mediaSession.setActionHandler("pause",()=>{this.seqPause()}),navigator.mediaSession.setActionHandler("stop",()=>{this.seq.currentTime=0,this.seqPause()}),navigator.mediaSession.setActionHandler("seekbackward",n=>{this.seq.currentTime-=n.seekOffset||10}),navigator.mediaSession.setActionHandler("seekforward",n=>{this.seq.currentTime+=n.seekOffset||10}),navigator.mediaSession.setActionHandler("seekto",n=>{this.seq.currentTime=n.seekTime}),navigator.mediaSession.setActionHandler("previoustrack",()=>{this.switchToPreviousSong()}),navigator.mediaSession.setActionHandler("nexttrack",()=>{this.switchToNextSong()}),navigator.mediaSession.playbackState="playing")}function Jy(n=!0){if(this.seq?.hasDummyData===!0)this.currentSongTitle=this.locale.getLocaleString("locale.synthInit.genericLoading");else{let i=this.infoDecoder.decode(this.seq.midiData.rawMidiName.buffer).replace(/\0$/,"");this.currentSongTitle=qC(i)}if(this.seq.midiData){let i=this.seq.midiData.lyrics;this.currentLyrics=new Uint8Array(i.reduce((c,d)=>c+d.length,0));let A=0;for(let c of i)this.currentLyrics.set(c,A),A+=c.length;this.currentLyricsString=this.decodeTextFix(this.currentLyrics.buffer)||this.locale.getLocaleString("locale.sequencerController.lyrics.noLyrics"),this.setLyricsText(""),n&&(this.rawOtherTextEvents=[])}if(document.getElementById("title").innerText=this.currentSongTitle,document.title=this.currentSongTitle+" - SpessaSynth",this.musicModeUI.setTitle(this.currentSongTitle),!!navigator.mediaSession)try{navigator.mediaSession.setPositionState({duration:this.seq.duration,playbackRate:this.seq.playbackRate,position:this.seq.currentTime})}catch{}}var PD=parseFloat(getComputedStyle(document.body).fontSize);function zy(){this.lyricsElement={};let n=document.createElement("div");n.classList.add("lyrics");let i=document.createElement("div");i.classList.add("lyrics_title_wrapper"),n.append(i),this.lyricsElement.titleWrapper=i;let A=document.createElement("h2");this.locale.bindObjectProperty(A,"textContent","locale.sequencerController.lyrics.title"),A.classList.add("lyrics_title"),i.appendChild(A),this.lyricsElement.title=A;let c=document.createElement("select");Lp.forEach(W0=>{let _=document.createElement("option");_.innerText=W0,_.value=W0,c.appendChild(_)}),c.value=this.encoding,c.onchange=()=>this.changeEncoding(c.value),c.classList.add("lyrics_selector"),this.encodingSelector=c,i.appendChild(c);let d=document.createElement("p");d.classList.add("lyrics_text"),n.appendChild(d);let p=document.createElement("span");p.classList.add("lyrics_text_highlight"),d.appendChild(p);let U=document.createElement("span");U.classList.add("lyrics_text_gray"),d.appendChild(U);let H=document.createElement("details"),O=document.createElement("summary");this.locale.bindObjectProperty(O,"textContent","locale.sequencerController.lyrics.otherText.title"),H.appendChild(O);let P=document.createElement("div");P.innerText="",H.appendChild(P),n.appendChild(H),this.lyricsElement.text={highlight:p,gray:U,main:d,other:P},this.lyricsElement.mainDiv=n,this.lyricsElement.selector=c,this.controls.appendChild(n),this.requiresTextUpdate=!0}function Ky(n){let i=this.lyricsElement.text.highlight,A=this.lyricsElement.text.gray;A.innerText=this.currentLyricsString.replace(n,""),i.innerText=n,this.lyricsElement.text.main.scrollTo(0,i.offsetHeight-PD*5)}function Wy(){let n="";for(let i of this.rawOtherTextEvents)n+=`
${Object.keys(Z3).find(A=>Z3[A]===i.type).replace(/([a-z])([A-Z])/g,"$1 $2")}:
${this.decodeTextFix(i.data.buffer)}

`;this.lyricsElement.text.other.innerHTML=n}var Vr=32,Zy="#ccc",jy="#555",OD="#333",qD="#ddd",HD="Shift_JIS",Po=class{constructor(i,A,c){this.iconColor=Zy,this.iconDisabledColor=jy,this.controls=i,this.encoding=HD,this.decoder=new TextDecoder(this.encoding),this.infoDecoder=new TextDecoder(this.encoding),this.hasInfoDecoding=!1,this.text="",this.requiresTextUpdate=!1,this.rawLyrics=[],this.rawOtherTextEvents=[],this.mode="dark",this.locale=A,this.currentSongTitle="",this.currentLyrics=new Uint8Array(0),this.currentLyricsString="",this.musicModeUI=c}toggleDarkMode(){if(this.mode==="dark"?(this.mode="light",this.iconColor=OD,this.iconDisabledColor=qD):(this.mode="dark",this.iconColor=Zy,this.iconDisabledColor=jy),!this.seq){this.requiresThemeUpdate=!0;return}this.progressBar.classList.toggle("note_progress_light"),this.progressBarBackground.classList.toggle("note_progress_background_light"),this.lyricsElement.mainDiv.classList.toggle("lyrics_light"),this.lyricsElement.titleWrapper.classList.toggle("lyrics_light"),this.lyricsElement.selector.classList.toggle("lyrics_light")}seqPlay(i=!0){i&&this.seq.play(),this.playPause.innerHTML=_$(Vr),this.createNavigatorHandler(),this.updateTitleAndMediaStatus(),navigator.mediaSession&&(navigator.mediaSession.playbackState="playing")}seqPause(i=!0){i&&this.seq.pause(),this.playPause.innerHTML=Ry(Vr),this.createNavigatorHandler(),this.updateTitleAndMediaStatus(),navigator.mediaSession&&(navigator.mediaSession.playbackState="paused")}switchToNextSong(){this.seq.nextSong(),this.createNavigatorHandler(),this.updateTitleAndMediaStatus()}switchToPreviousSong(){this.seq.previousSong(),this.createNavigatorHandler(),this.updateTitleAndMediaStatus()}decodeTextFix(i,A=!1){let c=0;for(;;)try{return this.decoder.decode(i)}catch{c++,this.changeEncoding(Lp[c]),this.encodingSelector.value=Lp[c]}}connectSequencer(i){this.seq=i,this.createControls(),this.setSliderInterval(),this.createNavigatorHandler(),this.updateTitleAndMediaStatus(),this.seq.onTextEvent=(A,c)=>{let d=this.decodeTextFix(A.buffer);switch(c){default:return;case Z3.text:case Z3.copyright:case Z3.cuePoint:case Z3.trackName:case Z3.instrumentName:case Z3.programName:case Z3.marker:this.rawOtherTextEvents.push({type:c,data:A}),this.requiresTextUpdate=!0;return;case Z3.lyric:this.text+=d,this.rawLyrics.push(...A),this.setLyricsText(this.text);break}},this.seq.addOnTimeChangeEvent(()=>{this.text="",this.rawLyrics=[],this.seqPlay(!1)},"sequi-time-change"),this.seq.addOnSongChangeEvent(A=>{if(this.createNavigatorHandler(),this.updateTitleAndMediaStatus(),this.seqPlay(!1),this.seq.songsAmount>1&&(this.seq.loop=!1,this.loopButton.firstElementChild.setAttribute("fill",this.iconDisabledColor)),this.hasInfoDecoding=this.seq.midiData.RMIDInfo?.[O8.encoding]!==void 0,A.isEmbedded){let c=(H,O,P,W0="")=>this.seq.midiData.RMIDInfo?.[H]===void 0?O:W0+P.decode(this.seq.midiData.RMIDInfo?.[H]).replace(/\0$/,""),d=new TextDecoder,p=c(O8.midiEncoding,this.encoding,d),U=c(O8.encoding,"utf-8",d);this.infoDecoder=new TextDecoder(U),this.changeEncoding(p)}},"sequi-song-change"),this.requiresThemeUpdate&&this.mode==="light"&&(this.mode="dark",this.toggleDarkMode())}changeEncoding(i){this.encoding=i,this.decoder=new TextDecoder(i),this.hasInfoDecoding||(this.infoDecoder=new TextDecoder(i)),this.updateOtherTextEvents(),this.text=this.decodeTextFix(new Uint8Array(this.rawLyrics).buffer),this.lyricsElement.selector.value=i,this.updateTitleAndMediaStatus(!1),this.setLyricsText(this.text)}createControls(){this.progressTime=document.createElement("p"),this.progressTime.id="note_time",this.progressTime.onclick=_=>{_.preventDefault();let e0=i.getBoundingClientRect(),i0=_.clientX-e0.left,a1=e0.width;this.seq.currentTime=i0/a1*this.seq.duration,c.innerHTML=_$(Vr)},this.createLyrics();let i=document.createElement("div");i.id="note_progress_background",this.progressBarBackground=i,this.progressBar=document.createElement("div"),this.progressBar.id="note_progress",this.progressBar.min="0",this.progressBar.max=this.seq.duration.toString();let A=document.createElement("div"),c=pu("Play/Pause",_$(Vr));this.playPause=c,this.locale.bindObjectProperty(c,"title","locale.sequencerController.playPause");let d=()=>{this.seq.paused?this.seqPlay():this.seqPause()};c.onclick=d;let p=pu("Previous song",Gy(Vr));this.locale.bindObjectProperty(p,"title","locale.sequencerController.previousSong"),p.onclick=()=>this.switchToPreviousSong();let U=pu("Next song",Ny(Vr));this.locale.bindObjectProperty(U,"title","locale.sequencerController.nextSong"),U.onclick=()=>this.switchToNextSong();let H=pu("Loop this",Fy(Vr));this.locale.bindObjectProperty(H,"title","locale.sequencerController.loopThis");let O=()=>{this.seq.loop?this.seq.loop=!1:(this.seq.loop=!0,this.seq.currentTime>=this.seq.duration&&(this.seq.currentTime=0)),H.firstElementChild.setAttribute("fill",this.seq.loop?this.iconColor:this.iconDisabledColor)};H.onclick=O,this.loopButton=H;let P=pu("Show lyrics",Ty(Vr));this.locale.bindObjectProperty(P,"title","locale.sequencerController.lyrics.show"),P.firstElementChild.setAttribute("fill",this.iconDisabledColor);let W0=()=>{this.lyricsElement.mainDiv.classList.toggle("lyrics_show"),P.firstElementChild.setAttribute("fill",this.lyricsElement.mainDiv.classList.contains("lyrics_show")?this.iconColor:this.iconDisabledColor)};P.onclick=W0,document.addEventListener("keydown",_=>{switch(_.key.toLowerCase()){case oi.playPause:_.preventDefault(),d();break;case oi.toggleLoop:_.preventDefault(),O();break;case oi.toggleLyrics:_.preventDefault(),W0();break;default:break}}),A.appendChild(p),A.appendChild(H),A.appendChild(c),A.appendChild(P),A.appendChild(U),this.controls.appendChild(i),i.appendChild(this.progressBar),this.controls.appendChild(this.progressTime),this.controls.appendChild(A),document.addEventListener("keydown",_=>{switch(_.key.toLowerCase()){case oi.seekBackwards:_.preventDefault(),this.seq.currentTime-=5,c.innerHTML=_$(Vr);break;case oi.seekForwards:_.preventDefault(),this.seq.currentTime+=5,c.innerHTML=_$(Vr);break;case oi.previousSong:this.switchToPreviousSong();break;case oi.nextSong:this.switchToNextSong();break;default:if(!isNaN(parseFloat(_.key))){_.preventDefault();let e0=parseInt(_.key);0<=e0&&e0<=9&&(this.seq.currentTime=this.seq.duration*(e0/10),c.innerHTML=_$(Vr))}break}})}_updateInterval(){this.progressBar.style.width=`${this.seq.currentTime/this.seq.duration*100}%`;let i=w$(this.seq.currentTime),A=w$(this.seq.duration);this.progressTime.innerText=`${i.time} / ${A.time}`,this.requiresTextUpdate&&(this.updateOtherTextEvents(),this.requiresTextUpdate=!1)}setSliderInterval(){setInterval(this._updateInterval.bind(this),100)}};Po.prototype.createNavigatorHandler=Vy;Po.prototype.updateTitleAndMediaStatus=Jy;Po.prototype.createLyrics=zy;Po.prototype.setLyricsText=Ky;Po.prototype.updateOtherTextEvents=Wy;function Xy(){this.controllers.forEach(n=>{n.voiceMeter.hide(),n.pitchWheel.hide(),n.pan.hide(),n.expression.hide(),n.volume.hide(),n.mod.hide(),n.chorus.hide(),n.reverb.hide(),n.brightness.hide()})}function ew(){this.controllers.forEach(n=>{n.voiceMeter.show(),n.pitchWheel.show(),n.pan.show(),n.expression.show(),n.volume.show(),n.mod.show(),n.chorus.show(),n.reverb.show(),n.brightness.show()})}function tw(){this.mainControllerDiv.classList.toggle("synthui_controller_light"),this.mainButtons.forEach(n=>{n.classList.toggle("synthui_button"),n.classList.toggle("synthui_button_light")}),this.mainMeters.forEach(n=>{n.toggleMode(!0)}),this.controllers.forEach(n=>{n.voiceMeter.toggleMode(),n.pitchWheel.toggleMode(),n.pan.toggleMode(),n.expression.toggleMode(),n.volume.toggleMode(),n.mod.toggleMode(),n.chorus.toggleMode(),n.reverb.toggleMode(),n.brightness.toggleMode(),n.preset.toggleMode(),n.drumsToggle.classList.toggle("mute_button_light"),n.muteButton.classList.toggle("mute_button_light")})}var pr=class{constructor(i="none",A,c,d,p=0,U=100,H=!1,O=void 0,P=void 0,W0=void 0){if(this.meterText="",c.bindObjectProperty(this,"meterText",A+".title"),this.min=p,this.max=U,this.currentValue=-1,this.isShown=!0,this.isVisualValueSet=!0,this.isLocked=!1,this.lockCallback=P,this.unlockCallback=W0,this.div=document.createElement("div"),this.div.classList.add("voice_meter"),this.div.classList.add("controller_element"),i!=="none"&&i!==""&&(this.div.style.borderColor=i),c.bindObjectProperty(this.div,"title",A+".description",d),this.bar=document.createElement("div"),this.bar.classList.add("voice_meter_bar"),this.bar.style.background=i,this.div.appendChild(this.bar),this.text=document.createElement("p"),this.text.classList.add("voice_meter_text"),this.div.appendChild(this.text),this.isActive=!1,H){if(O===void 0)throw new Error("No editable function given!");this.div.onmousedown=_=>{_.preventDefault(),_.button===0?this.isActive=!0:this.lockMeter()},this.div.onmousemove=_=>{if(!this.isActive)return;let e0=_.currentTarget.getBoundingClientRect(),i0=e0.left,a1=e0.width,_1=_.clientX-i0,f1=Math.max(0,Math.min(1,_1/a1));O(f1*(U-p)+p)},this.div.onmouseup=()=>this.isActive=!1,this.div.onmouseleave=_=>{this.div.onmousemove(_),this.isActive=!1},this.text.oncontextmenu=_=>{_.preventDefault()},this.div.onclick=_=>{_.preventDefault(),this.isActive=!0,this.div.onmousemove(_),this.isActive=!1,F7&&this.lockMeter()},this.div.classList.add("editable")}}lockMeter(){this.lockCallback!==void 0&&(this.isLocked?(this.text.classList.remove("locked_meter"),this.unlockCallback()):(this.text.classList.add("locked_meter"),this.lockCallback()),this.isLocked=!this.isLocked)}toggleMode(i=!1){i&&(this.bar.classList.toggle("voice_meter_light_color"),this.div.classList.toggle("voice_meter_light_color")),this.text.classList.toggle("voice_meter_text_light")}show(){if(this.isShown=!0,!this.isVisualValueSet){let i=Math.max(0,Math.min((this.currentValue-this.min)/(this.max-this.min),1));this.bar.style.width=`${i*100}%`,this.text.textContent=this.meterText+(Math.round(this.currentValue*100)/100).toString(),this.isVisualValueSet=!0}}hide(){this.isShown=!1}update(i,A=!1){if(!(i===this.currentValue&&A===!1))if(this.currentValue=i,this.isShown){let c=Math.max(0,Math.min((i-this.min)/(this.max-this.min),1));this.bar.style.width=`${c*100}%`,this.text.textContent=this.meterText+(Math.round(i*100)/100).toString(),this.isVisualValueSet=!0}else this.isVisualValueSet=!1}};var iw=["Acoustic Grand Piano","Bright Acoustic Piano","Electric Grand Piano","Honky-tonk Piano","Electric Piano 1","Electric Piano 2","Harpsichord","Clavi","Celesta","Glockenspiel","Music Box","Vibraphone","Marimba","Xylophone","Tubular Bells","Dulcimer","Drawbar Organ","Percussive Organ","Rock Organ","Church Organ","Reed Organ","Accordion","Harmonica","Tango Accordion","Acoustic Guitar (nylon)","Acoustic Guitar (steel)","Electric Guitar (jazz)","Electric Guitar (clean)","Electric Guitar (muted)","Overdriven Guitar","Distortion Guitar","Guitar Harmonics","Acoustic Bass","Electric Bass (finger)","Electric Bass (pick)","Fretless Bass","Slap Bass 1","Slap Bass 2","Synth Bass 1","Synth Bass 2","Violin","Viola","Cello","Contrabass","Tremolo Strings","Pizzicato Strings","Orchestral Harp","Timpani","String Ensemble 1","String Ensemble 2","Synth Strings 1","Synth Strings 2","Choir Aahs","VoiceGroup Oohs","Synth Choir","Orchestra Hit","Trumpet","Trombone","Tuba","Muted Trumpet","French Horn","Brass Section","Synth Brass 1","Synth Brass 2","Soprano Sax","Alto Sax","Tenor Sax","Baritone Sax","Oboe","English Horn","Bassoon","Clarinet","Piccolo","Flute","Recorder","Pan Flute","Blown Bottle","Shakuhachi","Whistle","Ocarina","Lead 1 (square)","Lead 2 (sawtooth)","Lead 3 (calliope)","Lead 4 (chiff)","Lead 5 (charang)","Lead 6 (voice)","Lead 7 (fifths)","Lead 8 (bass + lead)","Pad 1 (new age)","Pad 2 (warm)","Pad 3 (polysynth)","Pad 4 (choir)","Pad 5 (bowed)","Pad 6 (metallic)","Pad 7 (halo)","Pad 8 (sweep)","FX 1 (rain)","FX 2 (soundtrack)","FX 3 (crystal)","FX 4 (atmosphere)","FX 5 (brightness)","FX 6 (goblins)","FX 7 (echoes)","FX 8 (sci-fi)","Sitar","Banjo","Shamisen","Koto","Kalimba","Bagpipe","Fiddle","Shanai","Tinkle Bell","Agogo","Steel Drums","Woodblock","Taiko Drum","Melodic Tom","Synth Drum","Reverse Cymbal","Guitar Fret Noise","Breath Noise","Seashore","Bird Tweet","Telephone Ring","Attack Helicopter","Applause","Gunshot"];var OE=class{constructor(i,A,c,d,p=void 0,U=void 0){this.elements=i.map(H=>({name:H.name,program:H.program,bank:H.bank,stringified:`${H.bank.toString().padStart(3,"0")}:${H.program.toString().padStart(3,"0")} ${H.name}`})),this.elements.length>0?this.value=`${this.elements[0].bank}:${this.elements[0].program}`:this.value="",this.mainButton=document.createElement("button"),this.mainButton.classList.add("voice_selector"),this.mainButton.classList.add("controller_element"),A.bindObjectProperty(this.mainButton,"title",c+".description",d),this.locale=A,this.localePath=c,this.localeArgs=d,this.reload(),this.mainButton.onclick=()=>{this.showSelectionMenu()},this.editCallback=p,this.selectionMenu=void 0,this.lockCallback=U,this.locked=!1,this.isWindowShown=!1}showSelectionMenu(){this.selectionMenu=document.createElement("div"),this.selectionMenu.classList.add("voice_selector_wrapper"),document.getElementsByClassName("spessasynth_main")[0].appendChild(this.selectionMenu);let i=document.createElement("div");i.classList.add("voice_selector_window");let A=document.createElement("h2");this.locale.bindObjectProperty(A,"textContent",this.localePath+".selectionPrompt",this.localeArgs),i.appendChild(A);let c=document.createElement("div");c.classList.add("voice_selector_search_wrapper"),i.appendChild(c);let d=document.createElement("input");d.type="text",this.locale.bindObjectProperty(d,"placeholder",this.localePath+".searchPrompt"),c.appendChild(d),d.onkeydown=P=>P.stopPropagation();let p=document.createElement("div");p.innerHTML=this.locked?Rp(si):jC(si),this.locale.bindObjectProperty(p,"title",e4+"channelController.presetReset.description",this.localeArgs),p.classList.add("voice_reset"),this.mainButton.classList.contains("voice_selector_light")&&p.classList.add("voice_reset_light"),p.onclick=()=>{this.locked=!this.locked,this.lockCallback(this.locked),this.mainButton.classList.toggle("locked_selector"),this.locked?p.innerHTML=Rp(si):p.innerHTML=jC(si)},c.appendChild(p),this.presetLock=p;let U=document.createElement("div");U.classList.add("voice_selector_table_wrapper"),i.appendChild(U);let O=this.generateTable(U,this.elements).querySelector(".voice_selector_selected");d.oninput=P=>{P.stopPropagation();let W0=d.value,_=this.elements.filter(_1=>_1.stringified.search(new RegExp(W0,"i"))>=0);if(_.length===this.elements.length)return;U.replaceChildren();let e0=this.generateTable(U,_),i0=e0.querySelector(".voice_selector_selected");if(i0){O=i0;return}let a1=e0.querySelector(".voice_selector_option");a1.classList.add("voice_selector_selected"),O=a1},d.addEventListener("keydown",P=>{switch(P.key){case"Enter":let W0=O.getAttribute("bank"),_=O.getAttribute("program"),e0=`${W0}:${_}`;if(this.value===e0){this.hideSelectionMenu();return}this.editCallback(e0),this.locked=!0,this.presetLock.innerHTML=Rp(si),this.hideSelectionMenu();break;case"ArrowDown":let i0=O.nextElementSibling;for(;i0;){if(i0.classList.contains("voice_selector_option")){O.classList.remove("voice_selector_selected"),i0.classList.add("voice_selector_selected"),O=i0;return}i0=i0.nextElementSibling}break;case"ArrowUp":let a1=O.previousElementSibling;for(;a1;){if(a1.classList.contains("voice_selector_option")){O.classList.remove("voice_selector_selected"),a1.classList.add("voice_selector_selected"),O=a1;return}a1=a1.previousElementSibling}break}}),i.onclick=P=>{P.stopPropagation()},this.selectionMenu.appendChild(i),this.selectionMenu.onclick=P=>{P.stopPropagation(),this.hideSelectionMenu()},this.isWindowShown=!0,F7||d.focus()}generateTable(i,A){let c=document.createElement("table");c.classList.add("voice_selector_table");let d=parseInt(this.value.split(":")[0]),p=parseInt(this.value.split(":")[1]),U=-20;for(let H of A){let O=document.createElement("tr"),P=H.program;if(O.classList.add("voice_selector_option"),O.setAttribute("program",P.toString()),O.setAttribute("bank",H.bank.toString()),P===p&&H.bank===d&&(O.classList.add("voice_selector_selected"),setTimeout(()=>{O.scrollIntoView({behavior:"instant",block:"center",inline:"center"})},20)),O.onclick=()=>{let _1=`${H.bank}:${P}`;if(this.value===_1){this.hideSelectionMenu();return}this.editCallback(_1),this.locked=!0,this.presetLock.innerHTML=Rp(si),this.hideSelectionMenu()},P!==U&&(U=P,H.bank!==128)){let _1=document.createElement("tr"),f1=document.createElement("th");f1.colSpan="3",f1.textContent=iw[U],_1.appendChild(f1),c.appendChild(_1)}let W0=`${H.program.toString().padStart(3,"0")}`,_=`${H.bank.toString().padStart(3,"0")}`,e0=document.createElement("td");e0.classList.add("voice_selector_preset_name"),e0.textContent=H.name;let i0=document.createElement("td");e0.classList.add("voice_selector_preset_program"),i0.textContent=W0;let a1=document.createElement("td");e0.classList.add("voice_selector_preset_program"),a1.textContent=_,O.appendChild(a1),O.appendChild(i0),O.appendChild(e0),c.appendChild(O)}return i.appendChild(c),c}hideSelectionMenu(){document.getElementsByClassName("spessasynth_main")[0].removeChild(this.selectionMenu),this.selectionMenu=void 0,this.isWindowShown=!1}toggleMode(){this.mainButton.classList.toggle("voice_selector_light")}reload(i=this.elements){if(this.elements=i.map(A=>({name:A.name,program:A.program,bank:A.bank,stringified:`${A.bank.toString().padStart(3,"0")}:${A.program.toString().padStart(3,"0")} ${A.name}`})),this.elements.length>0){let A=this.elements[0],c=A.bank,d=parseInt(this.value.split(":")[1]),p=d;this.elements.find(U=>U.program===d)===void 0&&(p=A.program),this.mainButton.textContent=this.getString(`${c}:${p}`)}}set(i){if(this.value=i,this.reload(),this.mainButton.textContent=this.getString(this.value),this.isWindowShown){let A=this.selectionMenu.getElementsByClassName("voice_selector_selected")[0];A!==void 0&&A.classList.remove("voice_selector_selected");let c=this.selectionMenu.getElementsByClassName("voice_selector_table")[0],d=parseInt(this.value.split(":")[0]),p=parseInt(this.value.split(":")[1]);for(let U of c.rows){if(U.cells.length===1)continue;let H=parseInt(U.cells[0].textContent),O=parseInt(U.cells[1].textContent);H===d&&O===p&&(U.classList.add("voice_selector_selected"),U.scrollIntoView({behavior:"smooth",block:"center",inline:"center"}))}}}getString(i){let A=i.split(":"),c=parseInt(A[0]),d=parseInt(A[1]),p=this.elements.find(U=>U.bank===c&&U.program===d);return p?c===128||this.elements.filter(U=>U.program===d&&U.bank!==128).length<2?`${d}. ${p.name}`:`${c}:${d} ${p.name}`:""}};var si=32;function rw(n){this.soloChannels=new Set;let i=document.createElement("div");i.classList.add("channel_controller");let A=new pr(this.channelColors[n%this.channelColors.length],e4+"channelController.voiceMeter",this.locale,[n+1],0,100);A.bar.classList.add("voice_meter_bar_smooth"),i.appendChild(A.div);let c=new pr(this.channelColors[n%this.channelColors.length],e4+"channelController.pitchBendMeter",this.locale,[n+1],-8192,8191,!0,u2=>{let I2=c.isLocked;I2&&this.synth.lockController(n,k$+q4.pitchWheel,!1),u2=Math.round(u2)+8192;let K2=u2>>7,J2=u2&127;this.synth.pitchWheel(n,K2,J2),I2&&this.synth.lockController(n,k$+q4.pitchWheel,!0)},()=>this.synth.lockController(n,k$+q4.pitchWheel,!0),()=>this.synth.lockController(n,k$+q4.pitchWheel,!1));c.update(0),i.appendChild(c.div);let d=(u2,I2,K2)=>{K2.isLocked?(this.synth.lockController(n,u2,!1),this.synth.controllerChange(n,u2,I2),this.synth.lockController(n,u2,!0)):this.synth.controllerChange(n,u2,I2)},p=(u2,I2,K2)=>{let J2=new pr(this.channelColors[n%this.channelColors.length],e4+I2,this.locale,[n+1],0,127,!0,A0=>d(u2,Math.round(A0),J2),()=>this.synth.lockController(n,u2,!0),()=>this.synth.lockController(n,u2,!1));return J2.update(K2),J2},U=p($3.pan,"channelController.panMeter",64);i.appendChild(U.div);let H=p($3.expressionController,"channelController.expressionMeter",127);i.appendChild(H.div);let O=p($3.mainVolume,"channelController.volumeMeter",100);i.appendChild(O.div);let P=p($3.modulationWheel,"channelController.modulationWheelMeter",0);i.appendChild(P.div);let W0=p($3.chorusDepth,"channelController.chorusMeter",0);i.appendChild(W0.div);let _=p($3.reverbDepth,"channelController.reverbMeter",0);i.appendChild(_.div);let e0=p($3.brightness,"channelController.filterMeter",64);i.appendChild(e0.div);let i0=new pr(this.channelColors[n%this.channelColors.length],e4+"channelController.transposeMeter",this.locale,[n+1],-36,36,!0,u2=>{u2=Math.round(u2),this.synth.transposeChannel(n,u2,!0),i0.update(u2)});i0.update(0),i.appendChild(i0.div);let a1=new OE([],this.locale,e4+"channelController.presetSelector",[n+1],async u2=>{let I2=u2.split(":");this.synth.lockController(n,s7,!1),this.synth.controllerChange(n,$3.bankSelect,parseInt(I2[0]),!0),this.synth.programChange(n,parseInt(I2[1]),!0),a1.mainButton.classList.add("locked_selector"),this.synth.lockController(n,s7,!0)},u2=>this.synth.lockController(n,s7,u2));i.appendChild(a1.mainButton);let _1=document.createElement("div");_1.innerHTML=mu(si),this.locale.bindObjectProperty(_1,"title",e4+"channelController.soloButton.description",[n+1]),_1.classList.add("controller_element"),_1.classList.add("mute_button"),_1.onclick=()=>{if(this.soloChannels.has(n)?this.soloChannels.delete(n):this.soloChannels.add(n),this.soloChannels.size===0||this.soloChannels.size>=this.synth.channelsAmount){for(let u2=0;u2=this.synth.channelsAmount&&this.soloChannels.clear();return}for(let u2=0;u2{if(f1.hasAttribute("is_muted")){f1.removeAttribute("is_muted");let u2=this.soloChannels.size===0||this.soloChannels.has(n);this.synth.muteChannel(n,!u2),f1.innerHTML=Mp(si)}else this.synth.muteChannel(n,!0),f1.setAttribute("is_muted","true"),f1.innerHTML=Py(si)},i.appendChild(f1);let C2=document.createElement("div");return C2.innerHTML=n===R7?UE(si):PE(si),this.locale.bindObjectProperty(C2,"title",e4+"channelController.drumToggleButton.description",[n+1]),C2.classList.add("controller_element"),C2.classList.add("mute_button"),C2.onclick=()=>{a1.mainButton.classList.contains("locked_selector")&&(this.synth.lockController(n,s7,!1),a1.mainButton.classList.remove("locked_selector")),this.synth.setDrums(n,!this.synth.channelProperties[n].isDrum)},i.appendChild(C2),{controller:i,voiceMeter:A,pitchWheel:c,pan:U,expression:H,volume:O,mod:P,chorus:W0,reverb:_,brightness:e0,preset:a1,drumsToggle:C2,soloButton:_1,muteButton:f1,transpose:i0}}function nw(){let n=this.uiDiv.getElementsByClassName("synthui_controller")[0];this.controllers=[];for(let i=0;i0;)i[0].parentNode.removeChild(i[0])}function eB(n,i=!0){let A=document.createElement("div");A.classList.add("settings_slider_wrapper");let c=n.getAttribute("min"),d=n.getAttribute("max"),p=n.getAttribute("value"),U=n.getAttribute("units"),H=n.getAttribute("input_id"),O=document.createElement("input");O.classList.add("settings_slider"),O.type="range",O.id=H,O.min=c,O.max=d,O.value=p;let P;i&&(P=document.createElement("span"),P.textContent=p+U);let W0=document.createElement("div");W0.classList.add("settings_visual_wrapper");let _=document.createElement("div");_.classList.add("settings_slider_progress"),W0.appendChild(_);let e0=document.createElement("div");return e0.classList.add("settings_slider_thumb"),W0.appendChild(e0),W0.appendChild(O),O.addEventListener("input",()=>{let i0=parseInt(W0.style.getPropertyValue("--visual-width").replace("%","")),a1=Math.round((O.value-O.min)/(O.max-O.min)*100);Math.abs((i0-a1)/100)>.05?W0.classList.add("settings_slider_transition"):W0.classList.remove("settings_slider_transition"),W0.style.setProperty("--visual-width",`${a1}%`)}),W0.style.setProperty("--visual-width",`${(O.value-O.min)/(O.max-O.min)*100}%`),A.appendChild(W0),i&&A.appendChild(P),A}function Oo(n,i,A){if(i.textContent&&(n.textContent=i.textContent),i.translatePathTitle){if(!A)throw new Error("Translate path title provided but no locale provided.");A.bindObjectProperty(n,"textContent",i.translatePathTitle+".title",i?.translatePathTitleProps),A.bindObjectProperty(n,"title",i.translatePathTitle+".description",i?.translatePathTitleProps)}}function sw(n,i){switch(n.type){case"button":let A=document.createElement("button");return Oo(A,n,i),qa(n,[A]),A;case"text":let c=document.createElement("p");return Oo(c,n,i),qa(n,[c]),c;case"input":let d=document.createElement("div");d.classList.add("notification_input_wrapper");let p=document.createElement("input");Oo(p,n,i),p.addEventListener("keydown",K2=>K2.stopPropagation());let U=document.createElement("label");return Oo(U,n,i),qa(n,[p,U]),d.append(U),d.appendChild(p),d;case"select":let H=document.createElement("div");H.classList.add("notification_input_wrapper");let O=document.createElement("select");if(n.selectOptions===void 0)throw new Error("Select but no options given?");for(let K2 of Object.entries(n.selectOptions)){let J2=document.createElement("option");J2.value=K2[0],J2.textContent=K2[1],O.appendChild(J2)}let P=document.createElement("label");return Oo(P,n,i),qa(n,[O,P]),H.appendChild(P),H.appendChild(O),H;case"file":let W0=document.createElement("label");W0.classList.add("notification_input_wrapper");let _=document.createElement("input");_.type="file";let e0=document.createElement("label");e0.classList.add("notification_file_button"),Oo(e0,n,i);let i0=document.createElement("label");return Oo(i0,n,i),qa(n,[e0,_,i0]),e0.appendChild(_),W0.append(i0),W0.appendChild(e0),W0;case"progress":let a1=document.createElement("div");a1.classList.add("notification_progress_background");let _1=document.createElement("div");return _1.classList.add("notification_progress"),qa(n,[_1,a1]),a1.appendChild(_1),a1;case"toggle":return YD(n,i);case"range":let f1=document.createElement("input");f1.type="range";let C2=document.createElement("label");qa(n,[f1,C2]),Oo(C2,n,i);let u2=eB(f1,!1),I2=document.createElement("div");return I2.classList.add("notification_slider_wrapper"),I2.appendChild(C2),I2.appendChild(u2),I2}}function qa(n,i){if(n.attributes)for(let[A,c]of Object.entries(n.attributes))for(let d of i)A.startsWith("onchange")?d[A]=c:d.setAttribute(A,c);if(n.listeners)for(let[A,c]of Object.entries(n.listeners))for(let d of i)d.addEventListener(A,c)}function YD(n,i){let A=document.createElement("label");A.classList.add("notification_switch_wrapper");let c=document.createElement("label");Oo(c,n,i);let d=document.createElement("input");d.type="checkbox",qa(n,[c,d]);let p=document.createElement("div");p.classList.add("notification_switch"),p.appendChild(d);let U=document.createElement("div");return U.classList.add("notification_switch_slider"),p.appendChild(U),A.appendChild(c),A.appendChild(p),A}var VD=13,JD=0,Tp={};function qe(n,i,A=VD,c=!0,d=void 0,p=void 0,U=void 0){let H=document.createElement("div"),O=JD++;H.classList.add("notification"),H.innerHTML=` +`}function pu(n,i){let A=document.createElement("div");return A.classList.add("control_buttons"),A.title=n,A.innerHTML=i,A}var oi={synthesizerUIShow:"s",settingsShow:"r",blackMidiMode:"b",midiPanic:"backspace",playPause:" ",toggleLoop:"l",toggleLyrics:"t",seekBackwards:"arrowleft",seekForwards:"arrowright",previousSong:"[",nextSong:"]",cinematicMode:"c",videoMode:"v"};function Vy(){navigator.mediaSession&&(navigator.mediaSession.metadata=new MediaMetadata({title:this.currentSongTitle,artist:"SpessaSynth"}),navigator.mediaSession.setActionHandler("play",()=>{this.seqPlay()}),navigator.mediaSession.setActionHandler("pause",()=>{this.seqPause()}),navigator.mediaSession.setActionHandler("stop",()=>{this.seq.currentTime=0,this.seqPause()}),navigator.mediaSession.setActionHandler("seekbackward",n=>{this.seq.currentTime-=n.seekOffset||10}),navigator.mediaSession.setActionHandler("seekforward",n=>{this.seq.currentTime+=n.seekOffset||10}),navigator.mediaSession.setActionHandler("seekto",n=>{this.seq.currentTime=n.seekTime}),navigator.mediaSession.setActionHandler("previoustrack",()=>{this.switchToPreviousSong()}),navigator.mediaSession.setActionHandler("nexttrack",()=>{this.switchToNextSong()}),navigator.mediaSession.playbackState="playing")}function Jy(n=!0){if(this.seq?.hasDummyData===!0)this.currentSongTitle=this.locale.getLocaleString("locale.synthInit.genericLoading");else{let i=this.infoDecoder.decode(this.seq.midiData.rawMidiName.buffer).replace(/\0$/,"");this.currentSongTitle=qC(i)}if(this.seq.midiData){let i=this.seq.midiData.lyrics;this.currentLyrics=new Uint8Array(i.reduce((c,d)=>c+d.length,0));let A=0;for(let c of i)this.currentLyrics.set(c,A),A+=c.length;this.currentLyricsString=this.decodeTextFix(this.currentLyrics.buffer)||this.locale.getLocaleString("locale.sequencerController.lyrics.noLyrics"),this.setLyricsText(""),n&&(this.rawOtherTextEvents=[])}if(document.getElementById("title").innerText=this.currentSongTitle,document.title=this.currentSongTitle+" - SpessaSynth",this.musicModeUI.setTitle(this.currentSongTitle),!!navigator.mediaSession)try{navigator.mediaSession.setPositionState({duration:this.seq.duration,playbackRate:this.seq.playbackRate,position:this.seq.currentTime})}catch{}}var PD=parseFloat(getComputedStyle(document.body).fontSize);function zy(){this.lyricsElement={};let n=document.createElement("div");n.classList.add("lyrics");let i=document.createElement("div");i.classList.add("lyrics_title_wrapper"),n.append(i),this.lyricsElement.titleWrapper=i;let A=document.createElement("h2");this.locale.bindObjectProperty(A,"textContent","locale.sequencerController.lyrics.title"),A.classList.add("lyrics_title"),i.appendChild(A),this.lyricsElement.title=A;let c=document.createElement("select");Lp.forEach(W0=>{let _=document.createElement("option");_.innerText=W0,_.value=W0,c.appendChild(_)}),c.value=this.encoding,c.onchange=()=>this.changeEncoding(c.value),c.classList.add("lyrics_selector"),this.encodingSelector=c,i.appendChild(c);let d=document.createElement("p");d.classList.add("lyrics_text"),n.appendChild(d);let p=document.createElement("span");p.classList.add("lyrics_text_highlight"),d.appendChild(p);let O=document.createElement("span");O.classList.add("lyrics_text_gray"),d.appendChild(O);let H=document.createElement("details"),P=document.createElement("summary");this.locale.bindObjectProperty(P,"textContent","locale.sequencerController.lyrics.otherText.title"),H.appendChild(P);let U=document.createElement("div");U.innerText="",H.appendChild(U),n.appendChild(H),this.lyricsElement.text={highlight:p,gray:O,main:d,other:U},this.lyricsElement.mainDiv=n,this.lyricsElement.selector=c,this.controls.appendChild(n),this.requiresTextUpdate=!0}function Ky(n){let i=this.lyricsElement.text.highlight,A=this.lyricsElement.text.gray;A.innerText=this.currentLyricsString.replace(n,""),i.innerText=n,this.lyricsElement.text.main.scrollTo(0,i.offsetHeight-PD*5)}function Wy(){let n="";for(let i of this.rawOtherTextEvents)n+=`
${Object.keys(Z3).find(A=>Z3[A]===i.type).replace(/([a-z])([A-Z])/g,"$1 $2")}:
${this.decodeTextFix(i.data.buffer)}

`;this.lyricsElement.text.other.innerHTML=n}var Vr=32,Zy="#ccc",jy="#555",OD="#333",qD="#ddd",HD="Shift_JIS",Po=class{constructor(i,A,c){this.iconColor=Zy,this.iconDisabledColor=jy,this.controls=i,this.encoding=HD,this.decoder=new TextDecoder(this.encoding),this.infoDecoder=new TextDecoder(this.encoding),this.hasInfoDecoding=!1,this.text="",this.requiresTextUpdate=!1,this.rawLyrics=[],this.rawOtherTextEvents=[],this.mode="dark",this.locale=A,this.currentSongTitle="",this.currentLyrics=new Uint8Array(0),this.currentLyricsString="",this.musicModeUI=c}toggleDarkMode(){if(this.mode==="dark"?(this.mode="light",this.iconColor=OD,this.iconDisabledColor=qD):(this.mode="dark",this.iconColor=Zy,this.iconDisabledColor=jy),!this.seq){this.requiresThemeUpdate=!0;return}this.progressBar.classList.toggle("note_progress_light"),this.progressBarBackground.classList.toggle("note_progress_background_light"),this.lyricsElement.mainDiv.classList.toggle("lyrics_light"),this.lyricsElement.titleWrapper.classList.toggle("lyrics_light"),this.lyricsElement.selector.classList.toggle("lyrics_light")}seqPlay(i=!0){i&&this.seq.play(),this.playPause.innerHTML=_$(Vr),this.createNavigatorHandler(),this.updateTitleAndMediaStatus(),navigator.mediaSession&&(navigator.mediaSession.playbackState="playing")}seqPause(i=!0){i&&this.seq.pause(),this.playPause.innerHTML=Ry(Vr),this.createNavigatorHandler(),this.updateTitleAndMediaStatus(),navigator.mediaSession&&(navigator.mediaSession.playbackState="paused")}switchToNextSong(){this.seq.nextSong(),this.createNavigatorHandler(),this.updateTitleAndMediaStatus()}switchToPreviousSong(){this.seq.previousSong(),this.createNavigatorHandler(),this.updateTitleAndMediaStatus()}decodeTextFix(i,A=!1){let c=0;for(;;)try{return this.decoder.decode(i)}catch{c++,this.changeEncoding(Lp[c]),this.encodingSelector.value=Lp[c]}}connectSequencer(i){this.seq=i,this.createControls(),this.setSliderInterval(),this.createNavigatorHandler(),this.updateTitleAndMediaStatus(),this.seq.onTextEvent=(A,c)=>{let d=this.decodeTextFix(A.buffer);switch(c){default:return;case Z3.text:case Z3.copyright:case Z3.cuePoint:case Z3.trackName:case Z3.instrumentName:case Z3.programName:case Z3.marker:this.rawOtherTextEvents.push({type:c,data:A}),this.requiresTextUpdate=!0;return;case Z3.lyric:this.text+=d,this.rawLyrics.push(...A),this.setLyricsText(this.text);break}},this.seq.addOnTimeChangeEvent(()=>{this.text="",this.rawLyrics=[],this.seqPlay(!1)},"sequi-time-change"),this.seq.addOnSongChangeEvent(A=>{if(this.createNavigatorHandler(),this.updateTitleAndMediaStatus(),this.seqPlay(!1),this.seq.songsAmount>1&&(this.seq.loop=!1,this.loopButton.firstElementChild.setAttribute("fill",this.iconDisabledColor)),this.hasInfoDecoding=this.seq.midiData.RMIDInfo?.[O8.encoding]!==void 0,A.isEmbedded){let c=(H,P,U,W0="")=>this.seq.midiData.RMIDInfo?.[H]===void 0?P:W0+U.decode(this.seq.midiData.RMIDInfo?.[H]).replace(/\0$/,""),d=new TextDecoder,p=c(O8.midiEncoding,this.encoding,d),O=c(O8.encoding,"utf-8",d);this.infoDecoder=new TextDecoder(O),this.changeEncoding(p)}},"sequi-song-change"),this.requiresThemeUpdate&&this.mode==="light"&&(this.mode="dark",this.toggleDarkMode())}changeEncoding(i){this.encoding=i,this.decoder=new TextDecoder(i),this.hasInfoDecoding||(this.infoDecoder=new TextDecoder(i)),this.updateOtherTextEvents(),this.text=this.decodeTextFix(new Uint8Array(this.rawLyrics).buffer),this.lyricsElement.selector.value=i,this.updateTitleAndMediaStatus(!1),this.setLyricsText(this.text)}createControls(){this.progressTime=document.createElement("p"),this.progressTime.id="note_time",this.progressTime.onclick=_=>{_.preventDefault();let e0=i.getBoundingClientRect(),i0=_.clientX-e0.left,a1=e0.width;this.seq.currentTime=i0/a1*this.seq.duration,c.innerHTML=_$(Vr)},this.createLyrics();let i=document.createElement("div");i.id="note_progress_background",this.progressBarBackground=i,this.progressBar=document.createElement("div"),this.progressBar.id="note_progress",this.progressBar.min="0",this.progressBar.max=this.seq.duration.toString();let A=document.createElement("div"),c=pu("Play/Pause",_$(Vr));this.playPause=c,this.locale.bindObjectProperty(c,"title","locale.sequencerController.playPause");let d=()=>{this.seq.paused?this.seqPlay():this.seqPause()};c.onclick=d;let p=pu("Previous song",Gy(Vr));this.locale.bindObjectProperty(p,"title","locale.sequencerController.previousSong"),p.onclick=()=>this.switchToPreviousSong();let O=pu("Next song",Ny(Vr));this.locale.bindObjectProperty(O,"title","locale.sequencerController.nextSong"),O.onclick=()=>this.switchToNextSong();let H=pu("Loop this",Fy(Vr));this.locale.bindObjectProperty(H,"title","locale.sequencerController.loopThis");let P=()=>{this.seq.loop?this.seq.loop=!1:(this.seq.loop=!0,this.seq.currentTime>=this.seq.duration&&(this.seq.currentTime=0)),H.firstElementChild.setAttribute("fill",this.seq.loop?this.iconColor:this.iconDisabledColor)};H.onclick=P,this.loopButton=H;let U=pu("Show lyrics",Ty(Vr));this.locale.bindObjectProperty(U,"title","locale.sequencerController.lyrics.show"),U.firstElementChild.setAttribute("fill",this.iconDisabledColor);let W0=()=>{this.lyricsElement.mainDiv.classList.toggle("lyrics_show"),U.firstElementChild.setAttribute("fill",this.lyricsElement.mainDiv.classList.contains("lyrics_show")?this.iconColor:this.iconDisabledColor)};U.onclick=W0,document.addEventListener("keydown",_=>{switch(_.key.toLowerCase()){case oi.playPause:_.preventDefault(),d();break;case oi.toggleLoop:_.preventDefault(),P();break;case oi.toggleLyrics:_.preventDefault(),W0();break;default:break}}),A.appendChild(p),A.appendChild(H),A.appendChild(c),A.appendChild(U),A.appendChild(O),this.controls.appendChild(i),i.appendChild(this.progressBar),this.controls.appendChild(this.progressTime),this.controls.appendChild(A),document.addEventListener("keydown",_=>{switch(_.key.toLowerCase()){case oi.seekBackwards:_.preventDefault(),this.seq.currentTime-=5,c.innerHTML=_$(Vr);break;case oi.seekForwards:_.preventDefault(),this.seq.currentTime+=5,c.innerHTML=_$(Vr);break;case oi.previousSong:this.switchToPreviousSong();break;case oi.nextSong:this.switchToNextSong();break;default:if(!isNaN(parseFloat(_.key))){_.preventDefault();let e0=parseInt(_.key);0<=e0&&e0<=9&&(this.seq.currentTime=this.seq.duration*(e0/10),c.innerHTML=_$(Vr))}break}})}_updateInterval(){this.progressBar.style.width=`${this.seq.currentTime/this.seq.duration*100}%`;let i=w$(this.seq.currentTime),A=w$(this.seq.duration);this.progressTime.innerText=`${i.time} / ${A.time}`,this.requiresTextUpdate&&(this.updateOtherTextEvents(),this.requiresTextUpdate=!1)}setSliderInterval(){setInterval(this._updateInterval.bind(this),100)}};Po.prototype.createNavigatorHandler=Vy;Po.prototype.updateTitleAndMediaStatus=Jy;Po.prototype.createLyrics=zy;Po.prototype.setLyricsText=Ky;Po.prototype.updateOtherTextEvents=Wy;function Xy(){this.controllers.forEach(n=>{n.voiceMeter.hide(),n.pitchWheel.hide(),n.pan.hide(),n.expression.hide(),n.volume.hide(),n.mod.hide(),n.chorus.hide(),n.reverb.hide(),n.brightness.hide()})}function ew(){this.controllers.forEach(n=>{n.voiceMeter.show(),n.pitchWheel.show(),n.pan.show(),n.expression.show(),n.volume.show(),n.mod.show(),n.chorus.show(),n.reverb.show(),n.brightness.show()})}function tw(){this.mainControllerDiv.classList.toggle("synthui_controller_light"),this.mainButtons.forEach(n=>{n.classList.toggle("synthui_button"),n.classList.toggle("synthui_button_light")}),this.mainMeters.forEach(n=>{n.toggleMode(!0)}),this.controllers.forEach(n=>{n.voiceMeter.toggleMode(),n.pitchWheel.toggleMode(),n.pan.toggleMode(),n.expression.toggleMode(),n.volume.toggleMode(),n.mod.toggleMode(),n.chorus.toggleMode(),n.reverb.toggleMode(),n.brightness.toggleMode(),n.preset.toggleMode(),n.drumsToggle.classList.toggle("mute_button_light"),n.muteButton.classList.toggle("mute_button_light")})}var pr=class{constructor(i="none",A,c,d,p=0,O=100,H=!1,P=void 0,U=void 0,W0=void 0){if(this.meterText="",c.bindObjectProperty(this,"meterText",A+".title"),this.min=p,this.max=O,this.currentValue=-1,this.isShown=!0,this.isVisualValueSet=!0,this.isLocked=!1,this.lockCallback=U,this.unlockCallback=W0,this.div=document.createElement("div"),this.div.classList.add("voice_meter"),this.div.classList.add("controller_element"),i!=="none"&&i!==""&&(this.div.style.borderColor=i),c.bindObjectProperty(this.div,"title",A+".description",d),this.bar=document.createElement("div"),this.bar.classList.add("voice_meter_bar"),this.bar.style.background=i,this.div.appendChild(this.bar),this.text=document.createElement("p"),this.text.classList.add("voice_meter_text"),this.div.appendChild(this.text),this.isActive=!1,H){if(P===void 0)throw new Error("No editable function given!");this.div.onmousedown=_=>{_.preventDefault(),_.button===0?this.isActive=!0:this.lockMeter()},this.div.onmousemove=_=>{if(!this.isActive)return;let e0=_.currentTarget.getBoundingClientRect(),i0=e0.left,a1=e0.width,_1=_.clientX-i0,f1=Math.max(0,Math.min(1,_1/a1));P(f1*(O-p)+p)},this.div.onmouseup=()=>this.isActive=!1,this.div.onmouseleave=_=>{this.div.onmousemove(_),this.isActive=!1},this.text.oncontextmenu=_=>{_.preventDefault()},this.div.onclick=_=>{_.preventDefault(),this.isActive=!0,this.div.onmousemove(_),this.isActive=!1,F7&&this.lockMeter()},this.div.classList.add("editable")}}lockMeter(){this.lockCallback!==void 0&&(this.isLocked?(this.text.classList.remove("locked_meter"),this.unlockCallback()):(this.text.classList.add("locked_meter"),this.lockCallback()),this.isLocked=!this.isLocked)}toggleMode(i=!1){i&&(this.bar.classList.toggle("voice_meter_light_color"),this.div.classList.toggle("voice_meter_light_color")),this.text.classList.toggle("voice_meter_text_light")}show(){if(this.isShown=!0,!this.isVisualValueSet){let i=Math.max(0,Math.min((this.currentValue-this.min)/(this.max-this.min),1));this.bar.style.width=`${i*100}%`,this.text.textContent=this.meterText+(Math.round(this.currentValue*100)/100).toString(),this.isVisualValueSet=!0}}hide(){this.isShown=!1}update(i,A=!1){if(!(i===this.currentValue&&A===!1))if(this.currentValue=i,this.isShown){let c=Math.max(0,Math.min((i-this.min)/(this.max-this.min),1));this.bar.style.width=`${c*100}%`,this.text.textContent=this.meterText+(Math.round(i*100)/100).toString(),this.isVisualValueSet=!0}else this.isVisualValueSet=!1}};var iw=["Acoustic Grand Piano","Bright Acoustic Piano","Electric Grand Piano","Honky-tonk Piano","Electric Piano 1","Electric Piano 2","Harpsichord","Clavi","Celesta","Glockenspiel","Music Box","Vibraphone","Marimba","Xylophone","Tubular Bells","Dulcimer","Drawbar Organ","Percussive Organ","Rock Organ","Church Organ","Reed Organ","Accordion","Harmonica","Tango Accordion","Acoustic Guitar (nylon)","Acoustic Guitar (steel)","Electric Guitar (jazz)","Electric Guitar (clean)","Electric Guitar (muted)","Overdriven Guitar","Distortion Guitar","Guitar Harmonics","Acoustic Bass","Electric Bass (finger)","Electric Bass (pick)","Fretless Bass","Slap Bass 1","Slap Bass 2","Synth Bass 1","Synth Bass 2","Violin","Viola","Cello","Contrabass","Tremolo Strings","Pizzicato Strings","Orchestral Harp","Timpani","String Ensemble 1","String Ensemble 2","Synth Strings 1","Synth Strings 2","Choir Aahs","VoiceGroup Oohs","Synth Choir","Orchestra Hit","Trumpet","Trombone","Tuba","Muted Trumpet","French Horn","Brass Section","Synth Brass 1","Synth Brass 2","Soprano Sax","Alto Sax","Tenor Sax","Baritone Sax","Oboe","English Horn","Bassoon","Clarinet","Piccolo","Flute","Recorder","Pan Flute","Blown Bottle","Shakuhachi","Whistle","Ocarina","Lead 1 (square)","Lead 2 (sawtooth)","Lead 3 (calliope)","Lead 4 (chiff)","Lead 5 (charang)","Lead 6 (voice)","Lead 7 (fifths)","Lead 8 (bass + lead)","Pad 1 (new age)","Pad 2 (warm)","Pad 3 (polysynth)","Pad 4 (choir)","Pad 5 (bowed)","Pad 6 (metallic)","Pad 7 (halo)","Pad 8 (sweep)","FX 1 (rain)","FX 2 (soundtrack)","FX 3 (crystal)","FX 4 (atmosphere)","FX 5 (brightness)","FX 6 (goblins)","FX 7 (echoes)","FX 8 (sci-fi)","Sitar","Banjo","Shamisen","Koto","Kalimba","Bagpipe","Fiddle","Shanai","Tinkle Bell","Agogo","Steel Drums","Woodblock","Taiko Drum","Melodic Tom","Synth Drum","Reverse Cymbal","Guitar Fret Noise","Breath Noise","Seashore","Bird Tweet","Telephone Ring","Attack Helicopter","Applause","Gunshot"];var OE=class{constructor(i,A,c,d,p=void 0,O=void 0){this.elements=i.map(H=>({name:H.name,program:H.program,bank:H.bank,stringified:`${H.bank.toString().padStart(3,"0")}:${H.program.toString().padStart(3,"0")} ${H.name}`})),this.elements.length>0?this.value=`${this.elements[0].bank}:${this.elements[0].program}`:this.value="",this.mainButton=document.createElement("button"),this.mainButton.classList.add("voice_selector"),this.mainButton.classList.add("controller_element"),A.bindObjectProperty(this.mainButton,"title",c+".description",d),this.locale=A,this.localePath=c,this.localeArgs=d,this.reload(),this.mainButton.onclick=()=>{this.showSelectionMenu()},this.editCallback=p,this.selectionMenu=void 0,this.lockCallback=O,this.locked=!1,this.isWindowShown=!1}showSelectionMenu(){this.selectionMenu=document.createElement("div"),this.selectionMenu.classList.add("voice_selector_wrapper"),document.getElementsByClassName("spessasynth_main")[0].appendChild(this.selectionMenu);let i=document.createElement("div");i.classList.add("voice_selector_window");let A=document.createElement("h2");this.locale.bindObjectProperty(A,"textContent",this.localePath+".selectionPrompt",this.localeArgs),i.appendChild(A);let c=document.createElement("div");c.classList.add("voice_selector_search_wrapper"),i.appendChild(c);let d=document.createElement("input");d.type="text",this.locale.bindObjectProperty(d,"placeholder",this.localePath+".searchPrompt"),c.appendChild(d),d.onkeydown=U=>U.stopPropagation();let p=document.createElement("div");p.innerHTML=this.locked?Rp(si):jC(si),this.locale.bindObjectProperty(p,"title",e4+"channelController.presetReset.description",this.localeArgs),p.classList.add("voice_reset"),this.mainButton.classList.contains("voice_selector_light")&&p.classList.add("voice_reset_light"),p.onclick=()=>{this.locked=!this.locked,this.lockCallback(this.locked),this.mainButton.classList.toggle("locked_selector"),this.locked?p.innerHTML=Rp(si):p.innerHTML=jC(si)},c.appendChild(p),this.presetLock=p;let O=document.createElement("div");O.classList.add("voice_selector_table_wrapper"),i.appendChild(O);let P=this.generateTable(O,this.elements).querySelector(".voice_selector_selected");d.oninput=U=>{U.stopPropagation();let W0=d.value,_=this.elements.filter(_1=>_1.stringified.search(new RegExp(W0,"i"))>=0);if(_.length===this.elements.length)return;O.replaceChildren();let e0=this.generateTable(O,_),i0=e0.querySelector(".voice_selector_selected");if(i0){P=i0;return}let a1=e0.querySelector(".voice_selector_option");a1.classList.add("voice_selector_selected"),P=a1},d.addEventListener("keydown",U=>{switch(U.key){case"Enter":let W0=P.getAttribute("bank"),_=P.getAttribute("program"),e0=`${W0}:${_}`;if(this.value===e0){this.hideSelectionMenu();return}this.editCallback(e0),this.locked=!0,this.presetLock.innerHTML=Rp(si),this.hideSelectionMenu();break;case"ArrowDown":let i0=P.nextElementSibling;for(;i0;){if(i0.classList.contains("voice_selector_option")){P.classList.remove("voice_selector_selected"),i0.classList.add("voice_selector_selected"),P=i0;return}i0=i0.nextElementSibling}break;case"ArrowUp":let a1=P.previousElementSibling;for(;a1;){if(a1.classList.contains("voice_selector_option")){P.classList.remove("voice_selector_selected"),a1.classList.add("voice_selector_selected"),P=a1;return}a1=a1.previousElementSibling}break}}),i.onclick=U=>{U.stopPropagation()},this.selectionMenu.appendChild(i),this.selectionMenu.onclick=U=>{U.stopPropagation(),this.hideSelectionMenu()},this.isWindowShown=!0,F7||d.focus()}generateTable(i,A){let c=document.createElement("table");c.classList.add("voice_selector_table");let d=parseInt(this.value.split(":")[0]),p=parseInt(this.value.split(":")[1]),O=-20;for(let H of A){let P=document.createElement("tr"),U=H.program;if(P.classList.add("voice_selector_option"),P.setAttribute("program",U.toString()),P.setAttribute("bank",H.bank.toString()),U===p&&H.bank===d&&(P.classList.add("voice_selector_selected"),setTimeout(()=>{P.scrollIntoView({behavior:"instant",block:"center",inline:"center"})},20)),P.onclick=()=>{let _1=`${H.bank}:${U}`;if(this.value===_1){this.hideSelectionMenu();return}this.editCallback(_1),this.locked=!0,this.presetLock.innerHTML=Rp(si),this.hideSelectionMenu()},U!==O&&(O=U,H.bank!==128)){let _1=document.createElement("tr"),f1=document.createElement("th");f1.colSpan="3",f1.textContent=iw[O],_1.appendChild(f1),c.appendChild(_1)}let W0=`${H.program.toString().padStart(3,"0")}`,_=`${H.bank.toString().padStart(3,"0")}`,e0=document.createElement("td");e0.classList.add("voice_selector_preset_name"),e0.textContent=H.name;let i0=document.createElement("td");e0.classList.add("voice_selector_preset_program"),i0.textContent=W0;let a1=document.createElement("td");e0.classList.add("voice_selector_preset_program"),a1.textContent=_,P.appendChild(a1),P.appendChild(i0),P.appendChild(e0),c.appendChild(P)}return i.appendChild(c),c}hideSelectionMenu(){document.getElementsByClassName("spessasynth_main")[0].removeChild(this.selectionMenu),this.selectionMenu=void 0,this.isWindowShown=!1}toggleMode(){this.mainButton.classList.toggle("voice_selector_light")}reload(i=this.elements){if(this.elements=i.map(A=>({name:A.name,program:A.program,bank:A.bank,stringified:`${A.bank.toString().padStart(3,"0")}:${A.program.toString().padStart(3,"0")} ${A.name}`})),this.elements.length>0){let A=this.elements[0],c=A.bank,d=parseInt(this.value.split(":")[1]),p=d;this.elements.find(O=>O.program===d)===void 0&&(p=A.program),this.mainButton.textContent=this.getString(`${c}:${p}`)}}set(i){if(this.value=i,this.reload(),this.mainButton.textContent=this.getString(this.value),this.isWindowShown){let A=this.selectionMenu.getElementsByClassName("voice_selector_selected")[0];A!==void 0&&A.classList.remove("voice_selector_selected");let c=this.selectionMenu.getElementsByClassName("voice_selector_table")[0],d=parseInt(this.value.split(":")[0]),p=parseInt(this.value.split(":")[1]);for(let O of c.rows){if(O.cells.length===1)continue;let H=parseInt(O.cells[0].textContent),P=parseInt(O.cells[1].textContent);H===d&&P===p&&(O.classList.add("voice_selector_selected"),O.scrollIntoView({behavior:"smooth",block:"center",inline:"center"}))}}}getString(i){let A=i.split(":"),c=parseInt(A[0]),d=parseInt(A[1]),p=this.elements.find(O=>O.bank===c&&O.program===d);return p?c===128||this.elements.filter(O=>O.program===d&&O.bank!==128).length<2?`${d}. ${p.name}`:`${c}:${d} ${p.name}`:""}};var si=32;function rw(n){this.soloChannels=new Set;let i=document.createElement("div");i.classList.add("channel_controller");let A=new pr(this.channelColors[n%this.channelColors.length],e4+"channelController.voiceMeter",this.locale,[n+1],0,100);A.bar.classList.add("voice_meter_bar_smooth"),i.appendChild(A.div);let c=new pr(this.channelColors[n%this.channelColors.length],e4+"channelController.pitchBendMeter",this.locale,[n+1],-8192,8191,!0,u2=>{let I2=c.isLocked;I2&&this.synth.lockController(n,k$+q4.pitchWheel,!1),u2=Math.round(u2)+8192;let K2=u2>>7,J2=u2&127;this.synth.pitchWheel(n,K2,J2),I2&&this.synth.lockController(n,k$+q4.pitchWheel,!0)},()=>this.synth.lockController(n,k$+q4.pitchWheel,!0),()=>this.synth.lockController(n,k$+q4.pitchWheel,!1));c.update(0),i.appendChild(c.div);let d=(u2,I2,K2)=>{K2.isLocked?(this.synth.lockController(n,u2,!1),this.synth.controllerChange(n,u2,I2),this.synth.lockController(n,u2,!0)):this.synth.controllerChange(n,u2,I2)},p=(u2,I2,K2)=>{let J2=new pr(this.channelColors[n%this.channelColors.length],e4+I2,this.locale,[n+1],0,127,!0,A0=>d(u2,Math.round(A0),J2),()=>this.synth.lockController(n,u2,!0),()=>this.synth.lockController(n,u2,!1));return J2.update(K2),J2},O=p($3.pan,"channelController.panMeter",64);i.appendChild(O.div);let H=p($3.expressionController,"channelController.expressionMeter",127);i.appendChild(H.div);let P=p($3.mainVolume,"channelController.volumeMeter",100);i.appendChild(P.div);let U=p($3.modulationWheel,"channelController.modulationWheelMeter",0);i.appendChild(U.div);let W0=p($3.chorusDepth,"channelController.chorusMeter",0);i.appendChild(W0.div);let _=p($3.reverbDepth,"channelController.reverbMeter",0);i.appendChild(_.div);let e0=p($3.brightness,"channelController.filterMeter",64);i.appendChild(e0.div);let i0=new pr(this.channelColors[n%this.channelColors.length],e4+"channelController.transposeMeter",this.locale,[n+1],-36,36,!0,u2=>{u2=Math.round(u2),this.synth.transposeChannel(n,u2,!0),i0.update(u2)});i0.update(0),i.appendChild(i0.div);let a1=new OE([],this.locale,e4+"channelController.presetSelector",[n+1],async u2=>{let I2=u2.split(":");this.synth.lockController(n,s7,!1),this.synth.controllerChange(n,$3.bankSelect,parseInt(I2[0]),!0),this.synth.programChange(n,parseInt(I2[1]),!0),a1.mainButton.classList.add("locked_selector"),this.synth.lockController(n,s7,!0)},u2=>this.synth.lockController(n,s7,u2));i.appendChild(a1.mainButton);let _1=document.createElement("div");_1.innerHTML=mu(si),this.locale.bindObjectProperty(_1,"title",e4+"channelController.soloButton.description",[n+1]),_1.classList.add("controller_element"),_1.classList.add("mute_button"),_1.onclick=()=>{if(this.soloChannels.has(n)?this.soloChannels.delete(n):this.soloChannels.add(n),this.soloChannels.size===0||this.soloChannels.size>=this.synth.channelsAmount){for(let u2=0;u2=this.synth.channelsAmount&&this.soloChannels.clear();return}for(let u2=0;u2{if(f1.hasAttribute("is_muted")){f1.removeAttribute("is_muted");let u2=this.soloChannels.size===0||this.soloChannels.has(n);this.synth.muteChannel(n,!u2),f1.innerHTML=Mp(si)}else this.synth.muteChannel(n,!0),f1.setAttribute("is_muted","true"),f1.innerHTML=Py(si)},i.appendChild(f1);let C2=document.createElement("div");return C2.innerHTML=n===R7?UE(si):PE(si),this.locale.bindObjectProperty(C2,"title",e4+"channelController.drumToggleButton.description",[n+1]),C2.classList.add("controller_element"),C2.classList.add("mute_button"),C2.onclick=()=>{a1.mainButton.classList.contains("locked_selector")&&(this.synth.lockController(n,s7,!1),a1.mainButton.classList.remove("locked_selector")),this.synth.setDrums(n,!this.synth.channelProperties[n].isDrum)},i.appendChild(C2),{controller:i,voiceMeter:A,pitchWheel:c,pan:O,expression:H,volume:P,mod:U,chorus:W0,reverb:_,brightness:e0,preset:a1,drumsToggle:C2,soloButton:_1,muteButton:f1,transpose:i0}}function nw(){let n=this.uiDiv.getElementsByClassName("synthui_controller")[0];this.controllers=[];for(let i=0;i0;)i[0].parentNode.removeChild(i[0])}function eB(n,i=!0){let A=document.createElement("div");A.classList.add("settings_slider_wrapper");let c=n.getAttribute("min"),d=n.getAttribute("max"),p=n.getAttribute("value"),O=n.getAttribute("units"),H=n.getAttribute("input_id"),P=document.createElement("input");P.classList.add("settings_slider"),P.type="range",P.id=H,P.min=c,P.max=d,P.value=p;let U;i&&(U=document.createElement("span"),U.textContent=p+O);let W0=document.createElement("div");W0.classList.add("settings_visual_wrapper");let _=document.createElement("div");_.classList.add("settings_slider_progress"),W0.appendChild(_);let e0=document.createElement("div");return e0.classList.add("settings_slider_thumb"),W0.appendChild(e0),W0.appendChild(P),P.addEventListener("input",()=>{let i0=parseInt(W0.style.getPropertyValue("--visual-width").replace("%","")),a1=Math.round((P.value-P.min)/(P.max-P.min)*100);Math.abs((i0-a1)/100)>.05?W0.classList.add("settings_slider_transition"):W0.classList.remove("settings_slider_transition"),W0.style.setProperty("--visual-width",`${a1}%`)}),W0.style.setProperty("--visual-width",`${(P.value-P.min)/(P.max-P.min)*100}%`),A.appendChild(W0),i&&A.appendChild(U),A}function Oo(n,i,A){if(i.textContent&&(n.textContent=i.textContent),i.translatePathTitle){if(!A)throw new Error("Translate path title provided but no locale provided.");A.bindObjectProperty(n,"textContent",i.translatePathTitle+".title",i?.translatePathTitleProps),A.bindObjectProperty(n,"title",i.translatePathTitle+".description",i?.translatePathTitleProps)}}function sw(n,i){switch(n.type){case"button":let A=document.createElement("button");return Oo(A,n,i),qa(n,[A]),A;case"text":let c=document.createElement("p");return Oo(c,n,i),qa(n,[c]),c;case"input":let d=document.createElement("div");d.classList.add("notification_input_wrapper");let p=document.createElement("input");Oo(p,n,i),p.addEventListener("keydown",K2=>K2.stopPropagation());let O=document.createElement("label");return Oo(O,n,i),qa(n,[p,O]),d.append(O),d.appendChild(p),d;case"select":let H=document.createElement("div");H.classList.add("notification_input_wrapper");let P=document.createElement("select");if(n.selectOptions===void 0)throw new Error("Select but no options given?");for(let K2 of Object.entries(n.selectOptions)){let J2=document.createElement("option");J2.value=K2[0],J2.textContent=K2[1],P.appendChild(J2)}let U=document.createElement("label");return Oo(U,n,i),qa(n,[P,U]),H.appendChild(U),H.appendChild(P),H;case"file":let W0=document.createElement("label");W0.classList.add("notification_input_wrapper");let _=document.createElement("input");_.type="file";let e0=document.createElement("label");e0.classList.add("notification_file_button"),Oo(e0,n,i);let i0=document.createElement("label");return Oo(i0,n,i),qa(n,[e0,_,i0]),e0.appendChild(_),W0.append(i0),W0.appendChild(e0),W0;case"progress":let a1=document.createElement("div");a1.classList.add("notification_progress_background");let _1=document.createElement("div");return _1.classList.add("notification_progress"),qa(n,[_1,a1]),a1.appendChild(_1),a1;case"toggle":return YD(n,i);case"range":let f1=document.createElement("input");f1.type="range";let C2=document.createElement("label");qa(n,[f1,C2]),Oo(C2,n,i);let u2=eB(f1,!1),I2=document.createElement("div");return I2.classList.add("notification_slider_wrapper"),I2.appendChild(C2),I2.appendChild(u2),I2}}function qa(n,i){if(n.attributes)for(let[A,c]of Object.entries(n.attributes))for(let d of i)A.startsWith("onchange")?d[A]=c:d.setAttribute(A,c);if(n.listeners)for(let[A,c]of Object.entries(n.listeners))for(let d of i)d.addEventListener(A,c)}function YD(n,i){let A=document.createElement("label");A.classList.add("notification_switch_wrapper");let c=document.createElement("label");Oo(c,n,i);let d=document.createElement("input");d.type="checkbox",qa(n,[c,d]);let p=document.createElement("div");p.classList.add("notification_switch"),p.appendChild(d);let O=document.createElement("div");return O.classList.add("notification_switch_slider"),p.appendChild(O),A.appendChild(c),A.appendChild(p),A}var VD=13,JD=0,Tp={};function qe(n,i,A=VD,c=!0,d=void 0,p=void 0,O=void 0){let H=document.createElement("div"),P=JD++;H.classList.add("notification"),H.innerHTML=`

${n}

\xD7 -
`;let P=document.createElement("div");if(P.classList.add("notification_content"),p)for(let[_,e0]of Object.entries(p))P.style[_]=e0;H.appendChild(P);for(let _ of i){let e0=sw(_,d);_.onClick&&(e0.onclick=()=>_.onClick({div:H,id:O},e0)),P.appendChild(e0)}c?H.getElementsByClassName("close_btn")[0].onclick=()=>{le(O)}:H.getElementsByClassName("close_btn")[0].style.display="none",setTimeout(()=>{H.classList.add("drop")},75);let W0=setTimeout(()=>{le(O)},A*1e3+75);return document.getElementsByClassName("notification_field")[0].appendChild(H),Tp[O]={div:H,timeout:W0,onclose:U},{div:H,id:O}}function le(n){if(Tp[n]===void 0)return;let i=Tp[n],A=i.div;clearTimeout(Tp[n].timeout),A.classList.remove("drop"),setTimeout(()=>A.parentElement.removeChild(A),500),i.onclose&&i.onclose(),Tp[n]=void 0}var $7={nodesAmount:Hr.nodesAmount,defaultDelay:Hr.defaultDelay,delayVariation:Hr.delayVariation,stereoDifference:Hr.stereoDifference,oscillatorFrequency:Hr.oscillatorFrequency,oscillatorFrequencyVariation:Hr.oscillatorFrequencyVariation,oscillatorGain:Hr.oscillatorGain};function aw(n,i,A){let c=i+"effectsConfig.",d=qe(n.getLocaleString(c+"button.title"),[{type:"button",translatePathTitle:i+"disableCustomVibrato",onClick:(p,U)=>{A.disableGSNRPparams(),U.parentNode.removeChild(U)}},{type:"text",translatePathTitle:c+"reverbConfig",attributes:{style:"margin-bottom: -0.5rem"}},{type:"file",translatePathTitle:c+"reverbConfig.impulseResponse",attributes:{accept:"audio/*"},listeners:{input:async p=>{if(p.target.files.length===0)return;p.stopImmediatePropagation(),p.preventDefault();let U=p.target.parentElement.parentElement;U.textContent=n.getLocaleString("locale.synthInit.genericLoading");let H=await A.context.decodeAudioData(await p.target.files[0].arrayBuffer());A.setReverbResponse(H),U.textContent=n.getLocaleString("locale.synthInit.done"),_5("%cReverb response set!",C1.info)}}},{type:"text",translatePathTitle:c+"chorusConfig",attributes:{style:"margin-bottom: -0.5rem"}},{type:"input",translatePathTitle:c+"chorusConfig.nodesAmount",attributes:{type:"number",min:"0",value:$7.nodesAmount,setting:"nodes"}},{type:"input",translatePathTitle:c+"chorusConfig.defaultDelay",attributes:{type:"number",min:"0",value:$7.defaultDelay,setting:"delay"}},{type:"input",translatePathTitle:c+"chorusConfig.delayVariation",attributes:{type:"number",min:"0",value:$7.delayVariation,setting:"delay-var"}},{type:"input",translatePathTitle:c+"chorusConfig.stereoDifference",attributes:{type:"number",min:"0",value:$7.stereoDifference,setting:"stereo"}},{type:"input",translatePathTitle:c+"chorusConfig.oscillatorFrequency",attributes:{type:"number",min:"0",value:$7.oscillatorFrequency,setting:"osc-freq"}},{type:"input",translatePathTitle:c+"chorusConfig.frequencyVariation",attributes:{type:"number",min:"0",value:$7.oscillatorFrequencyVariation,setting:"freq-var"}},{type:"input",translatePathTitle:c+"chorusConfig.oscillatorGain",attributes:{type:"number",min:"0",value:$7.oscillatorGain,setting:"osc-gain"}},{type:"button",translatePathTitle:c+"chorusConfig.apply",onClick:p=>{$7.nodesAmount=parseFloat(p.div.querySelector("input[setting='nodes']").value),$7.defaultDelay=parseFloat(p.div.querySelector("input[setting='delay']").value),$7.delayVariation=parseFloat(p.div.querySelector("input[setting='delay-var']").value),$7.stereoDifference=parseFloat(p.div.querySelector("input[setting='stereo']").value),$7.oscillatorFrequency=parseFloat(p.div.querySelector("input[setting='osc-freq']").value),$7.defaultDelay=parseFloat(p.div.querySelector("input[setting='delay']").value),$7.oscillatorFrequencyVariation=parseFloat(p.div.querySelector("input[setting='freq-var']").value),$7.oscillatorGain=parseFloat(p.div.querySelector("input[setting='osc-gain']").value),A.setChorusConfig($7)}}],999999,!0,n);return d.div.onclick=p=>p.stopImmediatePropagation(),d}var d8="locale.synthesizerController.keyModifiers.";async function Aw(n,i){return new Promise(A=>{let c=qe(n.getLocaleString(d8+"selectKey.title"),[{type:"text",textContent:n.getLocaleString(d8+"selectKey.prompt")}],999999,!1,n);i.onNotePressed=d=>{le(c.id),i.onNotePressed=void 0,A(d)}})}async function tB(n,i,A,c){let d=await Aw(i,A),p=(H,O,P,W0)=>{let _={type:"number",min:O.toString(),max:P.toString(),value:W0.toString()};return _[H]="true",_},U={};U.unchanged=i.getLocaleString(d8+"modifyKey.preset.unchanged");for(let H of c)U[H.presetName]=H.presetName;qe(i.getLocaleString(d8+"modifyKey.title"),[{type:"text",translatePathTitle:d8+"selectedKey",translatePathTitleProps:[d.toString()]},{type:"button",textContent:i.getLocaleString(d8+"selectKey.change"),onClick:async H=>{le(H.id),await tB(n,i,A,c)}},{type:"input",translatePathTitle:d8+"selectedChannel",attributes:p("chan",0,(n.channelsAmount-1).toString(),A.channel.toString())},{type:"input",translatePathTitle:d8+"modifyKey.velocity",attributes:p("vel",0,127,-1)},{type:"select",translatePathTitle:d8+"modifyKey.preset",attributes:{"preset-selector":"true"},selectOptions:U},{type:"button",translatePathTitle:d8+"modifyKey.apply",onClick:H=>{let O=parseInt(H.div.querySelector("input[chan]").value)??-1,P=parseInt(H.div.querySelector("input[vel]").value)??-1,W0=H.div.querySelector("select[preset-selector]").value,_=-1,e0=-1;if(W0!=="unchanged"){let i0=c.find(a1=>a1.presetName===W0);_=i0.bank,e0=i0.program}n.keyModifierManager.addModifier(O,d,{velocity:P,patch:{program:e0,bank:_}}),le(H.id)}}],99999,!0,i)}async function zD(n,i,A){let c=await Aw(i,A);qe(i.getLocaleString(d8+"removeModification.title"),[{type:"text",translatePathTitle:d8+"selectedKey",translatePathTitleProps:[c.toString()]},{type:"button",textContent:i.getLocaleString(d8+"selectKey.change"),onClick:async d=>{le(d.id),await tB(n,i,A)}},{type:"input",translatePathTitle:d8+"selectedChannel",attributes:{chan:"true",type:"number",value:A.channel.toString(),min:"0",max:(n.channelsAmount-1).toString()}},{type:"button",translatePathTitle:d8+"removeModification.remove",onClick:d=>{let p=parseInt(d.div.querySelector("input[chan]").value)??-1;n.keyModifierManager.deleteModifier(p,c),le(d.id)}}],99999,!0,i)}function $w(n,i,A,c){qe(i.getLocaleString(d8+"mainTitle"),[{type:"text",textContent:i.getLocaleString(d8+"detailedDescription"),attributes:{style:"white-space: pre; font-style: italic;"}},{type:"text",textContent:i.getLocaleString(d8+"prompt")},{type:"button",translatePathTitle:d8+"modifyKey",onClick:d=>{le(d.id),tB(n,i,A,c).then()}},{type:"button",translatePathTitle:d8+"removeModification",onClick:d=>{le(d.id),zD(n,i,A).then()}},{type:"button",translatePathTitle:d8+"resetModifications",onClick:d=>{le(d.id),qe(i.getLocaleString(d8+"resetModifications.confirmation.title"),[{type:"text",textContent:i.getLocaleString(d8+"resetModifications.confirmation.description")},{type:"button",textContent:i.getLocaleString("locale.yes"),onClick:p=>{le(p.id),n.keyModifierManager.clearModifiers()}},{type:"button",textContent:i.getLocaleString("locale.no"),onClick:p=>{le(p.id)}}],99999,!0,i)}}],9999999,!0,i)}function lw(){let n=document.createElement("div");n.classList.add("controls_wrapper"),this.voiceMeter=new pr("",e4+"mainVoiceMeter",this.locale,[],0,JC),this.voiceMeter.bar.classList.add("voice_meter_bar_smooth"),this.voiceMeter.div.classList.add("main_controller_element"),this.volumeController=new pr("",e4+"mainVolumeMeter",this.locale,[],0,200,!0,P=>{this.synth.setMainVolume(Math.round(P)/100),this.volumeController.update(P)}),this.volumeController.bar.classList.add("voice_meter_bar_smooth"),this.volumeController.div.classList.add("main_controller_element"),this.volumeController.update(100),this.panController=new pr("",e4+"mainPanMeter",this.locale,[],-1,1,!0,P=>{this.synth.setMasterPan(P),this.panController.update(P)}),this.panController.bar.classList.add("voice_meter_bar_smooth"),this.panController.div.classList.add("main_controller_element"),this.panController.update(0),this.transposeController=new pr("",e4+"mainTransposeMeter",this.locale,[],-12,12,!0,P=>{this.synth.transpose(Math.round(P*2)/2),this.transposeController.update(Math.round(P*2)/2)}),this.transposeController.bar.classList.add("voice_meter_bar_smooth"),this.transposeController.div.classList.add("main_controller_element"),this.transposeController.update(0);let i=document.createElement("button");this.locale.bindObjectProperty(i,"textContent",e4+"midiPanic.title"),this.locale.bindObjectProperty(i,"title",e4+"midiPanic.description"),i.classList.add("synthui_button"),i.classList.add("main_controller_element"),i.onclick=()=>this.synth.stopAll(!0);let A=document.createElement("button");this.locale.bindObjectProperty(A,"textContent",e4+"systemReset.title"),this.locale.bindObjectProperty(A,"title",e4+"systemReset.description"),A.classList.add("synthui_button"),A.classList.add("main_controller_element"),A.onclick=()=>{this.controllers.forEach((P,W0)=>{P.pitchWheel.isLocked&&P.pitchWheel.lockMeter(),P.pan.isLocked&&P.pan.lockMeter(),P.expression.isLocked&&P.expression.lockMeter(),P.volume.isLocked&&P.volume.lockMeter(),P.mod.isLocked&&P.mod.lockMeter(),P.chorus.isLocked&&P.chorus.lockMeter(),P.reverb.isLocked&&P.reverb.lockMeter(),P.brightness.isLocked&&P.brightness.lockMeter(),P.preset.mainButton.classList.contains("locked_selector")&&(this.synth.lockController(W0,s7,!1),P.preset.mainButton.classList.remove("locked_selector")),this.synth.transposeChannel(W0,0,!0),P.transpose.update(0),P.soloButton.innerHTML=mu(si),P.muteButton.innerHTML=Mp(si),this.synth.muteChannel(W0,!1)}),this.synth.resetControllers()};let c=document.createElement("button");this.locale.bindObjectProperty(c,"textContent",e4+"blackMidiMode.title"),this.locale.bindObjectProperty(c,"title",e4+"blackMidiMode.description"),c.classList.add("synthui_button"),c.classList.add("main_controller_element"),c.onclick=()=>{this.synth.highPerformanceMode=!this.synth.highPerformanceMode};let d=document.createElement("button");this.locale.bindObjectProperty(d,"textContent",e4+"keyModifiers.button.title"),this.locale.bindObjectProperty(d,"title",e4+"keyModifiers.button.description"),d.classList.add("synthui_button"),d.classList.add("main_controller_element"),d.onclick=()=>{$w(this.synth,this.locale,this.keyboard,this.presetList)};let p=document.createElement("button");this.locale.bindObjectProperty(p,"textContent",e4+"effectsConfig.button.title"),this.locale.bindObjectProperty(p,"title",e4+"effectsConfig.button.description"),p.classList.add("synthui_button"),p.classList.add("main_controller_element"),p.onclick=()=>{if(this.effectsConfigWindow!==void 0){le(this.effectsConfigWindow),this.effectsConfigWindow=void 0;return}this.effectsConfigWindow=aw(this.locale,e4,this.synth).id};let U=document.createElement("select");U.classList.add("main_controller_element"),U.classList.add("synthui_button"),this.locale.bindObjectProperty(U,"title",e4+"interpolation.description");{let P=document.createElement("option");P.value="0",this.locale.bindObjectProperty(P,"textContent",e4+"interpolation.linear"),U.appendChild(P);let W0=document.createElement("option");W0.value="1",this.locale.bindObjectProperty(W0,"textContent",e4+"interpolation.nearestNeighbor"),U.appendChild(W0);let _=document.createElement("option");_.value="2",_.selected=!0,this.locale.bindObjectProperty(_,"textContent",e4+"interpolation.cubic"),U.appendChild(_),U.onchange=()=>{this.synth.setInterpolationType(parseInt(U.value))}}let H=document.createElement("div");H.classList.add("synthui_controller"),this.uiDiv.appendChild(H);let O=document.createElement("button");this.locale.bindObjectProperty(O,"textContent",e4+"toggleButton.title"),this.locale.bindObjectProperty(O,"title",e4+"toggleButton.description"),O.classList.add("synthui_button"),O.onclick=()=>{this.hideOnDocClick=!1,this.toggleVisibility()},n.appendChild(this.volumeController.div),n.appendChild(this.panController.div),n.appendChild(this.transposeController.div),n.appendChild(i),n.appendChild(A),n.appendChild(c),n.appendChild(d),n.appendChild(p),n.appendChild(U),this.mainMeters=[this.volumeController,this.panController,this.transposeController,this.voiceMeter],this.mainButtons=[i,A,c,d,p,O,U],this.uiDiv.appendChild(this.voiceMeter.div),this.uiDiv.appendChild(O),H.appendChild(n),this.mainControllerDiv=H,this.mainControllerDiv.onclick=P=>P.stopPropagation(),document.addEventListener("click",()=>{if(!this.hideOnDocClick){this.hideOnDocClick=!0;return}this.effectsConfigWindow!==void 0&&(le(this.effectsConfigWindow),this.effectsConfigWindow=void 0),H.classList.remove("synthui_controller_show"),this.isShown=!1,this.hideControllers()})}function cw(){let n=this.uiDiv.getElementsByClassName("synthui_controller")[0];this.synth.eventHandler.addEvent("programchange","synthui-program-change",i=>{this.controllers[i.channel].preset.set(`${i.bank}:${i.program}`)}),this.synth.eventHandler.addEvent("allcontrollerreset","synthui-all-controller-reset",()=>{for(let i of this.controllers)i.pan.update(64),i.mod.update(0),i.chorus.update(0),i.pitchWheel.update(0),i.expression.update(127),i.volume.update(100),i.reverb.update(0),i.brightness.update(64)}),this.synth.eventHandler.addEvent("controllerchange","synthui-controller-change",i=>{let A=i.controllerNumber,c=i.channel,d=i.controllerValue,p=this.controllers[c];if(p!==void 0)switch(A){default:break;case $3.expressionController:p.expression.update(d);break;case $3.mainVolume:p.volume.update(d);break;case $3.pan:p.pan.update(d);break;case $3.modulationWheel:p.mod.update(d);break;case $3.chorusDepth:p.chorus.update(d);break;case $3.reverbDepth:p.reverb.update(d);break;case $3.brightness:p.brightness.update(d)}}),this.synth.eventHandler.addEvent("pitchwheel","synthui-pitch-wheel",i=>{let A=i.MSB<<7|i.LSB;this.controllers[i.channel].pitchWheel.update(A-8192)}),this.synth.eventHandler.addEvent("drumchange","synthui-drum-change",i=>{this.controllers[i.channel].drumsToggle.innerHTML=i.isDrumChannel?UE(32):PE(32),this.controllers[i.channel].preset.reload(i.isDrumChannel?this.percussionList:this.instrumentList)}),this.synth.eventHandler.addEvent("newchannel","synthui-new-channel",()=>{let i=this.createChannelController(this.controllers.length);this.controllers.push(i),n.appendChild(i.controller),this.hideControllers()})}var e4="locale.synthesizerController.",Jr=class{constructor(i,A,c){this.channelColors=i;let d=A;this.uiDiv=document.createElement("div"),this.uiDiv.classList.add("wrapper"),d.appendChild(this.uiDiv),this.uiDiv.style.visibility="visible",this.isShown=!1,this.animationId=-1,this.locale=c,this.hideOnDocClick=!0,this.effectsConfigWindow=void 0}connectKeyboard(i){this.keyboard=i}connectSynth(i){this.synth=i,this.getInstrumentList(),this.createMainSynthController(),this.createChannelControllers(),document.addEventListener("keydown",A=>{switch(A.key.toLowerCase()){case oi.synthesizerUIShow:A.preventDefault(),this.toggleVisibility();break;case oi.settingsShow:this.isShown=!0,this.toggleVisibility();break;case oi.blackMidiMode:A.preventDefault(),this.synth.highPerformanceMode=!this.synth.highPerformanceMode;break;case oi.midiPanic:A.preventDefault(),this.synth.stopAll(!0);break}}),this.locale.onLocaleChanged.push(()=>{this.voiceMeter.update(this.voiceMeter.currentValue,!0),this.volumeController.update(this.volumeController.currentValue,!0),this.panController.update(this.panController.currentValue,!0),this.panController.update(this.panController.currentValue,!0),this.transposeController.update(this.transposeController.currentValue,!0);for(let A of this.controllers)A.voiceMeter.update(A.voiceMeter.currentValue,!0),A.pitchWheel.update(A.pitchWheel.currentValue,!0),A.pan.update(A.pan.currentValue,!0),A.volume.update(A.volume.currentValue,!0),A.expression.update(A.expression.currentValue,!0),A.mod.update(A.mod.currentValue,!0),A.chorus.update(A.chorus.currentValue,!0),A.reverb.update(A.reverb.currentValue,!0),A.brightness.update(A.brightness.currentValue,!0),A.transpose.update(A.transpose.currentValue,!0)})}toggleVisibility(){this.animationId!==-1&&clearTimeout(this.animationId);let i=document.getElementsByClassName("synthui_controller")[0];this.isShown=!this.isShown,this.isShown?(i.style.display="block",document.getElementsByClassName("top_part")[0].classList.add("synthui_shown"),this.showControllers(),setTimeout(()=>{i.classList.add("synthui_controller_show")},75)):(this.effectsConfigWindow!==void 0&&(le(this.effectsConfigWindow),this.effectsConfigWindow=void 0),document.getElementsByClassName("top_part")[0].classList.remove("synthui_shown"),this.hideControllers(),i.classList.remove("synthui_controller_show"),this.animationId=setTimeout(()=>{i.style.display="none"},200))}updateVoicesAmount(){this.voiceMeter.update(this.synth.voicesAmount),this.controllers.forEach((i,A)=>{let c=this.synth.channelProperties[A].voicesAmount;i.voiceMeter.update(c),c<1&&this.synth.voicesAmount>0?i.controller.classList.add("no_voices"):i.controller.classList.remove("no_voices")})}getInstrumentList(){this.synth.eventHandler.addEvent("presetlistchange","synthui-preset-list-change",i=>{let A=i;this.presetList=A,this.instrumentList=A.filter(c=>c.bank!==128).sort((c,d)=>c.program===d.program?c.bank-d.bank:c.program-d.program).map(c=>({name:c.presetName,bank:c.bank,program:c.program})),this.percussionList=A.filter(c=>c.bank===128).sort((c,d)=>c.program-d.program).map(c=>({name:c.presetName,bank:c.bank,program:c.program})),this.percussionList.length===0?this.percussionList=this.instrumentList:this.instrumentList.length===0&&(this.instrumentList=this.percussionList),this.controllers.forEach((c,d)=>{let p=this.synth.channelProperties[d].isDrum?this.percussionList:this.instrumentList;c.preset.reload(p),c.preset.set(`${p[0].bank}:${p[0].program}`)})})}};Jr.prototype.hideControllers=Xy;Jr.prototype.showControllers=ew;Jr.prototype.toggleDarkMode=tw;Jr.prototype.createChannelController=rw;Jr.prototype.createChannelControllers=nw;Jr.prototype.createMainSynthController=lw;Jr.prototype.setEventListeners=cw;var Np=null,qE=class{constructor(){}async createMIDIDeviceHandler(){if(this.selectedInput=Np,this.selectedOutput=Np,navigator.requestMIDIAccess)try{let i=await navigator.requestMIDIAccess({sysex:!0,software:!0});return this.inputs=i.inputs,this.outputs=i.outputs,_5("%cMIDI handler created!",C1.recognized),!0}catch(i){return I9("Could not get MIDI Devices:",i),this.inputs=[],this.outputs=[],!1}else return I9("Web MIDI Api not supported!",C1.unrecognized),this.inputs=[],this.outputs=[],!1}connectMIDIOutputToSeq(i,A){this.selectedOutput=i,A.connectMidiOutput(i),_5(`%cPlaying MIDI to %c${i.name}`,C1.info,C1.recognized)}disconnectSeqFromMIDI(i){this.selectedOutput=Np,i.connectMidiOutput(void 0),_5("%cDisconnected from MIDI out.",C1.info)}connectDeviceToSynth(i,A){this.selectedInput=i,i.onmidimessage=c=>{A.sendMessage(c.data)},_5(`%cListening for messages on %c${i.name}`,C1.info,C1.recognized)}disconnectDeviceFromSynth(i){this.selectedInput=Np,i.onmidimessage=void 0,_5(`%cDisconnected from %c${i.name}`,C1.info,C1.recognized)}disconnectAllDevicesFromSynth(){this.selectedInput=Np;for(let i of this.inputs)i[1].onmidimessage=void 0}};var HE=class{constructor(i){window.addEventListener("message",A=>{if(typeof A.data!="string")return;let c=A.data.split(",");if(c[0]!=="midi")return;c.shift();let d=c.map(p=>parseInt(p,16));i.sendMessage(d)}),_5("%cWeb MIDI Link handler created!",C1.recognized)}};var Ha="midi range";function gw(n,i,A){let c=0,d=this.htmlControls.keyboard,p=[],U=[],H,O=e0=>{let i0=U[e0],a1=i0.drum?128:i0.bank,_1=H.find(f1=>f1.bank===a1&&f1.program===i0.program);_1||(_1=H[0]),p[e0].textContent=": "+_1.presetName},P=()=>{if(H)for(let e0=0;e0{let e0=document.createElement("option");e0.value=c.toString();let i0=document.createElement("p");this.locale.bindObjectProperty(i0,"textContent","locale.settings.keyboardSettings.selectedChannel.channelOption",[c+1]);let a1=document.createElement("p");a1.textContent=": not ",p.push(a1),U.push({program:0,bank:0,drum:c%16===9}),P(),e0.appendChild(i0),e0.appendChild(a1),e0.style.background=i.channelColors[c%i.channelColors.length],e0.style.color="rgb(0, 0, 0)",d.channelSelector.appendChild(e0),c++},_=this.synthui.synth;_.eventHandler.addEvent("presetlistchange","settings-preset-list-change",e0=>{H=e0,P()}),_.eventHandler.addEvent("newchannel","settings-new-channel",()=>{W0()}),_.eventHandler.addEvent("programchange","settings-program-change",e0=>{let i0=U[e0.channel];i0.bank=e0.bank,i0.program=e0.program,O(e0.channel)}),_.eventHandler.addEvent("drumchange","settings-drum-change",e0=>{U[e0.channel].drum=e0.isDrumChannel,O(e0.channel)});for(let e0=0;e0{n.selectChannel(parseInt(d.channelSelector.value))},d.sizeSelector.onchange=()=>{if(this.musicMode.visible){this.musicMode.setVisibility(!1,document.getElementById("keyboard_canvas_wrapper")),setTimeout(()=>{d.sizeSelector.value===Ha?(this.autoKeyRange=!0,this?.sequi?.seq&&(n.keyRange=this.sequi.seq.midiData.keyRange,A.keyRange=this.sequi.seq.midiData.keyRange)):(this.autoKeyRange=!1,n.keyRange=this.keyboardSizes[d.sizeSelector.value],A.keyRange=this.keyboardSizes[d.sizeSelector.value]),this._saveSettings()},600);return}d.sizeSelector.value===Ha?(this.autoKeyRange=!0,this?.sequi?.seq&&(n.keyRange=this.sequi.seq.midiData.keyRange,A.keyRange=this.sequi.seq.midiData.keyRange)):(this.autoKeyRange=!1,n.keyRange=this.keyboardSizes[d.sizeSelector.value],A.keyRange=this.keyboardSizes[d.sizeSelector.value]),this._saveSettings()},this.addSequencer=e0=>{e0.addOnSongChangeEvent(i0=>{this.autoKeyRange&&(n.keyRange=i0.keyRange,A.keyRange=i0.keyRange),i0.RMIDInfo?.IPIC!==void 0&&this.musicMode.visible===!1&&this.toggleMusicPlayerMode().then()},"settings-keyboard-handler-song-change")},i.synth.eventHandler.addEvent("newchannel","settings-new-channel",()=>{W0()}),i.synth.eventHandler.addEvent("programchange","settings-keyboard-program-change",e0=>{e0.userCalled&&(n.selectChannel(e0.channel),d.channelSelector.value=e0.channel)}),i.synth.eventHandler.addEvent("mutechannel","settings-keuboard-mute-channel",e0=>{if(e0.isMuted&&e0.channel===n.channel){let i0=0;for(;i.synth.channelProperties[i0].isMuted;)i0++;i0{if(this.musicMode.visible){this.musicMode.setVisibility(!1,document.getElementById("keyboard_canvas_wrapper")),setTimeout(()=>{n.toggleMode(),this._saveSettings()},600);return}n.toggleMode(),this._saveSettings()},d.showSelector.onclick=()=>{n.shown=!n.shown,this._saveSettings()}}var uw=` + `;let U=document.createElement("div");if(U.classList.add("notification_content"),p)for(let[_,e0]of Object.entries(p))U.style[_]=e0;H.appendChild(U);for(let _ of i){let e0=sw(_,d);_.onClick&&(e0.onclick=()=>_.onClick({div:H,id:P},e0)),U.appendChild(e0)}c?H.getElementsByClassName("close_btn")[0].onclick=()=>{le(P)}:H.getElementsByClassName("close_btn")[0].style.display="none",setTimeout(()=>{H.classList.add("drop")},75);let W0=setTimeout(()=>{le(P)},A*1e3+75);return document.getElementsByClassName("notification_field")[0].appendChild(H),Tp[P]={div:H,timeout:W0,onclose:O},{div:H,id:P}}function le(n){if(Tp[n]===void 0)return;let i=Tp[n],A=i.div;clearTimeout(Tp[n].timeout),A.classList.remove("drop"),setTimeout(()=>A.parentElement.removeChild(A),500),i.onclose&&i.onclose(),Tp[n]=void 0}var $7={nodesAmount:Hr.nodesAmount,defaultDelay:Hr.defaultDelay,delayVariation:Hr.delayVariation,stereoDifference:Hr.stereoDifference,oscillatorFrequency:Hr.oscillatorFrequency,oscillatorFrequencyVariation:Hr.oscillatorFrequencyVariation,oscillatorGain:Hr.oscillatorGain};function aw(n,i,A){let c=i+"effectsConfig.",d=qe(n.getLocaleString(c+"button.title"),[{type:"button",translatePathTitle:i+"disableCustomVibrato",onClick:(p,O)=>{A.disableGSNRPparams(),O.parentNode.removeChild(O)}},{type:"text",translatePathTitle:c+"reverbConfig",attributes:{style:"margin-bottom: -0.5rem"}},{type:"file",translatePathTitle:c+"reverbConfig.impulseResponse",attributes:{accept:"audio/*"},listeners:{input:async p=>{if(p.target.files.length===0)return;p.stopImmediatePropagation(),p.preventDefault();let O=p.target.parentElement.parentElement;O.textContent=n.getLocaleString("locale.synthInit.genericLoading");let H=await A.context.decodeAudioData(await p.target.files[0].arrayBuffer());A.setReverbResponse(H),O.textContent=n.getLocaleString("locale.synthInit.done"),_5("%cReverb response set!",C1.info)}}},{type:"text",translatePathTitle:c+"chorusConfig",attributes:{style:"margin-bottom: -0.5rem"}},{type:"input",translatePathTitle:c+"chorusConfig.nodesAmount",attributes:{type:"number",min:"0",value:$7.nodesAmount,setting:"nodes"}},{type:"input",translatePathTitle:c+"chorusConfig.defaultDelay",attributes:{type:"number",min:"0",value:$7.defaultDelay,setting:"delay"}},{type:"input",translatePathTitle:c+"chorusConfig.delayVariation",attributes:{type:"number",min:"0",value:$7.delayVariation,setting:"delay-var"}},{type:"input",translatePathTitle:c+"chorusConfig.stereoDifference",attributes:{type:"number",min:"0",value:$7.stereoDifference,setting:"stereo"}},{type:"input",translatePathTitle:c+"chorusConfig.oscillatorFrequency",attributes:{type:"number",min:"0",value:$7.oscillatorFrequency,setting:"osc-freq"}},{type:"input",translatePathTitle:c+"chorusConfig.frequencyVariation",attributes:{type:"number",min:"0",value:$7.oscillatorFrequencyVariation,setting:"freq-var"}},{type:"input",translatePathTitle:c+"chorusConfig.oscillatorGain",attributes:{type:"number",min:"0",value:$7.oscillatorGain,setting:"osc-gain"}},{type:"button",translatePathTitle:c+"chorusConfig.apply",onClick:p=>{$7.nodesAmount=parseFloat(p.div.querySelector("input[setting='nodes']").value),$7.defaultDelay=parseFloat(p.div.querySelector("input[setting='delay']").value),$7.delayVariation=parseFloat(p.div.querySelector("input[setting='delay-var']").value),$7.stereoDifference=parseFloat(p.div.querySelector("input[setting='stereo']").value),$7.oscillatorFrequency=parseFloat(p.div.querySelector("input[setting='osc-freq']").value),$7.defaultDelay=parseFloat(p.div.querySelector("input[setting='delay']").value),$7.oscillatorFrequencyVariation=parseFloat(p.div.querySelector("input[setting='freq-var']").value),$7.oscillatorGain=parseFloat(p.div.querySelector("input[setting='osc-gain']").value),A.setChorusConfig($7)}}],999999,!0,n);return d.div.onclick=p=>p.stopImmediatePropagation(),d}var d8="locale.synthesizerController.keyModifiers.";async function Aw(n,i){return new Promise(A=>{let c=qe(n.getLocaleString(d8+"selectKey.title"),[{type:"text",textContent:n.getLocaleString(d8+"selectKey.prompt")}],999999,!1,n);i.onNotePressed=d=>{le(c.id),i.onNotePressed=void 0,A(d)}})}async function tB(n,i,A,c){let d=await Aw(i,A),p=(H,P,U,W0)=>{let _={type:"number",min:P.toString(),max:U.toString(),value:W0.toString()};return _[H]="true",_},O={};O.unchanged=i.getLocaleString(d8+"modifyKey.preset.unchanged");for(let H of c.toSorted((P,U)=>P.presetNameU.presetName?1:0))O[H.presetName]=H.presetName;qe(i.getLocaleString(d8+"modifyKey.title"),[{type:"text",translatePathTitle:d8+"selectedKey",translatePathTitleProps:[d.toString()]},{type:"button",textContent:i.getLocaleString(d8+"selectKey.change"),onClick:async H=>{le(H.id),await tB(n,i,A,c)}},{type:"input",translatePathTitle:d8+"selectedChannel",attributes:p("chan",0,(n.channelsAmount-1).toString(),A.channel.toString())},{type:"input",translatePathTitle:d8+"modifyKey.velocity",attributes:p("vel",0,127,-1)},{type:"select",translatePathTitle:d8+"modifyKey.preset",attributes:{"preset-selector":"true"},selectOptions:O},{type:"button",translatePathTitle:d8+"modifyKey.apply",onClick:H=>{let P=parseInt(H.div.querySelector("input[chan]").value)??-1,U=parseInt(H.div.querySelector("input[vel]").value)??-1,W0=H.div.querySelector("select[preset-selector]").value,_=-1,e0=-1;if(W0!=="unchanged"){let i0=c.find(a1=>a1.presetName===W0);_=i0.bank,e0=i0.program}n.keyModifierManager.addModifier(P,d,{velocity:U,patch:{program:e0,bank:_}}),le(H.id)}}],99999,!0,i)}async function zD(n,i,A){let c=await Aw(i,A);qe(i.getLocaleString(d8+"removeModification.title"),[{type:"text",translatePathTitle:d8+"selectedKey",translatePathTitleProps:[c.toString()]},{type:"button",textContent:i.getLocaleString(d8+"selectKey.change"),onClick:async d=>{le(d.id),await tB(n,i,A)}},{type:"input",translatePathTitle:d8+"selectedChannel",attributes:{chan:"true",type:"number",value:A.channel.toString(),min:"0",max:(n.channelsAmount-1).toString()}},{type:"button",translatePathTitle:d8+"removeModification.remove",onClick:d=>{let p=parseInt(d.div.querySelector("input[chan]").value)??-1;n.keyModifierManager.deleteModifier(p,c),le(d.id)}}],99999,!0,i)}function $w(n,i,A,c){qe(i.getLocaleString(d8+"mainTitle"),[{type:"text",textContent:i.getLocaleString(d8+"detailedDescription"),attributes:{style:"white-space: pre; font-style: italic;"}},{type:"text",textContent:i.getLocaleString(d8+"prompt")},{type:"button",translatePathTitle:d8+"modifyKey",onClick:d=>{le(d.id),tB(n,i,A,c).then()}},{type:"button",translatePathTitle:d8+"removeModification",onClick:d=>{le(d.id),zD(n,i,A).then()}},{type:"button",translatePathTitle:d8+"resetModifications",onClick:d=>{le(d.id),qe(i.getLocaleString(d8+"resetModifications.confirmation.title"),[{type:"text",textContent:i.getLocaleString(d8+"resetModifications.confirmation.description")},{type:"button",textContent:i.getLocaleString("locale.yes"),onClick:p=>{le(p.id),n.keyModifierManager.clearModifiers()}},{type:"button",textContent:i.getLocaleString("locale.no"),onClick:p=>{le(p.id)}}],99999,!0,i)}}],9999999,!0,i)}function lw(){let n=document.createElement("div");n.classList.add("controls_wrapper"),this.voiceMeter=new pr("",e4+"mainVoiceMeter",this.locale,[],0,JC),this.voiceMeter.bar.classList.add("voice_meter_bar_smooth"),this.voiceMeter.div.classList.add("main_controller_element"),this.volumeController=new pr("",e4+"mainVolumeMeter",this.locale,[],0,200,!0,U=>{this.synth.setMainVolume(Math.round(U)/100),this.volumeController.update(U)}),this.volumeController.bar.classList.add("voice_meter_bar_smooth"),this.volumeController.div.classList.add("main_controller_element"),this.volumeController.update(100),this.panController=new pr("",e4+"mainPanMeter",this.locale,[],-1,1,!0,U=>{this.synth.setMasterPan(U),this.panController.update(U)}),this.panController.bar.classList.add("voice_meter_bar_smooth"),this.panController.div.classList.add("main_controller_element"),this.panController.update(0),this.transposeController=new pr("",e4+"mainTransposeMeter",this.locale,[],-12,12,!0,U=>{this.synth.transpose(Math.round(U*2)/2),this.transposeController.update(Math.round(U*2)/2)}),this.transposeController.bar.classList.add("voice_meter_bar_smooth"),this.transposeController.div.classList.add("main_controller_element"),this.transposeController.update(0);let i=document.createElement("button");this.locale.bindObjectProperty(i,"textContent",e4+"midiPanic.title"),this.locale.bindObjectProperty(i,"title",e4+"midiPanic.description"),i.classList.add("synthui_button"),i.classList.add("main_controller_element"),i.onclick=()=>this.synth.stopAll(!0);let A=document.createElement("button");this.locale.bindObjectProperty(A,"textContent",e4+"systemReset.title"),this.locale.bindObjectProperty(A,"title",e4+"systemReset.description"),A.classList.add("synthui_button"),A.classList.add("main_controller_element"),A.onclick=()=>{this.controllers.forEach((U,W0)=>{U.pitchWheel.isLocked&&U.pitchWheel.lockMeter(),U.pan.isLocked&&U.pan.lockMeter(),U.expression.isLocked&&U.expression.lockMeter(),U.volume.isLocked&&U.volume.lockMeter(),U.mod.isLocked&&U.mod.lockMeter(),U.chorus.isLocked&&U.chorus.lockMeter(),U.reverb.isLocked&&U.reverb.lockMeter(),U.brightness.isLocked&&U.brightness.lockMeter(),U.preset.mainButton.classList.contains("locked_selector")&&(this.synth.lockController(W0,s7,!1),U.preset.mainButton.classList.remove("locked_selector")),this.synth.transposeChannel(W0,0,!0),U.transpose.update(0),U.soloButton.innerHTML=mu(si),U.muteButton.innerHTML=Mp(si),this.synth.muteChannel(W0,!1)}),this.synth.resetControllers()};let c=document.createElement("button");this.locale.bindObjectProperty(c,"textContent",e4+"blackMidiMode.title"),this.locale.bindObjectProperty(c,"title",e4+"blackMidiMode.description"),c.classList.add("synthui_button"),c.classList.add("main_controller_element"),c.onclick=()=>{this.synth.highPerformanceMode=!this.synth.highPerformanceMode};let d=document.createElement("button");this.locale.bindObjectProperty(d,"textContent",e4+"keyModifiers.button.title"),this.locale.bindObjectProperty(d,"title",e4+"keyModifiers.button.description"),d.classList.add("synthui_button"),d.classList.add("main_controller_element"),d.onclick=()=>{$w(this.synth,this.locale,this.keyboard,this.presetList)};let p=document.createElement("button");this.locale.bindObjectProperty(p,"textContent",e4+"effectsConfig.button.title"),this.locale.bindObjectProperty(p,"title",e4+"effectsConfig.button.description"),p.classList.add("synthui_button"),p.classList.add("main_controller_element"),p.onclick=()=>{if(this.effectsConfigWindow!==void 0){le(this.effectsConfigWindow),this.effectsConfigWindow=void 0;return}this.effectsConfigWindow=aw(this.locale,e4,this.synth).id};let O=document.createElement("select");O.classList.add("main_controller_element"),O.classList.add("synthui_button"),this.locale.bindObjectProperty(O,"title",e4+"interpolation.description");{let U=document.createElement("option");U.value="0",this.locale.bindObjectProperty(U,"textContent",e4+"interpolation.linear"),O.appendChild(U);let W0=document.createElement("option");W0.value="1",this.locale.bindObjectProperty(W0,"textContent",e4+"interpolation.nearestNeighbor"),O.appendChild(W0);let _=document.createElement("option");_.value="2",_.selected=!0,this.locale.bindObjectProperty(_,"textContent",e4+"interpolation.cubic"),O.appendChild(_),O.onchange=()=>{this.synth.setInterpolationType(parseInt(O.value))}}let H=document.createElement("div");H.classList.add("synthui_controller"),this.uiDiv.appendChild(H);let P=document.createElement("button");this.locale.bindObjectProperty(P,"textContent",e4+"toggleButton.title"),this.locale.bindObjectProperty(P,"title",e4+"toggleButton.description"),P.classList.add("synthui_button"),P.onclick=()=>{this.hideOnDocClick=!1,this.toggleVisibility()},n.appendChild(this.volumeController.div),n.appendChild(this.panController.div),n.appendChild(this.transposeController.div),n.appendChild(i),n.appendChild(A),n.appendChild(c),n.appendChild(d),n.appendChild(p),n.appendChild(O),this.mainMeters=[this.volumeController,this.panController,this.transposeController,this.voiceMeter],this.mainButtons=[i,A,c,d,p,P,O],this.uiDiv.appendChild(this.voiceMeter.div),this.uiDiv.appendChild(P),H.appendChild(n),this.mainControllerDiv=H,this.mainControllerDiv.onclick=U=>U.stopPropagation(),document.addEventListener("click",()=>{if(!this.hideOnDocClick){this.hideOnDocClick=!0;return}this.effectsConfigWindow!==void 0&&(le(this.effectsConfigWindow),this.effectsConfigWindow=void 0),H.classList.remove("synthui_controller_show"),this.isShown=!1,this.hideControllers()})}function cw(){let n=this.uiDiv.getElementsByClassName("synthui_controller")[0];this.synth.eventHandler.addEvent("programchange","synthui-program-change",i=>{this.controllers[i.channel].preset.set(`${i.bank}:${i.program}`)}),this.synth.eventHandler.addEvent("allcontrollerreset","synthui-all-controller-reset",()=>{for(let i of this.controllers)i.pan.update(64),i.mod.update(0),i.chorus.update(0),i.pitchWheel.update(0),i.expression.update(127),i.volume.update(100),i.reverb.update(0),i.brightness.update(64)}),this.synth.eventHandler.addEvent("controllerchange","synthui-controller-change",i=>{let A=i.controllerNumber,c=i.channel,d=i.controllerValue,p=this.controllers[c];if(p!==void 0)switch(A){default:break;case $3.expressionController:p.expression.update(d);break;case $3.mainVolume:p.volume.update(d);break;case $3.pan:p.pan.update(d);break;case $3.modulationWheel:p.mod.update(d);break;case $3.chorusDepth:p.chorus.update(d);break;case $3.reverbDepth:p.reverb.update(d);break;case $3.brightness:p.brightness.update(d)}}),this.synth.eventHandler.addEvent("pitchwheel","synthui-pitch-wheel",i=>{let A=i.MSB<<7|i.LSB;this.controllers[i.channel].pitchWheel.update(A-8192)}),this.synth.eventHandler.addEvent("drumchange","synthui-drum-change",i=>{this.controllers[i.channel].drumsToggle.innerHTML=i.isDrumChannel?UE(32):PE(32),this.controllers[i.channel].preset.reload(i.isDrumChannel?this.percussionList:this.instrumentList)}),this.synth.eventHandler.addEvent("newchannel","synthui-new-channel",()=>{let i=this.createChannelController(this.controllers.length);this.controllers.push(i),n.appendChild(i.controller),this.hideControllers()})}var e4="locale.synthesizerController.",Jr=class{constructor(i,A,c){this.channelColors=i;let d=A;this.uiDiv=document.createElement("div"),this.uiDiv.classList.add("wrapper"),d.appendChild(this.uiDiv),this.uiDiv.style.visibility="visible",this.isShown=!1,this.animationId=-1,this.locale=c,this.hideOnDocClick=!0,this.effectsConfigWindow=void 0}connectKeyboard(i){this.keyboard=i}connectSynth(i){this.synth=i,this.getInstrumentList(),this.createMainSynthController(),this.createChannelControllers(),document.addEventListener("keydown",A=>{switch(A.key.toLowerCase()){case oi.synthesizerUIShow:A.preventDefault(),this.toggleVisibility();break;case oi.settingsShow:this.isShown=!0,this.toggleVisibility();break;case oi.blackMidiMode:A.preventDefault(),this.synth.highPerformanceMode=!this.synth.highPerformanceMode;break;case oi.midiPanic:A.preventDefault(),this.synth.stopAll(!0);break}}),this.locale.onLocaleChanged.push(()=>{this.voiceMeter.update(this.voiceMeter.currentValue,!0),this.volumeController.update(this.volumeController.currentValue,!0),this.panController.update(this.panController.currentValue,!0),this.panController.update(this.panController.currentValue,!0),this.transposeController.update(this.transposeController.currentValue,!0);for(let A of this.controllers)A.voiceMeter.update(A.voiceMeter.currentValue,!0),A.pitchWheel.update(A.pitchWheel.currentValue,!0),A.pan.update(A.pan.currentValue,!0),A.volume.update(A.volume.currentValue,!0),A.expression.update(A.expression.currentValue,!0),A.mod.update(A.mod.currentValue,!0),A.chorus.update(A.chorus.currentValue,!0),A.reverb.update(A.reverb.currentValue,!0),A.brightness.update(A.brightness.currentValue,!0),A.transpose.update(A.transpose.currentValue,!0)})}toggleVisibility(){this.animationId!==-1&&clearTimeout(this.animationId);let i=document.getElementsByClassName("synthui_controller")[0];this.isShown=!this.isShown,this.isShown?(i.style.display="block",document.getElementsByClassName("top_part")[0].classList.add("synthui_shown"),this.showControllers(),setTimeout(()=>{i.classList.add("synthui_controller_show")},75)):(this.effectsConfigWindow!==void 0&&(le(this.effectsConfigWindow),this.effectsConfigWindow=void 0),document.getElementsByClassName("top_part")[0].classList.remove("synthui_shown"),this.hideControllers(),i.classList.remove("synthui_controller_show"),this.animationId=setTimeout(()=>{i.style.display="none"},200))}updateVoicesAmount(){this.voiceMeter.update(this.synth.voicesAmount),this.controllers.forEach((i,A)=>{let c=this.synth.channelProperties[A].voicesAmount;i.voiceMeter.update(c),c<1&&this.synth.voicesAmount>0?i.controller.classList.add("no_voices"):i.controller.classList.remove("no_voices")})}getInstrumentList(){this.synth.eventHandler.addEvent("presetlistchange","synthui-preset-list-change",i=>{let A=i;this.presetList=A,this.instrumentList=A.filter(c=>c.bank!==128).sort((c,d)=>c.program===d.program?c.bank-d.bank:c.program-d.program).map(c=>({name:c.presetName,bank:c.bank,program:c.program})),this.percussionList=A.filter(c=>c.bank===128).sort((c,d)=>c.program-d.program).map(c=>({name:c.presetName,bank:c.bank,program:c.program})),this.percussionList.length===0?this.percussionList=this.instrumentList:this.instrumentList.length===0&&(this.instrumentList=this.percussionList),this.controllers.forEach((c,d)=>{let p=this.synth.channelProperties[d].isDrum?this.percussionList:this.instrumentList;c.preset.reload(p),c.preset.set(`${p[0].bank}:${p[0].program}`)})})}};Jr.prototype.hideControllers=Xy;Jr.prototype.showControllers=ew;Jr.prototype.toggleDarkMode=tw;Jr.prototype.createChannelController=rw;Jr.prototype.createChannelControllers=nw;Jr.prototype.createMainSynthController=lw;Jr.prototype.setEventListeners=cw;var Np=null,qE=class{constructor(){}async createMIDIDeviceHandler(){if(this.selectedInput=Np,this.selectedOutput=Np,navigator.requestMIDIAccess)try{let i=await navigator.requestMIDIAccess({sysex:!0,software:!0});return this.inputs=i.inputs,this.outputs=i.outputs,_5("%cMIDI handler created!",C1.recognized),!0}catch(i){return I9("Could not get MIDI Devices:",i),this.inputs=[],this.outputs=[],!1}else return I9("Web MIDI Api not supported!",C1.unrecognized),this.inputs=[],this.outputs=[],!1}connectMIDIOutputToSeq(i,A){this.selectedOutput=i,A.connectMidiOutput(i),_5(`%cPlaying MIDI to %c${i.name}`,C1.info,C1.recognized)}disconnectSeqFromMIDI(i){this.selectedOutput=Np,i.connectMidiOutput(void 0),_5("%cDisconnected from MIDI out.",C1.info)}connectDeviceToSynth(i,A){this.selectedInput=i,i.onmidimessage=c=>{A.sendMessage(c.data)},_5(`%cListening for messages on %c${i.name}`,C1.info,C1.recognized)}disconnectDeviceFromSynth(i){this.selectedInput=Np,i.onmidimessage=void 0,_5(`%cDisconnected from %c${i.name}`,C1.info,C1.recognized)}disconnectAllDevicesFromSynth(){this.selectedInput=Np;for(let i of this.inputs)i[1].onmidimessage=void 0}};var HE=class{constructor(i){window.addEventListener("message",A=>{if(typeof A.data!="string")return;let c=A.data.split(",");if(c[0]!=="midi")return;c.shift();let d=c.map(p=>parseInt(p,16));i.sendMessage(d)}),_5("%cWeb MIDI Link handler created!",C1.recognized)}};var Ha="midi range";function gw(n,i,A){let c=0,d=this.htmlControls.keyboard,p=[],O=[],H,P=e0=>{let i0=O[e0],a1=i0.drum?128:i0.bank,_1=H.find(f1=>f1.bank===a1&&f1.program===i0.program);_1||(_1=H[0]),p[e0].textContent=": "+_1.presetName},U=()=>{if(H)for(let e0=0;e0{let e0=document.createElement("option");e0.value=c.toString();let i0=document.createElement("p");this.locale.bindObjectProperty(i0,"textContent","locale.settings.keyboardSettings.selectedChannel.channelOption",[c+1]);let a1=document.createElement("p");a1.textContent=": not ",p.push(a1),O.push({program:0,bank:0,drum:c%16===9}),U(),e0.appendChild(i0),e0.appendChild(a1),e0.style.background=i.channelColors[c%i.channelColors.length],e0.style.color="rgb(0, 0, 0)",d.channelSelector.appendChild(e0),c++},_=this.synthui.synth;_.eventHandler.addEvent("presetlistchange","settings-preset-list-change",e0=>{H=e0,U()}),_.eventHandler.addEvent("newchannel","settings-new-channel",()=>{W0()}),_.eventHandler.addEvent("programchange","settings-program-change",e0=>{let i0=O[e0.channel];i0.bank=e0.bank,i0.program=e0.program,P(e0.channel)}),_.eventHandler.addEvent("drumchange","settings-drum-change",e0=>{O[e0.channel].drum=e0.isDrumChannel,P(e0.channel)});for(let e0=0;e0{n.selectChannel(parseInt(d.channelSelector.value))},d.sizeSelector.onchange=()=>{if(this.musicMode.visible){this.musicMode.setVisibility(!1,document.getElementById("keyboard_canvas_wrapper")),setTimeout(()=>{d.sizeSelector.value===Ha?(this.autoKeyRange=!0,this?.sequi?.seq&&(n.keyRange=this.sequi.seq.midiData.keyRange,A.keyRange=this.sequi.seq.midiData.keyRange)):(this.autoKeyRange=!1,n.keyRange=this.keyboardSizes[d.sizeSelector.value],A.keyRange=this.keyboardSizes[d.sizeSelector.value]),this._saveSettings()},600);return}d.sizeSelector.value===Ha?(this.autoKeyRange=!0,this?.sequi?.seq&&(n.keyRange=this.sequi.seq.midiData.keyRange,A.keyRange=this.sequi.seq.midiData.keyRange)):(this.autoKeyRange=!1,n.keyRange=this.keyboardSizes[d.sizeSelector.value],A.keyRange=this.keyboardSizes[d.sizeSelector.value]),this._saveSettings()},this.addSequencer=e0=>{e0.addOnSongChangeEvent(i0=>{this.autoKeyRange&&(n.keyRange=i0.keyRange,A.keyRange=i0.keyRange),i0.RMIDInfo?.IPIC!==void 0&&this.musicMode.visible===!1&&this.toggleMusicPlayerMode().then()},"settings-keyboard-handler-song-change")},i.synth.eventHandler.addEvent("newchannel","settings-new-channel",()=>{W0()}),i.synth.eventHandler.addEvent("programchange","settings-keyboard-program-change",e0=>{e0.userCalled&&(n.selectChannel(e0.channel),d.channelSelector.value=e0.channel)}),i.synth.eventHandler.addEvent("mutechannel","settings-keuboard-mute-channel",e0=>{if(e0.isMuted&&e0.channel===n.channel){let i0=0;for(;i.synth.channelProperties[i0].isMuted;)i0++;i0{if(this.musicMode.visible){this.musicMode.setVisibility(!1,document.getElementById("keyboard_canvas_wrapper")),setTimeout(()=>{n.toggleMode(),this._saveSettings()},600);return}n.toggleMode(),this._saveSettings()},d.showSelector.onclick=()=>{n.shown=!n.shown,this._saveSettings()}}var uw=`

@@ -212,7 +212,7 @@ var vE=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(i,A)=>(

-`;async function dw(){let n=await window.savedSettings;if(!n.interface)return;_5("Loading saved settings...",n);let i=this.htmlControls.renderer,A=this.renderer,c=n.renderer;A.noteFallingTimeMs=c.noteFallingTimeMs,i.noteTimeSlider.value=c.noteFallingTimeMs,i.noteTimeSlider.dispatchEvent(new Event("input")),Fn(i.noteTimeSlider).innerText=`${c.noteFallingTimeMs}ms`,i.analyserThicknessSlider.value=c.waveformThickness,i.analyserThicknessSlider.dispatchEvent(new Event("input")),A.lineThickness=c.waveformThickness,Fn(i.analyserThicknessSlider).innerText=`${c.waveformThickness}px`;let d=c.sampleSize;i.analyserFftSlider.value=Math.log2(d),i.analyserFftSlider.dispatchEvent(new Event("input")),A.normalAnalyserFft=d,A.drumAnalyserFft=Math.pow(2,Math.min(15,Math.log2(d)+2)),A.updateFftSize(),Fn(i.analyserFftSlider).innerText=`${d}`,A.waveMultiplier=c.amplifier,i.waveMultiplierSlizer.value=c.amplifier,i.waveMultiplierSlizer.dispatchEvent(new Event("input")),Fn(i.waveMultiplierSlizer).innerText=c.amplifier.toString();let p=this.htmlControls.renderer;A.renderAnalysers=c.renderWaveforms,p.analyserToggler.checked=c.renderWaveforms,A.renderNotes=c.renderNotes,p.noteToggler.checked=c.renderNotes,A.drawActiveNotes=c.drawActiveNotes,p.activeNoteToggler.checked=c.drawActiveNotes,A.showVisualPitch=c.showVisualPitch,p.visualPitchToggler.checked=c.showVisualPitch,A.stabilizeWaveforms=c.stabilizeWaveforms,p.stabilizeWaveformsToggler.checked=c.stabilizeWaveforms,A.keyRange=c.keyRange;let U=this.htmlControls.keyboard,H=this.midiKeyboard,O=n.keyboard;H.setKeyRange(O.keyRange,!1),O.autoRange?(U.sizeSelector.value=Ha,this.autoKeyRange=!0):(this.autoKeyRange=!1,U.sizeSelector.value=Object.keys(this.keyboardSizes).find(P=>this.keyboardSizes[P].min===O.keyRange.min&&this.keyboardSizes[P].max===O.keyRange.max)),O.mode==="dark"&&(H.toggleMode(!1),this.htmlControls.keyboard.modeSelector.checked=!0),O.show===!1&&(H.shown=!1,this.htmlControls.keyboard.showSelector.checked=!1),this.locale.changeGlobalLocale(n.interface.language,!0),setTimeout(()=>{this.htmlControls.interface.languageSelector.value=n.interface.language},100),n.interface.mode==="light"?(this._toggleDarkMode(),this.htmlControls.interface.themeSelector.checked=!1):this.htmlControls.interface.themeSelector.checked=!0,this.htmlControls.interface.layoutSelector.value=n.interface.layout||"downwards",this._changeLayout(n.interface.layout||"downwards")}function hw(){window.saveSettings&&window.saveSettings(this._serializeSettings())}function fw(){return{renderer:{noteFallingTimeMs:this.renderer.noteFallingTimeMs,waveformThickness:this.renderer.lineThickness,sampleSize:this.renderer.normalAnalyserFft,amplifier:this.renderer.waveMultiplier,renderWaveforms:this.renderer.renderAnalysers,renderNotes:this.renderer.renderNotes,drawActiveNotes:this.renderer.drawActiveNotes,showVisualPitch:this.renderer.showVisualPitch,stabilizeWaveforms:this.renderer.stabilizeWaveforms,keyRange:this.renderer.keyRange},keyboard:{selectedChannel:this.midiKeyboard.channel,keyRange:this.midiKeyboard.keyRange,mode:this.midiKeyboard.mode,autoRange:this.htmlControls.keyboard.sizeSelector.value===Ha,show:this.htmlControls.keyboard.showSelector.checked===!0},midi:{input:this.midiDeviceHandler.selectedInput===null?null:this.midiDeviceHandler.selectedInput.name,output:this.midiDeviceHandler.selectedOutput===null?null:this.midiDeviceHandler.selectedOutput.name},interface:{mode:this.mode,language:this.htmlControls.interface.languageSelector.value,layout:this.htmlControls.interface.layoutSelector.value}}}function Iw(){let n=this.htmlControls.interface.themeSelector;n.onclick=()=>{this._toggleDarkMode(),this._saveSettings()};let i=this.htmlControls.interface.languageSelector;for(let[c,d]of Object.entries(this.locales)){let p=document.createElement("option");p.value=c,p.textContent=d.localeName,i.appendChild(p)}i.onchange=()=>{if(i.value==="help-translate"){window.open("https://github.com/spessasus/SpessaSynth/blob/master/src/website/js/locale/locale_files/README.md"),i.value=this.locale.localeCode;return}this.locale.changeGlobalLocale(i.value),this._saveSettings()};let A=this.htmlControls.interface.layoutSelector;A.onchange=()=>{this._changeLayout(A.value),this._saveSettings(),A.blur()}}function mw(n){let i=document.getElementById("keyboard_canvas_wrapper"),A=document.getElementById("note_canvas"),c=document.getElementById("keyboard");switch(n){case"downwards":i.classList.remove("upwards"),i.classList.remove("left_to_right"),i.classList.remove("right_to_left"),A.classList.remove("sideways"),c.classList.remove("sideways"),this.renderer.direction="down",this.renderer.sideways=!1;break;case"upwards":i.classList.add("upwards"),i.classList.remove("left_to_right"),i.classList.remove("right_to_left"),A.classList.remove("sideways"),c.classList.remove("sideways"),this.renderer.direction="up",this.renderer.sideways=!1;break;case"left":i.classList.remove("upwards"),i.classList.add("left_to_right"),i.classList.remove("right_to_left"),A.classList.add("sideways"),c.classList.add("sideways"),this.renderer.direction="up",this.renderer.sideways=!0;break;case"right":i.classList.remove("upwards"),i.classList.remove("left_to_right"),i.classList.add("right_to_left"),A.classList.add("sideways"),c.classList.add("sideways"),this.renderer.direction="down",this.renderer.sideways=!0}}var YE={start:"#101010",end:"#212121"},VE={start:"#bbb",end:"#f0f0f0"},pw="#eee",Ew="#333",JE={start:"#222",end:"#333"},zE={start:"#ccc",end:"#fff"},Tn=.2;function Cw(){this.mode==="dark"?(this.mode="light",this.renderer.drawActiveNotes=!1):(this.renderer.drawActiveNotes=!0,this.mode="dark"),this.renderer.toggleDarkMode(),this.synthui.toggleDarkMode(),this.sequi.toggleDarkMode(),this.musicMode.toggleDarkMode(),document.getElementsByClassName("spessasynth_main")[0].classList.toggle("light_mode"),document.getElementsByClassName("top_part")[0].classList.toggle("top_part_light"),this.mainDiv.classList.toggle("settings_menu_light");let n=document.styleSheets[0].cssRules;for(let i of n)if(i.selectorText==="*"){this.mode==="dark"?(Nn(Ew,pw,Tn,i,"--font-color"),Nn(zE.start,JE.start,Tn,i,"--top-buttons-color-start"),Nn(zE.end,JE.end,Tn,i,"--top-buttons-color-end"),Nn(VE.start,YE.start,Tn,i,"--top-color-start"),Nn(VE.end,YE.end,Tn,i,"--top-color-end")):(Nn(pw,Ew,Tn,i,"--font-color"),Nn(JE.start,zE.start,Tn,i,"--top-buttons-color-start"),Nn(JE.end,zE.end,Tn,i,"--top-buttons-color-end"),Nn(YE.start,VE.start,Tn,i,"--top-color-start"),Nn(YE.end,VE.end,Tn,i,"--top-color-end"));break}document.body.style.background=this.mode==="dark"?"black":"white"}var Eu={};function Nn(n,i,A,c,d){Eu[d]&&(clearInterval(Eu[d]),Eu[d]=void 0);function p(_){_.length===4&&(_=`#${_[1]}${_[1]}${_[2]}${_[2]}${_[3]}${_[3]}`);let e0=parseInt(_.slice(1),16);return{r:e0>>16&255,g:e0>>8&255,b:e0&255}}function U(_,e0,i0){return _+(e0-_)*i0}let H=p(n),O=p(i),P=performance.now()/1e3;function W0(){let e0=performance.now()/1e3-P,i0=Math.min(e0/A,1),a1=Math.round(U(H.r,O.r,i0)),_1=Math.round(U(H.g,O.g,i0)),f1=Math.round(U(H.b,O.b,i0));c.style.setProperty(d,`rgb(${a1}, ${_1}, ${f1})`),i0>=1&&(clearInterval(Eu[d]),Eu[d]=void 0)}Eu[d]=setInterval(W0,1e3/60)}function Bw(n){let i=this.htmlControls.renderer;i.noteTimeSlider.addEventListener("input",()=>{n.noteFallingTimeMs=i.noteTimeSlider.value,Fn(i.noteTimeSlider).innerText=`${i.noteTimeSlider.value}ms`}),i.noteTimeSlider.onchange=()=>{this._saveSettings()},i.analyserThicknessSlider.addEventListener("input",()=>{n.lineThickness=parseInt(i.analyserThicknessSlider.value),Fn(i.analyserThicknessSlider).innerText=`${i.analyserThicknessSlider.value}px`}),i.analyserThicknessSlider.onchange=()=>{this._saveSettings()},i.analyserFftSlider.addEventListener("input",()=>{let A=Math.pow(2,parseInt(i.analyserFftSlider.value));n.normalAnalyserFft=A,n.drumAnalyserFft=Math.pow(2,Math.min(15,parseInt(i.analyserFftSlider.value)+2)),n.updateFftSize(),Fn(i.analyserFftSlider).innerText=`${A}`}),i.analyserFftSlider.onchange=()=>{this._saveSettings()},i.waveMultiplierSlizer.addEventListener("input",()=>{n.waveMultiplier=parseInt(i.waveMultiplierSlizer.value),Fn(i.waveMultiplierSlizer).innerText=i.waveMultiplierSlizer.value}),i.waveMultiplierSlizer.onchange=()=>{this._saveSettings()},i.analyserToggler.onclick=()=>{n.renderAnalysers=!n.renderAnalysers,this._saveSettings()},i.noteToggler.onclick=()=>{n.renderNotes=!n.renderNotes,this._saveSettings()},i.activeNoteToggler.onclick=()=>{n.drawActiveNotes=!n.drawActiveNotes,this._saveSettings()},i.visualPitchToggler.onclick=()=>{n.showVisualPitch=!n.showVisualPitch,this._saveSettings()},i.stabilizeWaveformsToggler.onclick=()=>{n.stabilizeWaveforms=!n.stabilizeWaveforms,this._saveSettings()}}function Qw(n,i,A){n.createMIDIDeviceHandler().then(c=>{c?(this._createMidiInputHandler(n,A.synth),this._createMidiOutputHandler(n,i)):(F7||qe(this.locale.getLocaleString("locale.warnings.warning"),[{type:"text",textContent:this.locale.getLocaleString("locale.warnings.noMidiSupport")}]),document.getElementById("midi_settings").style.display="none")})}function yw(n,i){if(n.inputs.length<1)return;let A=this.htmlControls.midi.inputSelector;for(let c of n.inputs){let d=document.createElement("option");d.value=c[0],d.innerText=c[1].name,A.appendChild(d)}A.onchange=()=>{A.value==="-1"?n.disconnectAllDevicesFromSynth():n.connectDeviceToSynth(n.inputs.get(A.value),i),this._saveSettings()}}function ww(n,i){if(!n.outputs){setTimeout(()=>{this._createMidiOutputHandler(n,i)},1e3);return}if(n.outputs.length<1)return;let A=this.htmlControls.midi.outputSelector;for(let c of n.outputs){let d=document.createElement("option");d.value=c[0],d.innerText=c[1].name,A.appendChild(d)}A.onchange=()=>{i.seq&&(A.value==="-1"?n.disconnectSeqFromMIDI(i.seq):n.connectMIDIOutputToSeq(n.outputs.get(A.value),i.seq),this._saveSettings())}}var vw={title:"Renderer settings",noteFallingTime:{title:"Note falling time (miliseconds)",description:"How fast the notes fall (visually)"},waveformThickness:{title:"Waveform line thickness (px)",description:"How thick the waveform lines are"},waveformSampleSize:{title:"Waveform sample size",description:"How detailed the waveforms are (Note: high values might impact performance)"},waveformAmplifier:{title:"Waveform amplifier",description:"How vibrant the waveforms are"},toggleWaveformsRendering:{title:"Enable waveforms rendering",description:"Enable rendering the channel waveforms (colorful lines showing audio)"},toggleNotesRendering:{title:"Enable notes rendering",description:"Enable rendering of the falling notes when playing a MIDI file"},toggleDrawingActiveNotes:{title:"Enable drawing active notes",description:"Enable notes lighting up and glowing when they get pressed"},toggleDrawingVisualPitch:{title:"Enable drawing visual pitch",description:"Enable notes sliding left or right when the pitch wheel is applied"},toggleStabilizeWaveforms:{title:"Stabilize waveforms",description:"Enable oscilloscope triggering"}};var kw={title:"MIDI Keyboard settings",selectedChannel:{title:"Selected channel",description:"The channel keyboard sends messages to",channelOption:"Channel {0}"},keyboardSize:{title:"Keyboard size",description:"The range of keys shown on the keyboard. Adjusts the MIDI note size accordingly",full:"128 keys (full)",piano:"88 keys (piano)",fiveOctaves:"5 octaves",useSongKeyRange:"Use song's key range",twoOctaves:"Two octaves"},toggleTheme:{title:"Use dark theme",description:"Use the dark MIDI keyboard theme"},show:{title:"Show",description:"Show/hide MIDI keyboard"}};var Sw={title:"MIDI settings",midiInput:{title:"MIDI input",description:"The port to listen on for MIDI messages",disabled:"Disabled"},midiOutput:{title:"MIDI output",description:"The port to play the MIDI file to",disabled:"Use SpessaSynth"}};var bw={toggleButton:"Settings",mainTitle:"Program settings",rendererSettings:vw,keyboardSettings:kw,midiSettings:Sw,interfaceSettings:{title:"Interface settings",toggleTheme:{title:"Use dark theme",description:"Enable the dark theme for the interface"},selectLanguage:{title:"Language",description:"Change the program language",helpTranslate:"Translate SpessaSynth"},layoutDirection:{title:"Layout direction",description:"The layout direction of the renderer and keyboard",values:{downwards:"Downwards",upwards:"Upwards",leftToRight:"Left to right",rightToLeft:"Right to left"}}}};var Dw={toggleButton:{title:"Toggle music player mode",description:"Toggle the simplified UI version, hiding the keyboard and note visualizations"},currentlyPlaying:"Currently playing:",nothingPlaying:"Nothing is playing",nothingPlayingCopyright:"Upload a MIDI!"};var _w={voiceMeter:{title:"Voices: ",description:"The current amount of voices playing on channel {0}"},pitchBendMeter:{title:"Pitch: ",description:"The current pitch bend applied to channel {0}"},panMeter:{title:"Pan: ",description:"The current stereo panning applied to channel {0} (right-click to lock)"},expressionMeter:{title:"Expression: ",description:"The current expression (loudness) of channel {0} (right-click to lock)"},volumeMeter:{title:"Volume: ",description:"The current volume of channel {0} (right-click to lock)"},modulationWheelMeter:{title:"Mod wheel: ",description:"The current modulation (usually vibrato) depth of channel {0} (right-click to lock)"},chorusMeter:{title:"Chorus: ",description:"The current level of chorus effect applied to channel {0} (right-click to lock)"},reverbMeter:{title:"Reverb: ",description:"The current level of reverb effect applied to channel {0} (right-click to lock)"},filterMeter:{title:"Filter: ",description:"The current level of low-pass filter cutoff applied to channel {0} (right-click to lock)"},transposeMeter:{title:"Transpose: ",description:"The current transposition (key shift) of channel {0}"},presetSelector:{description:"Change the patch (instrument) channel {0} is using",selectionPrompt:"Change instrument for channel {0}",searchPrompt:"Search..."},presetReset:{description:"Unlock channel {0} to allow program changes"},soloButton:{description:"Solo on channel {0}"},muteButton:{description:"Mute/unmute channel {0}"},drumToggleButton:{description:"Toggle drums on channel {0}"}};var xw={button:{title:"Effects config",description:"Configure the chorus and reverb effects and the custom vibrato"},reverbConfig:{title:"Reverb configuration",description:"Configure the reverb processor",impulseResponse:{title:"Impulse response",description:"Select impulse response for the convolver reverb"}},chorusConfig:{title:"Chorus configuration",description:"Configure the chorus processor",nodesAmount:{title:"Nodes amount",description:"The amount of delay nodes (for each stereo channel) to use"},defaultDelay:{title:"Delay (s)",description:"The delay time for the first node in seconds"},delayVariation:{title:"Delay increment (s)",description:"The amount to increment each delay node after the first one in seconds"},stereoDifference:{title:"Stereo difference (s)",description:"The difference of delays between two channels (added to the left channel and subtracted from the right)"},oscillatorFrequency:{title:"LFO frequency (Hz)",description:"The first delay node's LFO frequency, in Hz. The LFO controls delay time."},frequencyVariation:{title:"LFO increment (Hz)",description:"The amount to increment each LFO's frequency after the first one, in Hz"},oscillatorGain:{title:"LFO gain (s)",description:"How much will LFO alter the delay in delay nodes, in seconds"},apply:{title:"Apply",description:"Apply the selected settings"}}};var Lw={button:{title:"Key Modifiers",description:"Modify individual key parameters"},mainTitle:"Key Modification editor",detailedDescription:`This menu allows you to modify a MIDI note on a given channel. +`;async function dw(){let n=await window.savedSettings;if(!n.interface)return;_5("Loading saved settings...",n);let i=this.htmlControls.renderer,A=this.renderer,c=n.renderer;A.noteFallingTimeMs=c.noteFallingTimeMs,i.noteTimeSlider.value=c.noteFallingTimeMs,i.noteTimeSlider.dispatchEvent(new Event("input")),Fn(i.noteTimeSlider).innerText=`${c.noteFallingTimeMs}ms`,i.analyserThicknessSlider.value=c.waveformThickness,i.analyserThicknessSlider.dispatchEvent(new Event("input")),A.lineThickness=c.waveformThickness,Fn(i.analyserThicknessSlider).innerText=`${c.waveformThickness}px`;let d=c.sampleSize;i.analyserFftSlider.value=Math.log2(d),i.analyserFftSlider.dispatchEvent(new Event("input")),A.normalAnalyserFft=d,A.drumAnalyserFft=Math.pow(2,Math.min(15,Math.log2(d)+2)),A.updateFftSize(),Fn(i.analyserFftSlider).innerText=`${d}`,A.waveMultiplier=c.amplifier,i.waveMultiplierSlizer.value=c.amplifier,i.waveMultiplierSlizer.dispatchEvent(new Event("input")),Fn(i.waveMultiplierSlizer).innerText=c.amplifier.toString();let p=this.htmlControls.renderer;A.renderAnalysers=c.renderWaveforms,p.analyserToggler.checked=c.renderWaveforms,A.renderNotes=c.renderNotes,p.noteToggler.checked=c.renderNotes,A.drawActiveNotes=c.drawActiveNotes,p.activeNoteToggler.checked=c.drawActiveNotes,A.showVisualPitch=c.showVisualPitch,p.visualPitchToggler.checked=c.showVisualPitch,A.stabilizeWaveforms=c.stabilizeWaveforms,p.stabilizeWaveformsToggler.checked=c.stabilizeWaveforms,A.keyRange=c.keyRange;let O=this.htmlControls.keyboard,H=this.midiKeyboard,P=n.keyboard;H.setKeyRange(P.keyRange,!1),P.autoRange?(O.sizeSelector.value=Ha,this.autoKeyRange=!0):(this.autoKeyRange=!1,O.sizeSelector.value=Object.keys(this.keyboardSizes).find(U=>this.keyboardSizes[U].min===P.keyRange.min&&this.keyboardSizes[U].max===P.keyRange.max)),P.mode==="dark"&&(H.toggleMode(!1),this.htmlControls.keyboard.modeSelector.checked=!0),P.show===!1&&(H.shown=!1,this.htmlControls.keyboard.showSelector.checked=!1),this.locale.changeGlobalLocale(n.interface.language,!0),setTimeout(()=>{this.htmlControls.interface.languageSelector.value=n.interface.language},100),n.interface.mode==="light"?(this._toggleDarkMode(),this.htmlControls.interface.themeSelector.checked=!1):this.htmlControls.interface.themeSelector.checked=!0,this.htmlControls.interface.layoutSelector.value=n.interface.layout||"downwards",this._changeLayout(n.interface.layout||"downwards")}function hw(){window.saveSettings&&window.saveSettings(this._serializeSettings())}function fw(){return{renderer:{noteFallingTimeMs:this.renderer.noteFallingTimeMs,waveformThickness:this.renderer.lineThickness,sampleSize:this.renderer.normalAnalyserFft,amplifier:this.renderer.waveMultiplier,renderWaveforms:this.renderer.renderAnalysers,renderNotes:this.renderer.renderNotes,drawActiveNotes:this.renderer.drawActiveNotes,showVisualPitch:this.renderer.showVisualPitch,stabilizeWaveforms:this.renderer.stabilizeWaveforms,keyRange:this.renderer.keyRange},keyboard:{selectedChannel:this.midiKeyboard.channel,keyRange:this.midiKeyboard.keyRange,mode:this.midiKeyboard.mode,autoRange:this.htmlControls.keyboard.sizeSelector.value===Ha,show:this.htmlControls.keyboard.showSelector.checked===!0},midi:{input:this.midiDeviceHandler.selectedInput===null?null:this.midiDeviceHandler.selectedInput.name,output:this.midiDeviceHandler.selectedOutput===null?null:this.midiDeviceHandler.selectedOutput.name},interface:{mode:this.mode,language:this.htmlControls.interface.languageSelector.value,layout:this.htmlControls.interface.layoutSelector.value}}}function Iw(){let n=this.htmlControls.interface.themeSelector;n.onclick=()=>{this._toggleDarkMode(),this._saveSettings()};let i=this.htmlControls.interface.languageSelector;for(let[c,d]of Object.entries(this.locales)){let p=document.createElement("option");p.value=c,p.textContent=d.localeName,i.appendChild(p)}i.onchange=()=>{if(i.value==="help-translate"){window.open("https://github.com/spessasus/SpessaSynth/blob/master/src/website/js/locale/locale_files/README.md"),i.value=this.locale.localeCode;return}this.locale.changeGlobalLocale(i.value),this._saveSettings()};let A=this.htmlControls.interface.layoutSelector;A.onchange=()=>{this._changeLayout(A.value),this._saveSettings(),A.blur()}}function mw(n){let i=document.getElementById("keyboard_canvas_wrapper"),A=document.getElementById("note_canvas"),c=document.getElementById("keyboard");switch(n){case"downwards":i.classList.remove("upwards"),i.classList.remove("left_to_right"),i.classList.remove("right_to_left"),A.classList.remove("sideways"),c.classList.remove("sideways"),this.renderer.direction="down",this.renderer.sideways=!1;break;case"upwards":i.classList.add("upwards"),i.classList.remove("left_to_right"),i.classList.remove("right_to_left"),A.classList.remove("sideways"),c.classList.remove("sideways"),this.renderer.direction="up",this.renderer.sideways=!1;break;case"left":i.classList.remove("upwards"),i.classList.add("left_to_right"),i.classList.remove("right_to_left"),A.classList.add("sideways"),c.classList.add("sideways"),this.renderer.direction="up",this.renderer.sideways=!0;break;case"right":i.classList.remove("upwards"),i.classList.remove("left_to_right"),i.classList.add("right_to_left"),A.classList.add("sideways"),c.classList.add("sideways"),this.renderer.direction="down",this.renderer.sideways=!0}}var YE={start:"#101010",end:"#212121"},VE={start:"#bbb",end:"#f0f0f0"},pw="#eee",Ew="#333",JE={start:"#222",end:"#333"},zE={start:"#ccc",end:"#fff"},Tn=.2;function Cw(){this.mode==="dark"?(this.mode="light",this.renderer.drawActiveNotes=!1):(this.renderer.drawActiveNotes=!0,this.mode="dark"),this.renderer.toggleDarkMode(),this.synthui.toggleDarkMode(),this.sequi.toggleDarkMode(),this.musicMode.toggleDarkMode(),document.getElementsByClassName("spessasynth_main")[0].classList.toggle("light_mode"),document.getElementsByClassName("top_part")[0].classList.toggle("top_part_light"),this.mainDiv.classList.toggle("settings_menu_light");let n=document.styleSheets[0].cssRules;for(let i of n)if(i.selectorText==="*"){this.mode==="dark"?(Nn(Ew,pw,Tn,i,"--font-color"),Nn(zE.start,JE.start,Tn,i,"--top-buttons-color-start"),Nn(zE.end,JE.end,Tn,i,"--top-buttons-color-end"),Nn(VE.start,YE.start,Tn,i,"--top-color-start"),Nn(VE.end,YE.end,Tn,i,"--top-color-end")):(Nn(pw,Ew,Tn,i,"--font-color"),Nn(JE.start,zE.start,Tn,i,"--top-buttons-color-start"),Nn(JE.end,zE.end,Tn,i,"--top-buttons-color-end"),Nn(YE.start,VE.start,Tn,i,"--top-color-start"),Nn(YE.end,VE.end,Tn,i,"--top-color-end"));break}document.body.style.background=this.mode==="dark"?"black":"white"}var Eu={};function Nn(n,i,A,c,d){Eu[d]&&(clearInterval(Eu[d]),Eu[d]=void 0);function p(_){_.length===4&&(_=`#${_[1]}${_[1]}${_[2]}${_[2]}${_[3]}${_[3]}`);let e0=parseInt(_.slice(1),16);return{r:e0>>16&255,g:e0>>8&255,b:e0&255}}function O(_,e0,i0){return _+(e0-_)*i0}let H=p(n),P=p(i),U=performance.now()/1e3;function W0(){let e0=performance.now()/1e3-U,i0=Math.min(e0/A,1),a1=Math.round(O(H.r,P.r,i0)),_1=Math.round(O(H.g,P.g,i0)),f1=Math.round(O(H.b,P.b,i0));c.style.setProperty(d,`rgb(${a1}, ${_1}, ${f1})`),i0>=1&&(clearInterval(Eu[d]),Eu[d]=void 0)}Eu[d]=setInterval(W0,1e3/60)}function Bw(n){let i=this.htmlControls.renderer;i.noteTimeSlider.addEventListener("input",()=>{n.noteFallingTimeMs=i.noteTimeSlider.value,Fn(i.noteTimeSlider).innerText=`${i.noteTimeSlider.value}ms`}),i.noteTimeSlider.onchange=()=>{this._saveSettings()},i.analyserThicknessSlider.addEventListener("input",()=>{n.lineThickness=parseInt(i.analyserThicknessSlider.value),Fn(i.analyserThicknessSlider).innerText=`${i.analyserThicknessSlider.value}px`}),i.analyserThicknessSlider.onchange=()=>{this._saveSettings()},i.analyserFftSlider.addEventListener("input",()=>{let A=Math.pow(2,parseInt(i.analyserFftSlider.value));n.normalAnalyserFft=A,n.drumAnalyserFft=Math.pow(2,Math.min(15,parseInt(i.analyserFftSlider.value)+2)),n.updateFftSize(),Fn(i.analyserFftSlider).innerText=`${A}`}),i.analyserFftSlider.onchange=()=>{this._saveSettings()},i.waveMultiplierSlizer.addEventListener("input",()=>{n.waveMultiplier=parseInt(i.waveMultiplierSlizer.value),Fn(i.waveMultiplierSlizer).innerText=i.waveMultiplierSlizer.value}),i.waveMultiplierSlizer.onchange=()=>{this._saveSettings()},i.analyserToggler.onclick=()=>{n.renderAnalysers=!n.renderAnalysers,this._saveSettings()},i.noteToggler.onclick=()=>{n.renderNotes=!n.renderNotes,this._saveSettings()},i.activeNoteToggler.onclick=()=>{n.drawActiveNotes=!n.drawActiveNotes,this._saveSettings()},i.visualPitchToggler.onclick=()=>{n.showVisualPitch=!n.showVisualPitch,this._saveSettings()},i.stabilizeWaveformsToggler.onclick=()=>{n.stabilizeWaveforms=!n.stabilizeWaveforms,this._saveSettings()}}function Qw(n,i,A){n.createMIDIDeviceHandler().then(c=>{c?(this._createMidiInputHandler(n,A.synth),this._createMidiOutputHandler(n,i)):(F7||qe(this.locale.getLocaleString("locale.warnings.warning"),[{type:"text",textContent:this.locale.getLocaleString("locale.warnings.noMidiSupport")}]),document.getElementById("midi_settings").style.display="none")})}function yw(n,i){if(n.inputs.length<1)return;let A=this.htmlControls.midi.inputSelector;for(let c of n.inputs){let d=document.createElement("option");d.value=c[0],d.innerText=c[1].name,A.appendChild(d)}A.onchange=()=>{A.value==="-1"?n.disconnectAllDevicesFromSynth():n.connectDeviceToSynth(n.inputs.get(A.value),i),this._saveSettings()}}function ww(n,i){if(!n.outputs){setTimeout(()=>{this._createMidiOutputHandler(n,i)},1e3);return}if(n.outputs.length<1)return;let A=this.htmlControls.midi.outputSelector;for(let c of n.outputs){let d=document.createElement("option");d.value=c[0],d.innerText=c[1].name,A.appendChild(d)}A.onchange=()=>{i.seq&&(A.value==="-1"?n.disconnectSeqFromMIDI(i.seq):n.connectMIDIOutputToSeq(n.outputs.get(A.value),i.seq),this._saveSettings())}}var vw={title:"Renderer settings",noteFallingTime:{title:"Note falling time (miliseconds)",description:"How fast the notes fall (visually)"},waveformThickness:{title:"Waveform line thickness (px)",description:"How thick the waveform lines are"},waveformSampleSize:{title:"Waveform sample size",description:"How detailed the waveforms are (Note: high values might impact performance)"},waveformAmplifier:{title:"Waveform amplifier",description:"How vibrant the waveforms are"},toggleWaveformsRendering:{title:"Enable waveforms rendering",description:"Enable rendering the channel waveforms (colorful lines showing audio)"},toggleNotesRendering:{title:"Enable notes rendering",description:"Enable rendering of the falling notes when playing a MIDI file"},toggleDrawingActiveNotes:{title:"Enable drawing active notes",description:"Enable notes lighting up and glowing when they get pressed"},toggleDrawingVisualPitch:{title:"Enable drawing visual pitch",description:"Enable notes sliding left or right when the pitch wheel is applied"},toggleStabilizeWaveforms:{title:"Stabilize waveforms",description:"Enable oscilloscope triggering"}};var kw={title:"MIDI Keyboard settings",selectedChannel:{title:"Selected channel",description:"The channel keyboard sends messages to",channelOption:"Channel {0}"},keyboardSize:{title:"Keyboard size",description:"The range of keys shown on the keyboard. Adjusts the MIDI note size accordingly",full:"128 keys (full)",piano:"88 keys (piano)",fiveOctaves:"5 octaves",useSongKeyRange:"Use song's key range",twoOctaves:"Two octaves"},toggleTheme:{title:"Use dark theme",description:"Use the dark MIDI keyboard theme"},show:{title:"Show",description:"Show/hide MIDI keyboard"}};var Sw={title:"MIDI settings",midiInput:{title:"MIDI input",description:"The port to listen on for MIDI messages",disabled:"Disabled"},midiOutput:{title:"MIDI output",description:"The port to play the MIDI file to",disabled:"Use SpessaSynth"}};var bw={toggleButton:"Settings",mainTitle:"Program settings",rendererSettings:vw,keyboardSettings:kw,midiSettings:Sw,interfaceSettings:{title:"Interface settings",toggleTheme:{title:"Use dark theme",description:"Enable the dark theme for the interface"},selectLanguage:{title:"Language",description:"Change the program language",helpTranslate:"Translate SpessaSynth"},layoutDirection:{title:"Layout direction",description:"The layout direction of the renderer and keyboard",values:{downwards:"Downwards",upwards:"Upwards",leftToRight:"Left to right",rightToLeft:"Right to left"}}}};var Dw={toggleButton:{title:"Toggle music player mode",description:"Toggle the simplified UI version, hiding the keyboard and note visualizations"},currentlyPlaying:"Currently playing:",nothingPlaying:"Nothing is playing",nothingPlayingCopyright:"Upload a MIDI!"};var _w={voiceMeter:{title:"Voices: ",description:"The current amount of voices playing on channel {0}"},pitchBendMeter:{title:"Pitch: ",description:"The current pitch bend applied to channel {0}"},panMeter:{title:"Pan: ",description:"The current stereo panning applied to channel {0} (right-click to lock)"},expressionMeter:{title:"Expression: ",description:"The current expression (loudness) of channel {0} (right-click to lock)"},volumeMeter:{title:"Volume: ",description:"The current volume of channel {0} (right-click to lock)"},modulationWheelMeter:{title:"Mod wheel: ",description:"The current modulation (usually vibrato) depth of channel {0} (right-click to lock)"},chorusMeter:{title:"Chorus: ",description:"The current level of chorus effect applied to channel {0} (right-click to lock)"},reverbMeter:{title:"Reverb: ",description:"The current level of reverb effect applied to channel {0} (right-click to lock)"},filterMeter:{title:"Filter: ",description:"The current level of low-pass filter cutoff applied to channel {0} (right-click to lock)"},transposeMeter:{title:"Transpose: ",description:"The current transposition (key shift) of channel {0}"},presetSelector:{description:"Change the patch (instrument) channel {0} is using",selectionPrompt:"Change instrument for channel {0}",searchPrompt:"Search..."},presetReset:{description:"Unlock channel {0} to allow program changes"},soloButton:{description:"Solo on channel {0}"},muteButton:{description:"Mute/unmute channel {0}"},drumToggleButton:{description:"Toggle drums on channel {0}"}};var xw={button:{title:"Effects config",description:"Configure the chorus and reverb effects and the custom vibrato"},reverbConfig:{title:"Reverb configuration",description:"Configure the reverb processor",impulseResponse:{title:"Impulse response",description:"Select impulse response for the convolver reverb"}},chorusConfig:{title:"Chorus configuration",description:"Configure the chorus processor",nodesAmount:{title:"Nodes amount",description:"The amount of delay nodes (for each stereo channel) to use"},defaultDelay:{title:"Delay (s)",description:"The delay time for the first node in seconds"},delayVariation:{title:"Delay increment (s)",description:"The amount to increment each delay node after the first one in seconds"},stereoDifference:{title:"Stereo difference (s)",description:"The difference of delays between two channels (added to the left channel and subtracted from the right)"},oscillatorFrequency:{title:"LFO frequency (Hz)",description:"The first delay node's LFO frequency, in Hz. The LFO controls delay time."},frequencyVariation:{title:"LFO increment (Hz)",description:"The amount to increment each LFO's frequency after the first one, in Hz"},oscillatorGain:{title:"LFO gain (s)",description:"How much will LFO alter the delay in delay nodes, in seconds"},apply:{title:"Apply",description:"Apply the selected settings"}}};var Lw={button:{title:"Key Modifiers",description:"Modify individual key parameters"},mainTitle:"Key Modification editor",detailedDescription:`This menu allows you to modify a MIDI note on a given channel. Currently you can modify its velocity and assign a patch (instrument) it uses. This is especially useful for drums.`,prompt:"What would you like to do?",selectKey:{prompt:"Press the key you want to modify on the keyboard.",title:"Select key",change:"Change key"},selectedChannel:{title:"Selected channel",description:"The channel to which the key you want to modify belongs"},selectedKey:{title:"Selected key: {0}",description:"You have selected the MIDI note number {0}"},modifyKey:{title:"Modify a key",description:"Modify a single key on a given channel",velocity:{title:"Velocity override",description:"The velocity to use on this key, ignoring the MIDI velocity. Leave at -1 for unchanged"},preset:{title:"Preset override",description:"The preset to use on this key.",unchanged:"Unchanged"},apply:{title:"Apply",description:"Apply the selected modifier"}},removeModification:{title:"Remove modification",description:"Remove modification from a single key on a given channel",remove:{title:"Remove",description:"Remove this key modifier"}},resetModifications:{title:"Reset changes",description:"Clear and reset all key modifications from all channels",confirmation:{title:"Confirm your actions",description:"Are you sure you want to remove ALL modifications?"}}};var Mw={toggleButton:{title:"Synthesizer controller",description:"Show the synthesizer controller"},mainVoiceMeter:{title:"Voices: ",description:"The total amount of voices currently playing"},mainVolumeMeter:{title:"Volume: ",description:"The current master volume of the synthesizer"},mainPanMeter:{title:"Pan: ",description:"The current master stereo panning of the synthesizer"},mainTransposeMeter:{title:"Transpose: ",description:"Transposes the synthesizer (in semitones or keys)"},midiPanic:{title:"MIDI Panic",description:"Stops all voices immediately"},systemReset:{title:"System reset",description:"Resets all controllers to their default values"},blackMidiMode:{title:"Black MIDI mode",description:"Toggles the High Performance Mode, simplifying the look and killing the notes faster"},disableCustomVibrato:{title:"Disable custom vibrato",description:"Disables the custom (NRPN) Vibrato permamently. Reload the website to reenable it"},helpButton:{title:"Help",description:"Opens an external website with the usage guide"},interpolation:{description:"Select the synthesizer's interpolation method",linear:"Linear Interpolation",nearestNeighbor:"Nearest neighbor",cubic:"Cubic Interpolation"},channelController:_w,effectsConfig:xw,keyModifiers:Lw};var Rw={previousSong:"Previous song",nextSong:"Next song",loopThis:"Loop this song",playPause:"Play/pause",lyrics:{show:"Show lyrics",title:"Decoded text",noLyrics:"No lyrics available...",otherText:{title:"Other text"}}};var Fw={button:{title:"Save Audio",description:"Save the composition to various formats"},formats:{title:"Choose format",formats:{wav:{button:{title:"WAV audio (.wav)",description:"Export the song with modifications as a .wav audio file"},options:{title:"WAV export options",confirm:"Export",normalizeVolume:{title:"Normalize volume",description:"Keep the volume at the same level, no matter how loud or quiet the MIDI is. Recommended."},additionalTime:{title:"Additional time (s)",description:"Additional time at the end of the song to allow for the sound to fade. (seconds)"},separateChannels:{title:"Separate channels",description:"Save each channel as a separate file. Useful for things like oscilloscope viewers. Note that this disables reverb and chorus.",saving:{title:"Channel files",save:"Save channel {0}"}},loopCount:{title:"Loop count",description:"The amount of times to loop the song"}},exportMessage:{message:"Exporting WAV audio...",estimated:"Remaining:",convertWav:"Converting to wav..."}},midi:{button:{title:"MIDI (.mid)",description:"Export the MIDI file with the controller and instrument changes applied"}},soundfont:{button:{title:"SoundFont (.sf2)",description:"Export a SoundFont2 file"},options:{title:"SF export options",confirm:"Export",trim:{title:"Trim",description:"Export the soundfont trimmed to only use instruments and samples that the MIDI file uses"},compress:{title:"Compress",description:"Compress samples with lossy Ogg Vorbis compression if uncompressed. Significantly reduces the file size.If the soundfont was already compressed, it won't be uncompressed even if this option is disabled"},quality:{title:"Compression quality",description:"The quality of compression. Higher is better"}}},dls:{button:{title:"DLS (.dls) [EXPERIMENTAL]",description:"Export the SoundFont as DLS"},warning:{title:"DLS Export warning",message:"DLS export is limited and may produce broken files with large and complex SoundFonts.",details:"More info",confirm:"Export anyways"}},rmidi:{button:{title:"Embedded MIDI (.rmi)",description:"Export the modified MIDI with the embedded trimmed soundfont as a single file. Note that this format isn't widely supported"},progress:{title:"Exporting embeded MIDI...",loading:"Loading Soundfont and MIDI...",modifyingMIDI:"Modifying MIDI...",modifyingSoundfont:"Trimming Soundfont...",saving:"Saving RMIDI...",done:"Done!"},options:{title:"RMIDI export options",confirm:"Export",compress:{title:"Compress",description:"Compress the Soundfont with lossy Ogg Vorbis compression. Significantly reduces the file size. Recommended."},quality:{title:"Compression quality",description:"The quality of compression. Higher is better."},bankOffset:{title:"Bank offset",description:"The bank offset of the file. Value of 0 is recommended. Only change if you know what you're doing."},adjust:{title:"Adjust MIDI",description:"Adjusts the MIDI file to the SoundFont. Leave this on unless you know what you're doing."}}}},metadata:{songTitle:{title:"Title:",description:"The song's title"},album:{title:"Album:",description:"The song's album"},artist:{title:"Artist:",description:"The song's artist"},albumCover:{title:"Album cover:",description:"The song's album cover"},creationDate:{title:"Created:",description:"The song's creation date"},genre:{title:"Genre:",description:"The song's genre"},comment:{title:"Comment:",description:"The song's comment"},duration:{title:"Duration:",description:"The song's duration"}}}};var Tw={localeName:"English",titleMessage:"SpessaSynth: SoundFont2 Javascript Synthesizer",demoTitleMessage:"SpessaSynth: SoundFont2 Javascript Synthesizer Online Demo",synthInit:{genericLoading:"Loading...",loadingSoundfont:"Loading SoundFont...",loadingBundledSoundfont:"Loading bundled SoundFont...",startingSynthesizer:"Starting Synthesizer...",savingSoundfont:"Saving SoundFont for reuse...",noWebAudio:"Your browser does not support Web Audio.",done:"Ready!"},midiUploadButton:"Upload your MIDI files",exportAudio:Fw,yes:"Yes",no:"No",demoSoundfontUploadButton:"Upload the soundfont",demoGithubPage:"Project's page",demoSongButton:"Demo Song",credits:"Credits",dropPrompt:"Drop files here...",warnings:{outOfMemory:"Your browser ran out of memory. Consider using Firefox or SF3 soundfont instead. (see console for error).",noMidiSupport:"No MIDI ports detected, this functionality will be disabled.",chromeMobile:"SpessaSynth performs poorly on Chrome Mobile. Consider using Firefox Android instead.",warning:"Warning"},hideTopBar:{title:"Hide top bar",description:"Hide the top (title) bar to provide a more seamless experience"},convertDls:{title:"DLS Conversion",message:"Looks like you've uploaded a DLS file. Do you want to convert it to SF2?"},musicPlayerMode:Dw,settings:bw,synthesizerController:Mw,sequencerController:Rw};var Nw={title:"Ustawienia wizualizacji",noteFallingTime:{title:"Czas spadania nut (ms)",description:"Jak szybko spadaj\u0105 z g\xF3ry nuty (w milisekundach)"},waveformThickness:{title:"Grubo\u015B\u0107 lini fal (px)",description:"Jak grube s\u0105 linie fal d\u017Awi\u0119kowych"},waveformSampleSize:{title:"Rozmiar pr\xF3bki fali",description:"Jak szczeg\xF3\u0142owe s\u0105 linei fal d\u017Awi\u0119kowcyh (Uwaga: wysokie warto\u015Bci mog\u0105 pogorszy\u0107 wydajno\u015B\u0107)"},waveformAmplifier:{title:"Wzmacniasz fal",description:"Jak '\u017Cywe' s\u0105 fale. Kontroluje ich amplitud\u0119"},toggleWaveformsRendering:{title:"W\u0142\u0105cz rysowanie fal",description:"W\u0142\u0105cz rysowanie fal d\u017Awi\u0119kowych (16-tu kolorowych linii z ty\u0142u)"},toggleNotesRendering:{title:"W\u0142\u0105cz rysowanie nut",description:"W\u0142\u0105cz rysowanie spadaj\u0105cych nut podczas odtwarzania pliku MIDI"},toggleDrawingActiveNotes:{title:"W\u0142\u0105cz rysowanie aktywnych nut",description:"W\u0142\u0105cz efekt pod\u015Bwietlania si\u0119 nut przy aktywacji"},toggleDrawingVisualPitch:{title:"W\u0142\u0105cz wizualizacj\u0119 wysoko\u015Bci tonu",description:"W\u0142\u0105cz przesuwanie nut w lewo lub w prawo gdy wysoko\u015B\u0107 nut jest zmieniana"},toggleStabilizeWaveforms:{title:"W\u0142\u0105cz stabilizacj\u0119 fal",description:"W\u0142\u0105cz stabilizowanie fal d\u017Awi\u0119kowych"}};var Gw={title:"Ustawienia pianina",selectedChannel:{title:"Wybrany kana\u0142",description:"Kana\u0142, do kt\xF3rego b\u0119dzie pod\u0142\u0105czone pianino",channelOption:"Kana\u0142 {0}"},keyboardSize:{title:"Rozmiar pianina",description:"Zakres klawiszy widocznych na pianine. Dostosowuje r\xF3wnie\u017C szeroko\u015B\u0107 wizualizowanych nut",full:"128 klawiszy (pe\u0142en zakres)",piano:"88 klawiszy (fortepian)",fiveOctaves:"5 oktaw",twoOctaves:"Dwie oktawy",useSongKeyRange:"U\u017Cyj zakresu utworu"},toggleTheme:{title:"W\u0142\u0105cz ciemny motyw",description:"W\u0142\u0105cz ciemny motyw wbudowanego pianina"},show:{title:"Poka\u017C",description:"Poka\u017C/ukryj pianino"}};var Uw={title:"Ustawienia MIDI",midiInput:{title:"Wej\u015Bcie MIDI",description:"Port MIDI, kt\xF3ry b\u0119dzie nas\u0142uchiwany",disabled:"Wy\u0142\u0105czony"},midiOutput:{title:"Wyj\u015Bcie MIDI",description:"Port MIDI, do kt\xF3rego b\u0119dzie grany utw\xF3r",disabled:"U\u017Cyj SpessaSynth"}};var Pw={toggleButton:"Ustawienia",mainTitle:"Ustawienia programu",rendererSettings:Nw,keyboardSettings:Gw,midiSettings:Uw,interfaceSettings:{title:"Ustawienia interfejsu",toggleTheme:{title:"W\u0142\u0105cz ciemny motyw",description:"W\u0142\u0105cz ciemny motyw programu"},selectLanguage:{title:"J\u0119zyk",description:"Zmie\u0144 j\u0119zyk programu",helpTranslate:"Przet\u0142umacz SpessaSynth"},layoutDirection:{title:"Uk\u0142ad",description:"Kierunek uk\u0142adu wizualizacji i pianina",values:{downwards:"W d\xF3\u0142",upwards:"W g\xF3r\u0119",leftToRight:"Od lewej do prawej",rightToLeft:"Od prawej do lewej"}}}};var Ow={toggleButton:{title:"Prze\u0142\u0105cz tryb odtwarzania muzyki",description:"Prze\u0142\u0105cz uproszczon\u0105 wersj\u0119 interfejsu, ukrywaj\u0105c pianino i wizualizacj\u0119 nut"},currentlyPlaying:"Teraz gramy:",nothingPlaying:"Nic teraz nie gra",nothingPlayingCopyright:"Wgraj jakie\u015B MIDI!"};var qw={voiceMeter:{title:"D\u017Awi\u0119ki: ",description:"Aktualna ilo\u015B\u0107 d\u017Awi\u0119k\xF3w na kanale {0}"},pitchBendMeter:{title:"Wysoko\u015B\u0107: ",description:"Aktualna wysoko\u015B\u0107 tonu na kanale {0}"},panMeter:{title:"Stereo: ",description:"Aktualny efekt stereo na kanale {0} (kliknij prawym aby zablokowa\u0107)"},expressionMeter:{title:"Ekspresja: ",description:"Aktualna ekspresja (g\u0142o\u015Bno\u015Bc) kana\u0142u {0} (kliknij prawym aby zablokowa\u0107)"},volumeMeter:{title:"G\u0142o\u015Bno\u015B\u0107: ",description:"Aktualna g\u0142o\u015Bno\u015B\u0107 kana\u0142u {0} (kliknij prawym aby zablokowa\u0107)"},modulationWheelMeter:{title:"Modulacja: ",description:"Aktualna g\u0142\u0119boko\u015B\u0107 modulacji (zazwyczaj vibrato) kana\u0142u {0} (kliknij prawym aby zablokowa\u0107)"},chorusMeter:{title:"Ch\xF3r: ",description:"Aktualny efekt ch\xF3ru na kanale {0} (kliknij prawym aby zablokowa\u0107)"},reverbMeter:{title:"Pog\u0142os: ",description:"Aktualny efekt pog\u0142osu na kanale {0} (kliknij prawym aby zablokowa\u0107)"},filterMeter:{title:"Filtr: ",description:"Aktualny poziom filtra niskopasmowego na kanale {0} (kliknij prawym aby zablokowa\u0107)"},transposeMeter:{title:"Transpozycja: ",description:"Aktualna transpozycja (przesuni\u0119cie klawiszy) kana\u0142u {0}"},presetSelector:{description:"Zmie\u0144 patch (instrument), kt\xF3rego u\u017Cywa kana\u0142 {0}",selectionPrompt:"Zmie\u0144 instrument kana\u0142u {0}",searchPrompt:"Wyszukaj..."},presetReset:{description:"Odblokuj kana\u0142 {0}, aby program m\xF3g\u0142 go zmienia\u0107"},soloButton:{description:"Solo na kanale {0}"},muteButton:{description:"Wycisz/odcisz kana\u0142 {0}"},drumToggleButton:{description:"Prze\u0142\u0105cz perkusj\u0119 na kanale {0}"}};var Hw={button:{title:"Konfiguracja efekt\xF3w",description:"Skonfiguruj efekt pog\u0142osu i ch\xF3ru oraz wy\u0142\u0105cz niestandardowe wibrato"},reverbConfig:{title:"Konfiguracja pog\u0142osu",description:"Skonfiguruj procesor pog\u0142osu",impulseResponse:{title:"Impuls pog\u0142osu",description:"Wybierz impuls kszta\u0142tuj\u0105cy d\u017Awi\u0119k pog\u0142osu"}},chorusConfig:{title:"Konfiguracja ch\xF3ru",description:"Skonfiguruj procesor efektu ch\xF3ru",nodesAmount:{title:"Ilo\u015B\u0107 w\u0119z\u0142\xF3w",description:"Ilo\u015B\u0107 li\u0144 op\xF3\u017Aniaj\u0105cych dla ka\u017Cdego kana\u0142u stereo"},defaultDelay:{title:"Op\xF3\u017Anienie (s)",description:"Op\xF3\u017Anienie pierwszej linii, w sekundach"},delayVariation:{title:"Przyrost op\xF3\u017Anienia (s)",description:"Przyrost op\xF3\u017Anienia ka\u017Cdej kolejnej linii w sekundach"},stereoDifference:{title:"R\xF3\u017Cnica stereo (s)",description:"R\xF3\u017Cnica op\xF3\u017Anie\u0144 w kana\u0142ach stereo (dodane do lewego kana\u0142u i odj\u0119te od prawego sekundy)"},oscillatorFrequency:{title:"Cz\u0119stotliwo\u015B\u0107 LFO (Hz)",description:"Cz\u0119stotliwo\u015B\u0107 pierwszego LFO kontroluj\u0105cego op\xF3\u017Anienie pierwszej linii w Hz."},frequencyVariation:{title:"Przyrost LFO (Hz)",description:"Przyrost cz\u0119stotliwo\u015Bci LFO ka\u017Cdej kolejnej linii w Hz"},oscillatorGain:{title:"Si\u0142a LFO (s)",description:"Jak bardzo LFO b\u0119dzie wp\u0142ywa\u0107 na op\xF3\u017Anienie linii, w sekundach"},apply:{title:"Zastosuj",description:"Zastosuj wybrane ustawienia"}}};var Yw={button:{title:"Modyfikacja klawiszy",description:"Zmodyfikuj indywidualne parametry klawiszy."},mainTitle:"Edytor modyfikacji klawiszy",detailedDescription:`To menu pozwala Ci na modyfikacj\u0119 danych klawiszy na danym kanale. Aktualnie mo\u017Cesz nadpisa\u0107 si\u0142\u0119 nacisku oraz przypisa\u0107 instrument do danego klawisza. @@ -227,7 +227,7 @@ Note : si la banque de sons \xE9tait d\xE9j\xE0 compress\xE9e, cette option ne d Note : ce format n'est pas support\xE9 par tous les lecteurs MIDI`},progress:{title:"Exportation du fichier MIDI embarqu\xE9...",loading:"Chargement de la banque de sons et du fichier MIDI...",modifyingMIDI:"Modification MIDI...",modifyingSoundfont:"All\xE8gement de la banque de sons...",saving:"Cr\xE9ation du fichier RMIDI...",done:"Termin\xE9 !"},options:{title:"Options de l'exportation RMIDI",confirm:"Exporter",compress:{title:"Compression",description:`Compacter les \xE9chantillons gr\xE2ce \xE0 l'algorithme de compression avec pertes Ogg Vorbis Ceci r\xE9duit de mani\xE8re significative le poids du fichier (option recommand\xE9e)`},quality:{title:"Qualit\xE9 de compression",description:"La qualit\xE9 de la compression, une valeur haute augmentant la qualit\xE9 du son mais aussi le poids du fichier"},bankOffset:{title:"D\xE9calage de banque",description:`D\xE9calage des num\xE9ros de banque dans le fichier (une valeur de 0 est recommand\xE9e sauf cas particulier)`},adjust:{title:"Ajustement MIDI",description:`Ajuste le fichier MIDI \xE0 la banque de sons -(il est conseill\xE9 de laisser cette option activ\xE9e sauf cas particulier)`}}}},metadata:{songTitle:{title:"Titre :",description:"Le titre du morceau"},album:{title:"Album :",description:"Le nom de l'album dans lequel se trouve le morceau"},artist:{title:"Artiste :",description:"Le ou les artiste(s) du morceau"},albumCover:{title:"Pochette d'album :",description:"La pochette de l'album dans lequel se trouve le morceau"},creationDate:{title:"Date de cr\xE9ation :",description:"La date de cr\xE9ation du morceau"},genre:{title:"Genre :",description:"Le genre du morceau"},comment:{title:"Commentaire :",description:"Le commentaire li\xE9 au morceau"},duration:{title:"Dur\xE9e :",description:"La dur\xE9e du morceau"}}}};var hv={localeName:"Fran\xE7ais",titleMessage:"SpessaSynth : synth\xE9tiseur compatible SoundFont2, \xE9crit en javascript",demoTitleMessage:"SpessaSynth : d\xE9mo en ligne du synth\xE9tiseur compatible SoundFont2",synthInit:{genericLoading:"Chargement...",loadingSoundfont:"Chargement de la banque de sons...",loadingBundledSoundfont:"Chargement de la banque de sons int\xE9gr\xE9e...",startingSynthesizer:"D\xE9marrage du synth\xE9tiseur...",savingSoundfont:"Sauvegarde de la banque de sons pour une utilisation ult\xE9rieure...",noWebAudio:"Votre navigateur ne supporte pas l'audio par le web.",done:"Pr\xEAt !"},midiUploadButton:"Charger des fichiers MIDI",exportAudio:dv,yes:"Oui",no:"Non",demoSoundfontUploadButton:"Charger une banque de sons",demoGithubPage:"Page du projet",demoSongButton:"Morceau d\xE9mo",credits:"Cr\xE9dits",dropPrompt:"Rel\xE2chez les fichiers ici...",warnings:{outOfMemory:"Votre navigateur est \xE0 cours de m\xE9moire. L'usage de Firefox ou des banques de sons au format SF3 est recommand\xE9 (voir la console pour plus de d\xE9tails concernant l'erreur).",noMidiSupport:"Aucun port MIDI d\xE9tect\xE9, cette fonctionnalit\xE9 sera d\xE9sactiv\xE9e.",chromeMobile:"Les performances de SpessaSynth sont basses sur Chrome pour mobile. L'usage de Firefox est recommand\xE9.",warning:"Attention"},hideTopBar:{title:"Masquer la barre sup\xE9rieure",description:"Masquer la barre sup\xE9rieure (titre) pour offrir une meilleure exp\xE9rience"},convertDls:{title:"Conversion DLS",message:"Le fichier charg\xE9 semble \xEAtre au format DLS. Voulez-vous le convertir au format SF2 ?"},musicPlayerMode:lv,settings:$v,synthesizerController:gv,sequencerController:uv};var fv={title:"Configura\xE7\xF5es do Renderizador",noteFallingTime:{title:"Tempo de queda da nota (milissegundos)",description:"A velocidade com que as notas caem (visualmente)"},waveformThickness:{title:"Espessura da linha da forma de onda (px)",description:"A espessura das linhas da forma de onda"},waveformSampleSize:{title:"Tamanho da amostra da forma de onda",description:"O qu\xE3o detalhadas s\xE3o as formas de onda (Nota: valores altos podem impactar o desempenho)"},waveformAmplifier:{title:"Amplificador de forma de onda",description:"O qu\xE3o vibrantes s\xE3o as formas de onda"},toggleWaveformsRendering:{title:"Habilitar renderiza\xE7\xE3o de formas de onda",description:"Habilitar a renderiza\xE7\xE3o das formas de onda do canal (linhas coloridas mostrando o \xE1udio)"},toggleNotesRendering:{title:"Habilitar renderiza\xE7\xE3o de notas",description:"Habilitar a renderiza\xE7\xE3o das notas caindo ao reproduzir um arquivo MIDI"},toggleDrawingActiveNotes:{title:"Habilitar desenho de notas ativas",description:"Habilitar o destaque e o brilho das notas quando pressionadas"},toggleDrawingVisualPitch:{title:"Habilitar desenho de altura visual",description:"Habilitar o deslizamento das notas para a esquerda ou direita quando o wheel de pitch \xE9 aplicado"},toggleStabilizeWaveforms:{title:"Estabilizar formas de onda",description:"Habilitar o disparo do oscilosc\xF3pio"}};var Iv={title:"Configura\xE7\xF5es do Teclado MIDI",selectedChannel:{title:"Canal selecionado",description:"O canal para o qual o teclado envia mensagens",channelOption:"Canal {0}"},keyboardSize:{title:"Tamanho do teclado",description:"A faixa de teclas mostradas no teclado. Ajusta o tamanho das notas MIDI de acordo",full:"128 teclas (completo)",piano:"88 teclas (piano)",fiveOctaves:"5 oitavas",useSongKeyRange:"Usar a faixa de notas da m\xFAsica",twoOctaves:"Duas oitavas"},toggleTheme:{title:"Usar tema escuro",description:"Usar o tema escuro do teclado MIDI"},show:{title:"Mostrar",description:"Mostrar/ocultar o teclado MIDI"}};var mv={title:"Configura\xE7\xF5es MIDI",midiInput:{title:"Entrada MIDI",description:"A porta para escutar mensagens MIDI",disabled:"Desativado"},midiOutput:{title:"Sa\xEDda MIDI",description:"A porta para reproduzir o arquivo MIDI",disabled:"Usar SpessaSynth"}};var pv={toggleButton:"Configura\xE7\xF5es",mainTitle:"Configura\xE7\xF5es do Programa",rendererSettings:fv,keyboardSettings:Iv,midiSettings:mv,interfaceSettings:{title:"Configura\xE7\xF5es da Interface",toggleTheme:{title:"Usar tema escuro",description:"Ativar o tema escuro para a interface"},selectLanguage:{title:"Idioma",description:"Alterar o idioma do programa",helpTranslate:"Traduzir o SpessaSynth"},layoutDirection:{title:"Dire\xE7\xE3o do layout",description:"A dire\xE7\xE3o do layout do renderizador e do teclado",values:{downwards:"Para baixo",upwards:"Para cima",leftToRight:"Da esquerda para a direita",rightToLeft:"Da direita para a esquerda"}}}};var Ev={toggleButton:{title:"Trocar o modo do reprodutor de m\xFAsica",description:"Ir para a vers\xE3o simplificada, ocultando o teclado e as visualiza\xE7\xF5es de notas"},currentlyPlaying:"Tocando agora:",nothingPlaying:"Nada est\xE1 tocando",nothingPlayingCopyright:"Envie um MIDI!"};var Cv={voiceMeter:{title:"Vozes: ",description:"A quantidade atual de vozes tocando no canal {0}"},pitchBendMeter:{title:"Pitch: ",description:"O desvio de pitch atual aplicado ao canal {0}"},panMeter:{title:"Pan: ",description:"O panning est\xE9reo atual aplicado ao canal {0} (clique com o bot\xE3o direito para travar)"},expressionMeter:{title:"Express\xE3o: ",description:"A express\xE3o (volume) atual do canal {0} (clique com o bot\xE3o direito para travar)"},volumeMeter:{title:"Volume: ",description:"O volume atual do canal {0} (clique com o bot\xE3o direito para travar)"},modulationWheelMeter:{title:"Roda de modula\xE7\xE3o: ",description:"A profundidade de modula\xE7\xE3o (geralmente vibrato) atual do canal {0} (clique com o bot\xE3o direito para travar)"},chorusMeter:{title:"Chorus: ",description:"O n\xEDvel atual do efeito de chorus aplicado ao canal {0} (clique com o bot\xE3o direito para travar)"},reverbMeter:{title:"Reverb: ",description:"O n\xEDvel atual do efeito de reverb aplicado ao canal {0} (clique com o bot\xE3o direito para travar)"},filterMeter:{title:"Filtro: ",description:"O n\xEDvel atual do corte do filtro passa-baixo aplicado ao canal {0} (clique com o bot\xE3o direito para travar)"},transposeMeter:{title:"Transposi\xE7\xE3o: ",description:"A transposi\xE7\xE3o (mudan\xE7a de tonalidade) atual do canal {0}"},presetSelector:{description:"Mudar o patch (instrumento) que o canal {0} est\xE1 usando",selectionPrompt:"Mudar instrumento para o canal {0}",searchPrompt:"Pesquisar..."},presetReset:{description:"Destravar o canal {0} para permitir altera\xE7\xF5es de programa"},soloButton:{description:"Solo no canal {0}"},muteButton:{description:"Silenciar/desmutar o canal {0}"},drumToggleButton:{description:"Alternar bateria no canal {0}"}};var Bv={button:{title:"Configura\xE7\xF5es de Efeitos",description:"Configure os efeitos de chorus e reverb, al\xE9m do vibrato personalizado"},reverbConfig:{title:"Configura\xE7\xE3o do Reverb",description:"Configure o processador de reverb",impulseResponse:{title:"Resposta ao impulso",description:"Selecione a resposta ao impulso para o reverb convolver"}},chorusConfig:{title:"Configura\xE7\xE3o do Chorus",description:"Configure o processador de chorus",nodesAmount:{title:"Quantidade de n\xF3s",description:"A quantidade de n\xF3s de atraso (para cada canal est\xE9reo) a serem usados"},defaultDelay:{title:"Atraso (s)",description:"O tempo de atraso para o primeiro n\xF3 em segundos"},delayVariation:{title:"Incremento de atraso (s)",description:"A quantidade para incrementar cada n\xF3 de atraso ap\xF3s o primeiro em segundos"},stereoDifference:{title:"Diferen\xE7a est\xE9reo (s)",description:"A diferen\xE7a de atrasos entre dois canais (adicionada ao canal esquerdo e subtra\xEDda do direito)"},oscillatorFrequency:{title:"Frequ\xEAncia do LFO (Hz)",description:"A frequ\xEAncia do LFO do primeiro n\xF3 de atraso, em Hz. O LFO controla o tempo de atraso."},frequencyVariation:{title:"Incremento do LFO (Hz)",description:"A quantidade para incrementar a frequ\xEAncia de cada LFO ap\xF3s o primeiro, em Hz"},oscillatorGain:{title:"Ganho do LFO (s)",description:"Quanto o LFO alterar\xE1 o atraso nos n\xF3s de atraso, em segundos"},apply:{title:"Aplicar",description:"Aplicar as configura\xE7\xF5es selecionadas"}}};var Qv={toggleButton:{title:"Controlador de Sintetizador",description:"Mostra o controlador do sintetizador"},mainVoiceMeter:{title:"Voices: ",description:"A quantidade total de vozes atualmente tocando"},mainVolumeMeter:{title:"Volume: ",description:"O volume mestre atual do sintetizador"},mainPanMeter:{title:"Pan: ",description:"A panor\xE2mica est\xE9reo mestre atual do sintetizador"},mainTransposeMeter:{title:"Transposi\xE7\xE3o: ",description:"Transp\xF5e o sintetizador (em semitons ou teclas)"},midiPanic:{title:"P\xE2nico MIDI",description:"Para todas as vozes imediatamente"},systemReset:{title:"Reiniciar Sistema",description:"Redefine todos os controladores para seus valores padr\xE3o"},blackMidiMode:{title:"Modo Black MIDI",description:"Ativa o Modo de Alto Desempenho, simplificando a apar\xEAncia e eliminando as notas mais rapidamente"},disableCustomVibrato:{title:"Desativar vibrato personalizado",description:"Desativa permanentemente o vibrato personalizado (NRPN). Recarregue o site para reativ\xE1-lo"},helpButton:{title:"Ajuda",description:"Abre um site externo com o guia de uso"},interpolation:{description:"Selecione o m\xE9todo de interpola\xE7\xE3o do sintetizador",linear:"Interpola\xE7\xE3o Linear",nearestNeighbor:"Vizinho mais pr\xF3ximo",cubic:"Interpola\xE7\xE3o C\xFAbica"},channelController:Cv,effectsConfig:Bv};var yv={previousSong:"M\xFAsica anterior",nextSong:"Pr\xF3xima m\xFAsica",loopThis:"Repetir esta m\xFAsica",playPause:"Pausar/reproduzir",lyrics:{show:"Mostrar letras",title:"Texto decodificado",noLyrics:"Sem letras dispon\xEDveis...",otherText:{title:"Outro texto"}}};var wv={button:{title:"Salvar \xC1udio",description:"Salvar a composi\xE7\xE3o em v\xE1rios formatos"},formats:{title:"Escolher formato",formats:{wav:{button:{title:"\xC1udio WAV (.wav)",description:"Exportar a m\xFAsica com modifica\xE7\xF5es como um arquivo de \xE1udio .wav"},options:{title:"Op\xE7\xF5es de exporta\xE7\xE3o WAV",confirm:"Exportar",normalizeVolume:{title:"Normalizar volume",description:"Mant\xE9m o volume no mesmo n\xEDvel, independentemente de qu\xE3o alto ou baixo est\xE1 o MIDI. Recomendado."},additionalTime:{title:"Tempo adicional (s)",description:"Tempo extra no final da m\xFAsica para o som se dissipar. (em segundos)"},separateChannels:{title:"Separar canais",description:"Salva cada canal como um arquivo separado. \xDAtil para visualizadores de oscilosc\xF3pio. Note que isto desativa reverb e chorus.",saving:{title:"Arquivos de canal",save:"Salvar canal {0}"}},loopCount:{title:"Quantidade de repeti\xE7\xF5es",description:"N\xFAmero de vezes que a m\xFAsica ser\xE1 repetida"}},exportMessage:{message:"Exportando \xE1udio WAV...",estimated:"Restante:",convertWav:"Convertendo para wav..."}},midi:{button:{title:"MIDI (.mid)",description:"Exportar o arquivo MIDI com as altera\xE7\xF5es de controlador e instrumento aplicadas"}},soundfont:{button:{title:"SoundFont (.sf2)",description:"Exportar um arquivo SoundFont2"},options:{title:"Op\xE7\xF5es de exporta\xE7\xE3o SF",confirm:"Exportar",trim:{title:"Cortar",description:"Exportar o SoundFont apenas com os instrumentos e amostras utilizados pelo arquivo MIDI"},compress:{title:"Comprimir",description:"Comprimir as amostras com compress\xE3o Ogg Vorbis com perdas, se n\xE3o comprimidas. Reduz bastante o tamanho do arquivo. Se o SoundFont j\xE1 estava comprimido, n\xE3o ser\xE1 descomprimido, mesmo se esta op\xE7\xE3o estiver desativada."},quality:{title:"Qualidade da compress\xE3o",description:"A qualidade da compress\xE3o. Quanto maior, melhor"}}},rmidi:{button:{title:"MIDI Embutido (.rmi)",description:"Exportar o MIDI modificado com o SoundFont recortado embutido como um \xFAnico arquivo. Observe que este formato n\xE3o \xE9 amplamente suportado."},progress:{title:"Exportando MIDI embutido...",loading:"Carregando SoundFont e MIDI...",modifyingMIDI:"Modificando MIDI...",modifyingSoundfont:"Cortando SoundFont...",saving:"Salvando RMIDI...",done:"Pronto!"},options:{title:"Op\xE7\xF5es de exporta\xE7\xE3o RMIDI",confirm:"Exportar",compress:{title:"Comprimir",description:"Comprimir o SoundFont com Ogg Vorbis com perdas. Reduz bastante o tamanho do arquivo. Recomendado."},quality:{title:"Qualidade da compress\xE3o",description:"A qualidade da compress\xE3o. Quanto maior, melhor."},bankOffset:{title:"Deslocamento do banco",description:"O deslocamento do banco do arquivo. Valor 0 \xE9 recomendado. Alterar somente se souber o que est\xE1 fazendo."},adjust:{title:"Ajustar MIDI",description:"Ajusta o arquivo MIDI ao SoundFont. Mantenha ativado, a menos que tenha certeza do que est\xE1 fazendo."}}}},metadata:{songTitle:{title:"T\xEDtulo:",description:"T\xEDtulo da m\xFAsica"},album:{title:"\xC1lbum:",description:"\xC1lbum da m\xFAsica"},artist:{title:"Artista:",description:"Artista da m\xFAsica"},albumCover:{title:"Capa do \xE1lbum:",description:"Capa do \xE1lbum da m\xFAsica"},creationDate:{title:"Criado em:",description:"Data de cria\xE7\xE3o da m\xFAsica"},genre:{title:"G\xEAnero:",description:"G\xEAnero da m\xFAsica"},comment:{title:"Coment\xE1rio:",description:"Coment\xE1rio da m\xFAsica"},duration:{title:"Dura\xE7\xE3o:",description:"Dura\xE7\xE3o da m\xFAsica"}}}};var vv={localeName:"Portugu\xEAs (Brasil)",titleMessage:"SpessaSynth: Sintetizador JavaScript SoundFont2",demoTitleMessage:"SpessaSynth: Demo Online do Sintetizador JavaScript SoundFont2",synthInit:{genericLoading:"Carregando...",loadingSoundfont:"Carregando SoundFont...",loadingBundledSoundfont:"Carregando SoundFont embutida...",startingSynthesizer:"Iniciando sintetizador...",savingSoundfont:"Salvando SoundFont para reutiliza\xE7\xE3o...",noWebAudio:"Seu navegador n\xE3o suporta Web Audio.",done:"Pronto!"},midiUploadButton:"Envie seus arquivos MIDI",exportAudio:wv,yes:"Sim",no:"N\xE3o",demoSoundfontUploadButton:"Envie a SoundFont",demoGithubPage:"P\xE1gina do projeto",demoSongButton:"M\xFAsica de demonstra\xE7\xE3o",credits:"Cr\xE9ditos",dropPrompt:"Solte os arquivos aqui...",warnings:{outOfMemory:"Seu navegador ficou sem mem\xF3ria. Tente usar o Firefox ou uma SoundFont SF3 (veja o console para detalhes).",noMidiSupport:"Nenhuma porta MIDI detectada, essa fun\xE7\xE3o ser\xE1 desativada.",chromeMobile:"SpessaSynth pode ter um desempenho reduzido no Chrome Mobile. Considere usar o Firefox para Android.",warning:"Aten\xE7\xE3o"},hideTopBar:{title:"Ocultar barra superior",description:"Oculte a barra de t\xEDtulo para uma experi\xEAncia mais imersiva"},convertDls:{title:"Convers\xE3o DLS",message:"Parece que voc\xEA enviou um arquivo DLS. Quer converter para SF2?"},musicPlayerMode:Ev,settings:pv,synthesizerController:Qv,sequencerController:yv};var iB="en",x$={en:Tw,pl:Kw,ja:ov,fr:hv,pt:vv};var KD=.2,w7=class{addSequencer;constructor(i,A,c,d,p,U,H,O){this.mode="dark",this.autoKeyRange=!1,this.renderer=d,this.midiKeyboard=p,this.midiDeviceHandler=U,this.synthui=A,this.sequi=c,this.locale=O,this.musicMode=H,this.locales=x$,this.keyboardSizes={full:{min:0,max:127},piano:{min:21,max:108},"5 octaves":{min:36,max:96},"two octaves":{min:53,max:77}};let P=document.createElement("div");P.style.position="relative",P.classList.add("seamless_button"),P.classList.add("settings_button"),i.appendChild(P);let W0=document.createElement("div");W0.classList.add("seamless_button"),this.locale.bindObjectProperty(W0,"innerText","locale.musicPlayerMode.toggleButton.title"),this.locale.bindObjectProperty(W0,"title","locale.musicPlayerMode.toggleButton.description"),i.appendChild(W0);let _=document.createElement("div");_.classList.add("seamless_button"),this.locale.bindObjectProperty(_,"innerText","locale.hideTopBar.title"),this.locale.bindObjectProperty(_,"title","locale.hideTopBar.description"),i.appendChild(_);let e0=document.getElementsByClassName("show_top_button")[0];e0.innerHTML=Hy(20);let i0=document.createElement("span");this.locale.bindObjectProperty(i0,"innerText","locale.settings.toggleButton"),P.appendChild(i0);let a1=document.createElement("div");a1.innerHTML=Oy(24),a1.classList.add("gear"),P.appendChild(a1),this.mainDiv=document.createElement("div"),this.mainDiv.classList.add("settings_menu"),this.visible=!1,this.animationId=-1,P.onclick=()=>this.setVisibility(!this.visible),i.appendChild(this.mainDiv),W0.onclick=this.toggleMusicPlayerMode.bind(this),_.onclick=this.hideTopPart.bind(this),this.hideOnDocClick=!0,this.mainDiv.onclick=()=>{this.hideOnDocClick=!1},document.addEventListener("click",()=>{if(!this.hideOnDocClick){this.hideOnDocClick=!0;return}this.setVisibility(!1)}),this.mainDiv.innerHTML=uw,ow(this.mainDiv);for(let f1 of this.mainDiv.querySelectorAll("*[translate-path]"))this.locale.bindObjectProperty(f1,"textContent",f1.getAttribute("translate-path"));for(let f1 of this.mainDiv.querySelectorAll("*[translate-path-title]")){let C2=f1.getAttribute("translate-path-title");this.locale.bindObjectProperty(f1,"textContent",C2+".title"),this.locale.bindObjectProperty(f1,"title",C2+".description")}this.getHtmlControls(),document.addEventListener("keydown",f1=>{switch(f1.key.toLowerCase()){case oi.settingsShow:this.setVisibility(!this.visible);break;case oi.synthesizerUIShow:this.setVisibility(!1)}}),window.savedSettings?this._loadSettings().then(()=>{this.createHandlers(d,p,U,c,A)}):this.createHandlers(d,p,U,c,A),this.topPartVisible=!0;let _1=!1;window.addEventListener("resize",()=>{let f1=window.screen.height,C2=window.screen.width,u2=window.outerHeight,I2=window.outerWidth,K2;K2=C2===I2&&f1===u2,K2!==_1&&(_1=K2,K2?this.hideTopPart():this.showTopPart())}),document.addEventListener("fullscreenchange",()=>{document.fullscreenElement===null?this.showTopPart():this.hideTopPart()})}async toggleMusicPlayerMode(){this.musicMode.visible===!1&&this.hideTopPart(),this.musicMode.setVisibility(!this.musicMode.visible,document.getElementById("keyboard_canvas_wrapper")),this.renderer.renderBool=!this.musicMode.visible}showTopPart(){if(this.topPartVisible===!0)return;this.topPartVisible=!0;let i=document.getElementsByClassName("top_part")[0],A=document.getElementsByClassName("show_top_button")[0];i.style.display="",setTimeout(()=>{i.classList.remove("top_part_hidden")},75),A.classList.remove("shown"),A.style.display="none"}hideTopPart(){if(this.topPartVisible===!1)return;this.topPartVisible=!1;let i=document.getElementsByClassName("top_part")[0];i.classList.add("top_part_hidden"),setTimeout(()=>{i.style.display="none"},200);let A=document.getElementsByClassName("show_top_button")[0];A.style.display="flex",setTimeout(()=>{A.classList.add("shown")},75),A.onclick=this.showTopPart.bind(this)}setVisibility(i){this.animationId&&clearTimeout(this.animationId),i?(this.mainDiv.style.display="block",setTimeout(()=>{document.getElementsByClassName("top_part")[0].classList.add("settings_shown"),this.mainDiv.classList.add("settings_menu_show")},75),this.hideOnDocClick=!1):(document.getElementsByClassName("top_part")[0].classList.remove("settings_shown"),this.mainDiv.classList.remove("settings_menu_show"),this.animationId=setTimeout(()=>{this.mainDiv.style.display="none"},KD*1e3)),this.visible=i}createHandlers(i,A,c,d,p){this._createRendererHandler(i),this._createMidiSettingsHandler(c,d,p),this._createKeyboardHandler(A,p,i),this._createInterfaceSettingsHandler()}getHtmlControls(){this.htmlControls={renderer:{noteTimeSlider:document.getElementById("note_time_slider"),analyserToggler:document.getElementById("analyser_toggler"),noteToggler:document.getElementById("note_toggler"),activeNoteToggler:document.getElementById("active_note_toggler"),visualPitchToggler:document.getElementById("visual_pitch_toggler"),stabilizeWaveformsToggler:document.getElementById("stabilize_waveforms_toggler"),analyserThicknessSlider:document.getElementById("analyser_thickness_slider"),analyserFftSlider:document.getElementById("analyser_fft_slider"),waveMultiplierSlizer:document.getElementById("wave_multiplier_slider")},keyboard:{channelSelector:document.getElementById("channel_selector"),modeSelector:document.getElementById("mode_selector"),sizeSelector:document.getElementById("keyboard_size_selector"),showSelector:document.getElementById("keyboard_show")},midi:{outputSelector:document.getElementById("midi_output_selector"),inputSelector:document.getElementById("midi_input_selector")},interface:{themeSelector:document.getElementById("toggle_mode_button"),languageSelector:document.getElementById("language_selector"),layoutSelector:document.getElementById("layout_selector")}}}};w7.prototype._toggleDarkMode=Cw;w7.prototype._createInterfaceSettingsHandler=Iw;w7.prototype._changeLayout=mw;w7.prototype._createRendererHandler=Bw;w7.prototype._createMidiSettingsHandler=Qw;w7.prototype._createMidiInputHandler=yw;w7.prototype._createMidiOutputHandler=ww;w7.prototype._createKeyboardHandler=gw;w7.prototype._loadSettings=dw;w7.prototype._serializeSettings=fw;w7.prototype._saveSettings=hw;var kv=.5,KE=class{constructor(i,A){this.mainDiv=i,this.mainDiv.innerHTML=` +(il est conseill\xE9 de laisser cette option activ\xE9e sauf cas particulier)`}}}},metadata:{songTitle:{title:"Titre :",description:"Le titre du morceau"},album:{title:"Album :",description:"Le nom de l'album dans lequel se trouve le morceau"},artist:{title:"Artiste :",description:"Le ou les artiste(s) du morceau"},albumCover:{title:"Pochette d'album :",description:"La pochette de l'album dans lequel se trouve le morceau"},creationDate:{title:"Date de cr\xE9ation :",description:"La date de cr\xE9ation du morceau"},genre:{title:"Genre :",description:"Le genre du morceau"},comment:{title:"Commentaire :",description:"Le commentaire li\xE9 au morceau"},duration:{title:"Dur\xE9e :",description:"La dur\xE9e du morceau"}}}};var hv={localeName:"Fran\xE7ais",titleMessage:"SpessaSynth : synth\xE9tiseur compatible SoundFont2, \xE9crit en javascript",demoTitleMessage:"SpessaSynth : d\xE9mo en ligne du synth\xE9tiseur compatible SoundFont2",synthInit:{genericLoading:"Chargement...",loadingSoundfont:"Chargement de la banque de sons...",loadingBundledSoundfont:"Chargement de la banque de sons int\xE9gr\xE9e...",startingSynthesizer:"D\xE9marrage du synth\xE9tiseur...",savingSoundfont:"Sauvegarde de la banque de sons pour une utilisation ult\xE9rieure...",noWebAudio:"Votre navigateur ne supporte pas l'audio par le web.",done:"Pr\xEAt !"},midiUploadButton:"Charger des fichiers MIDI",exportAudio:dv,yes:"Oui",no:"Non",demoSoundfontUploadButton:"Charger une banque de sons",demoGithubPage:"Page du projet",demoSongButton:"Morceau d\xE9mo",credits:"Cr\xE9dits",dropPrompt:"Rel\xE2chez les fichiers ici...",warnings:{outOfMemory:"Votre navigateur est \xE0 cours de m\xE9moire. L'usage de Firefox ou des banques de sons au format SF3 est recommand\xE9 (voir la console pour plus de d\xE9tails concernant l'erreur).",noMidiSupport:"Aucun port MIDI d\xE9tect\xE9, cette fonctionnalit\xE9 sera d\xE9sactiv\xE9e.",chromeMobile:"Les performances de SpessaSynth sont basses sur Chrome pour mobile. L'usage de Firefox est recommand\xE9.",warning:"Attention"},hideTopBar:{title:"Masquer la barre sup\xE9rieure",description:"Masquer la barre sup\xE9rieure (titre) pour offrir une meilleure exp\xE9rience"},convertDls:{title:"Conversion DLS",message:"Le fichier charg\xE9 semble \xEAtre au format DLS. Voulez-vous le convertir au format SF2 ?"},musicPlayerMode:lv,settings:$v,synthesizerController:gv,sequencerController:uv};var fv={title:"Configura\xE7\xF5es do Renderizador",noteFallingTime:{title:"Tempo de queda da nota (milissegundos)",description:"A velocidade com que as notas caem (visualmente)"},waveformThickness:{title:"Espessura da linha da forma de onda (px)",description:"A espessura das linhas da forma de onda"},waveformSampleSize:{title:"Tamanho da amostra da forma de onda",description:"O qu\xE3o detalhadas s\xE3o as formas de onda (Nota: valores altos podem impactar o desempenho)"},waveformAmplifier:{title:"Amplificador de forma de onda",description:"O qu\xE3o vibrantes s\xE3o as formas de onda"},toggleWaveformsRendering:{title:"Habilitar renderiza\xE7\xE3o de formas de onda",description:"Habilitar a renderiza\xE7\xE3o das formas de onda do canal (linhas coloridas mostrando o \xE1udio)"},toggleNotesRendering:{title:"Habilitar renderiza\xE7\xE3o de notas",description:"Habilitar a renderiza\xE7\xE3o das notas caindo ao reproduzir um arquivo MIDI"},toggleDrawingActiveNotes:{title:"Habilitar desenho de notas ativas",description:"Habilitar o destaque e o brilho das notas quando pressionadas"},toggleDrawingVisualPitch:{title:"Habilitar desenho de altura visual",description:"Habilitar o deslizamento das notas para a esquerda ou direita quando o wheel de pitch \xE9 aplicado"},toggleStabilizeWaveforms:{title:"Estabilizar formas de onda",description:"Habilitar o disparo do oscilosc\xF3pio"}};var Iv={title:"Configura\xE7\xF5es do Teclado MIDI",selectedChannel:{title:"Canal selecionado",description:"O canal para o qual o teclado envia mensagens",channelOption:"Canal {0}"},keyboardSize:{title:"Tamanho do teclado",description:"A faixa de teclas mostradas no teclado. Ajusta o tamanho das notas MIDI de acordo",full:"128 teclas (completo)",piano:"88 teclas (piano)",fiveOctaves:"5 oitavas",useSongKeyRange:"Usar a faixa de notas da m\xFAsica",twoOctaves:"Duas oitavas"},toggleTheme:{title:"Usar tema escuro",description:"Usar o tema escuro do teclado MIDI"},show:{title:"Mostrar",description:"Mostrar/ocultar o teclado MIDI"}};var mv={title:"Configura\xE7\xF5es MIDI",midiInput:{title:"Entrada MIDI",description:"A porta para escutar mensagens MIDI",disabled:"Desativado"},midiOutput:{title:"Sa\xEDda MIDI",description:"A porta para reproduzir o arquivo MIDI",disabled:"Usar SpessaSynth"}};var pv={toggleButton:"Configura\xE7\xF5es",mainTitle:"Configura\xE7\xF5es do Programa",rendererSettings:fv,keyboardSettings:Iv,midiSettings:mv,interfaceSettings:{title:"Configura\xE7\xF5es da Interface",toggleTheme:{title:"Usar tema escuro",description:"Ativar o tema escuro para a interface"},selectLanguage:{title:"Idioma",description:"Alterar o idioma do programa",helpTranslate:"Traduzir o SpessaSynth"},layoutDirection:{title:"Dire\xE7\xE3o do layout",description:"A dire\xE7\xE3o do layout do renderizador e do teclado",values:{downwards:"Para baixo",upwards:"Para cima",leftToRight:"Da esquerda para a direita",rightToLeft:"Da direita para a esquerda"}}}};var Ev={toggleButton:{title:"Trocar o modo do reprodutor de m\xFAsica",description:"Ir para a vers\xE3o simplificada, ocultando o teclado e as visualiza\xE7\xF5es de notas"},currentlyPlaying:"Tocando agora:",nothingPlaying:"Nada est\xE1 tocando",nothingPlayingCopyright:"Envie um MIDI!"};var Cv={voiceMeter:{title:"Vozes: ",description:"A quantidade atual de vozes tocando no canal {0}"},pitchBendMeter:{title:"Pitch: ",description:"O desvio de pitch atual aplicado ao canal {0}"},panMeter:{title:"Pan: ",description:"O panning est\xE9reo atual aplicado ao canal {0} (clique com o bot\xE3o direito para travar)"},expressionMeter:{title:"Express\xE3o: ",description:"A express\xE3o (volume) atual do canal {0} (clique com o bot\xE3o direito para travar)"},volumeMeter:{title:"Volume: ",description:"O volume atual do canal {0} (clique com o bot\xE3o direito para travar)"},modulationWheelMeter:{title:"Roda de modula\xE7\xE3o: ",description:"A profundidade de modula\xE7\xE3o (geralmente vibrato) atual do canal {0} (clique com o bot\xE3o direito para travar)"},chorusMeter:{title:"Chorus: ",description:"O n\xEDvel atual do efeito de chorus aplicado ao canal {0} (clique com o bot\xE3o direito para travar)"},reverbMeter:{title:"Reverb: ",description:"O n\xEDvel atual do efeito de reverb aplicado ao canal {0} (clique com o bot\xE3o direito para travar)"},filterMeter:{title:"Filtro: ",description:"O n\xEDvel atual do corte do filtro passa-baixo aplicado ao canal {0} (clique com o bot\xE3o direito para travar)"},transposeMeter:{title:"Transposi\xE7\xE3o: ",description:"A transposi\xE7\xE3o (mudan\xE7a de tonalidade) atual do canal {0}"},presetSelector:{description:"Mudar o patch (instrumento) que o canal {0} est\xE1 usando",selectionPrompt:"Mudar instrumento para o canal {0}",searchPrompt:"Pesquisar..."},presetReset:{description:"Destravar o canal {0} para permitir altera\xE7\xF5es de programa"},soloButton:{description:"Solo no canal {0}"},muteButton:{description:"Silenciar/desmutar o canal {0}"},drumToggleButton:{description:"Alternar bateria no canal {0}"}};var Bv={button:{title:"Configura\xE7\xF5es de Efeitos",description:"Configure os efeitos de chorus e reverb, al\xE9m do vibrato personalizado"},reverbConfig:{title:"Configura\xE7\xE3o do Reverb",description:"Configure o processador de reverb",impulseResponse:{title:"Resposta ao impulso",description:"Selecione a resposta ao impulso para o reverb convolver"}},chorusConfig:{title:"Configura\xE7\xE3o do Chorus",description:"Configure o processador de chorus",nodesAmount:{title:"Quantidade de n\xF3s",description:"A quantidade de n\xF3s de atraso (para cada canal est\xE9reo) a serem usados"},defaultDelay:{title:"Atraso (s)",description:"O tempo de atraso para o primeiro n\xF3 em segundos"},delayVariation:{title:"Incremento de atraso (s)",description:"A quantidade para incrementar cada n\xF3 de atraso ap\xF3s o primeiro em segundos"},stereoDifference:{title:"Diferen\xE7a est\xE9reo (s)",description:"A diferen\xE7a de atrasos entre dois canais (adicionada ao canal esquerdo e subtra\xEDda do direito)"},oscillatorFrequency:{title:"Frequ\xEAncia do LFO (Hz)",description:"A frequ\xEAncia do LFO do primeiro n\xF3 de atraso, em Hz. O LFO controla o tempo de atraso."},frequencyVariation:{title:"Incremento do LFO (Hz)",description:"A quantidade para incrementar a frequ\xEAncia de cada LFO ap\xF3s o primeiro, em Hz"},oscillatorGain:{title:"Ganho do LFO (s)",description:"Quanto o LFO alterar\xE1 o atraso nos n\xF3s de atraso, em segundos"},apply:{title:"Aplicar",description:"Aplicar as configura\xE7\xF5es selecionadas"}}};var Qv={toggleButton:{title:"Controlador de Sintetizador",description:"Mostra o controlador do sintetizador"},mainVoiceMeter:{title:"Voices: ",description:"A quantidade total de vozes atualmente tocando"},mainVolumeMeter:{title:"Volume: ",description:"O volume mestre atual do sintetizador"},mainPanMeter:{title:"Pan: ",description:"A panor\xE2mica est\xE9reo mestre atual do sintetizador"},mainTransposeMeter:{title:"Transposi\xE7\xE3o: ",description:"Transp\xF5e o sintetizador (em semitons ou teclas)"},midiPanic:{title:"P\xE2nico MIDI",description:"Para todas as vozes imediatamente"},systemReset:{title:"Reiniciar Sistema",description:"Redefine todos os controladores para seus valores padr\xE3o"},blackMidiMode:{title:"Modo Black MIDI",description:"Ativa o Modo de Alto Desempenho, simplificando a apar\xEAncia e eliminando as notas mais rapidamente"},disableCustomVibrato:{title:"Desativar vibrato personalizado",description:"Desativa permanentemente o vibrato personalizado (NRPN). Recarregue o site para reativ\xE1-lo"},helpButton:{title:"Ajuda",description:"Abre um site externo com o guia de uso"},interpolation:{description:"Selecione o m\xE9todo de interpola\xE7\xE3o do sintetizador",linear:"Interpola\xE7\xE3o Linear",nearestNeighbor:"Vizinho mais pr\xF3ximo",cubic:"Interpola\xE7\xE3o C\xFAbica"},channelController:Cv,effectsConfig:Bv};var yv={previousSong:"M\xFAsica anterior",nextSong:"Pr\xF3xima m\xFAsica",loopThis:"Repetir esta m\xFAsica",playPause:"Pausar/reproduzir",lyrics:{show:"Mostrar letras",title:"Texto decodificado",noLyrics:"Sem letras dispon\xEDveis...",otherText:{title:"Outro texto"}}};var wv={button:{title:"Salvar \xC1udio",description:"Salvar a composi\xE7\xE3o em v\xE1rios formatos"},formats:{title:"Escolher formato",formats:{wav:{button:{title:"\xC1udio WAV (.wav)",description:"Exportar a m\xFAsica com modifica\xE7\xF5es como um arquivo de \xE1udio .wav"},options:{title:"Op\xE7\xF5es de exporta\xE7\xE3o WAV",confirm:"Exportar",normalizeVolume:{title:"Normalizar volume",description:"Mant\xE9m o volume no mesmo n\xEDvel, independentemente de qu\xE3o alto ou baixo est\xE1 o MIDI. Recomendado."},additionalTime:{title:"Tempo adicional (s)",description:"Tempo extra no final da m\xFAsica para o som se dissipar. (em segundos)"},separateChannels:{title:"Separar canais",description:"Salva cada canal como um arquivo separado. \xDAtil para visualizadores de oscilosc\xF3pio. Note que isto desativa reverb e chorus.",saving:{title:"Arquivos de canal",save:"Salvar canal {0}"}},loopCount:{title:"Quantidade de repeti\xE7\xF5es",description:"N\xFAmero de vezes que a m\xFAsica ser\xE1 repetida"}},exportMessage:{message:"Exportando \xE1udio WAV...",estimated:"Restante:",convertWav:"Convertendo para wav..."}},midi:{button:{title:"MIDI (.mid)",description:"Exportar o arquivo MIDI com as altera\xE7\xF5es de controlador e instrumento aplicadas"}},soundfont:{button:{title:"SoundFont (.sf2)",description:"Exportar um arquivo SoundFont2"},options:{title:"Op\xE7\xF5es de exporta\xE7\xE3o SF",confirm:"Exportar",trim:{title:"Cortar",description:"Exportar o SoundFont apenas com os instrumentos e amostras utilizados pelo arquivo MIDI"},compress:{title:"Comprimir",description:"Comprimir as amostras com compress\xE3o Ogg Vorbis com perdas, se n\xE3o comprimidas. Reduz bastante o tamanho do arquivo. Se o SoundFont j\xE1 estava comprimido, n\xE3o ser\xE1 descomprimido, mesmo se esta op\xE7\xE3o estiver desativada."},quality:{title:"Qualidade da compress\xE3o",description:"A qualidade da compress\xE3o. Quanto maior, melhor"}}},rmidi:{button:{title:"MIDI Embutido (.rmi)",description:"Exportar o MIDI modificado com o SoundFont recortado embutido como um \xFAnico arquivo. Observe que este formato n\xE3o \xE9 amplamente suportado."},progress:{title:"Exportando MIDI embutido...",loading:"Carregando SoundFont e MIDI...",modifyingMIDI:"Modificando MIDI...",modifyingSoundfont:"Cortando SoundFont...",saving:"Salvando RMIDI...",done:"Pronto!"},options:{title:"Op\xE7\xF5es de exporta\xE7\xE3o RMIDI",confirm:"Exportar",compress:{title:"Comprimir",description:"Comprimir o SoundFont com Ogg Vorbis com perdas. Reduz bastante o tamanho do arquivo. Recomendado."},quality:{title:"Qualidade da compress\xE3o",description:"A qualidade da compress\xE3o. Quanto maior, melhor."},bankOffset:{title:"Deslocamento do banco",description:"O deslocamento do banco do arquivo. Valor 0 \xE9 recomendado. Alterar somente se souber o que est\xE1 fazendo."},adjust:{title:"Ajustar MIDI",description:"Ajusta o arquivo MIDI ao SoundFont. Mantenha ativado, a menos que tenha certeza do que est\xE1 fazendo."}}}},metadata:{songTitle:{title:"T\xEDtulo:",description:"T\xEDtulo da m\xFAsica"},album:{title:"\xC1lbum:",description:"\xC1lbum da m\xFAsica"},artist:{title:"Artista:",description:"Artista da m\xFAsica"},albumCover:{title:"Capa do \xE1lbum:",description:"Capa do \xE1lbum da m\xFAsica"},creationDate:{title:"Criado em:",description:"Data de cria\xE7\xE3o da m\xFAsica"},genre:{title:"G\xEAnero:",description:"G\xEAnero da m\xFAsica"},comment:{title:"Coment\xE1rio:",description:"Coment\xE1rio da m\xFAsica"},duration:{title:"Dura\xE7\xE3o:",description:"Dura\xE7\xE3o da m\xFAsica"}}}};var vv={localeName:"Portugu\xEAs (Brasil)",titleMessage:"SpessaSynth: Sintetizador JavaScript SoundFont2",demoTitleMessage:"SpessaSynth: Demo Online do Sintetizador JavaScript SoundFont2",synthInit:{genericLoading:"Carregando...",loadingSoundfont:"Carregando SoundFont...",loadingBundledSoundfont:"Carregando SoundFont embutida...",startingSynthesizer:"Iniciando sintetizador...",savingSoundfont:"Salvando SoundFont para reutiliza\xE7\xE3o...",noWebAudio:"Seu navegador n\xE3o suporta Web Audio.",done:"Pronto!"},midiUploadButton:"Envie seus arquivos MIDI",exportAudio:wv,yes:"Sim",no:"N\xE3o",demoSoundfontUploadButton:"Envie a SoundFont",demoGithubPage:"P\xE1gina do projeto",demoSongButton:"M\xFAsica de demonstra\xE7\xE3o",credits:"Cr\xE9ditos",dropPrompt:"Solte os arquivos aqui...",warnings:{outOfMemory:"Seu navegador ficou sem mem\xF3ria. Tente usar o Firefox ou uma SoundFont SF3 (veja o console para detalhes).",noMidiSupport:"Nenhuma porta MIDI detectada, essa fun\xE7\xE3o ser\xE1 desativada.",chromeMobile:"SpessaSynth pode ter um desempenho reduzido no Chrome Mobile. Considere usar o Firefox para Android.",warning:"Aten\xE7\xE3o"},hideTopBar:{title:"Ocultar barra superior",description:"Oculte a barra de t\xEDtulo para uma experi\xEAncia mais imersiva"},convertDls:{title:"Convers\xE3o DLS",message:"Parece que voc\xEA enviou um arquivo DLS. Quer converter para SF2?"},musicPlayerMode:Ev,settings:pv,synthesizerController:Qv,sequencerController:yv};var iB="en",x$={en:Tw,pl:Kw,ja:ov,fr:hv,pt:vv};var KD=.2,w7=class{addSequencer;constructor(i,A,c,d,p,O,H,P){this.mode="dark",this.autoKeyRange=!1,this.renderer=d,this.midiKeyboard=p,this.midiDeviceHandler=O,this.synthui=A,this.sequi=c,this.locale=P,this.musicMode=H,this.locales=x$,this.keyboardSizes={full:{min:0,max:127},piano:{min:21,max:108},"5 octaves":{min:36,max:96},"two octaves":{min:53,max:77}};let U=document.createElement("div");U.style.position="relative",U.classList.add("seamless_button"),U.classList.add("settings_button"),i.appendChild(U);let W0=document.createElement("div");W0.classList.add("seamless_button"),this.locale.bindObjectProperty(W0,"innerText","locale.musicPlayerMode.toggleButton.title"),this.locale.bindObjectProperty(W0,"title","locale.musicPlayerMode.toggleButton.description"),i.appendChild(W0);let _=document.createElement("div");_.classList.add("seamless_button"),this.locale.bindObjectProperty(_,"innerText","locale.hideTopBar.title"),this.locale.bindObjectProperty(_,"title","locale.hideTopBar.description"),i.appendChild(_);let e0=document.getElementsByClassName("show_top_button")[0];e0.innerHTML=Hy(20);let i0=document.createElement("span");this.locale.bindObjectProperty(i0,"innerText","locale.settings.toggleButton"),U.appendChild(i0);let a1=document.createElement("div");a1.innerHTML=Oy(24),a1.classList.add("gear"),U.appendChild(a1),this.mainDiv=document.createElement("div"),this.mainDiv.classList.add("settings_menu"),this.visible=!1,this.animationId=-1,U.onclick=()=>this.setVisibility(!this.visible),i.appendChild(this.mainDiv),W0.onclick=this.toggleMusicPlayerMode.bind(this),_.onclick=this.hideTopPart.bind(this),this.hideOnDocClick=!0,this.mainDiv.onclick=()=>{this.hideOnDocClick=!1},document.addEventListener("click",()=>{if(!this.hideOnDocClick){this.hideOnDocClick=!0;return}this.setVisibility(!1)}),this.mainDiv.innerHTML=uw,ow(this.mainDiv);for(let f1 of this.mainDiv.querySelectorAll("*[translate-path]"))this.locale.bindObjectProperty(f1,"textContent",f1.getAttribute("translate-path"));for(let f1 of this.mainDiv.querySelectorAll("*[translate-path-title]")){let C2=f1.getAttribute("translate-path-title");this.locale.bindObjectProperty(f1,"textContent",C2+".title"),this.locale.bindObjectProperty(f1,"title",C2+".description")}this.getHtmlControls(),document.addEventListener("keydown",f1=>{switch(f1.key.toLowerCase()){case oi.settingsShow:this.setVisibility(!this.visible);break;case oi.synthesizerUIShow:this.setVisibility(!1)}}),window.savedSettings?this._loadSettings().then(()=>{this.createHandlers(d,p,O,c,A)}):this.createHandlers(d,p,O,c,A),this.topPartVisible=!0;let _1=!1;window.addEventListener("resize",()=>{let f1=window.screen.height,C2=window.screen.width,u2=window.outerHeight,I2=window.outerWidth,K2;K2=C2===I2&&f1===u2,K2!==_1&&(_1=K2,K2?this.hideTopPart():this.showTopPart())}),document.addEventListener("fullscreenchange",()=>{document.fullscreenElement===null?this.showTopPart():this.hideTopPart()})}async toggleMusicPlayerMode(){this.musicMode.visible===!1&&this.hideTopPart(),this.musicMode.setVisibility(!this.musicMode.visible,document.getElementById("keyboard_canvas_wrapper")),this.renderer.renderBool=!this.musicMode.visible}showTopPart(){if(this.topPartVisible===!0)return;this.topPartVisible=!0;let i=document.getElementsByClassName("top_part")[0],A=document.getElementsByClassName("show_top_button")[0];i.style.display="",setTimeout(()=>{i.classList.remove("top_part_hidden")},75),A.classList.remove("shown"),A.style.display="none"}hideTopPart(){if(this.topPartVisible===!1)return;this.topPartVisible=!1;let i=document.getElementsByClassName("top_part")[0];i.classList.add("top_part_hidden"),setTimeout(()=>{i.style.display="none"},200);let A=document.getElementsByClassName("show_top_button")[0];A.style.display="flex",setTimeout(()=>{A.classList.add("shown")},75),A.onclick=this.showTopPart.bind(this)}setVisibility(i){this.animationId&&clearTimeout(this.animationId),i?(this.mainDiv.style.display="block",setTimeout(()=>{document.getElementsByClassName("top_part")[0].classList.add("settings_shown"),this.mainDiv.classList.add("settings_menu_show")},75),this.hideOnDocClick=!1):(document.getElementsByClassName("top_part")[0].classList.remove("settings_shown"),this.mainDiv.classList.remove("settings_menu_show"),this.animationId=setTimeout(()=>{this.mainDiv.style.display="none"},KD*1e3)),this.visible=i}createHandlers(i,A,c,d,p){this._createRendererHandler(i),this._createMidiSettingsHandler(c,d,p),this._createKeyboardHandler(A,p,i),this._createInterfaceSettingsHandler()}getHtmlControls(){this.htmlControls={renderer:{noteTimeSlider:document.getElementById("note_time_slider"),analyserToggler:document.getElementById("analyser_toggler"),noteToggler:document.getElementById("note_toggler"),activeNoteToggler:document.getElementById("active_note_toggler"),visualPitchToggler:document.getElementById("visual_pitch_toggler"),stabilizeWaveformsToggler:document.getElementById("stabilize_waveforms_toggler"),analyserThicknessSlider:document.getElementById("analyser_thickness_slider"),analyserFftSlider:document.getElementById("analyser_fft_slider"),waveMultiplierSlizer:document.getElementById("wave_multiplier_slider")},keyboard:{channelSelector:document.getElementById("channel_selector"),modeSelector:document.getElementById("mode_selector"),sizeSelector:document.getElementById("keyboard_size_selector"),showSelector:document.getElementById("keyboard_show")},midi:{outputSelector:document.getElementById("midi_output_selector"),inputSelector:document.getElementById("midi_input_selector")},interface:{themeSelector:document.getElementById("toggle_mode_button"),languageSelector:document.getElementById("language_selector"),layoutSelector:document.getElementById("layout_selector")}}}};w7.prototype._toggleDarkMode=Cw;w7.prototype._createInterfaceSettingsHandler=Iw;w7.prototype._changeLayout=mw;w7.prototype._createRendererHandler=Bw;w7.prototype._createMidiSettingsHandler=Qw;w7.prototype._createMidiInputHandler=yw;w7.prototype._createMidiOutputHandler=ww;w7.prototype._createKeyboardHandler=gw;w7.prototype._loadSettings=dw;w7.prototype._serializeSettings=fw;w7.prototype._saveSettings=hw;var kv=.5,KE=class{constructor(i,A){this.mainDiv=i,this.mainDiv.innerHTML=`
@@ -271,24 +271,24 @@ Ceci r\xE9duit de mani\xE8re significative le poids du fichier (option recommand
`;for(let c of this.mainDiv.querySelectorAll("*[translate-path]"))A.bindObjectProperty(c,"textContent",c.getAttribute("translate-path"));for(let c of this.mainDiv.querySelectorAll("*[translate-path-title]"))A.bindObjectProperty(c,"textContent",c.getAttribute("translate-path-title")+".title"),A.bindObjectProperty(c,"title",c.getAttribute("translate-path-title")+".description");this.timeoutId=-1,this.visible=!1,this.locale=A}toggleDarkMode(){this.mainDiv.getElementsByClassName("player_info_wrapper")[0].classList.toggle("light_mode")}setTitle(i){document.getElementById("player_info_title").textContent=i}connectSequencer(i){this.seq=i,this.seq.addOnSongChangeEvent(A=>{let c=A.copyright.replaceAll(` -`,""),d=(i0,a1,_1=!0)=>{let f1=document.getElementById(i0);if(a1.length>0)if(f1.parentElement.classList.remove("hidden"),f1.innerHTML="",a1.length>30&&_1){f1.classList.add("marquee");let C2=document.createElement("span");C2.textContent=a1,f1.appendChild(C2)}else f1.textContent=a1;else f1.parentElement.classList.add("hidden")};d("player_info_detail",c),d("player_info_time",w$(this.seq.duration).time),d("player_info_file_name",A.fileName,!1);let p=(i0,a1,_1,f1="")=>this.seq.midiData.RMIDInfo?.[i0]===void 0?a1:f1+_1.decode(this.seq.midiData.RMIDInfo?.[i0]).replace(/\0$/,""),U=p("IENC","ascii",new TextDecoder),H=new TextDecoder(U);d("player_info_album",p("IPRD","",H)),d("player_info_artist",p("IART","",H)),d("player_info_genre",p("IGNR","",H)),d("player_info_creation",p("ICRD","",H)+p("ICRT","",H,` -`)),d("player_info_comment",p("ICMT","",H));let O=this.mainDiv.getElementsByTagName("svg")[0],P=this.mainDiv.getElementsByTagName("img")[0],W0=document.getElementById("player_info_background_image");if(!A.isEmbedded){O.style.display="",P.style.display="none",W0.style.setProperty("--bg-image","undefined");return}if(A.RMIDInfo.IPIC===void 0){O.style.display="",P.style.display="none",W0.style.setProperty("--bg-image","undefined");return}O.style.display="none",P.style.display="";let _=new Blob([A.RMIDInfo.IPIC.buffer]),e0=URL.createObjectURL(_);P.src=e0,W0.style.setProperty("--bg-image",`url('${e0}')`)},"player-js-song-change")}setVisibility(i,A){if(i===this.visible)return;this.visible=i,this.timeoutId&&clearTimeout(this.timeoutId);let c=this.mainDiv;if(i){A.classList.add("out_animation"),this.savedCKWrapperHeight=A.clientHeight;let d=A.clientHeight,p=A.getBoundingClientRect().top;c.style.position="absolute",c.style.top=`${p}px`,c.style.height=`${d}px`,c.style.display="flex",setTimeout(()=>{c.classList.add("player_info_show"),document.body.style.overflow="hidden"},75),this.timeoutId=setTimeout(async()=>{A.style.display="none",c.style.position="",c.style.top="",c.style.height="",document.body.style.overflow=""},kv*1e3)}else{let d=c.getBoundingClientRect().top;A.style.display="",A.style.position="absolute",A.style.top=`${d}px`,A.style.height=`${this.savedCKWrapperHeight}px`,c.classList.remove("player_info_show"),setTimeout(()=>{A.classList.remove("out_animation"),document.body.style.overflow="hidden"},75),this.timeoutId=setTimeout(()=>{c.style.display="none",A.style.position="",A.style.top="",A.style.height="",document.body.style.overflow=""},kv*1e3)}}};var WE=class{onLocaleChanged=[];constructor(i){this.locale=x$[i]||x$[iB],this.fallbackLocale=x$[iB],this.localeCode=i,this._boundObjectProperties=[]}getLocaleString(i,A=[]){let c=this._resolveLocalePath(i);return A.length>0?this._formatLocale(c,A):c}_applyPropertyInternal(i){if(i.isEdited)return;let A=this._resolveLocalePath(i.localePath);i.formattingArguments.length>0&&(A=this._formatLocale(A,i.formattingArguments)),i.object[i.propertyName]=A}_validatePropertyIntegrity(i){let A=this._resolveLocalePath(i.localePath);i.formattingArguments.length>0&&(A=this._formatLocale(A,i.formattingArguments)),i.object[i.propertyName]!==A&&(i.isEdited=!0)}_formatLocale(i,A){return i.replace(/{(\d+)}/g,(c,d)=>typeof A[d]<"u"?A[d]:c)}bindObjectProperty(i,A,c,d=[]){let p={object:i,propertyName:A,localePath:c,formattingArguments:d,isEdited:!1};this._applyPropertyInternal(p),this._boundObjectProperties.push(p)}_resolveLocalePath(i,A=!1){if(!i.startsWith("locale."))throw new Error(`Invalid locale path: ${i} (it should start with "locale.")`);let c=i.split("."),d=A?this.fallbackLocale:this.locale;for(let p=1;p{this._validatePropertyIntegrity(d)}),this.locale=c,this._boundObjectProperties.forEach(d=>{this._applyPropertyInternal(d)}),this.onLocaleChanged.forEach(d=>d())}};function rB(n,i=!0,A=0,c={},d=void 0){let p=n.getChannelData(A),U=n.getChannelData(A+1),H=p.length,O=2,P=new j5(0),W0=Object.keys(c).length>0;if(W0){let A0=new TextEncoder,C5=[N7("INFO"),k6("ICMT",A0.encode("Created with SpessaSynth"),!0)];c.artist&&C5.push(k6("IART",A0.encode(c.artist),!0)),c.album&&C5.push(k6("IPRD",A0.encode(c.album),!0)),c.genre&&C5.push(k6("IGNR",A0.encode(c.genre),!0)),c.title&&C5.push(k6("INAM",A0.encode(c.title),!0)),P=k6("LIST",St(C5))}let _=new j5(0),e0=d?.end!==void 0&&d?.start!==void 0;if(e0){let A0=Math.floor(d.start*n.sampleRate),C5=Math.floor(d.end*n.sampleRate),p3=new j5(24);fi(p3,0,4),fi(p3,0,4),P8(p3,"data"),fi(p3,0,4),fi(p3,0,4),fi(p3,A0,4);let w3=new j5(24);fi(w3,1,4),fi(w3,0,4),P8(w3,"data"),fi(w3,0,4),fi(w3,0,4),fi(w3,C5,4);let m6=St([new j5([2,0,0,0]),p3,w3]);_=k6("cue ",m6)}let i0=44,a1=H*2*O,_1=i0+a1+P.length+_.length-8,f1=new Uint8Array(i0);f1.set([82,73,70,70],0),f1.set(new Uint8Array([_1&255,_1>>8&255,_1>>16&255,_1>>24&255]),4),f1.set([87,65,86,69],8),f1.set([102,109,116,32],12),f1.set([16,0,0,0],16),f1.set([1,0],20),f1.set([2,0],22);let C2=n.sampleRate;f1.set(new Uint8Array([C2&255,C2>>8&255,C2>>16&255,C2>>24&255]),24);let u2=C2*2*O;f1.set(new Uint8Array([u2&255,u2>>8&255,u2>>16&255,u2>>24&255]),28),f1.set([4,0],32),f1.set([16,0],34),f1.set([100,97,116,97],36),f1.set(new Uint8Array([a1&255,a1>>8&255,a1>>16&255,a1>>24&255]),40);let I2=new Uint8Array(_1+8),K2=i0;I2.set(f1,0);let J2=32767;if(i){let A0=p.map((C5,p3)=>Math.max(Math.abs(C5),Math.abs(U[p3]))).reduce((C5,p3)=>Math.max(C5,p3));J2=A0>0?32767/A0:1}for(let A0=0;A0>8&255,I2[K2++]=p3&255,I2[K2++]=p3>>8&255}return W0&&(I2.set(P,K2),K2+=P.length),e0&&I2.set(_,K2),new Blob([I2.buffer],{type:"audio/wav"})}var Sv=1e3;async function bv(n=!0,i=2,A=!1,c={},d=0){if(this.isExporting=!0,!this.seq)throw new Error("No sequencer active");let p=manager.localeManager.getLocaleString("locale.exportAudio.formats.formats.wav.exportMessage.message"),U=manager.localeManager.getLocaleString("locale.exportAudio.formats.formats.wav.exportMessage.estimated"),H=manager.localeManager.getLocaleString("locale.synthInit.genericLoading"),O=qe(p,[{type:"text",textContent:H},{type:"progress"}],9999999,!1),P=await this.seq.getMIDI(),W0=xp(P.loop.start,P),_=xp(P.loop.end,P),e0=_-W0,i0=P.duration+i+e0*d,a1=this.context.sampleRate,_1=a1*i0,f1=new OfflineAudioContext({numberOfChannels:A?32:2,sampleRate:a1,length:_1});await f1.audioWorklet.addModule(new URL(this.workletPath,import.meta.url));let C2=await this.synth.getSynthesizerSnapshot(),u2=this.soundFont,I2;try{I2=new fu(f1.destination,u2,!1,{parsedMIDI:P,snapshot:C2,oneOutput:A,loopCount:d},{reverbEnabled:!0,chorusEnabled:!0,chorusConfig:void 0,reverbImpulseResponse:this.impulseResponse})}catch(x6){throw qe(this.localeManager.getLocaleString("locale.warnings.warning"),[{type:"text",textContent:this.localeManager.getLocaleString("locale.warnings.outOfMemory")}]),x6}let K2=O.div.getElementsByTagName("p")[0],J2=O.div.getElementsByClassName("notification_progress")[0],A0=Sv/1e3,C5=I2.currentTime,p3=i0,w3=.1,m6=setInterval(()=>{let x6=I2.currentTime-C5;C5=I2.currentTime;let u9=I2.currentTime/i0;J2.style.width=`${u9*100}%`;let P3=x6/A0,w6=(1-u9)/P3*i0;w6!==1/0&&(p3=w3*w6+(1-w3)*p3,K2.innerText=`${U} ${w$(p3).time}`)},Sv),v3=await f1.startRendering();if(J2.style.width="100%",clearInterval(m6),K2.innerText=this.localeManager.getLocaleString("locale.exportAudio.formats.formats.wav.exportMessage.convertWav"),await new Promise(x6=>setTimeout(x6,75)),A){let x6="locale.exportAudio.formats.formats.wav.options.separateChannels.saving.",u9=[],P3=new Set;for(let Me of P.usedChannelsOnTrack)Me.forEach(Wr=>P3.add(Wr));for(let Me=0;Me<16;Me++){let Wr=!0;for(let er=Me;er{let Ho=Ka.textContent;Ka.textContent=this.localeManager.getLocaleString("locale.exportAudio.formats.formats.wav.exportMessage.convertWav"),await new Promise(aC=>setTimeout(aC,75));let Op=rB(v3,!1,Me*2),F$=`${Me+1} - ${C2.channelSnapshots[Me].patchName}.wav`;this.saveBlob(Op,F$),Ka.classList.add("green_button"),Ka.textContent=Ho}})}let w6=qe(this.localeManager.getLocaleString(x6+"title"),u9,99999999,!0,void 0,{display:"flex",flexWrap:"wrap",flexDirection:"row"});w6.div.style.width="30rem"}else{let x6=xp(P.firstNoteOn,P),u9=W0-x6,P3=_-x6,w6;d===0&&(w6={start:u9,end:P3});let Me=rB(v3,n,0,c,w6);this.saveBlob(Me,`${this.seqUI.currentSongTitle||"unnamed_song"}.wav`)}le(O.id),this.isExporting=!1}async function Dv(){if(this.isExporting)return;let n="locale.exportAudio.formats.formats.wav.options.",i="locale.exportAudio.formats.metadata.",A=(P,W0,_)=>this.seq.midiData.RMIDInfo?.[P]===void 0?W0:_.decode(this.seq.midiData.RMIDInfo?.[P]).replace(/\0$/,""),c=A("IENC","ascii",new TextDecoder),d=new TextDecoder(c),p=A("IPRD","",d),U=A("IART","",d),H=A("IGNR","",d),O=[{type:"toggle",translatePathTitle:n+"normalizeVolume",attributes:{"normalize-volume-toggle":"1",checked:"true"}},{type:"input",translatePathTitle:n+"additionalTime",attributes:{value:"2",type:"number","additional-time":"1"}},{type:"input",translatePathTitle:n+"loopCount",attributes:{value:"0",type:"number","loop-count":"1"}},{type:"toggle",translatePathTitle:n+"separateChannels",attributes:{"separate-channels-toggle":"1"}},{type:"input",translatePathTitle:i+"songTitle",attributes:{name:"song_title",type:"text",value:this.seqUI.currentSongTitle}},{type:"input",translatePathTitle:i+"album",attributes:{value:p,name:"album",type:"text"}},{type:"input",translatePathTitle:i+"artist",attributes:{value:U,name:"artist",type:"text"}},{type:"input",translatePathTitle:i+"genre",attributes:{value:H,name:"genre",type:"text"}},{type:"button",textContent:this.localeManager.getLocaleString(n+"confirm"),onClick:P=>{le(P.id);let W0=P.div.querySelector("input[normalize-volume-toggle]").checked,_=P.div.querySelector("input[additional-time]").value,e0=P.div.querySelector("input[loop-count]").value,i0=P.div.querySelector("input[separate-channels-toggle]").checked,a1=P.div.querySelector("input[name='artist']").value,_1=P.div.querySelector("input[name='album']").value,f1=P.div.querySelector("input[name='song_title']").value,C2=P.div.querySelector("input[name='genre']").value,u2={artist:a1.length>0?a1:void 0,album:_1.length>0?_1:void 0,title:f1.length>0?f1:void 0,genre:C2.length>0?C2:void 0};this._doExportAudioData(W0,parseInt(_),i0,u2,parseInt(e0))}}];qe(this.localeManager.getLocaleString(n+"title"),O,9999999,!0,this.localeManager)}async function _v(){let n=await this.seq.getMIDI();Ua(n,await this.synth.getSynthesizerSnapshot());let i=NE(n),A=new Blob([i],{type:"audio/mid"});this.saveBlob(A,`${this.seqUI.currentSongTitle||"unnamed_song"}.mid`)}function xv(n,i){y8("%cSearching for all used programs and keys...",C1.info);let A=16+n.midiPortChannelOffsets.reduce((_,e0)=>e0>_?e0:_),c=[];for(let _=0;_{U[a1]>=i0.length||i0[U[a1]].ticks0;){let _=O(),e0=n.tracks[_];if(U[_]>=e0.length){H--;continue}let i0=e0[U[_]];if(U[_]++,i0.messageStatusByte===Z3.midiPort){P[_]=i0.messageData[0];continue}let a1=i0.messageStatusByte&240;if(a1!==Z3.noteOn&&a1!==Z3.controllerChange&&a1!==Z3.programChange&&a1!==Z3.systemExclusive)continue;let _1=(i0.messageStatusByte&15)+n.midiPortChannelOffsets[P[_]]||0,f1=c[_1];switch(a1){case Z3.programChange:f1.program=i0.messageData[0],d(f1);break;case Z3.controllerChange:if(i0.messageData[0]!==$3.bankSelect||W0==="gs"&&f1.drums)continue;let C2=i0.messageData[1],u2=Math.max(0,C2-n.bankOffset);if(W0==="xg"){let J2=C2===120||C2===126||C2===127;J2!==f1.drums?(f1.drums=J2,f1.bank=f1.drums?128:u2,d(f1)):f1.bank=f1.drums?128:u2;continue}c[_1].bank=u2;break;case Z3.noteOn:if(i0.messageData[1]===0)continue;d(f1),p[f1.string].add(`${i0.messageData[0]}-${i0.messageData[1]}`);break;case Z3.systemExclusive:if(i0.messageData[0]!==65||i0.messageData[2]!==66||i0.messageData[3]!==18||i0.messageData[4]!==64||!(i0.messageData[5]&16)||i0.messageData[6]!==21){i0.messageData[0]===67&&i0.messageData[2]===76&&i0.messageData[5]===126&&i0.messageData[6]===0&&(W0="xg");continue}let I2=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][i0.messageData[5]&15]+n.midiPortChannelOffsets[P[_]],K2=!!(i0.messageData[7]>0&&i0.messageData[5]>>4);f1=c[I2],f1.drums=K2,f1.bank=K2?128:0,d(f1);break}}for(let _ of Object.keys(p))p[_].size===0&&(_5(`%cDetected change but no keys for %c${_}`,C1.info,C1.value),delete p[_]);return g9(),p}function Cu(n,i){function A(d,p){let U=0;for(let H=0;H=P.min&&e0.key<=P.max&&e0.velocity>=W0.min&&e0.velocity<=W0.max){_=!0;break}_||(_5(`%c${O.sample.sampleName} %cremoved from %c${d.instrumentName}%c. Use count: %c${O.useCount-1}`,C1.recognized,C1.info,C1.recognized,C1.info,C1.recognized),d.safeDeleteZone(H)&&(U++,H--,_5(`%c${O.sample.sampleName} %cdeleted`,C1.recognized,C1.info)),O.sample.useCount<1&&n.deleteSample(O.sample))}return U}M7("%cTrimming soundfont...",C1.info);let c=xv(i,n);y8("%cModifying soundfont...",C1.info),_5("Detected keys for midi:",c);for(let d=0;d{let _=W0.split("-");return{key:parseInt(_[0]),velocity:parseInt(_[1])}});y8(`%cTrimming %c${p.presetName}`,C1.info,C1.recognized),_5(`Keys for ${p.presetName}:`,O);let P=0;for(let W0=0;W0=e0.min&&_1.key<=e0.max&&_1.velocity>=i0.min&&_1.velocity<=i0.max){a1=!0;let f1=A(_.instrument,O);_5(`%cTrimmed off %c${f1}%c zones from %c${_.instrument.instrumentName}`,C1.info,C1.recognized,C1.info,C1.recognized);break}a1||(P++,p.deleteZone(W0),_.instrument.useCount<1&&n.deleteInstrument(_.instrument),W0--)}_5(`%cTrimmed off %c${P}%c zones from %c${p.presetName}`,C1.info,C1.recognized,C1.info,C1.recognized),g9()}}n.removeUnusedElements(),n.soundFontInfo.ICMT=`NOTE: This soundfont was trimmed by SpessaSynth to only contain presets used in "${i.midiName}" +`,""),d=(i0,a1,_1=!0)=>{let f1=document.getElementById(i0);if(a1.length>0)if(f1.parentElement.classList.remove("hidden"),f1.innerHTML="",a1.length>30&&_1){f1.classList.add("marquee");let C2=document.createElement("span");C2.textContent=a1,f1.appendChild(C2)}else f1.textContent=a1;else f1.parentElement.classList.add("hidden")};d("player_info_detail",c),d("player_info_time",w$(this.seq.duration).time),d("player_info_file_name",A.fileName,!1);let p=(i0,a1,_1,f1="")=>this.seq.midiData.RMIDInfo?.[i0]===void 0?a1:f1+_1.decode(this.seq.midiData.RMIDInfo?.[i0]).replace(/\0$/,""),O=p("IENC","ascii",new TextDecoder),H=new TextDecoder(O);d("player_info_album",p("IPRD","",H)),d("player_info_artist",p("IART","",H)),d("player_info_genre",p("IGNR","",H)),d("player_info_creation",p("ICRD","",H)+p("ICRT","",H,` +`)),d("player_info_comment",p("ICMT","",H));let P=this.mainDiv.getElementsByTagName("svg")[0],U=this.mainDiv.getElementsByTagName("img")[0],W0=document.getElementById("player_info_background_image");if(!A.isEmbedded){P.style.display="",U.style.display="none",W0.style.setProperty("--bg-image","undefined");return}if(A.RMIDInfo.IPIC===void 0){P.style.display="",U.style.display="none",W0.style.setProperty("--bg-image","undefined");return}P.style.display="none",U.style.display="";let _=new Blob([A.RMIDInfo.IPIC.buffer]),e0=URL.createObjectURL(_);U.src=e0,W0.style.setProperty("--bg-image",`url('${e0}')`)},"player-js-song-change")}setVisibility(i,A){if(i===this.visible)return;this.visible=i,this.timeoutId&&clearTimeout(this.timeoutId);let c=this.mainDiv;if(i){A.classList.add("out_animation"),this.savedCKWrapperHeight=A.clientHeight;let d=A.clientHeight,p=A.getBoundingClientRect().top;c.style.position="absolute",c.style.top=`${p}px`,c.style.height=`${d}px`,c.style.display="flex",setTimeout(()=>{c.classList.add("player_info_show"),document.body.style.overflow="hidden"},75),this.timeoutId=setTimeout(async()=>{A.style.display="none",c.style.position="",c.style.top="",c.style.height="",document.body.style.overflow=""},kv*1e3)}else{let d=c.getBoundingClientRect().top;A.style.display="",A.style.position="absolute",A.style.top=`${d}px`,A.style.height=`${this.savedCKWrapperHeight}px`,c.classList.remove("player_info_show"),setTimeout(()=>{A.classList.remove("out_animation"),document.body.style.overflow="hidden"},75),this.timeoutId=setTimeout(()=>{c.style.display="none",A.style.position="",A.style.top="",A.style.height="",document.body.style.overflow=""},kv*1e3)}}};var WE=class{onLocaleChanged=[];constructor(i){this.locale=x$[i]||x$[iB],this.fallbackLocale=x$[iB],this.localeCode=i,this._boundObjectProperties=[]}getLocaleString(i,A=[]){let c=this._resolveLocalePath(i);return A.length>0?this._formatLocale(c,A):c}_applyPropertyInternal(i){if(i.isEdited)return;let A=this._resolveLocalePath(i.localePath);i.formattingArguments.length>0&&(A=this._formatLocale(A,i.formattingArguments)),i.object[i.propertyName]=A}_validatePropertyIntegrity(i){let A=this._resolveLocalePath(i.localePath);i.formattingArguments.length>0&&(A=this._formatLocale(A,i.formattingArguments)),i.object[i.propertyName]!==A&&(i.isEdited=!0)}_formatLocale(i,A){return i.replace(/{(\d+)}/g,(c,d)=>typeof A[d]<"u"?A[d]:c)}bindObjectProperty(i,A,c,d=[]){let p={object:i,propertyName:A,localePath:c,formattingArguments:d,isEdited:!1};this._applyPropertyInternal(p),this._boundObjectProperties.push(p)}_resolveLocalePath(i,A=!1){if(!i.startsWith("locale."))throw new Error(`Invalid locale path: ${i} (it should start with "locale.")`);let c=i.split("."),d=A?this.fallbackLocale:this.locale;for(let p=1;p{this._validatePropertyIntegrity(d)}),this.locale=c,this._boundObjectProperties.forEach(d=>{this._applyPropertyInternal(d)}),this.onLocaleChanged.forEach(d=>d())}};function rB(n,i=!0,A=0,c={},d=void 0){let p=n.getChannelData(A),O=n.getChannelData(A+1),H=p.length,P=2,U=new j5(0),W0=Object.keys(c).length>0;if(W0){let A0=new TextEncoder,C5=[N7("INFO"),k6("ICMT",A0.encode("Created with SpessaSynth"),!0)];c.artist&&C5.push(k6("IART",A0.encode(c.artist),!0)),c.album&&C5.push(k6("IPRD",A0.encode(c.album),!0)),c.genre&&C5.push(k6("IGNR",A0.encode(c.genre),!0)),c.title&&C5.push(k6("INAM",A0.encode(c.title),!0)),U=k6("LIST",St(C5))}let _=new j5(0),e0=d?.end!==void 0&&d?.start!==void 0;if(e0){let A0=Math.floor(d.start*n.sampleRate),C5=Math.floor(d.end*n.sampleRate),p3=new j5(24);fi(p3,0,4),fi(p3,0,4),P8(p3,"data"),fi(p3,0,4),fi(p3,0,4),fi(p3,A0,4);let w3=new j5(24);fi(w3,1,4),fi(w3,0,4),P8(w3,"data"),fi(w3,0,4),fi(w3,0,4),fi(w3,C5,4);let m6=St([new j5([2,0,0,0]),p3,w3]);_=k6("cue ",m6)}let i0=44,a1=H*2*P,_1=i0+a1+U.length+_.length-8,f1=new Uint8Array(i0);f1.set([82,73,70,70],0),f1.set(new Uint8Array([_1&255,_1>>8&255,_1>>16&255,_1>>24&255]),4),f1.set([87,65,86,69],8),f1.set([102,109,116,32],12),f1.set([16,0,0,0],16),f1.set([1,0],20),f1.set([2,0],22);let C2=n.sampleRate;f1.set(new Uint8Array([C2&255,C2>>8&255,C2>>16&255,C2>>24&255]),24);let u2=C2*2*P;f1.set(new Uint8Array([u2&255,u2>>8&255,u2>>16&255,u2>>24&255]),28),f1.set([4,0],32),f1.set([16,0],34),f1.set([100,97,116,97],36),f1.set(new Uint8Array([a1&255,a1>>8&255,a1>>16&255,a1>>24&255]),40);let I2=new Uint8Array(_1+8),K2=i0;I2.set(f1,0);let J2=32767;if(i){let A0=p.map((C5,p3)=>Math.max(Math.abs(C5),Math.abs(O[p3]))).reduce((C5,p3)=>Math.max(C5,p3));J2=A0>0?32767/A0:1}for(let A0=0;A0>8&255,I2[K2++]=p3&255,I2[K2++]=p3>>8&255}return W0&&(I2.set(U,K2),K2+=U.length),e0&&I2.set(_,K2),new Blob([I2.buffer],{type:"audio/wav"})}var Sv=1e3;async function bv(n=!0,i=2,A=!1,c={},d=0){if(this.isExporting=!0,!this.seq)throw new Error("No sequencer active");let p=manager.localeManager.getLocaleString("locale.exportAudio.formats.formats.wav.exportMessage.message"),O=manager.localeManager.getLocaleString("locale.exportAudio.formats.formats.wav.exportMessage.estimated"),H=manager.localeManager.getLocaleString("locale.synthInit.genericLoading"),P=qe(p,[{type:"text",textContent:H},{type:"progress"}],9999999,!1),U=await this.seq.getMIDI(),W0=xp(U.loop.start,U),_=xp(U.loop.end,U),e0=_-W0,i0=U.duration+i+e0*d,a1=this.context.sampleRate,_1=a1*i0,f1=new OfflineAudioContext({numberOfChannels:A?32:2,sampleRate:a1,length:_1});await f1.audioWorklet.addModule(new URL(this.workletPath,import.meta.url));let C2=await this.synth.getSynthesizerSnapshot(),u2=this.soundFont,I2;try{I2=new fu(f1.destination,u2,!1,{parsedMIDI:U,snapshot:C2,oneOutput:A,loopCount:d},{reverbEnabled:!0,chorusEnabled:!0,chorusConfig:void 0,reverbImpulseResponse:this.impulseResponse})}catch(x6){throw qe(this.localeManager.getLocaleString("locale.warnings.warning"),[{type:"text",textContent:this.localeManager.getLocaleString("locale.warnings.outOfMemory")}]),x6}let K2=P.div.getElementsByTagName("p")[0],J2=P.div.getElementsByClassName("notification_progress")[0],A0=Sv/1e3,C5=I2.currentTime,p3=i0,w3=.1,m6=setInterval(()=>{let x6=I2.currentTime-C5;C5=I2.currentTime;let u9=I2.currentTime/i0;J2.style.width=`${u9*100}%`;let P3=x6/A0,w6=(1-u9)/P3*i0;w6!==1/0&&(p3=w3*w6+(1-w3)*p3,K2.innerText=`${O} ${w$(p3).time}`)},Sv),v3=await f1.startRendering();if(J2.style.width="100%",clearInterval(m6),K2.innerText=this.localeManager.getLocaleString("locale.exportAudio.formats.formats.wav.exportMessage.convertWav"),await new Promise(x6=>setTimeout(x6,75)),A){let x6="locale.exportAudio.formats.formats.wav.options.separateChannels.saving.",u9=[],P3=new Set;for(let Me of U.usedChannelsOnTrack)Me.forEach(Wr=>P3.add(Wr));for(let Me=0;Me<16;Me++){let Wr=!0;for(let er=Me;er{let Ho=Ka.textContent;Ka.textContent=this.localeManager.getLocaleString("locale.exportAudio.formats.formats.wav.exportMessage.convertWav"),await new Promise(aC=>setTimeout(aC,75));let Op=rB(v3,!1,Me*2),F$=`${Me+1} - ${C2.channelSnapshots[Me].patchName}.wav`;this.saveBlob(Op,F$),Ka.classList.add("green_button"),Ka.textContent=Ho}})}let w6=qe(this.localeManager.getLocaleString(x6+"title"),u9,99999999,!0,void 0,{display:"flex",flexWrap:"wrap",flexDirection:"row"});w6.div.style.width="30rem"}else{let x6=xp(U.firstNoteOn,U),u9=W0-x6,P3=_-x6,w6;d===0&&(w6={start:u9,end:P3});let Me=rB(v3,n,0,c,w6);this.saveBlob(Me,`${this.seqUI.currentSongTitle||"unnamed_song"}.wav`)}le(P.id),this.isExporting=!1}async function Dv(){if(this.isExporting)return;let n="locale.exportAudio.formats.formats.wav.options.",i="locale.exportAudio.formats.metadata.",A=(U,W0,_)=>this.seq.midiData.RMIDInfo?.[U]===void 0?W0:_.decode(this.seq.midiData.RMIDInfo?.[U]).replace(/\0$/,""),c=A("IENC","ascii",new TextDecoder),d=new TextDecoder(c),p=A("IPRD","",d),O=A("IART","",d),H=A("IGNR","",d),P=[{type:"toggle",translatePathTitle:n+"normalizeVolume",attributes:{"normalize-volume-toggle":"1",checked:"true"}},{type:"input",translatePathTitle:n+"additionalTime",attributes:{value:"2",type:"number","additional-time":"1"}},{type:"input",translatePathTitle:n+"loopCount",attributes:{value:"0",type:"number","loop-count":"1"}},{type:"toggle",translatePathTitle:n+"separateChannels",attributes:{"separate-channels-toggle":"1"}},{type:"input",translatePathTitle:i+"songTitle",attributes:{name:"song_title",type:"text",value:this.seqUI.currentSongTitle}},{type:"input",translatePathTitle:i+"album",attributes:{value:p,name:"album",type:"text"}},{type:"input",translatePathTitle:i+"artist",attributes:{value:O,name:"artist",type:"text"}},{type:"input",translatePathTitle:i+"genre",attributes:{value:H,name:"genre",type:"text"}},{type:"button",textContent:this.localeManager.getLocaleString(n+"confirm"),onClick:U=>{le(U.id);let W0=U.div.querySelector("input[normalize-volume-toggle]").checked,_=U.div.querySelector("input[additional-time]").value,e0=U.div.querySelector("input[loop-count]").value,i0=U.div.querySelector("input[separate-channels-toggle]").checked,a1=U.div.querySelector("input[name='artist']").value,_1=U.div.querySelector("input[name='album']").value,f1=U.div.querySelector("input[name='song_title']").value,C2=U.div.querySelector("input[name='genre']").value,u2={artist:a1.length>0?a1:void 0,album:_1.length>0?_1:void 0,title:f1.length>0?f1:void 0,genre:C2.length>0?C2:void 0};this._doExportAudioData(W0,parseInt(_),i0,u2,parseInt(e0))}}];qe(this.localeManager.getLocaleString(n+"title"),P,9999999,!0,this.localeManager)}async function _v(){let n=await this.seq.getMIDI();Ua(n,await this.synth.getSynthesizerSnapshot());let i=NE(n),A=new Blob([i],{type:"audio/mid"});this.saveBlob(A,`${this.seqUI.currentSongTitle||"unnamed_song"}.mid`)}function xv(n,i){y8("%cSearching for all used programs and keys...",C1.info);let A=16+n.midiPortChannelOffsets.reduce((_,e0)=>e0>_?e0:_),c=[];for(let _=0;_{O[a1]>=i0.length||i0[O[a1]].ticks0;){let _=P(),e0=n.tracks[_];if(O[_]>=e0.length){H--;continue}let i0=e0[O[_]];if(O[_]++,i0.messageStatusByte===Z3.midiPort){U[_]=i0.messageData[0];continue}let a1=i0.messageStatusByte&240;if(a1!==Z3.noteOn&&a1!==Z3.controllerChange&&a1!==Z3.programChange&&a1!==Z3.systemExclusive)continue;let _1=(i0.messageStatusByte&15)+n.midiPortChannelOffsets[U[_]]||0,f1=c[_1];switch(a1){case Z3.programChange:f1.program=i0.messageData[0],d(f1);break;case Z3.controllerChange:if(i0.messageData[0]!==$3.bankSelect||W0==="gs"&&f1.drums)continue;let C2=i0.messageData[1],u2=Math.max(0,C2-n.bankOffset);if(W0==="xg"){let J2=C2===120||C2===126||C2===127;J2!==f1.drums?(f1.drums=J2,f1.bank=f1.drums?128:u2,d(f1)):f1.bank=f1.drums?128:u2;continue}c[_1].bank=u2;break;case Z3.noteOn:if(i0.messageData[1]===0)continue;d(f1),p[f1.string].add(`${i0.messageData[0]}-${i0.messageData[1]}`);break;case Z3.systemExclusive:if(i0.messageData[0]!==65||i0.messageData[2]!==66||i0.messageData[3]!==18||i0.messageData[4]!==64||!(i0.messageData[5]&16)||i0.messageData[6]!==21){i0.messageData[0]===67&&i0.messageData[2]===76&&i0.messageData[5]===126&&i0.messageData[6]===0&&(W0="xg");continue}let I2=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][i0.messageData[5]&15]+n.midiPortChannelOffsets[U[_]],K2=!!(i0.messageData[7]>0&&i0.messageData[5]>>4);f1=c[I2],f1.drums=K2,f1.bank=K2?128:0,d(f1);break}}for(let _ of Object.keys(p))p[_].size===0&&(_5(`%cDetected change but no keys for %c${_}`,C1.info,C1.value),delete p[_]);return g9(),p}function Cu(n,i){function A(d,p){let O=0;for(let H=0;H=U.min&&e0.key<=U.max&&e0.velocity>=W0.min&&e0.velocity<=W0.max){_=!0;break}_||(_5(`%c${P.sample.sampleName} %cremoved from %c${d.instrumentName}%c. Use count: %c${P.useCount-1}`,C1.recognized,C1.info,C1.recognized,C1.info,C1.recognized),d.safeDeleteZone(H)&&(O++,H--,_5(`%c${P.sample.sampleName} %cdeleted`,C1.recognized,C1.info)),P.sample.useCount<1&&n.deleteSample(P.sample))}return O}M7("%cTrimming soundfont...",C1.info);let c=xv(i,n);y8("%cModifying soundfont...",C1.info),_5("Detected keys for midi:",c);for(let d=0;d{let _=W0.split("-");return{key:parseInt(_[0]),velocity:parseInt(_[1])}});y8(`%cTrimming %c${p.presetName}`,C1.info,C1.recognized),_5(`Keys for ${p.presetName}:`,P);let U=0;for(let W0=0;W0=e0.min&&_1.key<=e0.max&&_1.velocity>=i0.min&&_1.velocity<=i0.max){a1=!0;let f1=A(_.instrument,P);_5(`%cTrimmed off %c${f1}%c zones from %c${_.instrument.instrumentName}`,C1.info,C1.recognized,C1.info,C1.recognized);break}a1||(U++,p.deleteZone(W0),_.instrument.useCount<1&&n.deleteInstrument(_.instrument),W0--)}_5(`%cTrimmed off %c${U}%c zones from %c${p.presetName}`,C1.info,C1.recognized,C1.info,C1.recognized),g9()}}n.removeUnusedElements(),n.soundFontInfo.ICMT=`NOTE: This soundfont was trimmed by SpessaSynth to only contain presets used in "${i.midiName}" -`+n.soundFontInfo.ICMT,_5("%cSoundfont modified!",C1.recognized),g9(),g9()}function Lv(){let n=4;for(let c of this.instruments)n+=c.instrumentZones.reduce((d,p)=>(p.generators=p.generators.filter(U=>U.generatorType!==m0.sampleID&&U.generatorType!==m0.keyRange&&U.generatorType!==m0.velRange),(p.velRange.max!==127||p.velRange.min!==0)&&p.generators.unshift({generatorType:m0.velRange,generatorValue:p.velRange.max<<8|Math.max(p.velRange.min,0)}),(p.keyRange.max!==127||p.keyRange.min!==0)&&p.generators.unshift({generatorType:m0.keyRange,generatorValue:p.keyRange.max<<8|Math.max(p.keyRange.min,0)}),p.isGlobal||p.generators.push({generatorType:m0.sampleID,generatorValue:this.samples.indexOf(p.sample)}),p.generators.length*4+d),0);let i=new j5(n),A=0;for(let c of this.instruments)for(let d of c.instrumentZones){d.generatorZoneStartIndex=A;for(let p of d.generators)j3(i,p.generatorType),j3(i,p.generatorValue),A++}return p9(i,0),it(new w4("igen",i.length,i))}function Mv(n,i,A,c,d){let p=this.samples.map((P,W0)=>{A&&P.compressSample(c,d);let _=P.getRawData();return _5(`%cEncoded sample %c${W0}. ${P.sampleName}%c of %c${this.samples.length}`,C1.info,C1.recognized,C1.info,C1.recognized),_}),U=this.samples.reduce((P,W0,_)=>P+p[_].length+46,0),H=new j5(U);this.samples.forEach((P,W0)=>{let _=p[W0],e0,i0,a1=_.length;P.isCompressed?(e0=H.currentIndex,i0=e0+_.length):(e0=H.currentIndex/2,i0=e0+_.length/2,a1+=46),n.push(e0),H.set(_,H.currentIndex),H.currentIndex+=a1,i.push(i0)});let O=it(new w4("smpl",H.length,H),new j5([115,100,116,97]));return it(new w4("LIST",O.length,O))}function Rv(n,i){let c=new j5(46*(this.samples.length+1));return this.samples.forEach((d,p)=>{P8(c,d.sampleName,20);let U=n[p];p9(c,U);let H=i[p];p9(c,H);let O=d.sampleLoopStartIndex+U,P=d.sampleLoopEndIndex+U;d.isCompressed&&(O-=U,P-=U),p9(c,O),p9(c,P),p9(c,d.sampleRate),c[c.currentIndex++]=d.samplePitch,c[c.currentIndex++]=d.samplePitchCorrection,j3(c,d.sampleLink),j3(c,d.sampleType)}),P8(c,"EOS",46),it(new w4("shdr",c.length,c))}function Fv(){let n=10;for(let c of this.instruments)n+=c.instrumentZones.reduce((d,p)=>p.modulators.length*10+d,0);let i=new j5(n),A=0;for(let c of this.instruments)for(let d of c.instrumentZones){d.modulatorZoneStartIndex=A;for(let p of d.modulators)j3(i,p.sourceEnum),j3(i,p.modulatorDestination),j3(i,p.transformAmount),j3(i,p.secondarySourceEnum),j3(i,p.transformType),A++}return fi(i,0,10),it(new w4("imod",i.length,i))}function Tv(){let n=this.instruments.reduce((p,U)=>U.instrumentZones.length*4+p,4),i=new j5(n),A=0,c=0,d=0;for(let p of this.instruments){p.instrumentZoneIndex=A;for(let U of p.instrumentZones)U.zoneID=A,j3(i,c),j3(i,d),c+=U.generators.length,d+=U.modulators.length,A++}return j3(i,c),j3(i,d),it(new w4("ibag",i.length,i))}function Nv(){let n=this.instruments.length*22+22,i=new j5(n),A=0,c=0;for(let d of this.instruments)P8(i,d.instrumentName,20),j3(i,A),A+=d.instrumentZones.length,d.instrumentID=c,c++;return P8(i,"EOI",20),j3(i,A),it(new w4("inst",i.length,i))}function Gv(){let n=4;for(let c of this.presets)n+=c.presetZones.reduce((d,p)=>(p.generators=p.generators.filter(U=>U.generatorType!==m0.instrument&&U.generatorType!==m0.keyRange&&U.generatorType!==m0.velRange),(p.velRange.max!==127||p.velRange.min!==0)&&p.generators.unshift({generatorType:m0.velRange,generatorValue:p.velRange.max<<8|Math.max(p.velRange.min,0)}),(p.keyRange.max!==127||p.keyRange.min!==0)&&p.generators.unshift({generatorType:m0.keyRange,generatorValue:p.keyRange.max<<8|Math.max(p.keyRange.min,0)}),p.isGlobal||p.generators.push({generatorType:m0.instrument,generatorValue:this.instruments.indexOf(p.instrument)}),p.generators.length*4+d),0);let i=new j5(n),A=0;for(let c of this.presets)for(let d of c.presetZones){d.generatorZoneStartIndex=A;for(let p of d.generators)j3(i,p.generatorType),j3(i,p.generatorValue);A+=d.generators.length}return j3(i,0),j3(i,0),it(new w4("pgen",i.length,i))}function Uv(){let n=10;for(let c of this.presets)n+=c.presetZones.reduce((d,p)=>p.modulators.length*10+d,0);let i=new j5(n),A=0;for(let c of this.presets)for(let d of c.presetZones){d.modulatorZoneStartIndex=A;for(let p of d.modulators)j3(i,p.sourceEnum),j3(i,p.modulatorDestination),j3(i,p.transformAmount),j3(i,p.secondarySourceEnum),j3(i,p.transformType),A++}return fi(i,0,10),it(new w4("pmod",i.length,i))}function Pv(){let n=this.presets.reduce((p,U)=>U.presetZones.length*4+p,4),i=new j5(n),A=0,c=0,d=0;for(let p of this.presets){p.presetZoneStartIndex=A;for(let U of p.presetZones)U.zoneID=A,j3(i,c),j3(i,d),c+=U.generators.length,d+=U.modulators.length,A++}return j3(i,c),j3(i,d),it(new w4("pbag",i.length,i))}function Ov(){let n=this.presets.length*38+38,i=new j5(n),A=0;for(let c of this.presets)P8(i,c.presetName,20),j3(i,c.program),j3(i,c.bank),j3(i,A),p9(i,c.library),p9(i,c.genre),p9(i,c.morphology),A+=c.presetZones.length;return P8(i,"EOP",20),j3(i,0),j3(i,0),j3(i,A),p9(i,0),p9(i,0),p9(i,0),it(new w4("phdr",i.length,i))}var WD={compress:!1,compressionQuality:.5,compressionFunction:void 0};function qv(n=WD){if(n.compress&&typeof n.compressionFunction!="function")throw new TypeError("No compression function supplied but compression enabled.");y8("%cSaving soundfont...",C1.info),_5(`%cCompression: %c${n?.compress||"false"}%c quality: %c${n?.compressionQuality||"none"}`,C1.info,C1.recognized,C1.info,C1.recognized),_5("%cWriting INFO...",C1.info);let i=[];this.soundFontInfo.ISFT="SpessaSynth",n?.compress&&(this.soundFontInfo.ifil="3.0");for(let[K2,J2]of Object.entries(this.soundFontInfo))if(K2==="ifil"||K2==="iver"){let A0=parseInt(J2.split(".")[0]),C5=parseInt(J2.split(".")[1]),p3=new j5(4);j3(p3,A0),j3(p3,C5),i.push(it(new w4(K2,4,p3)))}else if(K2==="DMOD")i.push(it(new w4(K2,J2.length,J2)));else{let A0=new j5(J2.length);P8(A0,J2),i.push(it(new w4(K2,J2.length,A0)))}let A=St([new j5([73,78,70,79]),...i]),c=it(new w4("LIST",A.length,A));_5("%cWriting SDTA...",C1.info);let d=[],p=[],U=Mv.call(this,d,p,n?.compress,n?.compressionQuality??.5,n.compressionFunction);_5("%cWriting PDTA...",C1.info),_5("%cWriting SHDR...",C1.info);let H=Rv.call(this,d,p);_5("%cWriting IGEN...",C1.info);let O=Lv.call(this);_5("%cWriting IMOD...",C1.info);let P=Fv.call(this);_5("%cWriting IBAG...",C1.info);let W0=Tv.call(this);_5("%cWriting INST...",C1.info);let _=Nv.call(this),e0=Gv.call(this);_5("%cWriting PMOD...",C1.info);let i0=Uv.call(this);_5("%cWriting PBAG...",C1.info);let a1=Pv.call(this);_5("%cWriting PHDR...",C1.info);let _1=Ov.call(this),f1=St([new j5([112,100,116,97]),_1,a1,i0,e0,_,W0,P,O,H]),C2=it(new w4("LIST",f1.length,f1));_5("%cWriting the output file...",C1.info);let u2=St([new j5([115,102,98,107]),c,U,C2]),I2=it(new w4("RIFF",u2.length,u2));return _5(`%cSaved succesfully! Final file size: %c${I2.length}`,C1.info,C1.recognized),g9(),I2}var Gp=class{velRange={min:-1,max:127};keyRange={min:-1,max:127};isGlobal=!1;generators=[];modulators=[];get hasKeyRange(){return this.keyRange.min!==-1}get hasVelRange(){return this.velRange.min!==-1}getGeneratorValue(i,A){return this.generators.find(c=>c.generatorType===i)?.generatorValue??A}};var zr=class extends Gp{sample=void 0;useCount=0;deleteZone(){this.useCount--,!this.isGlobal&&this.sample.useCount--}},Bu=class extends Gp{instrument=void 0;deleteZone(){this.isGlobal||this.instrument.removeUseCount()}};var ZD=new Set([m0.velRange,m0.keyRange,m0.instrument,m0.exclusiveClass,m0.endOper,m0.sampleModes,m0.startloopAddrsOffset,m0.startloopAddrsCoarseOffset,m0.endloopAddrsOffset,m0.endloopAddrsCoarseOffset,m0.startAddrsOffset,m0.startAddrsCoarseOffset,m0.endAddrOffset,m0.endAddrsCoarseOffset,m0.initialAttenuation,m0.fineTune,m0.coarseTune,m0.keyNumToVolEnvHold,m0.keyNumToVolEnvDecay,m0.keyNumToModEnvHold,m0.keyNumToModEnvDecay]);function Hv(n,i=!0){function A(_,e0){_.push(...e0.filter(i0=>!_.find(a1=>a1.generatorType===i0.generatorType)))}function c(_,e0){return{min:Math.max(_.min,e0.min),max:Math.min(_.max,e0.max)}}function d(_,e0){_.push(...e0.filter(i0=>!_.find(a1=>$e.isIdentical(i0,a1))))}let p=[],U=[],H=[],O={min:0,max:127},P={min:0,max:127},W0=n.presetZones.find(_=>_.isGlobal);W0&&(U.push(...W0.generators),H.push(...W0.modulators),O=W0.keyRange,P=W0.velRange);for(let _ of n.presetZones){if(_.isGlobal)continue;let e0=_.keyRange;_.hasKeyRange||(e0=O);let i0=_.velRange;_.hasVelRange||(i0=P);let a1=_.generators.map(A0=>new u6(A0.generatorType,A0.generatorValue));A(a1,U);let _1=[..._.modulators];d(_1,H);let f1=_.instrument.instrumentZones,C2=[],u2=[],I2={min:0,max:127},K2={min:0,max:127},J2=f1.find(A0=>A0.isGlobal);J2&&(C2.push(...J2.generators),u2.push(...J2.modulators),I2=J2.keyRange,K2=J2.velRange);for(let A0 of f1){if(A0.isGlobal)continue;let C5=A0.keyRange;A0.hasKeyRange||(C5=I2);let p3=A0.velRange;if(A0.hasVelRange||(p3=K2),C5=c(C5,e0),p3=c(p3,i0),C5.maxnew u6(P3.generatorType,P3.generatorValue));A(w3,C2);let m6=[...A0.modulators];d(m6,u2);let v3=[...m6];for(let P3 of _1){let w6=v3.findIndex(Me=>$e.isIdentical(P3,Me));w6!==-1?v3[w6]=v3[w6].sumTransform(P3):v3.push(P3)}let x6=w3.map(P3=>new u6(P3.generatorType,P3.generatorValue));for(let P3 of a1){if(P3.generatorType===m0.velRange||P3.generatorType===m0.keyRange||P3.generatorType===m0.instrument||P3.generatorType===m0.endOper||P3.generatorType===m0.sampleModes)continue;let w6=w3.findIndex(Me=>Me.generatorType===P3.generatorType);if(w6!==-1){let Me=x6[w6].generatorValue+P3.generatorValue;x6[w6]=new u6(P3.generatorType,Me)}else{let Me=Z6[P3.generatorType].def+P3.generatorValue;x6.push(new u6(P3.generatorType,Me))}}x6=x6.filter(P3=>P3.generatorType!==m0.sampleID&&P3.generatorType!==m0.keyRange&&P3.generatorType!==m0.velRange&&P3.generatorType!==m0.endOper&&P3.generatorType!==m0.instrument&&P3.generatorValue!==Z6[P3.generatorType].def);let u9=new zr;u9.keyRange=C5,u9.velRange=p3,u9.keyRange.min===0&&u9.keyRange.max===127&&(u9.keyRange.min=-1),u9.velRange.min===0&&u9.velRange.max===127&&(u9.velRange.min=-1),u9.isGlobal=!1,u9.sample=A0.sample,u9.generators=x6,u9.modulators=v3,p.push(u9)}}if(i){let _=new zr;_.isGlobal=!0;for(let a1=0;a1<58;a1++){if(ZD.has(a1))continue;let _1={},f1=Z6[a1]?.def||0;_1[f1]=0;for(let C2 of p){let u2=C2.generators.find(J2=>J2.generatorType===a1);if(u2){let J2=u2.generatorValue;_1[J2]===void 0?_1[J2]=1:_1[J2]++}else _1[f1]++;let I2;switch(a1){default:continue;case m0.decayVolEnv:I2=m0.keyNumToVolEnvDecay;break;case m0.holdVolEnv:I2=m0.keyNumToVolEnvHold;break;case m0.decayModEnv:I2=m0.keyNumToModEnvDecay;break;case m0.holdModEnv:I2=m0.keyNumToModEnvHold}if(C2.generators.find(J2=>J2.generatorType===I2)!==void 0){_1={};break}}if(Object.keys(_1).length>0){let C2=Object.entries(_1).reduce((I2,K2)=>I2[1]{let K2=I2.generators.findIndex(J2=>J2.generatorType===a1);K2!==-1?I2.generators[K2].generatorValue===u2&&I2.generators.splice(K2,1):u2!==f1&&I2.generators.push(new u6(a1,f1))})}}let i0=p.find(a1=>!a1.isGlobal).modulators.map(a1=>$e.copy(a1));for(let a1 of i0){let _1=!0;for(let f1 of p){if(f1.isGlobal||!_1)continue;f1.modulators.find(u2=>$e.isIdentical(u2,a1))||(_1=!1)}if(_1===!0){_.modulators.push($e.copy(a1));for(let f1 of p){let C2=f1.modulators.find(u2=>$e.isIdentical(u2,a1));C2.transformAmount===a1.transformAmount&&f1.modulators.splice(f1.modulators.indexOf(C2),1)}}}p.splice(0,0,_)}return p}var Yv=20;function ZE(n,i,A,c,d,p,U){let H=U===0?0:1,O=new j5(Yv+H*16);p9(O,Yv),j3(O,i),j3(O,A);let P=c*.4,W0=Math.floor(P*-65536);p9(O,W0),p9(O,0);let _=p-d,e0=0;switch(U){default:case 0:H=0;break;case 1:e0=0,H=1;break;case 3:e0=1,H=1}return p9(O,H),H===1&&(p9(O,16),p9(O,e0),p9(O,d),p9(O,_)),k6("wsmp",O)}var I6={none:0,modLfo:1,velocity:2,keyNum:3,volEnv:4,modEnv:5,pitchWheel:6,polyPressure:7,channelPressure:8,vibratoLfo:9,modulationWheel:129,volume:135,pan:138,expression:139,chorus:219,reverb:221,pitchWheelRange:256,fineTune:257,coarseTune:258};var F5={none:0,gain:1,reserved:2,pitch:3,pan:4,keyNum:5,chorusSend:128,reverbSend:129,modLfoFreq:260,modLfoDelay:261,vibLfoFreq:276,vibLfoDelay:277,volEnvAttack:518,volEnvDecay:519,volEnvRelease:521,volEnvSustain:522,volEnvDelay:523,volEnvHold:524,modEnvAttack:778,modEnvDecay:779,modEnvRelease:781,modEnvSustain:782,modEnvDelay:783,modEnvHold:784,filterCutoff:1280,filterQ:1281};var Up=class{source;control;destination;scale;transform;constructor(i,A,c,d,p){this.source=i,this.control=A,this.destination=c,this.scale=d,this.transform=p}writeArticulator(){let i=new j5(12);return j3(i,this.source),j3(i,this.control),j3(i,this.destination),j3(i,this.transform),p9(i,this.scale<<16),i}};function Vv(n,i){if(n)switch(i){default:return;case $3.modulationWheel:return I6.modulationWheel;case $3.mainVolume:return I6.volume;case $3.pan:return I6.pan;case $3.expressionController:return I6.expression;case $3.chorusDepth:return I6.chorus;case $3.reverbDepth:return I6.reverb}else switch(i){default:return;case q4.noteOnKeyNum:return I6.keyNum;case q4.noteOnVelocity:return I6.velocity;case q4.noController:return I6.none;case q4.polyPressure:return I6.polyPressure;case q4.channelPressure:return I6.channelPressure;case q4.pitchWheel:return I6.pitchWheel;case q4.pitchWheelRange:return I6.pitchWheelRange}}function Jv(n,i){switch(n){default:return;case m0.initialAttenuation:return{dest:F5.gain,amount:-i};case m0.fineTune:return F5.pitch;case m0.pan:return F5.pan;case m0.keyNum:return F5.keyNum;case m0.reverbEffectsSend:return F5.reverbSend;case m0.chorusEffectsSend:return F5.chorusSend;case m0.freqModLFO:return F5.modLfoFreq;case m0.delayModLFO:return F5.modLfoDelay;case m0.delayVibLFO:return F5.vibLfoDelay;case m0.freqVibLFO:return F5.vibLfoFreq;case m0.delayVolEnv:return F5.volEnvDelay;case m0.attackVolEnv:return F5.volEnvAttack;case m0.holdVolEnv:return F5.volEnvHold;case m0.decayVolEnv:return F5.volEnvDecay;case m0.sustainVolEnv:return{dest:F5.volEnvSustain,amount:1e3-i};case m0.releaseVolEnv:return F5.volEnvRelease;case m0.delayModEnv:return F5.modEnvDelay;case m0.attackModEnv:return F5.modEnvAttack;case m0.holdModEnv:return F5.modEnvHold;case m0.decayModEnv:return F5.modEnvDecay;case m0.sustainModEnv:return{dest:F5.modEnvSustain,amount:1e3-i};case m0.releaseModEnv:return F5.modEnvRelease;case m0.initialFilterFc:return F5.filterCutoff;case m0.initialFilterQ:return F5.filterQ}}function zv(n,i){switch(n){default:return;case m0.modEnvToFilterFc:return{source:I6.modEnv,dest:F5.filterCutoff,amt:i,isBipolar:!1};case m0.modEnvToPitch:return{source:I6.modEnv,dest:F5.pitch,amt:i,isBipolar:!1};case m0.modLfoToFilterFc:return{source:I6.modLfo,dest:F5.filterCutoff,amt:i,isBipolar:!0};case m0.modLfoToVolume:return{source:I6.modLfo,dest:F5.gain,amt:i,isBipolar:!0};case m0.modLfoToPitch:return{source:I6.modLfo,dest:F5.pitch,amt:i,isBipolar:!0};case m0.vibLfoToPitch:return{source:I6.vibratoLfo,dest:F5.pitch,amt:i,isBipolar:!0};case m0.keyNumToVolEnvHold:return{source:I6.keyNum,dest:F5.volEnvHold,amt:i,isBipolar:!0};case m0.keyNumToVolEnvDecay:return{source:I6.keyNum,dest:F5.volEnvDecay,amt:i,isBipolar:!0};case m0.keyNumToModEnvHold:return{source:I6.keyNum,dest:F5.modEnvHold,amt:i,isBipolar:!0};case m0.keyNumToModEnvDecay:return{source:I6.keyNum,dest:F5.modEnvDecay,amt:i,isBipolar:!0};case m0.scaleTuning:return{source:I6.keyNum,dest:F5.pitch,amt:i*128,isBipolar:!1}}}function Kv(n){let i=Jv(n.generatorType,n.generatorValue),A=i,c=0,d=n.generatorValue;i?.amount!==void 0&&(d=i.amount,A=i.dest);let p=zv(n.generatorType,n.generatorValue);if(p!==void 0)d=p.amt,A=p.dest,c=p.source;else if(A===void 0){I9(`Invalid generator type: ${n.generatorType}`);return}return new Up(c,0,A,d,0)}function Wv(n){if(n.transformType!==0){I9("Other transform types are not supported.");return}let i=Vv(n.sourceUsesCC,n.sourceIndex),A=n.sourceCurveType,c=n.sourcePolarity,d=n.sourceDirection;if(i===void 0){I9(`Invalid source: ${n.sourceIndex}, CC: ${n.sourceUsesCC}`);return}let p=Vv(n.secSrcUsesCC,n.secSrcIndex),U=n.secSrcCurveType,H=n.secSrcPolarity,O=n.secSrcDirection;if(p===void 0){I9(`Invalid secondary source: ${n.secSrcIndex}, CC: ${n.secSrcUsesCC}`);return}let P=Jv(n.modulatorDestination,n.transformAmount),W0=P,_=n.transformAmount;P?.dest!==void 0&&(W0=P.dest,_=P.amount);let e0=zv(n.modulatorDestination,n.transformAmount);if(e0!==void 0)_=e0.amt,p=i,U=A,H=c,O=d,A=X7.linear,c=e0.isBipolar?1:0,d=0,i=e0.source,W0=e0.dest;else if(W0===void 0){I9(`Invalid destination: ${n.modulatorDestination}`);return}let i0=0;return i0|=U<<4,i0|=H<<8,i0|=O<<9,i0|=A<<10,i0|=c<<14,i0|=d<<15,new Up(i,p,W0,_,i0)}var jD=new Set([m0.sampleModes,m0.initialAttenuation,m0.keyRange,m0.velRange,m0.sampleID,m0.fineTune,m0.coarseTune,m0.startAddrsOffset,m0.startAddrsCoarseOffset,m0.endAddrOffset,m0.endAddrsCoarseOffset,m0.startloopAddrsOffset,m0.startloopAddrsCoarseOffset,m0.endloopAddrsOffset,m0.endloopAddrsCoarseOffset,m0.overridingRootKey,m0.exclusiveClass]);function jE(n){for(let p=0;pa1.generatorType===H);if(O===void 0)continue;let P=U.generatorValue*-128,W0=60/128*P,_=O.generatorValue-W0,e0=n.generators.indexOf(U),i0=n.generators.indexOf(O);n.generators[i0]=new u6(H,_,!1),n.generators[e0]=new u6(U.generatorType,P,!1)}let i=n.generators.reduce((p,U)=>{if(jD.has(U.generatorType))return p;let H=Kv(U);return H!==void 0?(p.push(H),_5("%cSucceeded converting to DLS Articulator!",C1.recognized)):I9("Failed converting to DLS Articulator!"),p},[]),A=n.modulators.reduce((p,U)=>{let H=Wv(U);return H!==void 0?(p.push(H),_5("%cSucceeded converting to DLS Articulator!",C1.recognized)):I9("Failed converting to DLS Articulator!"),p},[]);i.push(...A);let c=new j5(8);p9(c,8),p9(c,i.length);let d=i.map(p=>p.writeArticulator());return k6("art2",St([c,...d]))}function Zv(n,i){let A=new j5(14);j3(A,Math.max(n.keyRange.min,0)),j3(A,n.keyRange.max),j3(A,Math.max(n.velRange.min,0)),j3(A,n.velRange.max),j3(A,0);let c=n.getGeneratorValue(m0.exclusiveClass,0);j3(A,c),j3(A,0);let d=k6("rgnh",A),p=n.getGeneratorValue(m0.overridingRootKey,n.sample.samplePitch);n.getGeneratorValue(m0.scaleTuning,i.getGeneratorValue(m0.scaleTuning,100))===0&&n.keyRange.max-n.keyRange.min===0&&(p=n.keyRange.min);let H=ZE(n.sample,p,n.getGeneratorValue(m0.fineTune,0)+n.getGeneratorValue(m0.coarseTune,0)*100+n.sample.samplePitchCorrection,n.getGeneratorValue(m0.initialAttenuation,0),n.sample.sampleLoopStartIndex+n.getGeneratorValue(m0.startloopAddrsOffset,0)+n.getGeneratorValue(m0.startloopAddrsCoarseOffset,0)*32768,n.sample.sampleLoopEndIndex+n.getGeneratorValue(m0.endloopAddrsOffset,0)+n.getGeneratorValue(m0.endloopAddrsCoarseOffset,0)*32768,n.getGeneratorValue(m0.sampleModes,0)),O=new j5(12);j3(O,0),j3(O,0);let P=0;switch(n.sample.sampleType){default:case 1:case 4:P=0;break;case 2:P=1}p9(O,P),p9(O,this.samples.indexOf(n.sample));let W0=k6("wlnk",O),_=jE(n),e0=k6("lar2",_,!1,!0);return k6("rgn2",St([d,H,W0,e0]),!1,!0)}function jv(n){y8(`%cWriting %c${n.presetName}%c...`,C1.info,C1.recognized,C1.info);let i=Hv(n),A=i.reduce((e0,i0)=>i0.isGlobal?e0:e0+1,0),c=new j5(12);p9(c,A);let d=(n.bank&127)<<8;n.bank===128&&(d|=1<<31),p9(c,d),p9(c,n.program&127);let p=k6("insh",c),U=new j5(0),H=i.find(e0=>e0.isGlobal===!0);if(H){let e0=jE(H);U=k6("lar2",e0,!1,!0)}let O=St(i.reduce((e0,i0)=>(i0.isGlobal||e0.push(Zv.apply(this,[i0,H])),e0),[])),P=k6("lrgn",O,!1,!0),W0=k6("INAM",N7(n.presetName)),_=k6("INFO",W0,!1,!0);return g9(),k6("ins ",St([p,P,U,_]),!1,!0)}function Xv(){let n=St(this.presets.map(i=>jv.apply(this,[i])));return k6("lins",n,!1,!0)}function ek(n){let i=new j5(18);j3(i,1),j3(i,1),p9(i,n.sampleRate),p9(i,n.sampleRate*2),j3(i,2),j3(i,16);let A=k6("fmt ",i),c=ZE(n,n.samplePitch,n.samplePitchCorrection,0,n.sampleLoopStartIndex,n.sampleLoopEndIndex,1),d=n.getAudioData(),p;if(n.isCompressed){let O=new Int16Array(d.length);for(let P=0;P{let d=ek(c);return i.push(n),n+=d.length,d});return{data:k6("wvpl",St(A),!1,!0),indexes:i}}function ik(){y8("%cSaving DLS...",C1.info);let n=new j5(4);p9(n,this.presets.length);let i=k6("colh",n);y8("%cWriting instruments...",C1.info);let A=Xv.apply(this);_5("%cSuccess!",C1.recognized),g9(),y8("%cWriting WAVE samples...",C1.info);let c=tk.apply(this),d=c.data,p=c.indexes;_5("%cSucceeded!",C1.recognized),g9();let U=new j5(8+4*p.length);p9(U,8),p9(U,p.length);for(let _ of p)p9(U,_);let H=k6("ptbl",U);this.soundFontInfo.ICMT=(this.soundFontInfo.ICMT||"Soundfont")+` -Converted from SF2 to DLS using SpessaSynth`,this.soundFontInfo.ISFT="SpessaSynth";let O=[];for(let[_,e0]of Object.entries(this.soundFontInfo))_!=="ICMT"&&_!=="INAM"&&_!=="ICRD"&&_!=="IENG"&&_!=="ICOP"&&_!=="ISFT"&&_!=="ISBJ"||O.push(k6(_,N7(e0)));let P=k6("INFO",St(O),!1,!0),W0=new j5(i.length+A.length+H.length+d.length+P.length+4);return P8(W0,"DLS "),W0.set(St([i,A,H,d,P]),4),_5("%cSaved succesfully!",C1.recognized),g9(),k6("RIFF",W0)}var Ya=class n{constructor(i=void 0){this.soundFontInfo={},this.presets=[],this.samples=[],this.instruments=[],this.defaultModulators=bE.map(A=>$e.copy(A)),i?.presets&&(this.presets.push(...i.presets),this.soundFontInfo=i.info)}static mergeSoundfonts(...i){let A=i.shift(),c=A.presets;for(;i.length;)i.shift().presets.forEach(p=>{c.find(U=>U.bank===p.bank&&U.program===p.program)===void 0&&c.push(p)});return new n({presets:c,info:A.soundFontInfo})}removeUnusedElements(){this.instruments.forEach(i=>{i.useCount<1&&i.instrumentZones.forEach(A=>{A.isGlobal||A.sample.useCount--})}),this.instruments=this.instruments.filter(i=>i.useCount>0),this.samples=this.samples.filter(i=>i.useCount>0)}deleteInstrument(i){if(i.useCount>0)throw new Error(`Cannot delete an instrument that has ${i.useCount} usages.`);this.instruments.splice(this.instruments.indexOf(i),1),i.deleteInstrument(),this.removeUnusedElements()}deletePreset(i){i.deletePreset(),this.presets.splice(this.presets.indexOf(i),1),this.removeUnusedElements()}deleteSample(i){if(i.useCount>0)throw new Error(`Cannot delete sample that has ${i.useCount} usages.`);this.samples.splice(this.samples.indexOf(i),1),this.removeUnusedElements()}setSampleIDOffset(i){this.presets.forEach(A=>A.sampleIDOffset=i)}getPresetNoFallback(i,A,c=!1){let d=this.presets.find(p=>p.bank===i&&p.program===A);if(d)return d;if(c!==!1)return i===128?this.presets.find(p=>p.bank===128):this.presets.find(p=>p.program===A)}getPreset(i,A){let c=this.presets.find(d=>d.bank===i&&d.program===A);return c||(i===128?(c=this.presets.find(d=>d.bank===128&&d.program===A),c||(c=this.presets.find(d=>d.bank===128))):c=this.presets.find(d=>d.program===A&&d.bank!==128),c&&I9(`%cPreset ${i}.${A} not found. Replaced with %c${c.presetName} (${c.bank}.${c.program})`,C1.warn,C1.recognized)),c||(I9(`Preset ${A} not found. Defaulting to`,this.presets[0].presetName),c=this.presets[0]),c}getPresetByName(i){let A=this.presets.find(c=>c.presetName===i);return A||(I9("Preset not found. Defaulting to:",this.presets[0].presetName),A=this.presets[0]),A}parsingError(i){throw new Error(`SF parsing error: ${i} The file may be corrupted.`)}destroySoundfont(){delete this.presets,delete this.instruments,delete this.samples}};Ya.prototype.write=qv;Ya.prototype.writeDLS=ik;function rk(n){y8("%cLoading instruments...",C1.info);for(let i=0;ii.deleteZone()),this.presetZones.length=0}deleteZone(i){this.presetZones[i].deleteZone(),this.presetZones.splice(i,1)}preload(i,A){for(let c=i;c{p.sample.isSampleLoaded||p.sample.getAudioData()})}preloadSpecific(i,A){this.getSamplesAndGenerators(i,A).forEach(c=>{c.sample.isSampleLoaded||c.sample.getAudioData()})}getSamplesAndGenerators(i,A){let c=this.foundSamplesAndGenerators[i][A];if(c)return c;if(this.presetZones.length<1)return[];function d(i0,a1){return a1>=i0.min&&a1<=i0.max}function p(i0,a1){i0.push(...a1.filter(_1=>!i0.find(f1=>f1.generatorType===_1.generatorType)))}function U(i0,a1){i0.push(...a1.filter(_1=>!i0.find(f1=>$e.isIdentical(_1,f1))))}let H=[],O=this.presetZones[0].isGlobal?[...this.presetZones[0].generators]:[],P=this.presetZones[0].isGlobal?[...this.presetZones[0].modulators]:[],W0=this.presetZones[0].isGlobal?this.presetZones[0].keyRange:{min:0,max:127},_=this.presetZones[0].isGlobal?this.presetZones[0].velRange:{min:0,max:127};return this.presetZones.filter(i0=>d(i0.hasKeyRange?i0.keyRange:W0,i)&&d(i0.hasVelRange?i0.velRange:_,A)&&!i0.isGlobal).forEach(i0=>{if(i0.instrument.instrumentZones.length<1)return;let a1=i0.generators,_1=i0.modulators,f1=i0.instrument.instrumentZones[0],C2=f1.isGlobal?[...f1.generators]:[],u2=f1.isGlobal?[...f1.modulators]:[],I2=f1.isGlobal?f1.keyRange:{min:0,max:127},K2=f1.isGlobal?f1.velRange:{min:0,max:127};i0.instrument.instrumentZones.filter(A0=>d(A0.hasKeyRange?A0.keyRange:I2,i)&&d(A0.hasVelRange?A0.velRange:K2,A)&&!A0.isGlobal).forEach(A0=>{let C5=[...A0.generators],p3=[...A0.modulators];p(a1,O),p(C5,C2),U(_1,P),U(p3,u2),U(p3,this.defaultModulators);let w3=[...p3];for(let m6=0;m6<_1.length;m6++){let v3=_1[m6],x6=w3.findIndex(u9=>$e.isIdentical(v3,u9));x6!==-1?w3[x6]=w3[x6].sumTransform(v3):w3.push(v3)}H.push({instrumentGenerators:C5,presetGenerators:a1,modulators:w3,sample:A0.sample,sampleID:A0.generators.find(m6=>m6.generatorType===m0.sampleID).generatorValue})})}),this.foundSamplesAndGenerators[i][A]=H,H}};var yu=class{constructor(){this.instrumentName="",this.instrumentZones=[],this._useCount=0}get useCount(){return this._useCount}addUseCount(){this._useCount++,this.instrumentZones.forEach(i=>i.useCount++)}removeUseCount(){this._useCount--;for(let i=0;ii.deleteZone()),this.instrumentZones.length=0}safeDeleteZone(i){return this.instrumentZones[i].useCount--,this.instrumentZones[i].useCount<1?(this.deleteZone(i),!0):!1}deleteZone(i){this.instrumentZones[i].deleteZone(),this.instrumentZones.splice(i,1)}};var XE=class extends Qu{constructor(i,A){super(bE),this.program=A&127,this.bank=i>>8&127,i>>31&&(this.bank=128),this.DLSInstrument=new yu,this.DLSInstrument.addUseCount();let d=new Bu;d.instrument=this.DLSInstrument,this.presetZones=[d]}};function nk(n){this.verifyHeader(n,"LIST"),this.verifyText(y4(n.chunkData,4),"ins ");let i=[];for(;n.chunkData.length>n.chunkData.currentIndex;)i.push(Qe(n.chunkData));let A=i.find(i0=>i0.header==="insh");if(!A)throw g9(),new Error("No instrument header!");let c=s3(A.chunkData,4),d=s3(A.chunkData,4),p=s3(A.chunkData,4),U=new XE(d,p),H="unnamedPreset",O=G7(i,"INFO");if(O){let i0=Qe(O.chunkData);for(;i0.header!=="INAM";)i0=Qe(O.chunkData);H=y4(i0.chunkData,i0.chunkData.length).trim()}U.presetName=H,U.DLSInstrument.instrumentName=H,M7(`%cParsing %c"${H}"%c...`,C1.info,C1.recognized,C1.info);let P=G7(i,"lrgn");if(!P)throw g9(),new Error("No region list!");let W0=new zr;W0.isGlobal=!0;let _=G7(i,"lart"),e0=G7(i,"lar2");(e0!==void 0||_!==void 0)&&this.readLart(_,e0,W0),W0.generators=W0.generators.filter(i0=>i0.generatorValue!==Z6[i0.generatorType].def),W0.modulators.find(i0=>i0.modulatorDestination===m0.reverbEffectsSend)===void 0&&W0.modulators.push(new $e({srcEnum:219,dest:m0.reverbEffectsSend,amt:1e3,secSrcEnum:0,transform:0})),W0.modulators.find(i0=>i0.modulatorDestination===m0.chorusEffectsSend)===void 0&&W0.modulators.push(new $e({srcEnum:221,dest:m0.chorusEffectsSend,amt:1e3,secSrcEnum:0,transform:0})),U.DLSInstrument.instrumentZones.push(W0);for(let i0=0;i0>10&15;u2===X7.linear&&C2!==X7.linear&&(u2=C2);let I2=c>>14&1,K2=c>>15&1;U===m0.initialAttenuation&&d<0&&(K2=1),e0=Yr(u2,I2,K2,H.isCC,H.enum)}let i0=c>>4&15,a1=c>>8&1,_1=c>>9&1,f1=Yr(i0,a1,_1,_.isCC,_.enum);if(O){let C2=f1;f1=e0,e0=C2}return new $e({srcEnum:e0,secSrcEnum:f1,dest:U,transform:0,amt:W0})}function nB(n,i){let A=n.chunkData,c=[],d=[];s3(A,4);let p=s3(A,4);for(let U=0;U>16;if(H===0&&O===0&&W0===0){let i0;switch(P){case F5.pan:i0=new u6(m0.pan,e0);break;case F5.gain:i0=new u6(m0.initialAttenuation,-e0*10/.4);break;case F5.filterCutoff:i0=new u6(m0.initialFilterFc,e0);break;case F5.filterQ:i0=new u6(m0.initialFilterQ,e0);break;case F5.modLfoFreq:i0=new u6(m0.freqModLFO,e0);break;case F5.modLfoDelay:i0=new u6(m0.delayModLFO,e0);break;case F5.vibLfoFreq:i0=new u6(m0.freqVibLFO,e0);break;case F5.vibLfoDelay:i0=new u6(m0.delayVibLFO,e0);break;case F5.volEnvDelay:i0=new u6(m0.delayVolEnv,e0);break;case F5.volEnvAttack:i0=new u6(m0.attackVolEnv,e0);break;case F5.volEnvHold:i0=new u6(m0.holdVolEnv,e0,!1);break;case F5.volEnvDecay:i0=new u6(m0.decayVolEnv,e0,!1);break;case F5.volEnvRelease:i0=new u6(m0.releaseVolEnv,e0);break;case F5.volEnvSustain:let a1=1e3-e0;i0=new u6(m0.sustainVolEnv,a1);break;case F5.modEnvDelay:i0=new u6(m0.delayModEnv,e0);break;case F5.modEnvAttack:i0=new u6(m0.attackModEnv,e0);break;case F5.modEnvHold:i0=new u6(m0.holdModEnv,e0,!1);break;case F5.modEnvDecay:i0=new u6(m0.decayModEnv,e0,!1);break;case F5.modEnvRelease:i0=new u6(m0.releaseModEnv,e0);break;case F5.modEnvSustain:let _1=1e3-e0;i0=new u6(m0.sustainModEnv,_1);break;case F5.reverbSend:i0=new u6(m0.reverbEffectsSend,e0);break;case F5.chorusSend:i0=new u6(m0.chorusEffectsSend,e0);break;case F5.pitch:let f1=Math.floor(e0/100),C2=Math.floor(e0-f1*100);i0=new u6(m0.fineTune,C2),c.push(new u6(m0.coarseTune,f1));break}i0&&c.push(i0)}else{let i0=!0;if(O===I6.none)if(H===I6.modLfo&&P===F5.pitch)c.push(new u6(m0.modLfoToPitch,e0));else if(H===I6.modLfo&&P===F5.gain)c.push(new u6(m0.modLfoToVolume,e0));else if(H===I6.modLfo&&P===F5.filterCutoff)c.push(new u6(m0.modLfoToFilterFc,e0));else if(H===I6.vibratoLfo&&P===F5.pitch)c.push(new u6(m0.vibLfoToPitch,e0));else if(H===I6.modEnv&&P===F5.pitch)c.push(new u6(m0.modEnvToPitch,e0));else if(H===I6.modEnv&&P===F5.filterCutoff)c.push(new u6(m0.modEnvToFilterFc,e0));else if(H===I6.keyNum&&P===F5.pitch)c.push(new u6(m0.scaleTuning,e0/128));else if(H===I6.keyNum&&P===F5.volEnvHold){c.push(new u6(m0.keyNumToVolEnvHold,e0/-128));let a1=Math.round(60/128*e0);c.forEach(_1=>{_1.generatorType===m0.holdVolEnv&&(_1.generatorValue+=a1)})}else if(H===I6.keyNum&&P===F5.volEnvDecay){c.push(new u6(m0.keyNumToVolEnvDecay,e0/-128));let a1=Math.round(60/128*e0);c.forEach(_1=>{_1.generatorType===m0.decayVolEnv&&(_1.generatorValue+=a1)})}else if(H===I6.keyNum&&P===F5.modEnvHold){c.push(new u6(m0.keyNumToModEnvHold,e0/-128));let a1=Math.round(60/128*e0);c.forEach(_1=>{_1.generatorType===m0.holdModEnv&&(_1.generatorValue+=a1)})}else if(H===I6.keyNum&&P===F5.modEnvDecay){c.push(new u6(m0.keyNumToModEnvDecay,e0/-128));let a1=Math.round(60/128*e0);c.forEach(_1=>{_1.generatorType===m0.decayModEnv&&(_1.generatorValue+=a1)})}else i0=!1;else i0=!1;if(i0===!1){let a1=sk(H,O,P,W0,e0);a1?(d.push(a1),_5("%cSucceeded converting to SF2 Modulator!",C1.recognized)):I9("Failed converting to SF2 Modulator!")}}}return i&&d.push(new $e({srcEnum:129,dest:m0.vibLfoToPitch,amt:0,secSrcEnum:0,transform:0}),new $e({srcEnum:13,dest:m0.vibLfoToPitch,amt:0,secSrcEnum:0,transform:0})),{modulators:d,generators:c}}function ak(n,i,A){if(n)for(;n.chunkData.currentIndexn.chunkData.currentIndex;)i.push(Qe(n.chunkData));let A=i.find(p3=>p3.header==="rgnh"),c=s3(A.chunkData,2),d=s3(A.chunkData,2),p=s3(A.chunkData,2),U=s3(A.chunkData,2),H=new eC({min:c,max:d},{min:p,max:U});s3(A.chunkData,2);let O=s3(A.chunkData,2);O!==0&&H.generators.push(new u6(m0.exclusiveClass,O));let P=G7(i,"lart"),W0=G7(i,"lar2");this.readLart(P,W0,H),H.isGlobal=!1;let _=i.find(p3=>p3.header==="wsmp");s3(_.chunkData,4);let e0=s3(_.chunkData,2),i0=Ga(_.chunkData[_.chunkData.currentIndex++],_.chunkData[_.chunkData.currentIndex++]),_1=(s3(_.chunkData,4)|0)/-655360;s3(_.chunkData,4);let f1=s3(_.chunkData,4),C2,u2={start:0,end:0};if(f1===0)C2=0;else{s3(_.chunkData,4),s3(_.chunkData,4)===0?C2=1:C2=3,u2.start=s3(_.chunkData,4);let w3=s3(_.chunkData,4);u2.end=u2.start+w3}let I2=i.find(p3=>p3.header==="wlnk");if(I2===void 0)return;s3(I2.chunkData,2),s3(I2.chunkData,2),s3(I2.chunkData,4);let K2=s3(I2.chunkData,4),J2=this.samples[K2];if(J2===void 0)throw new Error("Invalid sample ID!");let C5=(_1||J2.sampleDbAttenuation)*10/.4;return H.setWavesample(C5,C2,u2,e0,J2,K2,i0),H}var wu=class{constructor(i,A,c,d,p,U,H,O){this.sampleName=i,this.sampleRate=A,this.samplePitch=c,this.samplePitchCorrection=d,this.sampleLink=p,this.sampleType=U,this.sampleLoopStartIndex=H,this.sampleLoopEndIndex=O,this.isCompressed=(U&16)>0,this.compressedData=void 0,this.useCount=0}getRawData(){let i=new Error("Not implemented");throw i.name="NotImplementedError",i}compressSample(i,A){if(!this.isCompressed)try{this.compressedData=A([this.getAudioData()],1,this.sampleRate,i),this.sampleType|=16,this.isCompressed=!0}catch{I9(`Failed to compress ${this.sampleName}. Leaving as uncompressed!`),this.isCompressed=!1,this.compressedData=void 0,this.sampleType&=-17}}getAudioData(){let i=new Error("Not implemented");throw i.name="NotImplementedError",i}};var tC=class extends wu{sampleDbAttenuation;sampleData;constructor(i,A,c,d,p,U,H,O){super(i,A,c,d,0,1,p,U),this.sampleData=H,this.sampleDbAttenuation=O}getAudioData(){return this.sampleData}getRawData(){if(this.isCompressed){if(!this.compressedData)throw new Error("Compressed but no data?? This shouldn't happen!!");return this.compressedData}let i=new Uint8Array(this.sampleData.length*2);for(let A=0;A>8&255}return i}};var $k={PCM:1,ALAW:6};function t_(n,i){let A=Math.pow(2,i*8-1),c=Math.pow(2,i*8),d,p=!1;i===1?(d=255,p=!0):d=A;let U=n.size/i,H=new Float32Array(U);for(let O=0;O=A&&(P-=c),H[O]=P/d)}return H}function i_(n,i){let A=n.size/i,c=new Float32Array(A);for(let d=0;d>4,O=U&15;H>0&&(O+=16),O=(O<<4)+8,H>1&&(O=O<127?O:-O;c[d]=P/32678}return c}function lk(n){y8("%cLoading Wave samples...",C1.recognized);let i=0;for(;n.chunkData.currentIndexJ2.header==="fmt ");if(!d)throw new Error("No fmt chunk in the wave file!");let p=s3(d.chunkData,2),U=s3(d.chunkData,2);if(U!==1)throw new Error(`Only mono samples are supported. Fmt reports ${U} channels`);let H=s3(d.chunkData,4);s3(d.chunkData,4),s3(d.chunkData,2);let P=s3(d.chunkData,2)/8,W0=!1,_=c.find(J2=>J2.header==="data");_||this.parsingError("No data chunk in the WAVE chunk!");let e0;switch(p){default:W0=!0,e0=new Float32Array(_.size/P);break;case $k.PCM:e0=t_(_,P);break;case $k.ALAW:e0=i_(_,P);break}let i0=G7(c,"INFO"),a1=`Unnamed ${i}`;if(i0){let J2=Qe(i0.chunkData);for(;J2.header!=="INAM"&&i0.chunkData.currentIndexJ2.header==="wsmp");if(K2){s3(K2.chunkData,4),_1=s3(K2.chunkData,2),f1=Ga(K2.chunkData[K2.chunkData.currentIndex++],K2.chunkData[K2.chunkData.currentIndex++]);let J2=Math.trunc(f1/100);if(_1+=J2,f1-=J2*100,I2=(s3(K2.chunkData,4)|0)/-655360,s3(K2.chunkData,4),s3(K2.chunkData,4)===1){s3(K2.chunkData,8),C2=s3(K2.chunkData,4);let p3=s3(K2.chunkData,4);u2=C2+p3}}else I9("No wsmp chunk in wave... using sane defaults.");W0&&console.error(`Failed to load '${a1}': Unsupported format: (${p})`),this.samples.push(new tC(a1,H,_1,f1,C2,u2,e0,I2)),i++,_5(`%cLoaded sample %c${a1}`,C1.info,C1.recognized)}g9()}var qo=class extends Ya{constructor(i){super(),this.dataArray=new j5(i),M7("%cParsing DLS...",C1.info),this.dataArray||(g9(),this.parsingError("No data provided!"));let A=Qe(this.dataArray,!1);this.verifyHeader(A,"riff"),this.verifyText(y4(this.dataArray,4).toLowerCase(),"dls ");let c=[];for(;this.dataArray.currentIndex(p.generators=p.generators.filter(O=>O.generatorType!==m0.sampleID&&O.generatorType!==m0.keyRange&&O.generatorType!==m0.velRange),(p.velRange.max!==127||p.velRange.min!==0)&&p.generators.unshift({generatorType:m0.velRange,generatorValue:p.velRange.max<<8|Math.max(p.velRange.min,0)}),(p.keyRange.max!==127||p.keyRange.min!==0)&&p.generators.unshift({generatorType:m0.keyRange,generatorValue:p.keyRange.max<<8|Math.max(p.keyRange.min,0)}),p.isGlobal||p.generators.push({generatorType:m0.sampleID,generatorValue:this.samples.indexOf(p.sample)}),p.generators.length*4+d),0);let i=new j5(n),A=0;for(let c of this.instruments)for(let d of c.instrumentZones){d.generatorZoneStartIndex=A;for(let p of d.generators)j3(i,p.generatorType),j3(i,p.generatorValue),A++}return p9(i,0),it(new w4("igen",i.length,i))}function Mv(n,i,A,c,d){let p=this.samples.map((U,W0)=>{A&&U.compressSample(c,d);let _=U.getRawData();return _5(`%cEncoded sample %c${W0}. ${U.sampleName}%c of %c${this.samples.length}`,C1.info,C1.recognized,C1.info,C1.recognized),_}),O=this.samples.reduce((U,W0,_)=>U+p[_].length+46,0),H=new j5(O);this.samples.forEach((U,W0)=>{let _=p[W0],e0,i0,a1=_.length;U.isCompressed?(e0=H.currentIndex,i0=e0+_.length):(e0=H.currentIndex/2,i0=e0+_.length/2,a1+=46),n.push(e0),H.set(_,H.currentIndex),H.currentIndex+=a1,i.push(i0)});let P=it(new w4("smpl",H.length,H),new j5([115,100,116,97]));return it(new w4("LIST",P.length,P))}function Rv(n,i){let c=new j5(46*(this.samples.length+1));return this.samples.forEach((d,p)=>{P8(c,d.sampleName,20);let O=n[p];p9(c,O);let H=i[p];p9(c,H);let P=d.sampleLoopStartIndex+O,U=d.sampleLoopEndIndex+O;d.isCompressed&&(P-=O,U-=O),p9(c,P),p9(c,U),p9(c,d.sampleRate),c[c.currentIndex++]=d.samplePitch,c[c.currentIndex++]=d.samplePitchCorrection,j3(c,d.sampleLink),j3(c,d.sampleType)}),P8(c,"EOS",46),it(new w4("shdr",c.length,c))}function Fv(){let n=10;for(let c of this.instruments)n+=c.instrumentZones.reduce((d,p)=>p.modulators.length*10+d,0);let i=new j5(n),A=0;for(let c of this.instruments)for(let d of c.instrumentZones){d.modulatorZoneStartIndex=A;for(let p of d.modulators)j3(i,p.sourceEnum),j3(i,p.modulatorDestination),j3(i,p.transformAmount),j3(i,p.secondarySourceEnum),j3(i,p.transformType),A++}return fi(i,0,10),it(new w4("imod",i.length,i))}function Tv(){let n=this.instruments.reduce((p,O)=>O.instrumentZones.length*4+p,4),i=new j5(n),A=0,c=0,d=0;for(let p of this.instruments){p.instrumentZoneIndex=A;for(let O of p.instrumentZones)O.zoneID=A,j3(i,c),j3(i,d),c+=O.generators.length,d+=O.modulators.length,A++}return j3(i,c),j3(i,d),it(new w4("ibag",i.length,i))}function Nv(){let n=this.instruments.length*22+22,i=new j5(n),A=0,c=0;for(let d of this.instruments)P8(i,d.instrumentName,20),j3(i,A),A+=d.instrumentZones.length,d.instrumentID=c,c++;return P8(i,"EOI",20),j3(i,A),it(new w4("inst",i.length,i))}function Gv(){let n=4;for(let c of this.presets)n+=c.presetZones.reduce((d,p)=>(p.generators=p.generators.filter(O=>O.generatorType!==m0.instrument&&O.generatorType!==m0.keyRange&&O.generatorType!==m0.velRange),(p.velRange.max!==127||p.velRange.min!==0)&&p.generators.unshift({generatorType:m0.velRange,generatorValue:p.velRange.max<<8|Math.max(p.velRange.min,0)}),(p.keyRange.max!==127||p.keyRange.min!==0)&&p.generators.unshift({generatorType:m0.keyRange,generatorValue:p.keyRange.max<<8|Math.max(p.keyRange.min,0)}),p.isGlobal||p.generators.push({generatorType:m0.instrument,generatorValue:this.instruments.indexOf(p.instrument)}),p.generators.length*4+d),0);let i=new j5(n),A=0;for(let c of this.presets)for(let d of c.presetZones){d.generatorZoneStartIndex=A;for(let p of d.generators)j3(i,p.generatorType),j3(i,p.generatorValue);A+=d.generators.length}return j3(i,0),j3(i,0),it(new w4("pgen",i.length,i))}function Uv(){let n=10;for(let c of this.presets)n+=c.presetZones.reduce((d,p)=>p.modulators.length*10+d,0);let i=new j5(n),A=0;for(let c of this.presets)for(let d of c.presetZones){d.modulatorZoneStartIndex=A;for(let p of d.modulators)j3(i,p.sourceEnum),j3(i,p.modulatorDestination),j3(i,p.transformAmount),j3(i,p.secondarySourceEnum),j3(i,p.transformType),A++}return fi(i,0,10),it(new w4("pmod",i.length,i))}function Pv(){let n=this.presets.reduce((p,O)=>O.presetZones.length*4+p,4),i=new j5(n),A=0,c=0,d=0;for(let p of this.presets){p.presetZoneStartIndex=A;for(let O of p.presetZones)O.zoneID=A,j3(i,c),j3(i,d),c+=O.generators.length,d+=O.modulators.length,A++}return j3(i,c),j3(i,d),it(new w4("pbag",i.length,i))}function Ov(){let n=this.presets.length*38+38,i=new j5(n),A=0;for(let c of this.presets)P8(i,c.presetName,20),j3(i,c.program),j3(i,c.bank),j3(i,A),p9(i,c.library),p9(i,c.genre),p9(i,c.morphology),A+=c.presetZones.length;return P8(i,"EOP",20),j3(i,0),j3(i,0),j3(i,A),p9(i,0),p9(i,0),p9(i,0),it(new w4("phdr",i.length,i))}var WD={compress:!1,compressionQuality:.5,compressionFunction:void 0};function qv(n=WD){if(n.compress&&typeof n.compressionFunction!="function")throw new TypeError("No compression function supplied but compression enabled.");y8("%cSaving soundfont...",C1.info),_5(`%cCompression: %c${n?.compress||"false"}%c quality: %c${n?.compressionQuality||"none"}`,C1.info,C1.recognized,C1.info,C1.recognized),_5("%cWriting INFO...",C1.info);let i=[];this.soundFontInfo.ISFT="SpessaSynth",n?.compress&&(this.soundFontInfo.ifil="3.0");for(let[K2,J2]of Object.entries(this.soundFontInfo))if(K2==="ifil"||K2==="iver"){let A0=parseInt(J2.split(".")[0]),C5=parseInt(J2.split(".")[1]),p3=new j5(4);j3(p3,A0),j3(p3,C5),i.push(it(new w4(K2,4,p3)))}else if(K2==="DMOD")i.push(it(new w4(K2,J2.length,J2)));else{let A0=new j5(J2.length);P8(A0,J2),i.push(it(new w4(K2,J2.length,A0)))}let A=St([new j5([73,78,70,79]),...i]),c=it(new w4("LIST",A.length,A));_5("%cWriting SDTA...",C1.info);let d=[],p=[],O=Mv.call(this,d,p,n?.compress,n?.compressionQuality??.5,n.compressionFunction);_5("%cWriting PDTA...",C1.info),_5("%cWriting SHDR...",C1.info);let H=Rv.call(this,d,p);_5("%cWriting IGEN...",C1.info);let P=Lv.call(this);_5("%cWriting IMOD...",C1.info);let U=Fv.call(this);_5("%cWriting IBAG...",C1.info);let W0=Tv.call(this);_5("%cWriting INST...",C1.info);let _=Nv.call(this),e0=Gv.call(this);_5("%cWriting PMOD...",C1.info);let i0=Uv.call(this);_5("%cWriting PBAG...",C1.info);let a1=Pv.call(this);_5("%cWriting PHDR...",C1.info);let _1=Ov.call(this),f1=St([new j5([112,100,116,97]),_1,a1,i0,e0,_,W0,U,P,H]),C2=it(new w4("LIST",f1.length,f1));_5("%cWriting the output file...",C1.info);let u2=St([new j5([115,102,98,107]),c,O,C2]),I2=it(new w4("RIFF",u2.length,u2));return _5(`%cSaved succesfully! Final file size: %c${I2.length}`,C1.info,C1.recognized),g9(),I2}var Gp=class{velRange={min:-1,max:127};keyRange={min:-1,max:127};isGlobal=!1;generators=[];modulators=[];get hasKeyRange(){return this.keyRange.min!==-1}get hasVelRange(){return this.velRange.min!==-1}getGeneratorValue(i,A){return this.generators.find(c=>c.generatorType===i)?.generatorValue??A}};var zr=class extends Gp{sample=void 0;useCount=0;deleteZone(){this.useCount--,!this.isGlobal&&this.sample.useCount--}},Bu=class extends Gp{instrument=void 0;deleteZone(){this.isGlobal||this.instrument.removeUseCount()}};var ZD=new Set([m0.velRange,m0.keyRange,m0.instrument,m0.exclusiveClass,m0.endOper,m0.sampleModes,m0.startloopAddrsOffset,m0.startloopAddrsCoarseOffset,m0.endloopAddrsOffset,m0.endloopAddrsCoarseOffset,m0.startAddrsOffset,m0.startAddrsCoarseOffset,m0.endAddrOffset,m0.endAddrsCoarseOffset,m0.initialAttenuation,m0.fineTune,m0.coarseTune,m0.keyNumToVolEnvHold,m0.keyNumToVolEnvDecay,m0.keyNumToModEnvHold,m0.keyNumToModEnvDecay]);function Hv(n,i=!0){function A(_,e0){_.push(...e0.filter(i0=>!_.find(a1=>a1.generatorType===i0.generatorType)))}function c(_,e0){return{min:Math.max(_.min,e0.min),max:Math.min(_.max,e0.max)}}function d(_,e0){_.push(...e0.filter(i0=>!_.find(a1=>$e.isIdentical(i0,a1))))}let p=[],O=[],H=[],P={min:0,max:127},U={min:0,max:127},W0=n.presetZones.find(_=>_.isGlobal);W0&&(O.push(...W0.generators),H.push(...W0.modulators),P=W0.keyRange,U=W0.velRange);for(let _ of n.presetZones){if(_.isGlobal)continue;let e0=_.keyRange;_.hasKeyRange||(e0=P);let i0=_.velRange;_.hasVelRange||(i0=U);let a1=_.generators.map(A0=>new u6(A0.generatorType,A0.generatorValue));A(a1,O);let _1=[..._.modulators];d(_1,H);let f1=_.instrument.instrumentZones,C2=[],u2=[],I2={min:0,max:127},K2={min:0,max:127},J2=f1.find(A0=>A0.isGlobal);J2&&(C2.push(...J2.generators),u2.push(...J2.modulators),I2=J2.keyRange,K2=J2.velRange);for(let A0 of f1){if(A0.isGlobal)continue;let C5=A0.keyRange;A0.hasKeyRange||(C5=I2);let p3=A0.velRange;if(A0.hasVelRange||(p3=K2),C5=c(C5,e0),p3=c(p3,i0),C5.maxnew u6(P3.generatorType,P3.generatorValue));A(w3,C2);let m6=[...A0.modulators];d(m6,u2);let v3=[...m6];for(let P3 of _1){let w6=v3.findIndex(Me=>$e.isIdentical(P3,Me));w6!==-1?v3[w6]=v3[w6].sumTransform(P3):v3.push(P3)}let x6=w3.map(P3=>new u6(P3.generatorType,P3.generatorValue));for(let P3 of a1){if(P3.generatorType===m0.velRange||P3.generatorType===m0.keyRange||P3.generatorType===m0.instrument||P3.generatorType===m0.endOper||P3.generatorType===m0.sampleModes)continue;let w6=w3.findIndex(Me=>Me.generatorType===P3.generatorType);if(w6!==-1){let Me=x6[w6].generatorValue+P3.generatorValue;x6[w6]=new u6(P3.generatorType,Me)}else{let Me=Z6[P3.generatorType].def+P3.generatorValue;x6.push(new u6(P3.generatorType,Me))}}x6=x6.filter(P3=>P3.generatorType!==m0.sampleID&&P3.generatorType!==m0.keyRange&&P3.generatorType!==m0.velRange&&P3.generatorType!==m0.endOper&&P3.generatorType!==m0.instrument&&P3.generatorValue!==Z6[P3.generatorType].def);let u9=new zr;u9.keyRange=C5,u9.velRange=p3,u9.keyRange.min===0&&u9.keyRange.max===127&&(u9.keyRange.min=-1),u9.velRange.min===0&&u9.velRange.max===127&&(u9.velRange.min=-1),u9.isGlobal=!1,u9.sample=A0.sample,u9.generators=x6,u9.modulators=v3,p.push(u9)}}if(i){let _=new zr;_.isGlobal=!0;for(let a1=0;a1<58;a1++){if(ZD.has(a1))continue;let _1={},f1=Z6[a1]?.def||0;_1[f1]=0;for(let C2 of p){let u2=C2.generators.find(J2=>J2.generatorType===a1);if(u2){let J2=u2.generatorValue;_1[J2]===void 0?_1[J2]=1:_1[J2]++}else _1[f1]++;let I2;switch(a1){default:continue;case m0.decayVolEnv:I2=m0.keyNumToVolEnvDecay;break;case m0.holdVolEnv:I2=m0.keyNumToVolEnvHold;break;case m0.decayModEnv:I2=m0.keyNumToModEnvDecay;break;case m0.holdModEnv:I2=m0.keyNumToModEnvHold}if(C2.generators.find(J2=>J2.generatorType===I2)!==void 0){_1={};break}}if(Object.keys(_1).length>0){let C2=Object.entries(_1).reduce((I2,K2)=>I2[1]{let K2=I2.generators.findIndex(J2=>J2.generatorType===a1);K2!==-1?I2.generators[K2].generatorValue===u2&&I2.generators.splice(K2,1):u2!==f1&&I2.generators.push(new u6(a1,f1))})}}let i0=p.find(a1=>!a1.isGlobal).modulators.map(a1=>$e.copy(a1));for(let a1 of i0){let _1=!0;for(let f1 of p){if(f1.isGlobal||!_1)continue;f1.modulators.find(u2=>$e.isIdentical(u2,a1))||(_1=!1)}if(_1===!0){_.modulators.push($e.copy(a1));for(let f1 of p){let C2=f1.modulators.find(u2=>$e.isIdentical(u2,a1));C2.transformAmount===a1.transformAmount&&f1.modulators.splice(f1.modulators.indexOf(C2),1)}}}p.splice(0,0,_)}return p}var Yv=20;function ZE(n,i,A,c,d,p,O){let H=O===0?0:1,P=new j5(Yv+H*16);p9(P,Yv),j3(P,i),j3(P,A);let U=c*.4,W0=Math.floor(U*-65536);p9(P,W0),p9(P,0);let _=p-d,e0=0;switch(O){default:case 0:H=0;break;case 1:e0=0,H=1;break;case 3:e0=1,H=1}return p9(P,H),H===1&&(p9(P,16),p9(P,e0),p9(P,d),p9(P,_)),k6("wsmp",P)}var I6={none:0,modLfo:1,velocity:2,keyNum:3,volEnv:4,modEnv:5,pitchWheel:6,polyPressure:7,channelPressure:8,vibratoLfo:9,modulationWheel:129,volume:135,pan:138,expression:139,chorus:219,reverb:221,pitchWheelRange:256,fineTune:257,coarseTune:258};var F5={none:0,gain:1,reserved:2,pitch:3,pan:4,keyNum:5,chorusSend:128,reverbSend:129,modLfoFreq:260,modLfoDelay:261,vibLfoFreq:276,vibLfoDelay:277,volEnvAttack:518,volEnvDecay:519,volEnvRelease:521,volEnvSustain:522,volEnvDelay:523,volEnvHold:524,modEnvAttack:778,modEnvDecay:779,modEnvRelease:781,modEnvSustain:782,modEnvDelay:783,modEnvHold:784,filterCutoff:1280,filterQ:1281};var Up=class{source;control;destination;scale;transform;constructor(i,A,c,d,p){this.source=i,this.control=A,this.destination=c,this.scale=d,this.transform=p}writeArticulator(){let i=new j5(12);return j3(i,this.source),j3(i,this.control),j3(i,this.destination),j3(i,this.transform),p9(i,this.scale<<16),i}};function Vv(n,i){if(n)switch(i){default:return;case $3.modulationWheel:return I6.modulationWheel;case $3.mainVolume:return I6.volume;case $3.pan:return I6.pan;case $3.expressionController:return I6.expression;case $3.chorusDepth:return I6.chorus;case $3.reverbDepth:return I6.reverb}else switch(i){default:return;case q4.noteOnKeyNum:return I6.keyNum;case q4.noteOnVelocity:return I6.velocity;case q4.noController:return I6.none;case q4.polyPressure:return I6.polyPressure;case q4.channelPressure:return I6.channelPressure;case q4.pitchWheel:return I6.pitchWheel;case q4.pitchWheelRange:return I6.pitchWheelRange}}function Jv(n,i){switch(n){default:return;case m0.initialAttenuation:return{dest:F5.gain,amount:-i};case m0.fineTune:return F5.pitch;case m0.pan:return F5.pan;case m0.keyNum:return F5.keyNum;case m0.reverbEffectsSend:return F5.reverbSend;case m0.chorusEffectsSend:return F5.chorusSend;case m0.freqModLFO:return F5.modLfoFreq;case m0.delayModLFO:return F5.modLfoDelay;case m0.delayVibLFO:return F5.vibLfoDelay;case m0.freqVibLFO:return F5.vibLfoFreq;case m0.delayVolEnv:return F5.volEnvDelay;case m0.attackVolEnv:return F5.volEnvAttack;case m0.holdVolEnv:return F5.volEnvHold;case m0.decayVolEnv:return F5.volEnvDecay;case m0.sustainVolEnv:return{dest:F5.volEnvSustain,amount:1e3-i};case m0.releaseVolEnv:return F5.volEnvRelease;case m0.delayModEnv:return F5.modEnvDelay;case m0.attackModEnv:return F5.modEnvAttack;case m0.holdModEnv:return F5.modEnvHold;case m0.decayModEnv:return F5.modEnvDecay;case m0.sustainModEnv:return{dest:F5.modEnvSustain,amount:1e3-i};case m0.releaseModEnv:return F5.modEnvRelease;case m0.initialFilterFc:return F5.filterCutoff;case m0.initialFilterQ:return F5.filterQ}}function zv(n,i){switch(n){default:return;case m0.modEnvToFilterFc:return{source:I6.modEnv,dest:F5.filterCutoff,amt:i,isBipolar:!1};case m0.modEnvToPitch:return{source:I6.modEnv,dest:F5.pitch,amt:i,isBipolar:!1};case m0.modLfoToFilterFc:return{source:I6.modLfo,dest:F5.filterCutoff,amt:i,isBipolar:!0};case m0.modLfoToVolume:return{source:I6.modLfo,dest:F5.gain,amt:i,isBipolar:!0};case m0.modLfoToPitch:return{source:I6.modLfo,dest:F5.pitch,amt:i,isBipolar:!0};case m0.vibLfoToPitch:return{source:I6.vibratoLfo,dest:F5.pitch,amt:i,isBipolar:!0};case m0.keyNumToVolEnvHold:return{source:I6.keyNum,dest:F5.volEnvHold,amt:i,isBipolar:!0};case m0.keyNumToVolEnvDecay:return{source:I6.keyNum,dest:F5.volEnvDecay,amt:i,isBipolar:!0};case m0.keyNumToModEnvHold:return{source:I6.keyNum,dest:F5.modEnvHold,amt:i,isBipolar:!0};case m0.keyNumToModEnvDecay:return{source:I6.keyNum,dest:F5.modEnvDecay,amt:i,isBipolar:!0};case m0.scaleTuning:return{source:I6.keyNum,dest:F5.pitch,amt:i*128,isBipolar:!1}}}function Kv(n){let i=Jv(n.generatorType,n.generatorValue),A=i,c=0,d=n.generatorValue;i?.amount!==void 0&&(d=i.amount,A=i.dest);let p=zv(n.generatorType,n.generatorValue);if(p!==void 0)d=p.amt,A=p.dest,c=p.source;else if(A===void 0){I9(`Invalid generator type: ${n.generatorType}`);return}return new Up(c,0,A,d,0)}function Wv(n){if(n.transformType!==0){I9("Other transform types are not supported.");return}let i=Vv(n.sourceUsesCC,n.sourceIndex),A=n.sourceCurveType,c=n.sourcePolarity,d=n.sourceDirection;if(i===void 0){I9(`Invalid source: ${n.sourceIndex}, CC: ${n.sourceUsesCC}`);return}let p=Vv(n.secSrcUsesCC,n.secSrcIndex),O=n.secSrcCurveType,H=n.secSrcPolarity,P=n.secSrcDirection;if(p===void 0){I9(`Invalid secondary source: ${n.secSrcIndex}, CC: ${n.secSrcUsesCC}`);return}let U=Jv(n.modulatorDestination,n.transformAmount),W0=U,_=n.transformAmount;U?.dest!==void 0&&(W0=U.dest,_=U.amount);let e0=zv(n.modulatorDestination,n.transformAmount);if(e0!==void 0)_=e0.amt,p=i,O=A,H=c,P=d,A=X7.linear,c=e0.isBipolar?1:0,d=0,i=e0.source,W0=e0.dest;else if(W0===void 0){I9(`Invalid destination: ${n.modulatorDestination}`);return}let i0=0;return i0|=O<<4,i0|=H<<8,i0|=P<<9,i0|=A<<10,i0|=c<<14,i0|=d<<15,new Up(i,p,W0,_,i0)}var jD=new Set([m0.sampleModes,m0.initialAttenuation,m0.keyRange,m0.velRange,m0.sampleID,m0.fineTune,m0.coarseTune,m0.startAddrsOffset,m0.startAddrsCoarseOffset,m0.endAddrOffset,m0.endAddrsCoarseOffset,m0.startloopAddrsOffset,m0.startloopAddrsCoarseOffset,m0.endloopAddrsOffset,m0.endloopAddrsCoarseOffset,m0.overridingRootKey,m0.exclusiveClass]);function jE(n){for(let p=0;pa1.generatorType===H);if(P===void 0)continue;let U=O.generatorValue*-128,W0=60/128*U,_=P.generatorValue-W0,e0=n.generators.indexOf(O),i0=n.generators.indexOf(P);n.generators[i0]=new u6(H,_,!1),n.generators[e0]=new u6(O.generatorType,U,!1)}let i=n.generators.reduce((p,O)=>{if(jD.has(O.generatorType))return p;let H=Kv(O);return H!==void 0?(p.push(H),_5("%cSucceeded converting to DLS Articulator!",C1.recognized)):I9("Failed converting to DLS Articulator!"),p},[]),A=n.modulators.reduce((p,O)=>{let H=Wv(O);return H!==void 0?(p.push(H),_5("%cSucceeded converting to DLS Articulator!",C1.recognized)):I9("Failed converting to DLS Articulator!"),p},[]);i.push(...A);let c=new j5(8);p9(c,8),p9(c,i.length);let d=i.map(p=>p.writeArticulator());return k6("art2",St([c,...d]))}function Zv(n,i){let A=new j5(14);j3(A,Math.max(n.keyRange.min,0)),j3(A,n.keyRange.max),j3(A,Math.max(n.velRange.min,0)),j3(A,n.velRange.max),j3(A,0);let c=n.getGeneratorValue(m0.exclusiveClass,0);j3(A,c),j3(A,0);let d=k6("rgnh",A),p=n.getGeneratorValue(m0.overridingRootKey,n.sample.samplePitch);n.getGeneratorValue(m0.scaleTuning,i.getGeneratorValue(m0.scaleTuning,100))===0&&n.keyRange.max-n.keyRange.min===0&&(p=n.keyRange.min);let H=ZE(n.sample,p,n.getGeneratorValue(m0.fineTune,0)+n.getGeneratorValue(m0.coarseTune,0)*100+n.sample.samplePitchCorrection,n.getGeneratorValue(m0.initialAttenuation,0),n.sample.sampleLoopStartIndex+n.getGeneratorValue(m0.startloopAddrsOffset,0)+n.getGeneratorValue(m0.startloopAddrsCoarseOffset,0)*32768,n.sample.sampleLoopEndIndex+n.getGeneratorValue(m0.endloopAddrsOffset,0)+n.getGeneratorValue(m0.endloopAddrsCoarseOffset,0)*32768,n.getGeneratorValue(m0.sampleModes,0)),P=new j5(12);j3(P,0),j3(P,0);let U=0;switch(n.sample.sampleType){default:case 1:case 4:U=0;break;case 2:U=1}p9(P,U),p9(P,this.samples.indexOf(n.sample));let W0=k6("wlnk",P),_=jE(n),e0=k6("lar2",_,!1,!0);return k6("rgn2",St([d,H,W0,e0]),!1,!0)}function jv(n){y8(`%cWriting %c${n.presetName}%c...`,C1.info,C1.recognized,C1.info);let i=Hv(n),A=i.reduce((e0,i0)=>i0.isGlobal?e0:e0+1,0),c=new j5(12);p9(c,A);let d=(n.bank&127)<<8;n.bank===128&&(d|=1<<31),p9(c,d),p9(c,n.program&127);let p=k6("insh",c),O=new j5(0),H=i.find(e0=>e0.isGlobal===!0);if(H){let e0=jE(H);O=k6("lar2",e0,!1,!0)}let P=St(i.reduce((e0,i0)=>(i0.isGlobal||e0.push(Zv.apply(this,[i0,H])),e0),[])),U=k6("lrgn",P,!1,!0),W0=k6("INAM",N7(n.presetName)),_=k6("INFO",W0,!1,!0);return g9(),k6("ins ",St([p,U,O,_]),!1,!0)}function Xv(){let n=St(this.presets.map(i=>jv.apply(this,[i])));return k6("lins",n,!1,!0)}function ek(n){let i=new j5(18);j3(i,1),j3(i,1),p9(i,n.sampleRate),p9(i,n.sampleRate*2),j3(i,2),j3(i,16);let A=k6("fmt ",i),c=ZE(n,n.samplePitch,n.samplePitchCorrection,0,n.sampleLoopStartIndex,n.sampleLoopEndIndex,1),d=n.getAudioData(),p;if(n.isCompressed){let P=new Int16Array(d.length);for(let U=0;U{let d=ek(c);return i.push(n),n+=d.length,d});return{data:k6("wvpl",St(A),!1,!0),indexes:i}}function ik(){y8("%cSaving DLS...",C1.info);let n=new j5(4);p9(n,this.presets.length);let i=k6("colh",n);y8("%cWriting instruments...",C1.info);let A=Xv.apply(this);_5("%cSuccess!",C1.recognized),g9(),y8("%cWriting WAVE samples...",C1.info);let c=tk.apply(this),d=c.data,p=c.indexes;_5("%cSucceeded!",C1.recognized),g9();let O=new j5(8+4*p.length);p9(O,8),p9(O,p.length);for(let _ of p)p9(O,_);let H=k6("ptbl",O);this.soundFontInfo.ICMT=(this.soundFontInfo.ICMT||"Soundfont")+` +Converted from SF2 to DLS using SpessaSynth`,this.soundFontInfo.ISFT="SpessaSynth";let P=[];for(let[_,e0]of Object.entries(this.soundFontInfo))_!=="ICMT"&&_!=="INAM"&&_!=="ICRD"&&_!=="IENG"&&_!=="ICOP"&&_!=="ISFT"&&_!=="ISBJ"||P.push(k6(_,N7(e0)));let U=k6("INFO",St(P),!1,!0),W0=new j5(i.length+A.length+H.length+d.length+U.length+4);return P8(W0,"DLS "),W0.set(St([i,A,H,d,U]),4),_5("%cSaved succesfully!",C1.recognized),g9(),k6("RIFF",W0)}var Ya=class n{constructor(i=void 0){this.soundFontInfo={},this.presets=[],this.samples=[],this.instruments=[],this.defaultModulators=bE.map(A=>$e.copy(A)),i?.presets&&(this.presets.push(...i.presets),this.soundFontInfo=i.info)}static mergeSoundfonts(...i){let A=i.shift(),c=A.presets;for(;i.length;)i.shift().presets.forEach(p=>{c.find(O=>O.bank===p.bank&&O.program===p.program)===void 0&&c.push(p)});return new n({presets:c,info:A.soundFontInfo})}removeUnusedElements(){this.instruments.forEach(i=>{i.useCount<1&&i.instrumentZones.forEach(A=>{A.isGlobal||A.sample.useCount--})}),this.instruments=this.instruments.filter(i=>i.useCount>0),this.samples=this.samples.filter(i=>i.useCount>0)}deleteInstrument(i){if(i.useCount>0)throw new Error(`Cannot delete an instrument that has ${i.useCount} usages.`);this.instruments.splice(this.instruments.indexOf(i),1),i.deleteInstrument(),this.removeUnusedElements()}deletePreset(i){i.deletePreset(),this.presets.splice(this.presets.indexOf(i),1),this.removeUnusedElements()}deleteSample(i){if(i.useCount>0)throw new Error(`Cannot delete sample that has ${i.useCount} usages.`);this.samples.splice(this.samples.indexOf(i),1),this.removeUnusedElements()}setSampleIDOffset(i){this.presets.forEach(A=>A.sampleIDOffset=i)}getPresetNoFallback(i,A,c=!1){let d=this.presets.find(p=>p.bank===i&&p.program===A);if(d)return d;if(c!==!1)return i===128?this.presets.find(p=>p.bank===128):this.presets.find(p=>p.program===A)}getPreset(i,A){let c=this.presets.find(d=>d.bank===i&&d.program===A);return c||(i===128?(c=this.presets.find(d=>d.bank===128&&d.program===A),c||(c=this.presets.find(d=>d.bank===128))):c=this.presets.find(d=>d.program===A&&d.bank!==128),c&&I9(`%cPreset ${i}.${A} not found. Replaced with %c${c.presetName} (${c.bank}.${c.program})`,C1.warn,C1.recognized)),c||(I9(`Preset ${A} not found. Defaulting to`,this.presets[0].presetName),c=this.presets[0]),c}getPresetByName(i){let A=this.presets.find(c=>c.presetName===i);return A||(I9("Preset not found. Defaulting to:",this.presets[0].presetName),A=this.presets[0]),A}parsingError(i){throw new Error(`SF parsing error: ${i} The file may be corrupted.`)}destroySoundfont(){delete this.presets,delete this.instruments,delete this.samples}};Ya.prototype.write=qv;Ya.prototype.writeDLS=ik;function rk(n){y8("%cLoading instruments...",C1.info);for(let i=0;ii.deleteZone()),this.presetZones.length=0}deleteZone(i){this.presetZones[i].deleteZone(),this.presetZones.splice(i,1)}preload(i,A){for(let c=i;c{p.sample.isSampleLoaded||p.sample.getAudioData()})}preloadSpecific(i,A){this.getSamplesAndGenerators(i,A).forEach(c=>{c.sample.isSampleLoaded||c.sample.getAudioData()})}getSamplesAndGenerators(i,A){let c=this.foundSamplesAndGenerators[i][A];if(c)return c;if(this.presetZones.length<1)return[];function d(i0,a1){return a1>=i0.min&&a1<=i0.max}function p(i0,a1){i0.push(...a1.filter(_1=>!i0.find(f1=>f1.generatorType===_1.generatorType)))}function O(i0,a1){i0.push(...a1.filter(_1=>!i0.find(f1=>$e.isIdentical(_1,f1))))}let H=[],P=this.presetZones[0].isGlobal?[...this.presetZones[0].generators]:[],U=this.presetZones[0].isGlobal?[...this.presetZones[0].modulators]:[],W0=this.presetZones[0].isGlobal?this.presetZones[0].keyRange:{min:0,max:127},_=this.presetZones[0].isGlobal?this.presetZones[0].velRange:{min:0,max:127};return this.presetZones.filter(i0=>d(i0.hasKeyRange?i0.keyRange:W0,i)&&d(i0.hasVelRange?i0.velRange:_,A)&&!i0.isGlobal).forEach(i0=>{if(i0.instrument.instrumentZones.length<1)return;let a1=i0.generators,_1=i0.modulators,f1=i0.instrument.instrumentZones[0],C2=f1.isGlobal?[...f1.generators]:[],u2=f1.isGlobal?[...f1.modulators]:[],I2=f1.isGlobal?f1.keyRange:{min:0,max:127},K2=f1.isGlobal?f1.velRange:{min:0,max:127};i0.instrument.instrumentZones.filter(A0=>d(A0.hasKeyRange?A0.keyRange:I2,i)&&d(A0.hasVelRange?A0.velRange:K2,A)&&!A0.isGlobal).forEach(A0=>{let C5=[...A0.generators],p3=[...A0.modulators];p(a1,P),p(C5,C2),O(_1,U),O(p3,u2),O(p3,this.defaultModulators);let w3=[...p3];for(let m6=0;m6<_1.length;m6++){let v3=_1[m6],x6=w3.findIndex(u9=>$e.isIdentical(v3,u9));x6!==-1?w3[x6]=w3[x6].sumTransform(v3):w3.push(v3)}H.push({instrumentGenerators:C5,presetGenerators:a1,modulators:w3,sample:A0.sample,sampleID:A0.generators.find(m6=>m6.generatorType===m0.sampleID).generatorValue})})}),this.foundSamplesAndGenerators[i][A]=H,H}};var yu=class{constructor(){this.instrumentName="",this.instrumentZones=[],this._useCount=0}get useCount(){return this._useCount}addUseCount(){this._useCount++,this.instrumentZones.forEach(i=>i.useCount++)}removeUseCount(){this._useCount--;for(let i=0;ii.deleteZone()),this.instrumentZones.length=0}safeDeleteZone(i){return this.instrumentZones[i].useCount--,this.instrumentZones[i].useCount<1?(this.deleteZone(i),!0):!1}deleteZone(i){this.instrumentZones[i].deleteZone(),this.instrumentZones.splice(i,1)}};var XE=class extends Qu{constructor(i,A){super(bE),this.program=A&127,this.bank=i>>8&127,i>>31&&(this.bank=128),this.DLSInstrument=new yu,this.DLSInstrument.addUseCount();let d=new Bu;d.instrument=this.DLSInstrument,this.presetZones=[d]}};function nk(n){this.verifyHeader(n,"LIST"),this.verifyText(y4(n.chunkData,4),"ins ");let i=[];for(;n.chunkData.length>n.chunkData.currentIndex;)i.push(Qe(n.chunkData));let A=i.find(i0=>i0.header==="insh");if(!A)throw g9(),new Error("No instrument header!");let c=s3(A.chunkData,4),d=s3(A.chunkData,4),p=s3(A.chunkData,4),O=new XE(d,p),H="unnamedPreset",P=G7(i,"INFO");if(P){let i0=Qe(P.chunkData);for(;i0.header!=="INAM";)i0=Qe(P.chunkData);H=y4(i0.chunkData,i0.chunkData.length).trim()}O.presetName=H,O.DLSInstrument.instrumentName=H,M7(`%cParsing %c"${H}"%c...`,C1.info,C1.recognized,C1.info);let U=G7(i,"lrgn");if(!U)throw g9(),new Error("No region list!");let W0=new zr;W0.isGlobal=!0;let _=G7(i,"lart"),e0=G7(i,"lar2");(e0!==void 0||_!==void 0)&&this.readLart(_,e0,W0),W0.generators=W0.generators.filter(i0=>i0.generatorValue!==Z6[i0.generatorType].def),W0.modulators.find(i0=>i0.modulatorDestination===m0.reverbEffectsSend)===void 0&&W0.modulators.push(new $e({srcEnum:219,dest:m0.reverbEffectsSend,amt:1e3,secSrcEnum:0,transform:0})),W0.modulators.find(i0=>i0.modulatorDestination===m0.chorusEffectsSend)===void 0&&W0.modulators.push(new $e({srcEnum:221,dest:m0.chorusEffectsSend,amt:1e3,secSrcEnum:0,transform:0})),O.DLSInstrument.instrumentZones.push(W0);for(let i0=0;i0>10&15;u2===X7.linear&&C2!==X7.linear&&(u2=C2);let I2=c>>14&1,K2=c>>15&1;O===m0.initialAttenuation&&d<0&&(K2=1),e0=Yr(u2,I2,K2,H.isCC,H.enum)}let i0=c>>4&15,a1=c>>8&1,_1=c>>9&1,f1=Yr(i0,a1,_1,_.isCC,_.enum);if(P){let C2=f1;f1=e0,e0=C2}return new $e({srcEnum:e0,secSrcEnum:f1,dest:O,transform:0,amt:W0})}function nB(n,i){let A=n.chunkData,c=[],d=[];s3(A,4);let p=s3(A,4);for(let O=0;O>16;if(H===0&&P===0&&W0===0){let i0;switch(U){case F5.pan:i0=new u6(m0.pan,e0);break;case F5.gain:i0=new u6(m0.initialAttenuation,-e0*10/.4);break;case F5.filterCutoff:i0=new u6(m0.initialFilterFc,e0);break;case F5.filterQ:i0=new u6(m0.initialFilterQ,e0);break;case F5.modLfoFreq:i0=new u6(m0.freqModLFO,e0);break;case F5.modLfoDelay:i0=new u6(m0.delayModLFO,e0);break;case F5.vibLfoFreq:i0=new u6(m0.freqVibLFO,e0);break;case F5.vibLfoDelay:i0=new u6(m0.delayVibLFO,e0);break;case F5.volEnvDelay:i0=new u6(m0.delayVolEnv,e0);break;case F5.volEnvAttack:i0=new u6(m0.attackVolEnv,e0);break;case F5.volEnvHold:i0=new u6(m0.holdVolEnv,e0,!1);break;case F5.volEnvDecay:i0=new u6(m0.decayVolEnv,e0,!1);break;case F5.volEnvRelease:i0=new u6(m0.releaseVolEnv,e0);break;case F5.volEnvSustain:let a1=1e3-e0;i0=new u6(m0.sustainVolEnv,a1);break;case F5.modEnvDelay:i0=new u6(m0.delayModEnv,e0);break;case F5.modEnvAttack:i0=new u6(m0.attackModEnv,e0);break;case F5.modEnvHold:i0=new u6(m0.holdModEnv,e0,!1);break;case F5.modEnvDecay:i0=new u6(m0.decayModEnv,e0,!1);break;case F5.modEnvRelease:i0=new u6(m0.releaseModEnv,e0);break;case F5.modEnvSustain:let _1=1e3-e0;i0=new u6(m0.sustainModEnv,_1);break;case F5.reverbSend:i0=new u6(m0.reverbEffectsSend,e0);break;case F5.chorusSend:i0=new u6(m0.chorusEffectsSend,e0);break;case F5.pitch:let f1=Math.floor(e0/100),C2=Math.floor(e0-f1*100);i0=new u6(m0.fineTune,C2),c.push(new u6(m0.coarseTune,f1));break}i0&&c.push(i0)}else{let i0=!0;if(P===I6.none)if(H===I6.modLfo&&U===F5.pitch)c.push(new u6(m0.modLfoToPitch,e0));else if(H===I6.modLfo&&U===F5.gain)c.push(new u6(m0.modLfoToVolume,e0));else if(H===I6.modLfo&&U===F5.filterCutoff)c.push(new u6(m0.modLfoToFilterFc,e0));else if(H===I6.vibratoLfo&&U===F5.pitch)c.push(new u6(m0.vibLfoToPitch,e0));else if(H===I6.modEnv&&U===F5.pitch)c.push(new u6(m0.modEnvToPitch,e0));else if(H===I6.modEnv&&U===F5.filterCutoff)c.push(new u6(m0.modEnvToFilterFc,e0));else if(H===I6.keyNum&&U===F5.pitch)c.push(new u6(m0.scaleTuning,e0/128));else if(H===I6.keyNum&&U===F5.volEnvHold){c.push(new u6(m0.keyNumToVolEnvHold,e0/-128));let a1=Math.round(60/128*e0);c.forEach(_1=>{_1.generatorType===m0.holdVolEnv&&(_1.generatorValue+=a1)})}else if(H===I6.keyNum&&U===F5.volEnvDecay){c.push(new u6(m0.keyNumToVolEnvDecay,e0/-128));let a1=Math.round(60/128*e0);c.forEach(_1=>{_1.generatorType===m0.decayVolEnv&&(_1.generatorValue+=a1)})}else if(H===I6.keyNum&&U===F5.modEnvHold){c.push(new u6(m0.keyNumToModEnvHold,e0/-128));let a1=Math.round(60/128*e0);c.forEach(_1=>{_1.generatorType===m0.holdModEnv&&(_1.generatorValue+=a1)})}else if(H===I6.keyNum&&U===F5.modEnvDecay){c.push(new u6(m0.keyNumToModEnvDecay,e0/-128));let a1=Math.round(60/128*e0);c.forEach(_1=>{_1.generatorType===m0.decayModEnv&&(_1.generatorValue+=a1)})}else i0=!1;else i0=!1;if(i0===!1){let a1=sk(H,P,U,W0,e0);a1?(d.push(a1),_5("%cSucceeded converting to SF2 Modulator!",C1.recognized)):I9("Failed converting to SF2 Modulator!")}}}return i&&d.push(new $e({srcEnum:129,dest:m0.vibLfoToPitch,amt:0,secSrcEnum:0,transform:0}),new $e({srcEnum:13,dest:m0.vibLfoToPitch,amt:0,secSrcEnum:0,transform:0})),{modulators:d,generators:c}}function ak(n,i,A){if(n)for(;n.chunkData.currentIndexn.chunkData.currentIndex;)i.push(Qe(n.chunkData));let A=i.find(p3=>p3.header==="rgnh"),c=s3(A.chunkData,2),d=s3(A.chunkData,2),p=s3(A.chunkData,2),O=s3(A.chunkData,2),H=new eC({min:c,max:d},{min:p,max:O});s3(A.chunkData,2);let P=s3(A.chunkData,2);P!==0&&H.generators.push(new u6(m0.exclusiveClass,P));let U=G7(i,"lart"),W0=G7(i,"lar2");this.readLart(U,W0,H),H.isGlobal=!1;let _=i.find(p3=>p3.header==="wsmp");s3(_.chunkData,4);let e0=s3(_.chunkData,2),i0=Ga(_.chunkData[_.chunkData.currentIndex++],_.chunkData[_.chunkData.currentIndex++]),_1=(s3(_.chunkData,4)|0)/-655360;s3(_.chunkData,4);let f1=s3(_.chunkData,4),C2,u2={start:0,end:0};if(f1===0)C2=0;else{s3(_.chunkData,4),s3(_.chunkData,4)===0?C2=1:C2=3,u2.start=s3(_.chunkData,4);let w3=s3(_.chunkData,4);u2.end=u2.start+w3}let I2=i.find(p3=>p3.header==="wlnk");if(I2===void 0)return;s3(I2.chunkData,2),s3(I2.chunkData,2),s3(I2.chunkData,4);let K2=s3(I2.chunkData,4),J2=this.samples[K2];if(J2===void 0)throw new Error("Invalid sample ID!");let C5=(_1||J2.sampleDbAttenuation)*10/.4;return H.setWavesample(C5,C2,u2,e0,J2,K2,i0),H}var wu=class{constructor(i,A,c,d,p,O,H,P){this.sampleName=i,this.sampleRate=A,this.samplePitch=c,this.samplePitchCorrection=d,this.sampleLink=p,this.sampleType=O,this.sampleLoopStartIndex=H,this.sampleLoopEndIndex=P,this.isCompressed=(O&16)>0,this.compressedData=void 0,this.useCount=0}getRawData(){let i=new Error("Not implemented");throw i.name="NotImplementedError",i}compressSample(i,A){if(!this.isCompressed)try{this.compressedData=A([this.getAudioData()],1,this.sampleRate,i),this.sampleType|=16,this.isCompressed=!0}catch{I9(`Failed to compress ${this.sampleName}. Leaving as uncompressed!`),this.isCompressed=!1,this.compressedData=void 0,this.sampleType&=-17}}getAudioData(){let i=new Error("Not implemented");throw i.name="NotImplementedError",i}};var tC=class extends wu{sampleDbAttenuation;sampleData;constructor(i,A,c,d,p,O,H,P){super(i,A,c,d,0,1,p,O),this.sampleData=H,this.sampleDbAttenuation=P}getAudioData(){return this.sampleData}getRawData(){if(this.isCompressed){if(!this.compressedData)throw new Error("Compressed but no data?? This shouldn't happen!!");return this.compressedData}let i=new Uint8Array(this.sampleData.length*2);for(let A=0;A>8&255}return i}};var $k={PCM:1,ALAW:6};function t_(n,i){let A=Math.pow(2,i*8-1),c=Math.pow(2,i*8),d,p=!1;i===1?(d=255,p=!0):d=A;let O=n.size/i,H=new Float32Array(O);for(let P=0;P=A&&(U-=c),H[P]=U/d)}return H}function i_(n,i){let A=n.size/i,c=new Float32Array(A);for(let d=0;d>4,P=O&15;H>0&&(P+=16),P=(P<<4)+8,H>1&&(P=P<127?P:-P;c[d]=U/32678}return c}function lk(n){y8("%cLoading Wave samples...",C1.recognized);let i=0;for(;n.chunkData.currentIndexJ2.header==="fmt ");if(!d)throw new Error("No fmt chunk in the wave file!");let p=s3(d.chunkData,2),O=s3(d.chunkData,2);if(O!==1)throw new Error(`Only mono samples are supported. Fmt reports ${O} channels`);let H=s3(d.chunkData,4);s3(d.chunkData,4),s3(d.chunkData,2);let U=s3(d.chunkData,2)/8,W0=!1,_=c.find(J2=>J2.header==="data");_||this.parsingError("No data chunk in the WAVE chunk!");let e0;switch(p){default:W0=!0,e0=new Float32Array(_.size/U);break;case $k.PCM:e0=t_(_,U);break;case $k.ALAW:e0=i_(_,U);break}let i0=G7(c,"INFO"),a1=`Unnamed ${i}`;if(i0){let J2=Qe(i0.chunkData);for(;J2.header!=="INAM"&&i0.chunkData.currentIndexJ2.header==="wsmp");if(K2){s3(K2.chunkData,4),_1=s3(K2.chunkData,2),f1=Ga(K2.chunkData[K2.chunkData.currentIndex++],K2.chunkData[K2.chunkData.currentIndex++]);let J2=Math.trunc(f1/100);if(_1+=J2,f1-=J2*100,I2=(s3(K2.chunkData,4)|0)/-655360,s3(K2.chunkData,4),s3(K2.chunkData,4)===1){s3(K2.chunkData,8),C2=s3(K2.chunkData,4);let p3=s3(K2.chunkData,4);u2=C2+p3}}else I9("No wsmp chunk in wave... using sane defaults.");W0&&console.error(`Failed to load '${a1}': Unsupported format: (${p})`),this.samples.push(new tC(a1,H,_1,f1,C2,u2,e0,I2)),i++,_5(`%cLoaded sample %c${a1}`,C1.info,C1.recognized)}g9()}var qo=class extends Ya{constructor(i){super(),this.dataArray=new j5(i),M7("%cParsing DLS...",C1.info),this.dataArray||(g9(),this.parsingError("No data provided!"));let A=Qe(this.dataArray,!1);this.verifyHeader(A,"riff"),this.verifyText(y4(this.dataArray,4).toLowerCase(),"dls ");let c=[];for(;this.dataArray.currentIndexO.header==="colh");p||(g9(),this.parsingError("No colh chunk!")),this.instrumentAmount=s3(p.chunkData,4),_5(`%cInstruments amount: %c${this.instrumentAmount}`,C1.info,C1.recognized);let U=G7(c,"wvpl");U||(g9(),this.parsingError("No wvpl chunk!")),this.readDLSSamples(U);let H=G7(c,"lins");H||(g9(),this.parsingError("No lins chunk!")),this.readDLSInstrumentList(H),this.presets.sort((O,P)=>O.program-P.program+(O.bank-P.bank)),_5(`%cParsing finished! %c"${this.soundFontInfo.INAM||"UNNAMED"}"%c has %c${this.presets.length} %cpresets, - %c${this.instruments.length}%c instruments and %c${this.samples.length}%c samples.`,C1.info,C1.recognized,C1.info,C1.recognized,C1.info,C1.recognized,C1.info,C1.recognized,C1.info),g9()}verifyHeader(i,A){i.header.toLowerCase()!==A.toLowerCase()&&(g9(),this.parsingError(`Invalid DLS chunk header! Expected "${A.toLowerCase()}" got "${i.header.toLowerCase()}"`))}verifyText(i,A){i.toLowerCase()!==A.toLowerCase()&&(g9(),this.parsingError(`FourCC error: Expected "${A.toLowerCase()}" got "${i.toLowerCase()}"`))}parsingError(i){throw new Error(`DLS parse error: ${i} The file may be corrupted.`)}destroySoundfont(){super.destroySoundfont(),delete this.dataArray}};qo.prototype.readDLSInstrumentList=rk;qo.prototype.readDLSInstrument=nk;qo.prototype.readRegion=Ak;qo.prototype.readLart=ak;qo.prototype.readDLSSamples=lk;var Va=Va!==void 0?Va:{},ck=!1,gk;Va.isInitialized=new Promise(n=>gk=n);var r_=function(n){var i,A,c,d,p,U,H,O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",P="",W0=0;n=n.replace(/[^A-Za-z0-9\+\/\=]/g,"");do d=O.indexOf(n.charAt(W0++)),p=O.indexOf(n.charAt(W0++)),U=O.indexOf(n.charAt(W0++)),H=O.indexOf(n.charAt(W0++)),i=d<<2|p>>4,A=(15&p)<<4|U>>2,c=(3&U)<<6|H,P+=String.fromCharCode(i),U!==64&&(P+=String.fromCharCode(A)),H!==64&&(P+=String.fromCharCode(c));while(W01&&(A0.thisProgram=process.argv[1].replace(/\\/g,"/")),A0.arguments=process.argv.slice(2),typeof module<"u",process.on("uncaughtException",function(R0){if(!(R0 instanceof W$))throw R0}),process.on("unhandledRejection",function(R0,t1){process.exit(1)}),A0.quit=function(R0){process.exit(R0)},A0.inspect=function(){return"[Emscripten Module object]"}):v3?(typeof read<"u"&&(A0.read=function(t1){return read(t1)}),A0.readBinary=function(t1){var y1;return typeof readbuffer=="function"?new Uint8Array(readbuffer(t1)):(Er(typeof(y1=read(t1,"binary"))=="object"),y1)},typeof scriptArgs<"u"?A0.arguments=scriptArgs:typeof arguments<"u"&&(A0.arguments=arguments),typeof quit=="function"&&(A0.quit=function(R0){quit(R0)})):(p3||w3)&&(p3?document.currentScript&&(x6=document.currentScript.src):x6=self.location.href,x6=x6.indexOf("blob:")!==0?x6.split("/").slice(0,-1).join("/")+"/":"",A0.read=function(t1){var y1=new XMLHttpRequest;return y1.open("GET",t1,!1),y1.send(null),y1.responseText},w3&&(A0.readBinary=function(t1){var y1=new XMLHttpRequest;return y1.open("GET",t1,!1),y1.responseType="arraybuffer",y1.send(null),new Uint8Array(y1.response)}),A0.readAsync=function(t1,y1,_2){var t6=new XMLHttpRequest;t6.open("GET",t1,!0),t6.responseType="arraybuffer",t6.onload=function(){if(t6.status==200||t6.status==0&&t6.response){y1(t6.response);return}_2()},t6.onerror=_2,t6.send(null)},A0.setWindowTitle=function(R0){document.title=R0});var P3=A0.print||(typeof console<"u"?console.log.bind(console):typeof print<"u"?print:null),w6=A0.printErr||(typeof printErr<"u"?printErr:typeof console<"u"&&console.warn.bind(console)||P3);for(n in C5)C5.hasOwnProperty(n)&&(A0[n]=C5[n]);function Me(R0){var t1=i0;return i0=i0+R0+15&-16,t1}function Wr(R0){var t1=O[I2>>2],y1=t1+R0+15&-16;return O[I2>>2]=y1,y1>=N9&&!Zr()?(O[I2>>2]=t1,0):t1}function er(R0,t1){return t1||(t1=16),R0=Math.ceil(R0/t1)*t1}function Ka(R0){switch(R0){case"i1":case"i8":return 1;case"i16":return 2;case"i32":case"float":return 4;case"i64":case"double":return 8;default:if(R0[R0.length-1]==="*")return 4;if(R0[0]!=="i")return 0;var t1=parseInt(R0.substr(1));return Er(t1%8==0),t1/8}}function Ho(R0){Ho.shown||(Ho.shown={}),Ho.shown[R0]||(Ho.shown[R0]=1,w6(R0))}C5=void 0;var Op={"f64-rem":function(R0,t1){return R0%t1},debugger:function(){}},F$=[];function aC(R0,t1){for(var y1=0,_2=y1;_2>>0)+4294967296*+(t1>>>0):+(R0>>>0)+4294967296*+(0|t1)}function T$(R0,t1,y1){return y1&&y1.length?A0["dynCall_"+R0].apply(null,[t1].concat(y1)):A0["dynCall_"+R0].call(null,t1)}var Wa=0,vu=0;function Er(R0,t1){R0||tr("Assertion failed: "+t1)}function Za(R0){var t1=A0["_"+R0];return Er(t1,"Cannot call unknown function "+R0+", make sure it is exported"),t1}var qp={stackSave:function(){jp()},stackRestore:function(){K$()},arrayToC:function(R0){var t1,y1,_2=ja(R0.length);return t1=R0,y1=_2,d.set(t1,y1),_2},stringToC:function(R0){var t1=0;if(R0!=null&&R0!==0){var y1=(R0.length<<2)+1;t1=ja(y1),Yp(R0,t1,y1)}return t1}},Yo={string:qp.stringToC,array:qp.arrayToC};function ku(R0,t1,y1,_2,t6){var E9=Za(R0),X9=[],p6=0;if(_2)for(var v8=0;v8<_2.length;v8++){var H4=Yo[y1[v8]];H4?(p6===0&&(p6=jp()),X9[v8]=H4(_2[v8])):X9[v8]=_2[v8]}var rt,M4=E9.apply(null,X9);return M4=(rt=M4,t1==="string"?G$(rt):t1==="boolean"?!!rt:rt),p6!==0&&K$(p6),M4}function O3(R0,t1,y1,_2){switch((y1=y1||"i8").charAt(y1.length-1)==="*"&&(y1="i32"),y1){case"i1":case"i8":d[R0>>0]=t1;break;case"i16":U[R0>>1]=t1;break;case"i32":O[R0>>2]=t1;break;case"i64":tempI64=[t1>>>0,+Du(tempDouble=t1)>=1?tempDouble>0?(0|xu(+_u(tempDouble/4294967296),4294967295))>>>0:~~+J$((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0],O[R0>>2]=tempI64[0],O[R0+4>>2]=tempI64[1];break;case"float":W0[R0>>2]=t1;break;case"double":_[R0>>3]=t1;break;default:tr("invalid type for setValue: "+y1)}}function C3(R0,t1,y1){switch((t1=t1||"i8").charAt(t1.length-1)==="*"&&(t1="i32"),t1){case"i1":case"i8":return d[R0>>0];case"i16":return U[R0>>1];case"i32":case"i64":return O[R0>>2];case"float":return W0[R0>>2];case"double":return _[R0>>3];default:tr("invalid type for getValue: "+t1)}return null}function IB(R0,t1,y1,_2){typeof R0=="number"?(E9=!0,X9=R0):(E9=!1,X9=R0.length);var t6=typeof t1=="string"?t1:null;if(p6=y1==4?_2:[typeof Zo=="function"?Zo:Me,ja,Me,Wr][y1===void 0?2:y1](Math.max(X9,t6?1:t1.length)),E9){for(_2=p6,Er((3&p6)==0),v8=p6+(-4&X9);_2>2]=0;for(v8=p6+X9;_2>0]=0;return p6}if(t6==="i8")return R0.subarray||R0.slice?p.set(R0,p6):p.set(new Uint8Array(R0),p6),p6;for(var E9,X9,p6,v8,H4,rt,M4,C9=0;C9>0],(_2!=0||t1)&&(X9++,!t1||X9!=t1););t1||(t1=X9);var p6="";if(E9<128){for(;t1>0;)t6=String.fromCharCode.apply(String,p.subarray(R0,R0+Math.min(t1,1024))),p6=p6?p6+t6:t6,R0+=1024,t1-=1024;return p6}return y1=R0,function(H4,rt){for(var M4=rt;H4[M4];)++M4;if(M4-rt>16&&H4.subarray&&Hp)return Hp.decode(H4.subarray(rt,M4));for(var C9,Gi,q7,k8,Ui,H7,Y7="";;){if(!(C9=H4[rt++]))return Y7;if(!(128&C9)){Y7+=String.fromCharCode(C9);continue}if(Gi=63&H4[rt++],(224&C9)==192){Y7+=String.fromCharCode((31&C9)<<6|Gi);continue}if(q7=63&H4[rt++],(240&C9)==224?C9=(15&C9)<<12|Gi<<6|q7:(k8=63&H4[rt++],(248&C9)==240?C9=(7&C9)<<18|Gi<<12|q7<<6|k8:(Ui=63&H4[rt++],C9=(252&C9)==248?(3&C9)<<24|Gi<<18|q7<<12|k8<<6|Ui:(1&C9)<<30|Gi<<24|q7<<18|k8<<12|Ui<<6|(H7=63&H4[rt++]))),C9<65536)Y7+=String.fromCharCode(C9);else{var Pn=C9-65536;Y7+=String.fromCharCode(55296|Pn>>10,56320|1023&Pn)}}}(p,y1)}function mB(R0){for(var t1="";;){var y1=d[R0++>>0];if(!y1)return t1;t1+=String.fromCharCode(y1)}}function Vo(R0,t1){return function(_2,t6,E9){for(var X9=0;X9<_2.length;++X9)d[t6++>>0]=_2.charCodeAt(X9);E9||(d[t6>>0]=0)}(R0,t1,!1)}var Hp=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Gn(R0,t1,y1,_2){if(!(_2>0))return 0;for(var t6=y1,E9=y1+_2-1,X9=0;X9=55296&&p6<=57343&&(p6=65536+((1023&p6)<<10)|1023&R0.charCodeAt(++X9)),p6<=127){if(y1>=E9)break;t1[y1++]=p6}else if(p6<=2047){if(y1+1>=E9)break;t1[y1++]=192|p6>>6,t1[y1++]=128|63&p6}else if(p6<=65535){if(y1+2>=E9)break;t1[y1++]=224|p6>>12,t1[y1++]=128|p6>>6&63,t1[y1++]=128|63&p6}else if(p6<=2097151){if(y1+3>=E9)break;t1[y1++]=240|p6>>18,t1[y1++]=128|p6>>12&63,t1[y1++]=128|p6>>6&63,t1[y1++]=128|63&p6}else if(p6<=67108863){if(y1+4>=E9)break;t1[y1++]=248|p6>>24,t1[y1++]=128|p6>>18&63,t1[y1++]=128|p6>>12&63,t1[y1++]=128|p6>>6&63,t1[y1++]=128|63&p6}else{if(y1+5>=E9)break;t1[y1++]=252|p6>>30,t1[y1++]=128|p6>>24&63,t1[y1++]=128|p6>>18&63,t1[y1++]=128|p6>>12&63,t1[y1++]=128|p6>>6&63,t1[y1++]=128|63&p6}}return t1[y1]=0,y1-t6}function Yp(R0,t1,y1){return Gn(R0,p,t1,y1)}function Jo(R0){for(var t1=0,y1=0;y1=55296&&_2<=57343&&(_2=65536+((1023&_2)<<10)|1023&R0.charCodeAt(++y1)),_2<=127?++t1:_2<=2047?t1+=2:_2<=65535?t1+=3:_2<=2097151?t1+=4:_2<=67108863?t1+=5:t1+=6}return t1}var Vp=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function pB(R0){for(var t1=R0,y1=t1>>1;U[y1];)++y1;if((t1=y1<<1)-R0>32&&Vp)return Vp.decode(p.subarray(R0,t1));for(var _2=0,t6="";;){var E9=U[R0+2*_2>>1];if(E9==0)return t6;++_2,t6+=String.fromCharCode(E9)}}function EB(R0,t1,y1){if(y1===void 0&&(y1=2147483647),y1<2)return 0;for(var _2=t1,t6=(y1-=2)<2*R0.length?y1/2:R0.length,E9=0;E9>1]=X9,t1+=2}return U[t1>>1]=0,t1-_2}function CB(R0){return 2*R0.length}function BB(R0){for(var t1=0,y1="";;){var _2=O[R0+4*t1>>2];if(_2==0)return y1;if(++t1,_2>=65536){var t6=_2-65536;y1+=String.fromCharCode(55296|t6>>10,56320|1023&t6)}else y1+=String.fromCharCode(_2)}}function QB(R0,t1,y1){if(y1===void 0&&(y1=2147483647),y1<4)return 0;for(var _2=t1,t6=_2+y1-4,E9=0;E9=55296&&X9<=57343&&(X9=65536+((1023&X9)<<10)|1023&R0.charCodeAt(++E9)),O[t1>>2]=X9,(t1+=4)+4>t6)break}return O[t1>>2]=0,t1-_2}function yB(R0){for(var t1=0,y1=0;y1=55296&&_2<=57343&&++y1,t1+=4}return t1}function wB(R0){var t1=Jo(R0)+1,y1=Zo(t1);return y1&&Gn(R0,d,y1,t1),y1}function vB(R0){var t1=Jo(R0)+1,y1=ja(t1);return Gn(R0,d,y1,t1),y1}function Jp(R0){return R0}function $C(){var R0,t1=function(){var _2=Error();if(!_2.stack){try{throw Error(0)}catch(t6){_2=t6}if(!_2.stack)return"(no stack trace available)"}return _2.stack.toString()}();return A0.extraStackTrace&&(t1+=` -`+A0.extraStackTrace()),(R0=t1).replace(/__Z[\w\d_]+/g,function(y1){var _2,t6=_2=y1;return y1===t6?y1:y1+" ["+t6+"]"})}function Su(R0,t1){return R0%t1>0&&(R0+=t1-R0%t1),R0}function zp(R0){A0.buffer=c=R0}function j9(){A0.HEAP8=d=new Int8Array(c),A0.HEAP16=U=new Int16Array(c),A0.HEAP32=O=new Int32Array(c),A0.HEAPU8=p=new Uint8Array(c),A0.HEAPU16=H=new Uint16Array(c),A0.HEAPU32=P=new Uint32Array(c),A0.HEAPF32=W0=new Float32Array(c),A0.HEAPF64=_=new Float64Array(c)}function Zr(){var R0=A0.usingWasm?65536:16777216,t1=2147483648-R0;if(O[I2>>2]>t1)return!1;var y1=N9;for(N9=Math.max(N9,16777216);N9>2];)N9=N9<=536870912?Su(2*N9,R0):Math.min(Su((3*N9+2147483648)/4,R0),t1);var _2=A0.reallocBuffer(N9);return _2&&_2.byteLength==N9?(zp(_2),j9(),!0):(N9=y1,!1)}e0=i0=_1=f1=C2=u2=I2=0,a1=!1,A0.reallocBuffer||(A0.reallocBuffer=function(R0){try{if(ArrayBuffer.transfer)t1=ArrayBuffer.transfer(c,R0);else{var t1,y1=d;t1=new ArrayBuffer(R0),new Int8Array(t1).set(y1)}}catch{return!1}return!!gC(t1)&&t1});try{(K2=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get))(new ArrayBuffer(4))}catch{K2=function(t1){return t1.byteLength}}var U$=A0.TOTAL_STACK||5242880,N9=A0.TOTAL_MEMORY||16777216;function P$(){return N9}function zo(R0){for(;R0.length>0;){var t1=R0.shift();if(typeof t1=="function"){t1();continue}var y1=t1.func;typeof y1=="number"?t1.arg===void 0?A0.dynCall_v(y1):A0.dynCall_vi(y1,t1.arg):y1(t1.arg===void 0?null:t1.arg)}}N9=0?R0:t1<=32?2*Math.abs(1<=_2&&(t1<=32||R0>_2)&&(R0=-2*_2+R0),R0}var Du=Math.abs,J$=Math.ceil,_u=Math.floor,xu=Math.min,Un=0,Lu=null,Wo=null;function kB(R0){return R0}A0.preloadedImages={},A0.preloadedAudios={};var Zp="data:application/octet-stream;base64,";function z$(R0){return String.prototype.startsWith?R0.startsWith(Zp):R0.indexOf(Zp)===0}(function(){var t1="main.wast",y1="main.wasm",_2="main.temp.asm.js";z$(t1)||(t1=u9(t1)),z$(y1)||(y1=u9(y1)),z$(_2)||(_2=u9(_2));var t6={global:null,env:null,asm2wasm:Op,parent:A0},E9=null;function X9(M4){return M4}function p6(){try{if(A0.wasmBinary)return new Uint8Array(A0.wasmBinary);if(A0.readBinary)return A0.readBinary(y1);throw"both async and sync fetching of the wasm failed"}catch(M4){tr(M4)}}A0.asmPreload=A0.asm;var v8=A0.reallocBuffer,H4=function(M4){M4=Su(M4,A0.usingWasm?65536:16777216);var C9=A0.buffer.byteLength;if(A0.usingWasm)try{var Gi=A0.wasmMemory.grow((M4-C9)/65536);return Gi!==-1?A0.buffer=A0.wasmMemory.buffer:null}catch{return null}};A0.reallocBuffer=function(M4){return rt==="asmjs"?v8(M4):H4(M4)};var rt="";A0.asm=function(M4,C9,Gi){var q7;if(!(C9=q7=C9).table){var k8,Ui=A0.wasmTableSize;Ui===void 0&&(Ui=1024);var H7=A0.wasmMaxTableSize;typeof WebAssembly=="object"&&typeof WebAssembly.Table=="function"?H7!==void 0?C9.table=new WebAssembly.Table({initial:Ui,maximum:H7,element:"anyfunc"}):C9.table=new WebAssembly.Table({initial:Ui,element:"anyfunc"}):C9.table=Array(Ui),A0.wasmTable=C9.table}return C9.memoryBase||(C9.memoryBase=A0.STATIC_BASE),C9.tableBase||(C9.tableBase=0),k8=function(Pn,Cr,Xp){if(typeof WebAssembly!="object")return w6("no native wasm support detected"),!1;if(!(A0.wasmMemory instanceof WebAssembly.Memory))return w6("no native wasm Memory in use"),!1;function Mu(Br,ir){if((E9=Br.exports).memory){var Xa,jo,Xo;Xa=E9.memory,jo=A0.buffer,Xa.byteLength0?y1:Jo(R0)+1,t6=Array(_2),E9=Gn(R0,t6,0,t6.length);return t1&&(t6.length=E9),t6}function cC(R0){for(var t1=[],y1=0;y1255&&(_2&=255),t1.push(String.fromCharCode(_2))}return t1.join("")}i0+=16,I2=Me(4),C2=(_1=f1=er(i0))+U$,u2=er(C2),O[I2>>2]=u2,a1=!0,A0.wasmTableSize=4,A0.wasmMaxTableSize=4,A0.asmGlobalArg={},A0.asmLibraryArg={abort:tr,assert:Er,enlargeMemory:Zr,getTotalMemory:P$,abortOnCannotGrowMemory:function(){tr("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+N9+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_iii:function(t1,y1,_2){var t6=jp();try{return A0.dynCall_iii(t1,y1,_2)}catch(E9){if(K$(t6),typeof E9!="number"&&E9!=="longjmp")throw E9;A0.setThrew(1,0)}},___assert_fail:function(t1,y1,_2,t6){tr("Assertion failed: "+G$(t1)+", at: "+[y1?G$(y1):"unknown filename",_2,t6?G$(t6):"unknown function"])},___setErrNo:function(t1){return A0.___errno_location&&(O[A0.___errno_location()>>2]=t1),t1},_abort:function(){A0.abort()},_emscripten_memcpy_big:function(t1,y1,_2){return p.set(p.subarray(y1,y1+_2),t1),t1},_llvm_floor_f64:_u,DYNAMICTOP_PTR:I2,tempDoublePtr:Ni,ABORT:Wa,STACKTOP:f1,STACK_MAX:C2};var en=A0.asm(A0.asmGlobalArg,A0.asmLibraryArg,c);A0.asm=en,A0.___errno_location=function(){return A0.asm.___errno_location.apply(null,arguments)};var gC=A0._emscripten_replace_memory=function(){return A0.asm._emscripten_replace_memory.apply(null,arguments)};A0._free=function(){return A0.asm._free.apply(null,arguments)};var Zo=A0._malloc=function(){return A0.asm._malloc.apply(null,arguments)};A0._memcpy=function(){return A0.asm._memcpy.apply(null,arguments)},A0._memset=function(){return A0.asm._memset.apply(null,arguments)},A0._sbrk=function(){return A0.asm._sbrk.apply(null,arguments)},A0._stb_vorbis_js_channels=function(){return A0.asm._stb_vorbis_js_channels.apply(null,arguments)},A0._stb_vorbis_js_close=function(){return A0.asm._stb_vorbis_js_close.apply(null,arguments)},A0._stb_vorbis_js_decode=function(){return A0.asm._stb_vorbis_js_decode.apply(null,arguments)},A0._stb_vorbis_js_open=function(){return A0.asm._stb_vorbis_js_open.apply(null,arguments)},A0._stb_vorbis_js_sample_rate=function(){return A0.asm._stb_vorbis_js_sample_rate.apply(null,arguments)},A0.establishStackSpace=function(){return A0.asm.establishStackSpace.apply(null,arguments)},A0.getTempRet0=function(){return A0.asm.getTempRet0.apply(null,arguments)},A0.runPostSets=function(){return A0.asm.runPostSets.apply(null,arguments)},A0.setTempRet0=function(){return A0.asm.setTempRet0.apply(null,arguments)},A0.setThrew=function(){return A0.asm.setThrew.apply(null,arguments)};var ja=A0.stackAlloc=function(){return A0.asm.stackAlloc.apply(null,arguments)},K$=A0.stackRestore=function(){return A0.asm.stackRestore.apply(null,arguments)},jp=A0.stackSave=function(){return A0.asm.stackSave.apply(null,arguments)};function W$(R0){this.name="ExitStatus",this.message="Program terminated with exit("+R0+")",this.status=R0}function Z$(R0){R0=R0||A0.arguments,!(Un>0)&&(function(){if(A0.preRun)for(typeof A0.preRun=="function"&&(A0.preRun=[A0.preRun]);A0.preRun.length;)lC(A0.preRun.shift());zo(jr)}(),!(Un>0)&&(A0.calledRun||(A0.setStatus?(A0.setStatus("Running..."),setTimeout(function(){setTimeout(function(){A0.setStatus("")},1),t1()},1)):t1())));function t1(){!A0.calledRun&&(A0.calledRun=!0,Wa||(H$||(H$=!0,zo(O$)),zo(bu),A0.onRuntimeInitialized&&A0.onRuntimeInitialized(),function(){if(A0.postRun)for(typeof A0.postRun=="function"&&(A0.postRun=[A0.postRun]);A0.postRun.length;)O7(A0.postRun.shift());zo(q$)}()))}}function uC(R0,t1){(!t1||!A0.noExitRuntime||R0!==0)&&(A0.noExitRuntime||(Wa=!0,vu=R0,f1=J2,zo(v7),P7=!0,A0.onExit&&A0.onExit(R0)),A0.quit(R0,new W$(R0)))}function tr(R0){throw A0.onAbort&&A0.onAbort(R0),R0!==void 0?(P3(R0),w6(R0),R0=JSON.stringify(R0)):R0="",Wa=!0,vu=1,"abort("+R0+"). Build with -s ASSERTIONS=1 for more info."}if(A0.dynCall_iii=function(){return A0.asm.dynCall_iii.apply(null,arguments)},A0.asm=en,A0.ccall=ku,A0.cwrap=function(t1,y1,_2,t6){var E9=(_2=_2||[]).every(function(X9){return X9==="number"});return y1!=="string"&&E9&&!t6?Za(t1):function(){return ku(t1,y1,_2,arguments,t6)}},W$.prototype=Error(),W$.prototype.constructor=W$,Wo=function R0(){A0.calledRun||Z$(),A0.calledRun||(Wo=R0)},A0.run=Z$,A0.abort=tr,A0.preInit)for(typeof A0.preInit=="function"&&(A0.preInit=[A0.preInit]);A0.preInit.length>0;)A0.preInit.pop()();A0.noExitRuntime=!0,Z$(),A0.onRuntimeInitialized=()=>{ck=!0,gk()},Va.decode=function(R0){return function(y1){if(!ck)throw Error("Not initialized");var _2={};function t6(Cr){return new Int32Array(A0.HEAPU8.buffer,Cr,1)[0]}function E9(Cr,Xp){var Mu=new ArrayBuffer(Xp*Float32Array.BYTES_PER_ELEMENT),bt=new Float32Array(Mu);return bt.set(new Float32Array(A0.HEAPU8.buffer,Cr,Xp)),bt}_2.open=A0.cwrap("stb_vorbis_js_open","number",[]),_2.close=A0.cwrap("stb_vorbis_js_close","void",["number"]),_2.channels=A0.cwrap("stb_vorbis_js_channels","number",["number"]),_2.sampleRate=A0.cwrap("stb_vorbis_js_sample_rate","number",["number"]),_2.decode=A0.cwrap("stb_vorbis_js_decode","number",["number","number","number","number","number"]);var X9,p6,v8,H4,rt=_2.open(),M4=(X9=y1,p6=y1.byteLength,v8=A0._malloc(p6),(H4=new Uint8Array(A0.HEAPU8.buffer,v8,p6)).set(new Uint8Array(X9,0,p6)),H4),C9=A0._malloc(4),Gi=A0._malloc(4),q7=_2.decode(rt,M4.byteOffset,M4.byteLength,C9,Gi);if(A0._free(M4.byteOffset),q7<0)throw _2.close(rt),A0._free(C9),Error("stbvorbis decode failed: "+q7);for(var k8=_2.channels(rt),Ui=Array(k8),H7=new Int32Array(A0.HEAPU32.buffer,t6(C9),k8),Y7=0;Y7n.chunkData.currentIndex;){let p=n_(d,n.chunkData,i,A);c.push(p),d++}return c.length>1&&c.pop(),c}function n_(n,i,A,c){let d=y4(i,20),p=s3(i,4)*2,U=s3(i,4)*2,H=s3(i,4),O=s3(i,4),P=s3(i,4),W0=i[i.currentIndex++];W0===255&&(W0=60);let _=xy(i[i.currentIndex++]),e0=s3(i,2),i0=s3(i,2);return new oB(d,p,U,H,O,P,W0,_,e0,i0,A,n,c)}var sB=class extends u6{constructor(i){super();let A=i.currentIndex;this.generatorType=i[A+1]<<8|i[A],this.generatorValue=Ga(i[A+2],i[A+3]),i.currentIndex+=4}};function aB(n){let i=[];for(;n.chunkData.length>n.chunkData.currentIndex;)i.push(new sB(n.chunkData));return i.length>1&&i.pop(),i}var AB=class extends yu{constructor(i){super(),this.instrumentName=y4(i.chunkData,20).trim(),this.instrumentZoneIndex=s3(i.chunkData,2),this.instrumentZonesAmount=0}getInstrumentZones(i,A){this.instrumentZonesAmount=i;for(let c=this.instrumentZoneIndex;cn.chunkData.currentIndex;){let c=new AB(n);if(A.length>0){let d=c.instrumentZoneIndex-A[A.length-1].instrumentZoneIndex;A[A.length-1].getInstrumentZones(d,i)}A.push(c)}return A.length>1&&A.pop(),A}var $B=class extends zr{constructor(i){super(),this.generatorZoneStartIndex=s3(i,2),this.modulatorZoneStartIndex=s3(i,2),this.modulatorZoneSize=0,this.generatorZoneSize=0,this.isGlobal=!0}setZoneSize(i,A){this.modulatorZoneSize=i,this.generatorZoneSize=A}getGenerators(i){for(let A=this.generatorZoneStartIndex;Ac.generatorType===m0.sampleID);A&&(this.sample=i[A.generatorValue],this.isGlobal=!1,this.sample.useCount++)}getKeyRange(){let i=this.generators.find(A=>A.generatorType===m0.keyRange);i&&(this.keyRange.min=i.generatorValue&127,this.keyRange.max=i.generatorValue>>8&127)}getVelRange(){let i=this.generators.find(A=>A.generatorType===m0.velRange);i&&(this.velRange.min=i.generatorValue&127,this.velRange.max=i.generatorValue>>8&127)}};function hk(n,i,A,c){let d=[];for(;n.chunkData.length>n.chunkData.currentIndex;){let p=new $B(n.chunkData);if(d.length>0){let U=p.modulatorZoneStartIndex-d[d.length-1].modulatorZoneStartIndex,H=p.generatorZoneStartIndex-d[d.length-1].generatorZoneStartIndex;d[d.length-1].setZoneSize(U,H),d[d.length-1].getGenerators(i),d[d.length-1].getModulators(A),d[d.length-1].getSample(c),d[d.length-1].getKeyRange(),d[d.length-1].getVelRange()}d.push(p)}return d.length>1&&d.pop(),d}var lB=class extends Bu{constructor(i){super(),this.generatorZoneStartIndex=s3(i,2),this.modulatorZoneStartIndex=s3(i,2),this.modulatorZoneSize=0,this.generatorZoneSize=0,this.isGlobal=!0}setZoneSize(i,A){this.modulatorZoneSize=i,this.generatorZoneSize=A}getGenerators(i){for(let A=this.generatorZoneStartIndex;Ac.generatorType===m0.instrument);A&&(this.instrument=i[A.generatorValue],this.instrument.addUseCount(),this.isGlobal=!1)}getKeyRange(){let i=this.generators.find(A=>A.generatorType===m0.keyRange);i&&(this.keyRange.min=i.generatorValue&127,this.keyRange.max=i.generatorValue>>8&127)}getVelRange(){let i=this.generators.find(A=>A.generatorType===m0.velRange);i&&(this.velRange.min=i.generatorValue&127,this.velRange.max=i.generatorValue>>8&127)}};function fk(n,i,A,c){let d=[];for(;n.chunkData.length>n.chunkData.currentIndex;){let p=new lB(n.chunkData);if(d.length>0){let U=p.modulatorZoneStartIndex-d[d.length-1].modulatorZoneStartIndex,H=p.generatorZoneStartIndex-d[d.length-1].generatorZoneStartIndex;d[d.length-1].setZoneSize(U,H),d[d.length-1].getGenerators(i),d[d.length-1].getModulators(A),d[d.length-1].getInstrument(c),d[d.length-1].getKeyRange(),d[d.length-1].getVelRange()}d.push(p)}return d.length>1&&d.pop(),d}var cB=class extends Qu{constructor(i,A){super(A),this.presetName=y4(i.chunkData,20).trim().replace(/\d{3}:\d{3}/,""),this.program=s3(i.chunkData,2),this.bank=s3(i.chunkData,2),this.presetZoneStartIndex=s3(i.chunkData,2),this.library=s3(i.chunkData,4),this.genre=s3(i.chunkData,4),this.morphology=s3(i.chunkData,4),this.presetZonesAmount=0}getPresetZones(i,A){this.presetZonesAmount=i;for(let c=this.presetZoneStartIndex;cn.chunkData.currentIndex;){let d=new cB(n,A);if(c.length>0){let p=d.presetZoneStartIndex-c[c.length-1].presetZoneStartIndex;c[c.length-1].getPresetZones(p,i)}c.push(d)}return c.length>1&&c.pop(),c}var gB=class extends $e{constructor(i){super({srcEnum:s3(i,2),dest:s3(i,2),amt:Ga(i[i.currentIndex++],i[i.currentIndex++]),secSrcEnum:s3(i,2),transform:s3(i,2)})}};function iC(n){let i=[];for(;n.chunkData.length>n.chunkData.currentIndex;)i.push(new gB(n.chunkData));return i}var rC=class extends Ya{constructor(i,A=!0){super(),A&&console.warn("Using the constructor directly is deprecated. Use loadSoundFont instead."),this.dataArray=new j5(i),M7("%cParsing SoundFont...",C1.info),this.dataArray||(g9(),this.parsingError("No data provided!"));let c=Qe(this.dataArray,!1);this.verifyHeader(c,"riff");let d=y4(this.dataArray,4).toLowerCase();if(d!=="sfbk"&&d!=="sfpk")throw g9(),new SyntaxError(`Invalid soundFont! Expected "sfbk" or "sfpk" got "${d}"`);let p=d==="sfpk",U=Qe(this.dataArray);for(this.verifyHeader(U,"list"),y4(U.chunkData,4);U.chunkData.length>U.chunkData.currentIndex;){let m6=Qe(U.chunkData),v3;switch(m6.header.toLowerCase()){case"ifil":case"iver":v3=`${s3(m6.chunkData,2)}.${s3(m6.chunkData,2)}`,this.soundFontInfo[m6.header]=v3;break;case"icmt":v3=y4(m6.chunkData,m6.chunkData.length,void 0,!1),this.soundFontInfo[m6.header]=v3;break;case"dmod":let x6=iC(m6);x6.pop(),v3=`Modulators: ${x6.length}`;let u9=this.defaultModulators;this.defaultModulators=x6,this.defaultModulators.push(...u9.filter(P3=>!this.defaultModulators.find(w6=>$e.isIdentical(P3,w6)))),this.soundFontInfo[m6.header]=m6.chunkData;break;default:v3=y4(m6.chunkData,m6.chunkData.length),this.soundFontInfo[m6.header]=v3}_5(`%c"${m6.header}": %c"${v3}"`,C1.info,C1.recognized)}let H=Qe(this.dataArray,!1);this.verifyHeader(H,"list"),this.verifyText(y4(this.dataArray,4),"sdta"),_5("%cVerifying smpl chunk...",C1.warn);let O=Qe(this.dataArray,!1);this.verifyHeader(O,"smpl");let P;if(p){_5("%cSF2Pack detected, attempting to decode the smpl chunk...",C1.info);try{P=Va.decode(this.dataArray.buffer.slice(this.dataArray.currentIndex,this.dataArray.currentIndex+H.size-12)).data[0]}catch(m6){throw g9(),new Error(`SF2Pack Ogg Vorbis decode error: ${m6}`)}_5(`%cDecoded the smpl chunk! Length: %c${P.length}`,C1.info,C1.value)}else P=this.dataArray,this.sampleDataStartIndex=this.dataArray.currentIndex;_5(`%cSkipping sample chunk, length: %c${H.size-12}`,C1.info,C1.value),this.dataArray.currentIndex+=H.size-12,_5("%cLoading preset data chunk...",C1.warn);let W0=Qe(this.dataArray);this.verifyHeader(W0,"list"),y4(W0.chunkData,4);let _=Qe(W0.chunkData);this.verifyHeader(_,"phdr");let e0=Qe(W0.chunkData);this.verifyHeader(e0,"pbag");let i0=Qe(W0.chunkData);this.verifyHeader(i0,"pmod");let a1=Qe(W0.chunkData);this.verifyHeader(a1,"pgen");let _1=Qe(W0.chunkData);this.verifyHeader(_1,"inst");let f1=Qe(W0.chunkData);this.verifyHeader(f1,"ibag");let C2=Qe(W0.chunkData);this.verifyHeader(C2,"imod");let u2=Qe(W0.chunkData);this.verifyHeader(u2,"igen");let I2=Qe(W0.chunkData);this.verifyHeader(I2,"shdr"),this.dataArray.currentIndex=this.sampleDataStartIndex,this.samples.push(...uk(I2,P,!p));let K2=aB(u2),J2=iC(C2),A0=hk(f1,K2,J2,this.samples);this.instruments=dk(_1,A0);let C5=aB(a1),p3=iC(i0),w3=fk(e0,C5,p3,this.instruments);this.presets.push(...Ik(_,w3,this.defaultModulators)),this.presets.sort((m6,v3)=>m6.program-v3.program+(m6.bank-v3.bank)),_5(`%cParsing finished! %c"${this.soundFontInfo.INAM}"%c has %c${this.presets.length} %cpresets, - %c${this.instruments.length}%c instruments and %c${this.samples.length}%c samples.`,C1.info,C1.recognized,C1.info,C1.recognized,C1.info,C1.recognized,C1.info,C1.recognized,C1.info),g9(),p&&delete this.dataArray}verifyHeader(i,A){i.header.toLowerCase()!==A.toLowerCase()&&(g9(),this.parsingError(`Invalid chunk header! Expected "${A.toLowerCase()}" got "${i.header.toLowerCase()}"`))}verifyText(i,A){i.toLowerCase()!==A.toLowerCase()&&(g9(),this.parsingError(`Invalid FourCC: Expected "${A.toLowerCase()}" got "${i.toLowerCase()}"\``))}destroySoundfont(){super.destroySoundfont(),delete this.dataArray}};function Ja(n){let i=n.slice(8,12),A=new j5(i);return y4(A,4,void 0,!1).toLowerCase()==="dls "?new qo(n):new rC(n,!1)}async function mk(){let n="locale.exportAudio.formats.formats.soundfont.options.";qe(this.localeManager.getLocaleString(n+"title"),[{type:"toggle",translatePathTitle:n+"trim",attributes:{"trim-toggle":"1",checked:"checked"}},{type:"toggle",translatePathTitle:n+"compress",attributes:{"compress-toggle":"1"}},{type:"range",translatePathTitle:n+"quality",attributes:{min:"0",max:"10",value:"5"}},{type:"button",textContent:this.localeManager.getLocaleString(n+"confirm"),onClick:async i=>{let A=i.div.querySelector("input[trim-toggle='1']").checked,c=i.div.querySelector("input[compress-toggle='1']").checked,d=parseInt(i.div.querySelector("input[type='range']").value)/10;le(i.id),M7("%cExporting minified soundfont...",C1.info);let p=await this.seq.getMIDI(),U=Ja(p.embeddedSoundFont||this.soundFont);Ua(p,await this.synth.getSynthesizerSnapshot()),A&&Cu(U,p);let H=U.write({compress:c,compressionQuality:d,compressionFunction:this.compressionFunc}),O=new Blob([H.buffer],{type:"audio/soundfont"}),P=U.soundFontInfo.ifil.split(".")[0]==="3"?"sf3":"sf2";this.saveBlob(O,`${U.soundFontInfo.INAM||"unnamed"}.${P}`),g9()}}],99999999,!0,this.localeManager)}async function pk(){let n="locale.exportAudio.formats.";qe(this.localeManager.getLocaleString(n+"title"),[{type:"button",translatePathTitle:n+"formats.wav.button",onClick:i=>{le(i.id),this._exportAudioData()}},{type:"button",translatePathTitle:n+"formats.midi.button",onClick:i=>{le(i.id),this.exportMidi()}},{type:"button",translatePathTitle:n+"formats.soundfont.button",onClick:i=>{le(i.id);try{this._exportSoundfont()}catch{qe("Warning",[{type:"text",textContent:this.localeManager.getLocaleString("locale.warnings.outOfMemory")}])}}},{type:"button",translatePathTitle:n+"formats.dls.button",onClick:i=>{le(i.id);try{this._exportDLS()}catch{qe("Warning",[{type:"text",textContent:this.localeManager.getLocaleString("locale.warnings.outOfMemory")}])}}},{type:"button",translatePathTitle:n+"formats.rmidi.button",onClick:i=>{le(i.id);try{this._exportRMIDI()}catch{qe("Warning",[{type:"text",textContent:this.localeManager.getLocaleString("locale.warnings.outOfMemory")}])}}}],999999,!0,this.localeManager,{display:"flex",flexWrap:"wrap",justifyContent:"center"})}async function Ek(){let n=(_,e0,i0)=>this.seq.midiData.RMIDInfo?.[_]===void 0?e0:i0.decode(this.seq.midiData.RMIDInfo?.[_]).replace(/\0$/,""),i=n("IENC","ascii",new TextDecoder),A=new TextDecoder(i),c=n("IPRD","",A),d=n("IART","",A),p=n("IGNR","",A),U=n("ICMT","Created using SpessaSynth: https://spessasus.github.io/SpessaSynth",A),H="locale.exportAudio.formats.formats.rmidi.options.",O="locale.exportAudio.formats.metadata.",W0=qe(this.localeManager.getLocaleString(H+"title"),[{type:"toggle",translatePathTitle:H+"compress",attributes:{"compress-toggle":"1",checked:"true"}},{type:"range",translatePathTitle:H+"quality",attributes:{min:"0",max:"10",value:"5"}},{type:"input",translatePathTitle:O+"songTitle",attributes:{name:"song_title",type:"text",value:this.seqUI.currentSongTitle}},{type:"input",translatePathTitle:O+"album",attributes:{value:c,name:"album",type:"text"}},{type:"input",translatePathTitle:O+"artist",attributes:{value:d,name:"artist",type:"text"}},{type:"input",translatePathTitle:O+"genre",attributes:{value:p,name:"genre",type:"text"}},{type:"input",translatePathTitle:O+"comment",attributes:{value:U,name:"comment",type:"text"}},{type:"file",translatePathTitle:O+"albumCover",attributes:{value:this.seq.midiData.RMIDInfo?.IPIC!==void 0?this.seq.midiData.RMIDInfo.IPIC:"",name:"cover",accept:"image/*"}},{type:"input",translatePathTitle:H+"bankOffset",attributes:{value:this.seq.midiData.bankOffset,name:"bank_offset",type:"number"}},{type:"toggle",translatePathTitle:H+"adjust",attributes:{name:"adjust",checked:"checked"}},{type:"button",textContent:this.localeManager.getLocaleString(H+"confirm"),onClick:async _=>{let e0=_.div.querySelector("input[compress-toggle='1']").checked,i0=parseInt(_.div.querySelector("input[type='range']").value)/10,a1=_.div.querySelector("input[name='album']").value,_1=_.div.querySelector("input[name='artist']").value,f1=_.div.querySelector("input[name='song_title']").value,C2=_.div.querySelector("input[name='comment']").value,u2=_.div.querySelector("input[name='genre']").value,I2=parseInt(_.div.querySelector("input[name='bank_offset']").value),K2=_.div.querySelector("input[name='adjust']").checked,J2=_.div.querySelector("input[type='file']")?.files[0];le(_.id),y8("%cExporting RMIDI...",C1.info);let A0="locale.exportAudio.formats.formats.rmidi.progress.",C5=qe(this.localeManager.getLocaleString(A0+"title"),[{type:"text",textContent:this.localeManager.getLocaleString(A0+"loading"),attributes:{class:"export_rmidi_message"}}],9999999,!1);await new Promise(w6=>setTimeout(w6,500));let p3=C5.div.getElementsByClassName("export_rmidi_message")[0],w3=await this.seq.getMIDI(),m6=Ja(w3.embeddedSoundFont||this.soundFont);p3.textContent=this.localeManager.getLocaleString(A0+"modifyingMIDI"),await new Promise(w6=>setTimeout(w6,75)),Ua(w3,await this.synth.getSynthesizerSnapshot()),p3.textContent=this.localeManager.getLocaleString(A0+"modifyingSoundfont"),await new Promise(w6=>setTimeout(w6,75)),Cu(m6,w3);let v3=m6.write({compress:e0,compressionQuality:i0,compressionFunction:this.compressionFunc});p3.textContent=this.localeManager.getLocaleString(A0+"saving"),await new Promise(w6=>setTimeout(w6,75));let x6;J2?.type.split("/")[0]==="image"?x6=await J2.arrayBuffer():w3.RMIDInfo?.IPIC!==void 0&&(x6=w3.RMIDInfo.IPIC.buffer);let u9=Ly(v3,w3,m6,I2,this.seqUI.encoding,{name:f1,comment:C2,engineer:m6.soundFontInfo.IENG,picture:x6,album:a1.length>0?a1:void 0,artist:_1.length>0?_1:void 0,genre:u2.length>0?u2:void 0,midiEncoding:this.seqUI.encoding},K2),P3=new Blob([u9.buffer],{type:"audio/rmid"});this.saveBlob(P3,`${f1||"unnamed_song"}.rmi`),p3.textContent=this.localeManager.getLocaleString(A0+"done"),le(C5.id),g9()}}],9999999,!0,this.localeManager).div.querySelector("input[type='file']");W0.oninput=()=>{W0.files[0]&&(W0.parentElement.firstChild.textContent=W0.files[0].name)}}var Ck="synthetizer/worklet_processor.min.js";var nC={init:function(){var n;n||(n=(typeof n<"u"?n:null)||{});var i={};for(var A in n)n.hasOwnProperty(A)&&(i[A]=n[A]);var c=typeof window=="object",d=typeof process=="object"&&typeof vE=="function"&&!c,p=typeof importScripts=="function",U=!c&&!d&&!p;if(d){n.print||(n.print=function(l){process.stdout.write(l+` +Converted from DLS to SF2 with SpessaSynth`;for(let[P,U]of Object.entries(this.soundFontInfo))_5(`%c"${P}": %c"${U}"`,C1.info,C1.recognized);let p=c.find(P=>P.header==="colh");p||(g9(),this.parsingError("No colh chunk!")),this.instrumentAmount=s3(p.chunkData,4),_5(`%cInstruments amount: %c${this.instrumentAmount}`,C1.info,C1.recognized);let O=G7(c,"wvpl");O||(g9(),this.parsingError("No wvpl chunk!")),this.readDLSSamples(O);let H=G7(c,"lins");H||(g9(),this.parsingError("No lins chunk!")),this.readDLSInstrumentList(H),this.presets.sort((P,U)=>P.program-U.program+(P.bank-U.bank)),_5(`%cParsing finished! %c"${this.soundFontInfo.INAM||"UNNAMED"}"%c has %c${this.presets.length} %cpresets, + %c${this.instruments.length}%c instruments and %c${this.samples.length}%c samples.`,C1.info,C1.recognized,C1.info,C1.recognized,C1.info,C1.recognized,C1.info,C1.recognized,C1.info),g9()}verifyHeader(i,A){i.header.toLowerCase()!==A.toLowerCase()&&(g9(),this.parsingError(`Invalid DLS chunk header! Expected "${A.toLowerCase()}" got "${i.header.toLowerCase()}"`))}verifyText(i,A){i.toLowerCase()!==A.toLowerCase()&&(g9(),this.parsingError(`FourCC error: Expected "${A.toLowerCase()}" got "${i.toLowerCase()}"`))}parsingError(i){throw new Error(`DLS parse error: ${i} The file may be corrupted.`)}destroySoundfont(){super.destroySoundfont(),delete this.dataArray}};qo.prototype.readDLSInstrumentList=rk;qo.prototype.readDLSInstrument=nk;qo.prototype.readRegion=Ak;qo.prototype.readLart=ak;qo.prototype.readDLSSamples=lk;var Va=Va!==void 0?Va:{},ck=!1,gk;Va.isInitialized=new Promise(n=>gk=n);var r_=function(n){var i,A,c,d,p,O,H,P="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",U="",W0=0;n=n.replace(/[^A-Za-z0-9\+\/\=]/g,"");do d=P.indexOf(n.charAt(W0++)),p=P.indexOf(n.charAt(W0++)),O=P.indexOf(n.charAt(W0++)),H=P.indexOf(n.charAt(W0++)),i=d<<2|p>>4,A=(15&p)<<4|O>>2,c=(3&O)<<6|H,U+=String.fromCharCode(i),O!==64&&(U+=String.fromCharCode(A)),H!==64&&(U+=String.fromCharCode(c));while(W01&&(A0.thisProgram=process.argv[1].replace(/\\/g,"/")),A0.arguments=process.argv.slice(2),typeof module<"u",process.on("uncaughtException",function(R0){if(!(R0 instanceof W$))throw R0}),process.on("unhandledRejection",function(R0,t1){process.exit(1)}),A0.quit=function(R0){process.exit(R0)},A0.inspect=function(){return"[Emscripten Module object]"}):v3?(typeof read<"u"&&(A0.read=function(t1){return read(t1)}),A0.readBinary=function(t1){var y1;return typeof readbuffer=="function"?new Uint8Array(readbuffer(t1)):(Er(typeof(y1=read(t1,"binary"))=="object"),y1)},typeof scriptArgs<"u"?A0.arguments=scriptArgs:typeof arguments<"u"&&(A0.arguments=arguments),typeof quit=="function"&&(A0.quit=function(R0){quit(R0)})):(p3||w3)&&(p3?document.currentScript&&(x6=document.currentScript.src):x6=self.location.href,x6=x6.indexOf("blob:")!==0?x6.split("/").slice(0,-1).join("/")+"/":"",A0.read=function(t1){var y1=new XMLHttpRequest;return y1.open("GET",t1,!1),y1.send(null),y1.responseText},w3&&(A0.readBinary=function(t1){var y1=new XMLHttpRequest;return y1.open("GET",t1,!1),y1.responseType="arraybuffer",y1.send(null),new Uint8Array(y1.response)}),A0.readAsync=function(t1,y1,_2){var t6=new XMLHttpRequest;t6.open("GET",t1,!0),t6.responseType="arraybuffer",t6.onload=function(){if(t6.status==200||t6.status==0&&t6.response){y1(t6.response);return}_2()},t6.onerror=_2,t6.send(null)},A0.setWindowTitle=function(R0){document.title=R0});var P3=A0.print||(typeof console<"u"?console.log.bind(console):typeof print<"u"?print:null),w6=A0.printErr||(typeof printErr<"u"?printErr:typeof console<"u"&&console.warn.bind(console)||P3);for(n in C5)C5.hasOwnProperty(n)&&(A0[n]=C5[n]);function Me(R0){var t1=i0;return i0=i0+R0+15&-16,t1}function Wr(R0){var t1=P[I2>>2],y1=t1+R0+15&-16;return P[I2>>2]=y1,y1>=N9&&!Zr()?(P[I2>>2]=t1,0):t1}function er(R0,t1){return t1||(t1=16),R0=Math.ceil(R0/t1)*t1}function Ka(R0){switch(R0){case"i1":case"i8":return 1;case"i16":return 2;case"i32":case"float":return 4;case"i64":case"double":return 8;default:if(R0[R0.length-1]==="*")return 4;if(R0[0]!=="i")return 0;var t1=parseInt(R0.substr(1));return Er(t1%8==0),t1/8}}function Ho(R0){Ho.shown||(Ho.shown={}),Ho.shown[R0]||(Ho.shown[R0]=1,w6(R0))}C5=void 0;var Op={"f64-rem":function(R0,t1){return R0%t1},debugger:function(){}},F$=[];function aC(R0,t1){for(var y1=0,_2=y1;_2>>0)+4294967296*+(t1>>>0):+(R0>>>0)+4294967296*+(0|t1)}function T$(R0,t1,y1){return y1&&y1.length?A0["dynCall_"+R0].apply(null,[t1].concat(y1)):A0["dynCall_"+R0].call(null,t1)}var Wa=0,vu=0;function Er(R0,t1){R0||tr("Assertion failed: "+t1)}function Za(R0){var t1=A0["_"+R0];return Er(t1,"Cannot call unknown function "+R0+", make sure it is exported"),t1}var qp={stackSave:function(){jp()},stackRestore:function(){K$()},arrayToC:function(R0){var t1,y1,_2=ja(R0.length);return t1=R0,y1=_2,d.set(t1,y1),_2},stringToC:function(R0){var t1=0;if(R0!=null&&R0!==0){var y1=(R0.length<<2)+1;t1=ja(y1),Yp(R0,t1,y1)}return t1}},Yo={string:qp.stringToC,array:qp.arrayToC};function ku(R0,t1,y1,_2,t6){var E9=Za(R0),X9=[],p6=0;if(_2)for(var v8=0;v8<_2.length;v8++){var H4=Yo[y1[v8]];H4?(p6===0&&(p6=jp()),X9[v8]=H4(_2[v8])):X9[v8]=_2[v8]}var rt,M4=E9.apply(null,X9);return M4=(rt=M4,t1==="string"?G$(rt):t1==="boolean"?!!rt:rt),p6!==0&&K$(p6),M4}function O3(R0,t1,y1,_2){switch((y1=y1||"i8").charAt(y1.length-1)==="*"&&(y1="i32"),y1){case"i1":case"i8":d[R0>>0]=t1;break;case"i16":O[R0>>1]=t1;break;case"i32":P[R0>>2]=t1;break;case"i64":tempI64=[t1>>>0,+Du(tempDouble=t1)>=1?tempDouble>0?(0|xu(+_u(tempDouble/4294967296),4294967295))>>>0:~~+J$((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0],P[R0>>2]=tempI64[0],P[R0+4>>2]=tempI64[1];break;case"float":W0[R0>>2]=t1;break;case"double":_[R0>>3]=t1;break;default:tr("invalid type for setValue: "+y1)}}function C3(R0,t1,y1){switch((t1=t1||"i8").charAt(t1.length-1)==="*"&&(t1="i32"),t1){case"i1":case"i8":return d[R0>>0];case"i16":return O[R0>>1];case"i32":case"i64":return P[R0>>2];case"float":return W0[R0>>2];case"double":return _[R0>>3];default:tr("invalid type for getValue: "+t1)}return null}function IB(R0,t1,y1,_2){typeof R0=="number"?(E9=!0,X9=R0):(E9=!1,X9=R0.length);var t6=typeof t1=="string"?t1:null;if(p6=y1==4?_2:[typeof Zo=="function"?Zo:Me,ja,Me,Wr][y1===void 0?2:y1](Math.max(X9,t6?1:t1.length)),E9){for(_2=p6,Er((3&p6)==0),v8=p6+(-4&X9);_2>2]=0;for(v8=p6+X9;_2>0]=0;return p6}if(t6==="i8")return R0.subarray||R0.slice?p.set(R0,p6):p.set(new Uint8Array(R0),p6),p6;for(var E9,X9,p6,v8,H4,rt,M4,C9=0;C9>0],(_2!=0||t1)&&(X9++,!t1||X9!=t1););t1||(t1=X9);var p6="";if(E9<128){for(;t1>0;)t6=String.fromCharCode.apply(String,p.subarray(R0,R0+Math.min(t1,1024))),p6=p6?p6+t6:t6,R0+=1024,t1-=1024;return p6}return y1=R0,function(H4,rt){for(var M4=rt;H4[M4];)++M4;if(M4-rt>16&&H4.subarray&&Hp)return Hp.decode(H4.subarray(rt,M4));for(var C9,Gi,q7,k8,Ui,H7,Y7="";;){if(!(C9=H4[rt++]))return Y7;if(!(128&C9)){Y7+=String.fromCharCode(C9);continue}if(Gi=63&H4[rt++],(224&C9)==192){Y7+=String.fromCharCode((31&C9)<<6|Gi);continue}if(q7=63&H4[rt++],(240&C9)==224?C9=(15&C9)<<12|Gi<<6|q7:(k8=63&H4[rt++],(248&C9)==240?C9=(7&C9)<<18|Gi<<12|q7<<6|k8:(Ui=63&H4[rt++],C9=(252&C9)==248?(3&C9)<<24|Gi<<18|q7<<12|k8<<6|Ui:(1&C9)<<30|Gi<<24|q7<<18|k8<<12|Ui<<6|(H7=63&H4[rt++]))),C9<65536)Y7+=String.fromCharCode(C9);else{var Pn=C9-65536;Y7+=String.fromCharCode(55296|Pn>>10,56320|1023&Pn)}}}(p,y1)}function mB(R0){for(var t1="";;){var y1=d[R0++>>0];if(!y1)return t1;t1+=String.fromCharCode(y1)}}function Vo(R0,t1){return function(_2,t6,E9){for(var X9=0;X9<_2.length;++X9)d[t6++>>0]=_2.charCodeAt(X9);E9||(d[t6>>0]=0)}(R0,t1,!1)}var Hp=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Gn(R0,t1,y1,_2){if(!(_2>0))return 0;for(var t6=y1,E9=y1+_2-1,X9=0;X9=55296&&p6<=57343&&(p6=65536+((1023&p6)<<10)|1023&R0.charCodeAt(++X9)),p6<=127){if(y1>=E9)break;t1[y1++]=p6}else if(p6<=2047){if(y1+1>=E9)break;t1[y1++]=192|p6>>6,t1[y1++]=128|63&p6}else if(p6<=65535){if(y1+2>=E9)break;t1[y1++]=224|p6>>12,t1[y1++]=128|p6>>6&63,t1[y1++]=128|63&p6}else if(p6<=2097151){if(y1+3>=E9)break;t1[y1++]=240|p6>>18,t1[y1++]=128|p6>>12&63,t1[y1++]=128|p6>>6&63,t1[y1++]=128|63&p6}else if(p6<=67108863){if(y1+4>=E9)break;t1[y1++]=248|p6>>24,t1[y1++]=128|p6>>18&63,t1[y1++]=128|p6>>12&63,t1[y1++]=128|p6>>6&63,t1[y1++]=128|63&p6}else{if(y1+5>=E9)break;t1[y1++]=252|p6>>30,t1[y1++]=128|p6>>24&63,t1[y1++]=128|p6>>18&63,t1[y1++]=128|p6>>12&63,t1[y1++]=128|p6>>6&63,t1[y1++]=128|63&p6}}return t1[y1]=0,y1-t6}function Yp(R0,t1,y1){return Gn(R0,p,t1,y1)}function Jo(R0){for(var t1=0,y1=0;y1=55296&&_2<=57343&&(_2=65536+((1023&_2)<<10)|1023&R0.charCodeAt(++y1)),_2<=127?++t1:_2<=2047?t1+=2:_2<=65535?t1+=3:_2<=2097151?t1+=4:_2<=67108863?t1+=5:t1+=6}return t1}var Vp=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function pB(R0){for(var t1=R0,y1=t1>>1;O[y1];)++y1;if((t1=y1<<1)-R0>32&&Vp)return Vp.decode(p.subarray(R0,t1));for(var _2=0,t6="";;){var E9=O[R0+2*_2>>1];if(E9==0)return t6;++_2,t6+=String.fromCharCode(E9)}}function EB(R0,t1,y1){if(y1===void 0&&(y1=2147483647),y1<2)return 0;for(var _2=t1,t6=(y1-=2)<2*R0.length?y1/2:R0.length,E9=0;E9>1]=X9,t1+=2}return O[t1>>1]=0,t1-_2}function CB(R0){return 2*R0.length}function BB(R0){for(var t1=0,y1="";;){var _2=P[R0+4*t1>>2];if(_2==0)return y1;if(++t1,_2>=65536){var t6=_2-65536;y1+=String.fromCharCode(55296|t6>>10,56320|1023&t6)}else y1+=String.fromCharCode(_2)}}function QB(R0,t1,y1){if(y1===void 0&&(y1=2147483647),y1<4)return 0;for(var _2=t1,t6=_2+y1-4,E9=0;E9=55296&&X9<=57343&&(X9=65536+((1023&X9)<<10)|1023&R0.charCodeAt(++E9)),P[t1>>2]=X9,(t1+=4)+4>t6)break}return P[t1>>2]=0,t1-_2}function yB(R0){for(var t1=0,y1=0;y1=55296&&_2<=57343&&++y1,t1+=4}return t1}function wB(R0){var t1=Jo(R0)+1,y1=Zo(t1);return y1&&Gn(R0,d,y1,t1),y1}function vB(R0){var t1=Jo(R0)+1,y1=ja(t1);return Gn(R0,d,y1,t1),y1}function Jp(R0){return R0}function $C(){var R0,t1=function(){var _2=Error();if(!_2.stack){try{throw Error(0)}catch(t6){_2=t6}if(!_2.stack)return"(no stack trace available)"}return _2.stack.toString()}();return A0.extraStackTrace&&(t1+=` +`+A0.extraStackTrace()),(R0=t1).replace(/__Z[\w\d_]+/g,function(y1){var _2,t6=_2=y1;return y1===t6?y1:y1+" ["+t6+"]"})}function Su(R0,t1){return R0%t1>0&&(R0+=t1-R0%t1),R0}function zp(R0){A0.buffer=c=R0}function j9(){A0.HEAP8=d=new Int8Array(c),A0.HEAP16=O=new Int16Array(c),A0.HEAP32=P=new Int32Array(c),A0.HEAPU8=p=new Uint8Array(c),A0.HEAPU16=H=new Uint16Array(c),A0.HEAPU32=U=new Uint32Array(c),A0.HEAPF32=W0=new Float32Array(c),A0.HEAPF64=_=new Float64Array(c)}function Zr(){var R0=A0.usingWasm?65536:16777216,t1=2147483648-R0;if(P[I2>>2]>t1)return!1;var y1=N9;for(N9=Math.max(N9,16777216);N9>2];)N9=N9<=536870912?Su(2*N9,R0):Math.min(Su((3*N9+2147483648)/4,R0),t1);var _2=A0.reallocBuffer(N9);return _2&&_2.byteLength==N9?(zp(_2),j9(),!0):(N9=y1,!1)}e0=i0=_1=f1=C2=u2=I2=0,a1=!1,A0.reallocBuffer||(A0.reallocBuffer=function(R0){try{if(ArrayBuffer.transfer)t1=ArrayBuffer.transfer(c,R0);else{var t1,y1=d;t1=new ArrayBuffer(R0),new Int8Array(t1).set(y1)}}catch{return!1}return!!gC(t1)&&t1});try{(K2=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get))(new ArrayBuffer(4))}catch{K2=function(t1){return t1.byteLength}}var U$=A0.TOTAL_STACK||5242880,N9=A0.TOTAL_MEMORY||16777216;function P$(){return N9}function zo(R0){for(;R0.length>0;){var t1=R0.shift();if(typeof t1=="function"){t1();continue}var y1=t1.func;typeof y1=="number"?t1.arg===void 0?A0.dynCall_v(y1):A0.dynCall_vi(y1,t1.arg):y1(t1.arg===void 0?null:t1.arg)}}N9=0?R0:t1<=32?2*Math.abs(1<=_2&&(t1<=32||R0>_2)&&(R0=-2*_2+R0),R0}var Du=Math.abs,J$=Math.ceil,_u=Math.floor,xu=Math.min,Un=0,Lu=null,Wo=null;function kB(R0){return R0}A0.preloadedImages={},A0.preloadedAudios={};var Zp="data:application/octet-stream;base64,";function z$(R0){return String.prototype.startsWith?R0.startsWith(Zp):R0.indexOf(Zp)===0}(function(){var t1="main.wast",y1="main.wasm",_2="main.temp.asm.js";z$(t1)||(t1=u9(t1)),z$(y1)||(y1=u9(y1)),z$(_2)||(_2=u9(_2));var t6={global:null,env:null,asm2wasm:Op,parent:A0},E9=null;function X9(M4){return M4}function p6(){try{if(A0.wasmBinary)return new Uint8Array(A0.wasmBinary);if(A0.readBinary)return A0.readBinary(y1);throw"both async and sync fetching of the wasm failed"}catch(M4){tr(M4)}}A0.asmPreload=A0.asm;var v8=A0.reallocBuffer,H4=function(M4){M4=Su(M4,A0.usingWasm?65536:16777216);var C9=A0.buffer.byteLength;if(A0.usingWasm)try{var Gi=A0.wasmMemory.grow((M4-C9)/65536);return Gi!==-1?A0.buffer=A0.wasmMemory.buffer:null}catch{return null}};A0.reallocBuffer=function(M4){return rt==="asmjs"?v8(M4):H4(M4)};var rt="";A0.asm=function(M4,C9,Gi){var q7;if(!(C9=q7=C9).table){var k8,Ui=A0.wasmTableSize;Ui===void 0&&(Ui=1024);var H7=A0.wasmMaxTableSize;typeof WebAssembly=="object"&&typeof WebAssembly.Table=="function"?H7!==void 0?C9.table=new WebAssembly.Table({initial:Ui,maximum:H7,element:"anyfunc"}):C9.table=new WebAssembly.Table({initial:Ui,element:"anyfunc"}):C9.table=Array(Ui),A0.wasmTable=C9.table}return C9.memoryBase||(C9.memoryBase=A0.STATIC_BASE),C9.tableBase||(C9.tableBase=0),k8=function(Pn,Cr,Xp){if(typeof WebAssembly!="object")return w6("no native wasm support detected"),!1;if(!(A0.wasmMemory instanceof WebAssembly.Memory))return w6("no native wasm Memory in use"),!1;function Mu(Br,ir){if((E9=Br.exports).memory){var Xa,jo,Xo;Xa=E9.memory,jo=A0.buffer,Xa.byteLength0?y1:Jo(R0)+1,t6=Array(_2),E9=Gn(R0,t6,0,t6.length);return t1&&(t6.length=E9),t6}function cC(R0){for(var t1=[],y1=0;y1255&&(_2&=255),t1.push(String.fromCharCode(_2))}return t1.join("")}i0+=16,I2=Me(4),C2=(_1=f1=er(i0))+U$,u2=er(C2),P[I2>>2]=u2,a1=!0,A0.wasmTableSize=4,A0.wasmMaxTableSize=4,A0.asmGlobalArg={},A0.asmLibraryArg={abort:tr,assert:Er,enlargeMemory:Zr,getTotalMemory:P$,abortOnCannotGrowMemory:function(){tr("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+N9+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_iii:function(t1,y1,_2){var t6=jp();try{return A0.dynCall_iii(t1,y1,_2)}catch(E9){if(K$(t6),typeof E9!="number"&&E9!=="longjmp")throw E9;A0.setThrew(1,0)}},___assert_fail:function(t1,y1,_2,t6){tr("Assertion failed: "+G$(t1)+", at: "+[y1?G$(y1):"unknown filename",_2,t6?G$(t6):"unknown function"])},___setErrNo:function(t1){return A0.___errno_location&&(P[A0.___errno_location()>>2]=t1),t1},_abort:function(){A0.abort()},_emscripten_memcpy_big:function(t1,y1,_2){return p.set(p.subarray(y1,y1+_2),t1),t1},_llvm_floor_f64:_u,DYNAMICTOP_PTR:I2,tempDoublePtr:Ni,ABORT:Wa,STACKTOP:f1,STACK_MAX:C2};var en=A0.asm(A0.asmGlobalArg,A0.asmLibraryArg,c);A0.asm=en,A0.___errno_location=function(){return A0.asm.___errno_location.apply(null,arguments)};var gC=A0._emscripten_replace_memory=function(){return A0.asm._emscripten_replace_memory.apply(null,arguments)};A0._free=function(){return A0.asm._free.apply(null,arguments)};var Zo=A0._malloc=function(){return A0.asm._malloc.apply(null,arguments)};A0._memcpy=function(){return A0.asm._memcpy.apply(null,arguments)},A0._memset=function(){return A0.asm._memset.apply(null,arguments)},A0._sbrk=function(){return A0.asm._sbrk.apply(null,arguments)},A0._stb_vorbis_js_channels=function(){return A0.asm._stb_vorbis_js_channels.apply(null,arguments)},A0._stb_vorbis_js_close=function(){return A0.asm._stb_vorbis_js_close.apply(null,arguments)},A0._stb_vorbis_js_decode=function(){return A0.asm._stb_vorbis_js_decode.apply(null,arguments)},A0._stb_vorbis_js_open=function(){return A0.asm._stb_vorbis_js_open.apply(null,arguments)},A0._stb_vorbis_js_sample_rate=function(){return A0.asm._stb_vorbis_js_sample_rate.apply(null,arguments)},A0.establishStackSpace=function(){return A0.asm.establishStackSpace.apply(null,arguments)},A0.getTempRet0=function(){return A0.asm.getTempRet0.apply(null,arguments)},A0.runPostSets=function(){return A0.asm.runPostSets.apply(null,arguments)},A0.setTempRet0=function(){return A0.asm.setTempRet0.apply(null,arguments)},A0.setThrew=function(){return A0.asm.setThrew.apply(null,arguments)};var ja=A0.stackAlloc=function(){return A0.asm.stackAlloc.apply(null,arguments)},K$=A0.stackRestore=function(){return A0.asm.stackRestore.apply(null,arguments)},jp=A0.stackSave=function(){return A0.asm.stackSave.apply(null,arguments)};function W$(R0){this.name="ExitStatus",this.message="Program terminated with exit("+R0+")",this.status=R0}function Z$(R0){R0=R0||A0.arguments,!(Un>0)&&(function(){if(A0.preRun)for(typeof A0.preRun=="function"&&(A0.preRun=[A0.preRun]);A0.preRun.length;)lC(A0.preRun.shift());zo(jr)}(),!(Un>0)&&(A0.calledRun||(A0.setStatus?(A0.setStatus("Running..."),setTimeout(function(){setTimeout(function(){A0.setStatus("")},1),t1()},1)):t1())));function t1(){!A0.calledRun&&(A0.calledRun=!0,Wa||(H$||(H$=!0,zo(O$)),zo(bu),A0.onRuntimeInitialized&&A0.onRuntimeInitialized(),function(){if(A0.postRun)for(typeof A0.postRun=="function"&&(A0.postRun=[A0.postRun]);A0.postRun.length;)O7(A0.postRun.shift());zo(q$)}()))}}function uC(R0,t1){(!t1||!A0.noExitRuntime||R0!==0)&&(A0.noExitRuntime||(Wa=!0,vu=R0,f1=J2,zo(v7),P7=!0,A0.onExit&&A0.onExit(R0)),A0.quit(R0,new W$(R0)))}function tr(R0){throw A0.onAbort&&A0.onAbort(R0),R0!==void 0?(P3(R0),w6(R0),R0=JSON.stringify(R0)):R0="",Wa=!0,vu=1,"abort("+R0+"). Build with -s ASSERTIONS=1 for more info."}if(A0.dynCall_iii=function(){return A0.asm.dynCall_iii.apply(null,arguments)},A0.asm=en,A0.ccall=ku,A0.cwrap=function(t1,y1,_2,t6){var E9=(_2=_2||[]).every(function(X9){return X9==="number"});return y1!=="string"&&E9&&!t6?Za(t1):function(){return ku(t1,y1,_2,arguments,t6)}},W$.prototype=Error(),W$.prototype.constructor=W$,Wo=function R0(){A0.calledRun||Z$(),A0.calledRun||(Wo=R0)},A0.run=Z$,A0.abort=tr,A0.preInit)for(typeof A0.preInit=="function"&&(A0.preInit=[A0.preInit]);A0.preInit.length>0;)A0.preInit.pop()();A0.noExitRuntime=!0,Z$(),A0.onRuntimeInitialized=()=>{ck=!0,gk()},Va.decode=function(R0){return function(y1){if(!ck)throw Error("Not initialized");var _2={};function t6(Cr){return new Int32Array(A0.HEAPU8.buffer,Cr,1)[0]}function E9(Cr,Xp){var Mu=new ArrayBuffer(Xp*Float32Array.BYTES_PER_ELEMENT),bt=new Float32Array(Mu);return bt.set(new Float32Array(A0.HEAPU8.buffer,Cr,Xp)),bt}_2.open=A0.cwrap("stb_vorbis_js_open","number",[]),_2.close=A0.cwrap("stb_vorbis_js_close","void",["number"]),_2.channels=A0.cwrap("stb_vorbis_js_channels","number",["number"]),_2.sampleRate=A0.cwrap("stb_vorbis_js_sample_rate","number",["number"]),_2.decode=A0.cwrap("stb_vorbis_js_decode","number",["number","number","number","number","number"]);var X9,p6,v8,H4,rt=_2.open(),M4=(X9=y1,p6=y1.byteLength,v8=A0._malloc(p6),(H4=new Uint8Array(A0.HEAPU8.buffer,v8,p6)).set(new Uint8Array(X9,0,p6)),H4),C9=A0._malloc(4),Gi=A0._malloc(4),q7=_2.decode(rt,M4.byteOffset,M4.byteLength,C9,Gi);if(A0._free(M4.byteOffset),q7<0)throw _2.close(rt),A0._free(C9),Error("stbvorbis decode failed: "+q7);for(var k8=_2.channels(rt),Ui=Array(k8),H7=new Int32Array(A0.HEAPU32.buffer,t6(C9),k8),Y7=0;Y7n.chunkData.currentIndex;){let p=n_(d,n.chunkData,i,A);c.push(p),d++}return c.length>1&&c.pop(),c}function n_(n,i,A,c){let d=y4(i,20),p=s3(i,4)*2,O=s3(i,4)*2,H=s3(i,4),P=s3(i,4),U=s3(i,4),W0=i[i.currentIndex++];W0===255&&(W0=60);let _=xy(i[i.currentIndex++]),e0=s3(i,2),i0=s3(i,2);return new oB(d,p,O,H,P,U,W0,_,e0,i0,A,n,c)}var sB=class extends u6{constructor(i){super();let A=i.currentIndex;this.generatorType=i[A+1]<<8|i[A],this.generatorValue=Ga(i[A+2],i[A+3]),i.currentIndex+=4}};function aB(n){let i=[];for(;n.chunkData.length>n.chunkData.currentIndex;)i.push(new sB(n.chunkData));return i.length>1&&i.pop(),i}var AB=class extends yu{constructor(i){super(),this.instrumentName=y4(i.chunkData,20).trim(),this.instrumentZoneIndex=s3(i.chunkData,2),this.instrumentZonesAmount=0}getInstrumentZones(i,A){this.instrumentZonesAmount=i;for(let c=this.instrumentZoneIndex;cn.chunkData.currentIndex;){let c=new AB(n);if(A.length>0){let d=c.instrumentZoneIndex-A[A.length-1].instrumentZoneIndex;A[A.length-1].getInstrumentZones(d,i)}A.push(c)}return A.length>1&&A.pop(),A}var $B=class extends zr{constructor(i){super(),this.generatorZoneStartIndex=s3(i,2),this.modulatorZoneStartIndex=s3(i,2),this.modulatorZoneSize=0,this.generatorZoneSize=0,this.isGlobal=!0}setZoneSize(i,A){this.modulatorZoneSize=i,this.generatorZoneSize=A}getGenerators(i){for(let A=this.generatorZoneStartIndex;Ac.generatorType===m0.sampleID);A&&(this.sample=i[A.generatorValue],this.isGlobal=!1,this.sample.useCount++)}getKeyRange(){let i=this.generators.find(A=>A.generatorType===m0.keyRange);i&&(this.keyRange.min=i.generatorValue&127,this.keyRange.max=i.generatorValue>>8&127)}getVelRange(){let i=this.generators.find(A=>A.generatorType===m0.velRange);i&&(this.velRange.min=i.generatorValue&127,this.velRange.max=i.generatorValue>>8&127)}};function hk(n,i,A,c){let d=[];for(;n.chunkData.length>n.chunkData.currentIndex;){let p=new $B(n.chunkData);if(d.length>0){let O=p.modulatorZoneStartIndex-d[d.length-1].modulatorZoneStartIndex,H=p.generatorZoneStartIndex-d[d.length-1].generatorZoneStartIndex;d[d.length-1].setZoneSize(O,H),d[d.length-1].getGenerators(i),d[d.length-1].getModulators(A),d[d.length-1].getSample(c),d[d.length-1].getKeyRange(),d[d.length-1].getVelRange()}d.push(p)}return d.length>1&&d.pop(),d}var lB=class extends Bu{constructor(i){super(),this.generatorZoneStartIndex=s3(i,2),this.modulatorZoneStartIndex=s3(i,2),this.modulatorZoneSize=0,this.generatorZoneSize=0,this.isGlobal=!0}setZoneSize(i,A){this.modulatorZoneSize=i,this.generatorZoneSize=A}getGenerators(i){for(let A=this.generatorZoneStartIndex;Ac.generatorType===m0.instrument);A&&(this.instrument=i[A.generatorValue],this.instrument.addUseCount(),this.isGlobal=!1)}getKeyRange(){let i=this.generators.find(A=>A.generatorType===m0.keyRange);i&&(this.keyRange.min=i.generatorValue&127,this.keyRange.max=i.generatorValue>>8&127)}getVelRange(){let i=this.generators.find(A=>A.generatorType===m0.velRange);i&&(this.velRange.min=i.generatorValue&127,this.velRange.max=i.generatorValue>>8&127)}};function fk(n,i,A,c){let d=[];for(;n.chunkData.length>n.chunkData.currentIndex;){let p=new lB(n.chunkData);if(d.length>0){let O=p.modulatorZoneStartIndex-d[d.length-1].modulatorZoneStartIndex,H=p.generatorZoneStartIndex-d[d.length-1].generatorZoneStartIndex;d[d.length-1].setZoneSize(O,H),d[d.length-1].getGenerators(i),d[d.length-1].getModulators(A),d[d.length-1].getInstrument(c),d[d.length-1].getKeyRange(),d[d.length-1].getVelRange()}d.push(p)}return d.length>1&&d.pop(),d}var cB=class extends Qu{constructor(i,A){super(A),this.presetName=y4(i.chunkData,20).trim().replace(/\d{3}:\d{3}/,""),this.program=s3(i.chunkData,2),this.bank=s3(i.chunkData,2),this.presetZoneStartIndex=s3(i.chunkData,2),this.library=s3(i.chunkData,4),this.genre=s3(i.chunkData,4),this.morphology=s3(i.chunkData,4),this.presetZonesAmount=0}getPresetZones(i,A){this.presetZonesAmount=i;for(let c=this.presetZoneStartIndex;cn.chunkData.currentIndex;){let d=new cB(n,A);if(c.length>0){let p=d.presetZoneStartIndex-c[c.length-1].presetZoneStartIndex;c[c.length-1].getPresetZones(p,i)}c.push(d)}return c.length>1&&c.pop(),c}var gB=class extends $e{constructor(i){super({srcEnum:s3(i,2),dest:s3(i,2),amt:Ga(i[i.currentIndex++],i[i.currentIndex++]),secSrcEnum:s3(i,2),transform:s3(i,2)})}};function iC(n){let i=[];for(;n.chunkData.length>n.chunkData.currentIndex;)i.push(new gB(n.chunkData));return i}var rC=class extends Ya{constructor(i,A=!0){super(),A&&console.warn("Using the constructor directly is deprecated. Use loadSoundFont instead."),this.dataArray=new j5(i),M7("%cParsing SoundFont...",C1.info),this.dataArray||(g9(),this.parsingError("No data provided!"));let c=Qe(this.dataArray,!1);this.verifyHeader(c,"riff");let d=y4(this.dataArray,4).toLowerCase();if(d!=="sfbk"&&d!=="sfpk")throw g9(),new SyntaxError(`Invalid soundFont! Expected "sfbk" or "sfpk" got "${d}"`);let p=d==="sfpk",O=Qe(this.dataArray);for(this.verifyHeader(O,"list"),y4(O.chunkData,4);O.chunkData.length>O.chunkData.currentIndex;){let m6=Qe(O.chunkData),v3;switch(m6.header.toLowerCase()){case"ifil":case"iver":v3=`${s3(m6.chunkData,2)}.${s3(m6.chunkData,2)}`,this.soundFontInfo[m6.header]=v3;break;case"icmt":v3=y4(m6.chunkData,m6.chunkData.length,void 0,!1),this.soundFontInfo[m6.header]=v3;break;case"dmod":let x6=iC(m6);x6.pop(),v3=`Modulators: ${x6.length}`;let u9=this.defaultModulators;this.defaultModulators=x6,this.defaultModulators.push(...u9.filter(P3=>!this.defaultModulators.find(w6=>$e.isIdentical(P3,w6)))),this.soundFontInfo[m6.header]=m6.chunkData;break;default:v3=y4(m6.chunkData,m6.chunkData.length),this.soundFontInfo[m6.header]=v3}_5(`%c"${m6.header}": %c"${v3}"`,C1.info,C1.recognized)}let H=Qe(this.dataArray,!1);this.verifyHeader(H,"list"),this.verifyText(y4(this.dataArray,4),"sdta"),_5("%cVerifying smpl chunk...",C1.warn);let P=Qe(this.dataArray,!1);this.verifyHeader(P,"smpl");let U;if(p){_5("%cSF2Pack detected, attempting to decode the smpl chunk...",C1.info);try{U=Va.decode(this.dataArray.buffer.slice(this.dataArray.currentIndex,this.dataArray.currentIndex+H.size-12)).data[0]}catch(m6){throw g9(),new Error(`SF2Pack Ogg Vorbis decode error: ${m6}`)}_5(`%cDecoded the smpl chunk! Length: %c${U.length}`,C1.info,C1.value)}else U=this.dataArray,this.sampleDataStartIndex=this.dataArray.currentIndex;_5(`%cSkipping sample chunk, length: %c${H.size-12}`,C1.info,C1.value),this.dataArray.currentIndex+=H.size-12,_5("%cLoading preset data chunk...",C1.warn);let W0=Qe(this.dataArray);this.verifyHeader(W0,"list"),y4(W0.chunkData,4);let _=Qe(W0.chunkData);this.verifyHeader(_,"phdr");let e0=Qe(W0.chunkData);this.verifyHeader(e0,"pbag");let i0=Qe(W0.chunkData);this.verifyHeader(i0,"pmod");let a1=Qe(W0.chunkData);this.verifyHeader(a1,"pgen");let _1=Qe(W0.chunkData);this.verifyHeader(_1,"inst");let f1=Qe(W0.chunkData);this.verifyHeader(f1,"ibag");let C2=Qe(W0.chunkData);this.verifyHeader(C2,"imod");let u2=Qe(W0.chunkData);this.verifyHeader(u2,"igen");let I2=Qe(W0.chunkData);this.verifyHeader(I2,"shdr"),this.dataArray.currentIndex=this.sampleDataStartIndex,this.samples.push(...uk(I2,U,!p));let K2=aB(u2),J2=iC(C2),A0=hk(f1,K2,J2,this.samples);this.instruments=dk(_1,A0);let C5=aB(a1),p3=iC(i0),w3=fk(e0,C5,p3,this.instruments);this.presets.push(...Ik(_,w3,this.defaultModulators)),this.presets.sort((m6,v3)=>m6.program-v3.program+(m6.bank-v3.bank)),_5(`%cParsing finished! %c"${this.soundFontInfo.INAM}"%c has %c${this.presets.length} %cpresets, + %c${this.instruments.length}%c instruments and %c${this.samples.length}%c samples.`,C1.info,C1.recognized,C1.info,C1.recognized,C1.info,C1.recognized,C1.info,C1.recognized,C1.info),g9(),p&&delete this.dataArray}verifyHeader(i,A){i.header.toLowerCase()!==A.toLowerCase()&&(g9(),this.parsingError(`Invalid chunk header! Expected "${A.toLowerCase()}" got "${i.header.toLowerCase()}"`))}verifyText(i,A){i.toLowerCase()!==A.toLowerCase()&&(g9(),this.parsingError(`Invalid FourCC: Expected "${A.toLowerCase()}" got "${i.toLowerCase()}"\``))}destroySoundfont(){super.destroySoundfont(),delete this.dataArray}};function Ja(n){let i=n.slice(8,12),A=new j5(i);return y4(A,4,void 0,!1).toLowerCase()==="dls "?new qo(n):new rC(n,!1)}async function mk(){let n="locale.exportAudio.formats.formats.soundfont.options.";qe(this.localeManager.getLocaleString(n+"title"),[{type:"toggle",translatePathTitle:n+"trim",attributes:{"trim-toggle":"1",checked:"checked"}},{type:"toggle",translatePathTitle:n+"compress",attributes:{"compress-toggle":"1"}},{type:"range",translatePathTitle:n+"quality",attributes:{min:"0",max:"10",value:"5"}},{type:"button",textContent:this.localeManager.getLocaleString(n+"confirm"),onClick:async i=>{let A=i.div.querySelector("input[trim-toggle='1']").checked,c=i.div.querySelector("input[compress-toggle='1']").checked,d=parseInt(i.div.querySelector("input[type='range']").value)/10;le(i.id),M7("%cExporting minified soundfont...",C1.info);let p=await this.seq.getMIDI(),O=Ja(p.embeddedSoundFont||this.soundFont);Ua(p,await this.synth.getSynthesizerSnapshot()),A&&Cu(O,p);let H=O.write({compress:c,compressionQuality:d,compressionFunction:this.compressionFunc}),P=new Blob([H.buffer],{type:"audio/soundfont"}),U=O.soundFontInfo.ifil.split(".")[0]==="3"?"sf3":"sf2";this.saveBlob(P,`${O.soundFontInfo.INAM||"unnamed"}.${U}`),g9()}}],99999999,!0,this.localeManager)}async function pk(){let n="locale.exportAudio.formats.";qe(this.localeManager.getLocaleString(n+"title"),[{type:"button",translatePathTitle:n+"formats.wav.button",onClick:i=>{le(i.id),this._exportAudioData()}},{type:"button",translatePathTitle:n+"formats.midi.button",onClick:i=>{le(i.id),this.exportMidi()}},{type:"button",translatePathTitle:n+"formats.soundfont.button",onClick:i=>{le(i.id);try{this._exportSoundfont()}catch{qe("Warning",[{type:"text",textContent:this.localeManager.getLocaleString("locale.warnings.outOfMemory")}])}}},{type:"button",translatePathTitle:n+"formats.dls.button",onClick:i=>{le(i.id);try{this._exportDLS()}catch{qe("Warning",[{type:"text",textContent:this.localeManager.getLocaleString("locale.warnings.outOfMemory")}])}}},{type:"button",translatePathTitle:n+"formats.rmidi.button",onClick:i=>{le(i.id);try{this._exportRMIDI()}catch{qe("Warning",[{type:"text",textContent:this.localeManager.getLocaleString("locale.warnings.outOfMemory")}])}}}],999999,!0,this.localeManager,{display:"flex",flexWrap:"wrap",justifyContent:"center"})}async function Ek(){let n=(_,e0,i0)=>this.seq.midiData.RMIDInfo?.[_]===void 0?e0:i0.decode(this.seq.midiData.RMIDInfo?.[_]).replace(/\0$/,""),i=n("IENC","ascii",new TextDecoder),A=new TextDecoder(i),c=n("IPRD","",A),d=n("IART","",A),p=n("IGNR","",A),O=n("ICMT","Created using SpessaSynth: https://spessasus.github.io/SpessaSynth",A),H="locale.exportAudio.formats.formats.rmidi.options.",P="locale.exportAudio.formats.metadata.",W0=qe(this.localeManager.getLocaleString(H+"title"),[{type:"toggle",translatePathTitle:H+"compress",attributes:{"compress-toggle":"1",checked:"true"}},{type:"range",translatePathTitle:H+"quality",attributes:{min:"0",max:"10",value:"5"}},{type:"input",translatePathTitle:P+"songTitle",attributes:{name:"song_title",type:"text",value:this.seqUI.currentSongTitle}},{type:"input",translatePathTitle:P+"album",attributes:{value:c,name:"album",type:"text"}},{type:"input",translatePathTitle:P+"artist",attributes:{value:d,name:"artist",type:"text"}},{type:"input",translatePathTitle:P+"genre",attributes:{value:p,name:"genre",type:"text"}},{type:"input",translatePathTitle:P+"comment",attributes:{value:O,name:"comment",type:"text"}},{type:"file",translatePathTitle:P+"albumCover",attributes:{value:this.seq.midiData.RMIDInfo?.IPIC!==void 0?this.seq.midiData.RMIDInfo.IPIC:"",name:"cover",accept:"image/*"}},{type:"input",translatePathTitle:H+"bankOffset",attributes:{value:this.seq.midiData.bankOffset,name:"bank_offset",type:"number"}},{type:"toggle",translatePathTitle:H+"adjust",attributes:{name:"adjust",checked:"checked"}},{type:"button",textContent:this.localeManager.getLocaleString(H+"confirm"),onClick:async _=>{let e0=_.div.querySelector("input[compress-toggle='1']").checked,i0=parseInt(_.div.querySelector("input[type='range']").value)/10,a1=_.div.querySelector("input[name='album']").value,_1=_.div.querySelector("input[name='artist']").value,f1=_.div.querySelector("input[name='song_title']").value,C2=_.div.querySelector("input[name='comment']").value,u2=_.div.querySelector("input[name='genre']").value,I2=parseInt(_.div.querySelector("input[name='bank_offset']").value),K2=_.div.querySelector("input[name='adjust']").checked,J2=_.div.querySelector("input[type='file']")?.files[0];le(_.id),y8("%cExporting RMIDI...",C1.info);let A0="locale.exportAudio.formats.formats.rmidi.progress.",C5=qe(this.localeManager.getLocaleString(A0+"title"),[{type:"text",textContent:this.localeManager.getLocaleString(A0+"loading"),attributes:{class:"export_rmidi_message"}}],9999999,!1);await new Promise(w6=>setTimeout(w6,500));let p3=C5.div.getElementsByClassName("export_rmidi_message")[0],w3=await this.seq.getMIDI(),m6=Ja(w3.embeddedSoundFont||this.soundFont);p3.textContent=this.localeManager.getLocaleString(A0+"modifyingMIDI"),await new Promise(w6=>setTimeout(w6,75)),Ua(w3,await this.synth.getSynthesizerSnapshot()),p3.textContent=this.localeManager.getLocaleString(A0+"modifyingSoundfont"),await new Promise(w6=>setTimeout(w6,75)),Cu(m6,w3);let v3=m6.write({compress:e0,compressionQuality:i0,compressionFunction:this.compressionFunc});p3.textContent=this.localeManager.getLocaleString(A0+"saving"),await new Promise(w6=>setTimeout(w6,75));let x6;J2?.type.split("/")[0]==="image"?x6=await J2.arrayBuffer():w3.RMIDInfo?.IPIC!==void 0&&(x6=w3.RMIDInfo.IPIC.buffer);let u9=Ly(v3,w3,m6,I2,this.seqUI.encoding,{name:f1,comment:C2,engineer:m6.soundFontInfo.IENG,picture:x6,album:a1.length>0?a1:void 0,artist:_1.length>0?_1:void 0,genre:u2.length>0?u2:void 0,midiEncoding:this.seqUI.encoding},K2),P3=new Blob([u9.buffer],{type:"audio/rmid"});this.saveBlob(P3,`${f1||"unnamed_song"}.rmi`),p3.textContent=this.localeManager.getLocaleString(A0+"done"),le(C5.id),g9()}}],9999999,!0,this.localeManager).div.querySelector("input[type='file']");W0.oninput=()=>{W0.files[0]&&(W0.parentElement.firstChild.textContent=W0.files[0].name)}}var Ck="synthetizer/worklet_processor.min.js";var nC={init:function(){var n;n||(n=(typeof n<"u"?n:null)||{});var i={};for(var A in n)n.hasOwnProperty(A)&&(i[A]=n[A]);var c=typeof window=="object",d=typeof process=="object"&&typeof vE=="function"&&!c,p=typeof importScripts=="function",O=!c&&!d&&!p;if(d){n.print||(n.print=function(l){process.stdout.write(l+` `)}),n.printErr||(n.printErr=function(l){process.stderr.write(l+` -`)});var H=void 0,O=void 0;n.read=function(l,u){l=O.normalize(l);var f=H.readFileSync(l);return!f&&l!=O.resolve(l)&&(l=path.join(__dirname,"..","src",l),f=H.readFileSync(l)),f&&!u&&(f=f.toString()),f},n.readBinary=function(l){return n.read(l,!0)},n.load=function(l){W0(read(l))},n.thisProgram||(process.argv.length>1?n.thisProgram=process.argv[1].replace(/\\/g,"/"):n.thisProgram="unknown-program"),n.arguments=process.argv.slice(2),typeof module<"u"&&n!=null,process.on("uncaughtException",function(r){if(!(r instanceof eA))throw r}),n.inspect=function(){return"[Emscripten Module object]"}}else if(U)n.print||(n.print=print),typeof printErr<"u"&&(n.printErr=printErr),typeof read<"u"?n.read=read:n.read=function(){throw"no read() available (jsc?)"},n.readBinary=function(l){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(l));var u=read(l,"binary");return t4(typeof u=="object"),u},typeof scriptArgs<"u"?n.arguments=scriptArgs:typeof arguments<"u"&&(n.arguments=arguments);else if(c||p){if(n.read=function(l){var u=new XMLHttpRequest;return u.open("GET",l,!1),u.send(null),u.responseText},typeof arguments<"u"&&(n.arguments=arguments),typeof console<"u")n.print||(n.print=function(l){console.log(l)}),n.printErr||(n.printErr=function(l){console.log(l)});else{var P=!1;n.print||(n.print=P&&typeof dump<"u"?function(r){dump(r)}:function(r){})}p&&(n.load=importScripts),typeof n.setWindowTitle>"u"&&(n.setWindowTitle=function(r){document.title=r})}else throw"Unknown runtime environment. Where are we?";function W0(r){eval.call(null,r)}!n.load&&n.read&&(n.load=function(l){W0(n.read(l))}),n.print||(n.print=function(){}),n.printErr||(n.printErr=n.print),n.arguments||(n.arguments=[]),n.thisProgram||(n.thisProgram="./this.program"),n.print=n.print,n.printErr=n.printErr,n.preRun=[],n.postRun=[];for(var A in i)i.hasOwnProperty(A)&&(n[A]=i[A]);var _={setTempRet0:function(r){w6=r},getTempRet0:function(){return w6},stackSave:function(){return v7},stackRestore:function(r){v7=r},getNativeTypeSize:function(r){switch(r){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(r[r.length-1]==="*")return _.QUANTUM_SIZE;if(r[0]==="i"){var l=parseInt(r.substr(1));return t4(l%8===0),l/8}else return 0}}},getNativeFieldSize:function(r){return Math.max(_.getNativeTypeSize(r),_.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(r,l){return l==="double"||l==="i64"?r&7&&(t4((r&7)===4),r+=4):t4((r&3)===0),r},getAlignSize:function(r,l,u){return!u&&(r=="i64"||r=="double")?8:r?Math.min(l||(r?_.getNativeFieldSize(r):0),_.QUANTUM_SIZE):Math.min(l,8)},dynCall:function(r,l,u){return u&&u.length?(u.splice||(u=Array.prototype.slice.call(u)),u.splice(0,0,l),n["dynCall_"+r].apply(null,u)):n["dynCall_"+r].call(null,l)},functionPointers:[],addFunction:function(r){for(var l=0;l<_.functionPointers.length;l++)if(!_.functionPointers[l])return _.functionPointers[l]=r,2*(1+l);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(r){_.functionPointers[(r-2)/2]=null},warnOnce:function(r){_.warnOnce.shown||(_.warnOnce.shown={}),_.warnOnce.shown[r]||(_.warnOnce.shown[r]=1,n.printErr(r))},funcWrappers:{},getFuncWrapper:function(r,l){t4(l),_.funcWrappers[l]||(_.funcWrappers[l]={});var u=_.funcWrappers[l];return u[r]||(u[r]=function(){return _.dynCall(l,r,arguments)}),u[r]},getCompilerSetting:function(r){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(r){var l=v7;return v7=v7+r|0,v7=v7+15&-16,l},staticAlloc:function(r){var l=jr;return jr=jr+r|0,jr=jr+15&-16,l},dynamicAlloc:function(r){var l=P7;if(P7=P7+r|0,P7=P7+15&-16,P7>=Ko){var u=lC();if(!u)return P7=l,0}return l},alignMemory:function(r,l){var u=r=Math.ceil(r/(l||16))*(l||16);return u},makeBigInt:function(r,l,u){var f=u?+(r>>>0)+ +(l>>>0)*4294967296:+(r>>>0)+ +(l|0)*4294967296;return f},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};n.Runtime=_;var e0=0,i0=!1,a1=0,_1=0,f1,C2,u2,I2,K2,J2,A0,C5,p3,w3,m6,v3,x6,u9,P3,w6,Me,Wr,er,Ka,Ho,Op,F$,aC,vk;function t4(r,l){r||es("Assertion failed: "+l)}var kk=this;function AC(r){var l=n["_"+r];if(!l)try{l=void("_"+r)}catch{}return t4(l,"Cannot call unknown function "+r+" (perhaps LLVM optimizations or closure removed it?)"),l}var T$,Wa;(function(){var r={stackSave:function(){_.stackSave()},stackRestore:function(){_.stackRestore()},arrayToC:function(X0){var r1=_.stackAlloc(X0.length);return ja(X0,r1),r1},stringToC:function(X0){var r1=0;return X0!=null&&X0!==0&&(r1=_.stackAlloc((X0.length<<2)+1),Zo(X0,r1)),r1}},l={string:r.stringToC,array:r.arrayToC};Wa=function(r1,x2,s,l1,C){var k5=AC(r1),w2=[],P5=0;if(l1)for(var G9=0;G9>0]=l;break;case"i8":j9[r>>0]=l;break;case"i16":Zr[r>>1]=l;break;case"i32":N9[r>>2]=l;break;case"i64":u9=[l>>>0,(v3=l,+Z$(v3)>=1?v3>0?(Gi(+H4(v3/4294967296),4294967295)|0)>>>0:~~+v8((v3-+(~~v3>>>0))/4294967296)>>>0:0)],N9[r>>2]=u9[0],N9[r+4>>2]=u9[1];break;case"float":X$[r>>2]=l;break;case"double":P$[r>>3]=l;break;default:es("invalid type for setValue: "+u)}}n.setValue=vu;function Er(r,l,u){switch(l=l||"i8",l.charAt(l.length-1)==="*"&&(l="i32"),l){case"i1":return j9[r>>0];case"i8":return j9[r>>0];case"i16":return Zr[r>>1];case"i32":return N9[r>>2];case"i64":return N9[r>>2];case"float":return X$[r>>2];case"double":return P$[r>>3];default:es("invalid type for setValue: "+l)}return null}n.getValue=Er;var Za=0,qp=1,Yo=2,ku=3,O3=4;n.ALLOC_NORMAL=Za,n.ALLOC_STACK=qp,n.ALLOC_STATIC=Yo,n.ALLOC_DYNAMIC=ku,n.ALLOC_NONE=O3;function C3(r,l,u,f){var Y,e;typeof r=="number"?(Y=!0,e=r):(Y=!1,e=r.length);var X0=typeof l=="string"?l:null,r1;if(u==O3?r1=f:r1=[Ru,_.stackAlloc,_.staticAlloc,_.dynamicAlloc][u===void 0?Yo:u](Math.max(e,X0?1:l.length)),Y){var f=r1,x2;for(t4((r1&3)==0),x2=r1+(e&-4);f>2]=0;for(x2=r1+e;f>0]=0;return r1}if(X0==="i8")return r.subarray||r.slice?k7.set(r,r1):k7.set(new Uint8Array(r),r1),r1;for(var s=0,l1,C,k5;s>0],u|=f,!(f==0&&!l||(Y++,l&&Y==l)););l||(l=Y);var e="";if(u<128){for(var X0=1024,r1;l>0;)r1=String.fromCharCode.apply(String,k7.subarray(r,r+Math.min(l,X0))),e=e?e+r1:r1,r+=X0,l-=X0;return e}return n.UTF8ToString(r)}n.Pointer_stringify=N$;function G$(r){for(var l="";;){var u=j9[r++>>0];if(!u)return l;l+=String.fromCharCode(u)}}n.AsciiToString=G$;function mB(r,l){return K$(r,l,!1)}n.stringToAscii=mB;function Vo(r,l){for(var u,f,Y,e,X0,r1,x2="";;){if(u=r[l++],!u)return x2;if(!(u&128)){x2+=String.fromCharCode(u);continue}if(f=r[l++]&63,(u&224)==192){x2+=String.fromCharCode((u&31)<<6|f);continue}if(Y=r[l++]&63,(u&240)==224?u=(u&15)<<12|f<<6|Y:(e=r[l++]&63,(u&248)==240?u=(u&7)<<18|f<<12|Y<<6|e:(X0=r[l++]&63,(u&252)==248?u=(u&3)<<24|f<<18|Y<<12|e<<6|X0:(r1=r[l++]&63,u=(u&1)<<30|f<<24|Y<<18|e<<12|X0<<6|r1))),u<65536)x2+=String.fromCharCode(u);else{var s=u-65536;x2+=String.fromCharCode(55296|s>>10,56320|s&1023)}}}n.UTF8ArrayToString=Vo;function Hp(r){return Vo(k7,r)}n.UTF8ToString=Hp;function Gn(r,l,u,f){if(!(f>0))return 0;for(var Y=u,e=u+f-1,X0=0;X0=55296&&r1<=57343&&(r1=65536+((r1&1023)<<10)|r.charCodeAt(++X0)&1023),r1<=127){if(u>=e)break;l[u++]=r1}else if(r1<=2047){if(u+1>=e)break;l[u++]=192|r1>>6,l[u++]=128|r1&63}else if(r1<=65535){if(u+2>=e)break;l[u++]=224|r1>>12,l[u++]=128|r1>>6&63,l[u++]=128|r1&63}else if(r1<=2097151){if(u+3>=e)break;l[u++]=240|r1>>18,l[u++]=128|r1>>12&63,l[u++]=128|r1>>6&63,l[u++]=128|r1&63}else if(r1<=67108863){if(u+4>=e)break;l[u++]=248|r1>>24,l[u++]=128|r1>>18&63,l[u++]=128|r1>>12&63,l[u++]=128|r1>>6&63,l[u++]=128|r1&63}else{if(u+5>=e)break;l[u++]=252|r1>>30,l[u++]=128|r1>>24&63,l[u++]=128|r1>>18&63,l[u++]=128|r1>>12&63,l[u++]=128|r1>>6&63,l[u++]=128|r1&63}}return l[u]=0,u-Y}n.stringToUTF8Array=Gn;function Yp(r,l,u){return Gn(r,k7,l,u)}n.stringToUTF8=Yp;function Jo(r){for(var l=0,u=0;u=55296&&f<=57343&&(f=65536+((f&1023)<<10)|r.charCodeAt(++u)&1023),f<=127?++l:f<=2047?l+=2:f<=65535?l+=3:f<=2097151?l+=4:f<=67108863?l+=5:l+=6}return l}n.lengthBytesUTF8=Jo;function Vp(r){for(var l=0,u="";;){var f=Zr[r+l*2>>1];if(f==0)return u;++l,u+=String.fromCharCode(f)}}n.UTF16ToString=Vp;function pB(r,l,u){if(u===void 0&&(u=2147483647),u<2)return 0;u-=2;for(var f=l,Y=u>1]=X0,l+=2}return Zr[l>>1]=0,l-f}n.stringToUTF16=pB;function EB(r){return r.length*2}n.lengthBytesUTF16=EB;function CB(r){for(var l=0,u="";;){var f=N9[r+l*4>>2];if(f==0)return u;if(++l,f>=65536){var Y=f-65536;u+=String.fromCharCode(55296|Y>>10,56320|Y&1023)}else u+=String.fromCharCode(f)}}n.UTF32ToString=CB;function BB(r,l,u){if(u===void 0&&(u=2147483647),u<4)return 0;for(var f=l,Y=f+u-4,e=0;e=55296&&X0<=57343){var r1=r.charCodeAt(++e);X0=65536+((X0&1023)<<10)|r1&1023}if(N9[l>>2]=X0,l+=4,l+4>Y)break}return N9[l>>2]=0,l-f}n.stringToUTF32=BB;function QB(r){for(var l=0,u=0;u=55296&&f<=57343&&++u,l+=4}return l}n.lengthBytesUTF32=QB;function yB(r){var l=!!n.___cxa_demangle;if(l)try{var u=Ru(r.length);Zo(r.substr(1),u);var f=Ru(4),Y=n.___cxa_demangle(u,0,0,f);if(Er(f,"i32")===0&&Y)return N$(Y)}catch{}finally{u&&hC(u),f&&hC(f),Y&&hC(Y)}var e=3,X0={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},r1=[],x2=!0;function s(w2){w2&&n.print(w2),n.print(r);for(var P5="",G9=0;G9"}else K9=te;e:for(;e0;){var Qr=r[e++];if(Qr in X0)ye.push(X0[Qr]);else switch(Qr){case"P":ye.push(C(!0,1,!0)[0]+"*");break;case"R":ye.push(C(!0,1,!0)[0]+"&");break;case"L":{e++;var tl=r.indexOf("E",e),It=tl-e;ye.push(r.substr(e,It)),e+=It+2;break}case"A":{var It=parseInt(r.substr(e));if(e+=It.toString().length,r[e]!=="_")throw"?";e++,ye.push(C(!0,1,!0)[0]+" ["+It+"]");break}case"E":break e;default:K9+="?"+Qr;break e}}return!G9&&ye.length===1&&ye[0]==="void"&&(ye=[]),w2?(K9&&ye.push(K9+"?"),ye):K9+Dt()}var k5=r;try{if(r=="Object._main"||r=="_main")return"main()";if(typeof r=="number"&&(r=N$(r)),r[0]!=="_"||r[1]!=="_"||r[2]!=="Z")return r;switch(r[3]){case"n":return"operator new()";case"d":return"operator delete()"}k5=C()}catch{k5+="?"}return k5.indexOf("?")>=0&&!l&&_.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),k5}function wB(r){return r.replace(/__Z[\w\d_]+/g,function(l){var u=yB(l);return l===u?l:l+" ["+u+"]"})}function vB(){var r=new Error;if(!r.stack){try{throw new Error(0)}catch(l){r=l}if(!r.stack)return"(no stack trace available)"}return r.stack.toString()}function Jp(){return wB(vB())}n.stackTrace=Jp;var $C=4096;function Su(r){return r%4096>0&&(r+=4096-r%4096),r}var zp,j9,k7,Zr,U$,N9,j$,X$,P$,zo=0,jr=0,O$=!1,bu=0,v7=0,q$=0,H$=0,P7=0;function lC(){es("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+Ko+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}for(var Kp=n.TOTAL_STACK||5242880,Ko=n.TOTAL_MEMORY||16777216,Xr=64*1024;Xr0;){var l=r.shift();if(typeof l=="function"){l();continue}var u=l.func;typeof u=="number"?l.arg===void 0?_.dynCall("v",u):_.dynCall("vi",u,[l.arg]):u(l.arg===void 0?null:l.arg)}}var Wp=[],V$=[],Du=[],J$=[],_u=[],xu=!1,Un=!1;function Lu(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Ni(n.preRun.shift());Y$(Wp)}function Wo(){xu||(xu=!0,Y$(V$))}function kB(){Y$(Du)}function Zp(){Y$(J$),Un=!0}function z$(){if(n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)cC(n.postRun.shift());Y$(_u)}function Ni(r){Wp.unshift(r)}n.addOnPreRun=n.addOnPreRun=Ni;function SB(r){V$.unshift(r)}n.addOnInit=n.addOnInit=SB;function bB(r){Du.unshift(r)}n.addOnPreMain=n.addOnPreMain=bB;function DB(r){J$.unshift(r)}n.addOnExit=n.addOnExit=DB;function cC(r){_u.unshift(r)}n.addOnPostRun=n.addOnPostRun=cC;function en(r,l,u){var f=u>0?u:Jo(r)+1,Y=new Array(f),e=Gn(r,Y,0,Y.length);return l&&(Y.length=e),Y}n.intArrayFromString=en;function gC(r){for(var l=[],u=0;u255&&(f&=255),l.push(String.fromCharCode(f))}return l.join("")}n.intArrayToString=gC;function Zo(r,l,u){for(var f=en(r,u),Y=0;Y>0]=e,Y=Y+1}}n.writeStringToMemory=Zo;function ja(r,l){for(var u=0;u>0]=r[u]}n.writeArrayToMemory=ja;function K$(r,l,u){for(var f=0;f>0]=r.charCodeAt(f);u||(j9[l>>0]=0)}n.writeAsciiToMemory=K$;function jp(r,l,u){return r>=0?r:l<=32?2*Math.abs(1<=f&&(l<=32||r>f)&&(r=-2*f+r),r}(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function(l,u){var f=l>>>16,Y=l&65535,e=u>>>16,X0=u&65535;return Y*X0+(f*X0+Y*e<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(r){r=r>>>0;for(var l=0;l<32;l++)if(r&1<<31-l)return l;return 32}),Math.clz32=Math.clz32;var Z$=Math.abs,uC=Math.cos,tr=Math.sin,R0=Math.tan,t1=Math.acos,y1=Math.asin,_2=Math.atan,t6=Math.atan2,E9=Math.exp,X9=Math.log,p6=Math.sqrt,v8=Math.ceil,H4=Math.floor,rt=Math.pow,M4=Math.imul,C9=Math.fround,Gi=Math.min,q7=Math.clz32,k8=0,Ui=null,H7=null;function Y7(r){return r}function Pn(r){k8++,n.monitorRunDependencies&&n.monitorRunDependencies(k8)}n.addRunDependency=Pn;function Cr(r){if(k8--,n.monitorRunDependencies&&n.monitorRunDependencies(k8),k8==0&&(Ui!==null&&(clearInterval(Ui),Ui=null),H7)){var l=H7;H7=null,l()}}n.removeRunDependency=Cr,n.preloadedImages={},n.preloadedAudios={};var Xp=null,Mu=[];zo=8,jr=zo+553552,V$.push(),C3([0,0,0,0,1,0,0,0,3,0,0,0,7,0,0,0,15,0,0,0,31,0,0,0,63,0,0,0,127,0,0,0,255,0,0,0,255,1,0,0,255,3,0,0,255,7,0,0,255,15,0,0,255,31,0,0,255,63,0,0,255,127,0,0,255,255,0,0,255,255,1,0,255,255,3,0,255,255,7,0,255,255,15,0,255,255,31,0,255,255,63,0,255,255,127,0,255,255,255,0,255,255,255,1,255,255,255,3,255,255,255,7,255,255,255,15,255,255,255,31,255,255,255,63,255,255,255,127,255,255,255,255,0,0,0,0,0,0,0,0,183,29,193,4,110,59,130,9,217,38,67,13,220,118,4,19,107,107,197,23,178,77,134,26,5,80,71,30,184,237,8,38,15,240,201,34,214,214,138,47,97,203,75,43,100,155,12,53,211,134,205,49,10,160,142,60,189,189,79,56,112,219,17,76,199,198,208,72,30,224,147,69,169,253,82,65,172,173,21,95,27,176,212,91,194,150,151,86,117,139,86,82,200,54,25,106,127,43,216,110,166,13,155,99,17,16,90,103,20,64,29,121,163,93,220,125,122,123,159,112,205,102,94,116,224,182,35,152,87,171,226,156,142,141,161,145,57,144,96,149,60,192,39,139,139,221,230,143,82,251,165,130,229,230,100,134,88,91,43,190,239,70,234,186,54,96,169,183,129,125,104,179,132,45,47,173,51,48,238,169,234,22,173,164,93,11,108,160,144,109,50,212,39,112,243,208,254,86,176,221,73,75,113,217,76,27,54,199,251,6,247,195,34,32,180,206,149,61,117,202,40,128,58,242,159,157,251,246,70,187,184,251,241,166,121,255,244,246,62,225,67,235,255,229,154,205,188,232,45,208,125,236,119,112,134,52,192,109,71,48,25,75,4,61,174,86,197,57,171,6,130,39,28,27,67,35,197,61,0,46,114,32,193,42,207,157,142,18,120,128,79,22,161,166,12,27,22,187,205,31,19,235,138,1,164,246,75,5,125,208,8,8,202,205,201,12,7,171,151,120,176,182,86,124,105,144,21,113,222,141,212,117,219,221,147,107,108,192,82,111,181,230,17,98,2,251,208,102,191,70,159,94,8,91,94,90,209,125,29,87,102,96,220,83,99,48,155,77,212,45,90,73,13,11,25,68,186,22,216,64,151,198,165,172,32,219,100,168,249,253,39,165,78,224,230,161,75,176,161,191,252,173,96,187,37,139,35,182,146,150,226,178,47,43,173,138,152,54,108,142,65,16,47,131,246,13,238,135,243,93,169,153,68,64,104,157,157,102,43,144,42,123,234,148,231,29,180,224,80,0,117,228,137,38,54,233,62,59,247,237,59,107,176,243,140,118,113,247,85,80,50,250,226,77,243,254,95,240,188,198,232,237,125,194,49,203,62,207,134,214,255,203,131,134,184,213,52,155,121,209,237,189,58,220,90,160,251,216,238,224,12,105,89,253,205,109,128,219,142,96,55,198,79,100,50,150,8,122,133,139,201,126,92,173,138,115,235,176,75,119,86,13,4,79,225,16,197,75,56,54,134,70,143,43,71,66,138,123,0,92,61,102,193,88,228,64,130,85,83,93,67,81,158,59,29,37,41,38,220,33,240,0,159,44,71,29,94,40,66,77,25,54,245,80,216,50,44,118,155,63,155,107,90,59,38,214,21,3,145,203,212,7,72,237,151,10,255,240,86,14,250,160,17,16,77,189,208,20,148,155,147,25,35,134,82,29,14,86,47,241,185,75,238,245,96,109,173,248,215,112,108,252,210,32,43,226,101,61,234,230,188,27,169,235,11,6,104,239,182,187,39,215,1,166,230,211,216,128,165,222,111,157,100,218,106,205,35,196,221,208,226,192,4,246,161,205,179,235,96,201,126,141,62,189,201,144,255,185,16,182,188,180,167,171,125,176,162,251,58,174,21,230,251,170,204,192,184,167,123,221,121,163,198,96,54,155,113,125,247,159,168,91,180,146,31,70,117,150,26,22,50,136,173,11,243,140,116,45,176,129,195,48,113,133,153,144,138,93,46,141,75,89,247,171,8,84,64,182,201,80,69,230,142,78,242,251,79,74,43,221,12,71,156,192,205,67,33,125,130,123,150,96,67,127,79,70,0,114,248,91,193,118,253,11,134,104,74,22,71,108,147,48,4,97,36,45,197,101,233,75,155,17,94,86,90,21,135,112,25,24,48,109,216,28,53,61,159,2,130,32,94,6,91,6,29,11,236,27,220,15,81,166,147,55,230,187,82,51,63,157,17,62,136,128,208,58,141,208,151,36,58,205,86,32,227,235,21,45,84,246,212,41,121,38,169,197,206,59,104,193,23,29,43,204,160,0,234,200,165,80,173,214,18,77,108,210,203,107,47,223,124,118,238,219,193,203,161,227,118,214,96,231,175,240,35,234,24,237,226,238,29,189,165,240,170,160,100,244,115,134,39,249,196,155,230,253,9,253,184,137,190,224,121,141,103,198,58,128,208,219,251,132,213,139,188,154,98,150,125,158,187,176,62,147,12,173,255,151,177,16,176,175,6,13,113,171,223,43,50,166,104,54,243,162,109,102,180,188,218,123,117,184,3,93,54,181,180,64,247,177,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,88,105,112,104,46,79,114,103,32,108,105,98,86,111,114,98,105,115,32,73,32,50,48,49,53,48,49,48,53,32,40,226,155,132,226,155,132,226,155,132,226,155,132,41,0,0,0,0,1,0,0,0,4,0,0,0,3,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,76,194,0,0,80,194,0,0,84,194,0,0,88,194,0,0,92,194,0,0,96,194,0,0,100,194,0,0,104,194,0,0,108,194,0,0,112,194,0,0,116,194,0,0,120,194,0,0,124,194,0,0,128,194,0,0,130,194,0,0,132,194,0,0,134,194,0,0,136,194,0,0,138,194,0,0,140,194,0,0,142,194,0,0,144,194,0,0,146,194,0,0,148,194,0,0,150,194,0,0,152,194,0,0,154,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,164,194,0,0,166,194,0,0,168,194,0,0,170,194,0,0,172,194,0,0,174,194,0,0,176,194,0,0,176,194,0,0,178,194,0,0,178,194,0,0,180,194,0,0,182,194,0,0,182,194,0,0,184,194,0,0,186,194,0,0,188,194,0,0,190,194,0,0,192,194,0,0,192,194,0,0,194,194,0,0,196,194,0,0,196,194,0,0,198,194,0,0,198,194,0,0,200,194,0,0,200,194,0,0,202,194,0,0,204,194,0,0,206,194,0,0,208,194,0,0,212,194,0,0,214,194,0,0,214,194,0,0,214,194,0,0,214,194,0,0,210,194,0,0,206,194,0,0,204,194,0,0,202,194,0,0,198,194,0,0,196,194,0,0,192,194,0,0,190,194,0,0,190,194,0,0,192,194,0,0,194,194,0,0,192,194,0,0,190,194,0,0,186,194,0,0,180,194,0,0,160,194,0,0,140,194,0,0,72,194,0,0,32,194,0,0,240,193,0,0,240,193,0,0,240,193,0,0,240,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,248,63,0,0,0,0,0,0,4,64,0,0,0,0,0,0,18,64,0,0,0,0,0,0,33,64,0,0,0,0,0,128,48,64,0,0,0,4,107,244,52,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,248,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,4,64,0,0,0,0,0,0,18,64,0,0,0,0,0,0,33,64,0,0,0,4,107,244,52,66,62,180,228,51,9,145,243,51,139,178,1,52,60,32,10,52,35,26,19,52,96,169,28,52,167,215,38,52,75,175,49,52,80,59,61,52,112,135,73,52,35,160,86,52,184,146,100,52,85,109,115,52,136,159,129,52,252,11,138,52,147,4,147,52,105,146,156,52,50,191,166,52,63,149,177,52,147,31,189,52,228,105,201,52,173,128,214,52,54,113,228,52,166,73,243,52,136,140,1,53,192,247,9,53,6,239,18,53,118,123,28,53,192,166,38,53,55,123,49,53,218,3,61,53,94,76,73,53,59,97,86,53,185,79,100,53,252,37,115,53,138,121,129,53,134,227,137,53,124,217,146,53,133,100,156,53,82,142,166,53,51,97,177,53,37,232,188,53,220,46,201,53,206,65,214,53,65,46,228,53,87,2,243,53,143,102,1,54,79,207,9,54,245,195,18,54,152,77,28,54,232,117,38,54,50,71,49,54,116,204,60,54,94,17,73,54,101,34,86,54,206,12,100,54,184,222,114,54,151,83,129,54,28,187,137,54,114,174,146,54,175,54,156,54,129,93,166,54,53,45,177,54,199,176,188,54,228,243,200,54,1,3,214,54,96,235,227,54,30,187,242,54,162,64,1,55,235,166,9,55,241,152,18,55,201,31,28,55,30,69,38,55,61,19,49,55,30,149,60,55,111,214,72,55,162,227,85,55,247,201,99,55,137,151,114,55,175,45,129,55,190,146,137,55,116,131,146,55,230,8,156,55,190,44,166,55,71,249,176,55,121,121,188,55,254,184,200,55,71,196,213,55,146,168,227,55,248,115,242,55,192,26,1,56,147,126,9,56,249,109,18,56,6,242,27,56,98,20,38,56,86,223,48,56,216,93,60,56,146,155,72,56,242,164,85,56,51,135,99,56,110,80,114,56,211,7,129,56,107,106,137,56,130,88,146,56,42,219,155,56,9,252,165,56,104,197,176,56,59,66,188,56,41,126,200,56,160,133,213,56,217,101,227,56,232,44,242,56,233,244,0,57,70,86,9,57,14,67,18,57,81,196,27,57,181,227,37,57,127,171,48,57,162,38,60,57,197,96,72,57,83,102,85,57,131,68,99,57,104,9,114,57,1,226,128,57,36,66,137,57,157,45,146,57,123,173,155,57,99,203,165,57,153,145,176,57,13,11,188,57,102,67,200,57,11,71,213,57,50,35,227,57,237,229,241,57,29,207,0,58,5,46,9,58,48,24,18,58,169,150,27,58,21,179,37,58,183,119,48,58,124,239,59,58,10,38,72,58,199,39,85,58,230,1,99,58,120,194,113,58,59,188,128,58,233,25,137,58,198,2,146,58,219,127,155,58,203,154,165,58,216,93,176,58,239,211,187,58,179,8,200,58,136,8,213,58,159,224,226,58,7,159,241,58,92,169,0,59,208,5,9,59,94,237,17,59,15,105,27,59,132,130,37,59,253,67,48,59,103,184,59,59,97,235,71,59,77,233,84,59,93,191,98,59,156,123,113,59,127,150,128,59,186,241,136,59,249,215,145,59,71,82,155,59,65,106,165,59,39,42,176,59,226,156,187,59,18,206,199,59,23,202,212,59,32,158,226,59,53,88,241,59,166,131,0,60,167,221,8,60,152,194,17,60,130,59,27,60,1,82,37,60,84,16,48,60,97,129,59,60,200,176,71,60,229,170,84,60,232,124,98,60,212,52,113,60,207,112,128,60,150,201,136,60,58,173,145,60,192,36,155,60,197,57,165,60,133,246,175,60,229,101,187,60,130,147,199,60,185,139,212,60,180,91,226,60,121,17,241,60,251,93,0,61,137,181,8,61,223,151,17,61,2,14,27,61,141,33,37,61,185,220,47,61,109,74,59,61,64,118,71,61,145,108,84,61,133,58,98,61,34,238,112,61,42,75,128,61,127,161,136,61,136,130,145,61,72,247,154,61,88,9,165,61,242,194,175,61,248,46,187,61,3,89,199,61,109,77,212,61,92,25,226,61,209,202,240,61,91,56,0,62,119,141,8,62,51,109,17,62,144,224,26,62,39,241,36,62,46,169,47,62,135,19,59,62,202,59,71,62,77,46,84,62,55,248,97,62,132,167,112,62,143,37,128,62,115,121,136,62,226,87,145,62,220,201,154,62,249,216,164,62,109,143,175,62,27,248,186,62,149,30,199,62,51,15,212,62,23,215,225,62,61,132,240,62,198,18,0,63,114,101,8,63,147,66,17,63,43,179,26,63,206,192,36,63,177,117,47,63,178,220,58,63,101,1,71,63,29,240,83,63,251,181,97,63,251,96,112,63,0,0,128,63,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,120,194,0,0,120,194,0,0,130,194,0,0,146,194,0,0,138,194,0,0,136,194,0,0,136,194,0,0,134,194,0,0,140,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,150,194,0,0,158,194,0,0,158,194,0,0,160,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,84,194,0,0,116,194,0,0,132,194,0,0,132,194,0,0,136,194,0,0,134,194,0,0,140,194,0,0,152,194,0,0,152,194,0,0,144,194,0,0,146,194,0,0,150,194,0,0,152,194,0,0,156,194,0,0,158,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,24,194,0,0,32,194,0,0,40,194,0,0,56,194,0,0,64,194,0,0,84,194,0,0,92,194,0,0,120,194,0,0,130,194,0,0,104,194,0,0,96,194,0,0,96,194,0,0,116,194,0,0,112,194,0,0,130,194,0,0,134,194,0,0,138,194,0,0,142,194,0,0,154,194,0,0,154,194,0,0,156,194,0,0,160,194,0,0,164,194,0,0,168,194,0,0,176,194,0,0,186,194,0,0,196,194,0,0,212,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,208,193,0,0,216,193,0,0,232,193,0,0,0,194,0,0,24,194,0,0,64,194,0,0,80,194,0,0,80,194,0,0,72,194,0,0,64,194,0,0,64,194,0,0,76,194,0,0,80,194,0,0,88,194,0,0,112,194,0,0,134,194,0,0,134,194,0,0,132,194,0,0,136,194,0,0,138,194,0,0,146,194,0,0,146,194,0,0,152,194,0,0,160,194,0,0,162,194,0,0,162,194,0,0,170,194,0,0,170,194,0,0,172,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,136,193,0,0,152,193,0,0,160,193,0,0,176,193,0,0,208,193,0,0,224,193,0,0,248,193,0,0,32,194,0,0,60,194,0,0,28,194,0,0,28,194,0,0,32,194,0,0,40,194,0,0,44,194,0,0,60,194,0,0,76,194,0,0,100,194,0,0,80,194,0,0,92,194,0,0,92,194,0,0,112,194,0,0,104,194,0,0,120,194,0,0,124,194,0,0,140,194,0,0,134,194,0,0,138,194,0,0,144,194,0,0,146,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,166,194,0,0,174,194,0,0,180,194,0,0,188,194,0,0,196,194,0,0,208,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,32,193,0,0,48,193,0,0,112,193,0,0,152,193,0,0,200,193,0,0,240,193,0,0,8,194,0,0,248,193,0,0,240,193,0,0,248,193,0,0,232,193,0,0,0,194,0,0,12,194,0,0,40,194,0,0,64,194,0,0,40,194,0,0,48,194,0,0,56,194,0,0,72,194,0,0,72,194,0,0,76,194,0,0,80,194,0,0,108,194,0,0,88,194,0,0,92,194,0,0,92,194,0,0,104,194,0,0,120,194,0,0,124,194,0,0,132,194,0,0,144,194,0,0,146,194,0,0,152,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,160,194,0,0,162,194,0,0,168,194,0,0,176,194,0,0,180,194,0,0,188,194,0,0,196,194,0,0,202,194,0,0,212,194,0,0,220,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,134,194,0,0,134,194,0,0,134,194,0,0,152,194,0,0,144,194,0,0,142,194,0,0,148,194,0,0,152,194,0,0,152,194,0,0,150,194,0,0,156,194,0,0,158,194,0,0,158,194,0,0,162,194,0,0,166,194,0,0,172,194,0,0,178,194,0,0,186,194,0,0,194,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,64,194,0,0,76,194,0,0,92,194,0,0,108,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,134,194,0,0,132,194,0,0,136,194,0,0,138,194,0,0,140,194,0,0,148,194,0,0,158,194,0,0,154,194,0,0,154,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,164,194,0,0,168,194,0,0,172,194,0,0,176,194,0,0,182,194,0,0,190,194,0,0,200,194,0,0,216,194,0,0,232,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,20,194,0,0,20,194,0,0,36,194,0,0,48,194,0,0,64,194,0,0,76,194,0,0,104,194,0,0,120,194,0,0,112,194,0,0,100,194,0,0,108,194,0,0,108,194,0,0,112,194,0,0,124,194,0,0,130,194,0,0,144,194,0,0,142,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,154,194,0,0,152,194,0,0,156,194,0,0,162,194,0,0,162,194,0,0,160,194,0,0,166,194,0,0,172,194,0,0,182,194,0,0,192,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,240,193,0,0,0,194,0,0,0,194,0,0,4,194,0,0,12,194,0,0,36,194,0,0,68,194,0,0,72,194,0,0,68,194,0,0,60,194,0,0,64,194,0,0,64,194,0,0,80,194,0,0,76,194,0,0,100,194,0,0,130,194,0,0,116,194,0,0,108,194,0,0,116,194,0,0,128,194,0,0,138,194,0,0,140,194,0,0,148,194,0,0,154,194,0,0,154,194,0,0,156,194,0,0,162,194,0,0,168,194,0,0,170,194,0,0,174,194,0,0,180,194,0,0,184,194,0,0,192,194,0,0,200,194,0,0,214,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,160,193,0,0,168,193,0,0,184,193,0,0,216,193,0,0,240,193,0,0,12,194,0,0,16,194,0,0,36,194,0,0,56,194,0,0,48,194,0,0,40,194,0,0,32,194,0,0,36,194,0,0,36,194,0,0,44,194,0,0,64,194,0,0,92,194,0,0,84,194,0,0,80,194,0,0,84,194,0,0,96,194,0,0,108,194,0,0,104,194,0,0,112,194,0,0,134,194,0,0,132,194,0,0,138,194,0,0,142,194,0,0,144,194,0,0,150,194,0,0,158,194,0,0,162,194,0,0,168,194,0,0,174,194,0,0,180,194,0,0,186,194,0,0,194,194,0,0,202,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,48,193,0,0,64,193,0,0,64,193,0,0,112,193,0,0,128,193,0,0,160,193,0,0,184,193,0,0,240,193,0,0,20,194,0,0,8,194,0,0,4,194,0,0,8,194,0,0,248,193,0,0,0,194,0,0,0,194,0,0,24,194,0,0,60,194,0,0,48,194,0,0,36,194,0,0,32,194,0,0,60,194,0,0,68,194,0,0,56,194,0,0,56,194,0,0,104,194,0,0,72,194,0,0,72,194,0,0,88,194,0,0,104,194,0,0,120,194,0,0,128,194,0,0,134,194,0,0,134,194,0,0,140,194,0,0,144,194,0,0,152,194,0,0,158,194,0,0,166,194,0,0,174,194,0,0,182,194,0,0,192,194,0,0,200,194,0,0,208,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,124,194,0,0,128,194,0,0,132,194,0,0,134,194,0,0,132,194,0,0,136,194,0,0,150,194,0,0,144,194,0,0,152,194,0,0,150,194,0,0,152,194,0,0,156,194,0,0,158,194,0,0,164,194,0,0,168,194,0,0,170,194,0,0,180,194,0,0,188,194,0,0,202,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,112,194,0,0,112,194,0,0,116,194,0,0,124,194,0,0,132,194,0,0,142,194,0,0,136,194,0,0,140,194,0,0,140,194,0,0,142,194,0,0,144,194,0,0,144,194,0,0,150,194,0,0,162,194,0,0,156,194,0,0,158,194,0,0,164,194,0,0,166,194,0,0,172,194,0,0,180,194,0,0,194,194,0,0,206,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,88,194,0,0,92,194,0,0,100,194,0,0,96,194,0,0,100,194,0,0,92,194,0,0,116,194,0,0,130,194,0,0,112,194,0,0,112,194,0,0,120,194,0,0,124,194,0,0,124,194,0,0,132,194,0,0,136,194,0,0,148,194,0,0,146,194,0,0,150,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,160,194,0,0,164,194,0,0,170,194,0,0,180,194,0,0,192,194,0,0,202,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,64,194,0,0,76,194,0,0,100,194,0,0,76,194,0,0,68,194,0,0,72,194,0,0,76,194,0,0,84,194,0,0,88,194,0,0,108,194,0,0,132,194,0,0,112,194,0,0,120,194,0,0,134,194,0,0,134,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,152,194,0,0,156,194,0,0,162,194,0,0,170,194,0,0,176,194,0,0,188,194,0,0,194,194,0,0,208,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,28,194,0,0,36,194,0,0,40,194,0,0,40,194,0,0,28,194,0,0,24,194,0,0,36,194,0,0,44,194,0,0,80,194,0,0,48,194,0,0,32,194,0,0,28,194,0,0,20,194,0,0,20,194,0,0,32,194,0,0,60,194,0,0,88,194,0,0,72,194,0,0,64,194,0,0,72,194,0,0,92,194,0,0,116,194,0,0,108,194,0,0,120,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,138,194,0,0,138,194,0,0,146,194,0,0,148,194,0,0,148,194,0,0,150,194,0,0,154,194,0,0,158,194,0,0,164,194,0,0,174,194,0,0,182,194,0,0,190,194,0,0,200,194,0,0,216,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,224,193,0,0,208,193,0,0,192,193,0,0,176,193,0,0,160,193,0,0,160,193,0,0,184,193,0,0,232,193,0,0,240,193,0,0,248,193,0,0,224,193,0,0,216,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,12,194,0,0,32,194,0,0,4,194,0,0,0,194,0,0,232,193,0,0,240,193,0,0,240,193,0,0,240,193,0,0,20,194,0,0,52,194,0,0,36,194,0,0,20,194,0,0,24,194,0,0,52,194,0,0,60,194,0,0,60,194,0,0,64,194,0,0,84,194,0,0,68,194,0,0,64,194,0,0,72,194,0,0,68,194,0,0,68,194,0,0,76,194,0,0,80,194,0,0,104,194,0,0,96,194,0,0,100,194,0,0,96,194,0,0,112,194,0,0,116,194,0,0,120,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,156,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,212,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,200,194,0,0,190,194,0,0,182,194,0,0,174,194,0,0,166,194,0,0,160,194,0,0,156,194,0,0,152,194,0,0,156,194,0,0,156,194,0,0,162,194,0,0,166,194,0,0,170,194,0,0,172,194,0,0,170,194,0,0,172,194,0,0,174,194,0,0,180,194,0,0,194,194,0,0,214,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,162,194,0,0,154,194,0,0,146,194,0,0,140,194,0,0,134,194,0,0,134,194,0,0,136,194,0,0,150,194,0,0,146,194,0,0,140,194,0,0,138,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,158,194,0,0,168,194,0,0,166,194,0,0,168,194,0,0,172,194,0,0,176,194,0,0,178,194,0,0,178,194,0,0,186,194,0,0,196,194,0,0,210,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,152,194,0,0,142,194,0,0,136,194,0,0,136,194,0,0,130,194,0,0,124,194,0,0,124,194,0,0,120,194,0,0,120,194,0,0,128,194,0,0,130,194,0,0,128,194,0,0,116,194,0,0,120,194,0,0,124,194,0,0,128,194,0,0,132,194,0,0,136,194,0,0,146,194,0,0,146,194,0,0,148,194,0,0,150,194,0,0,152,194,0,0,162,194,0,0,166,194,0,0,170,194,0,0,176,194,0,0,178,194,0,0,184,194,0,0,190,194,0,0,200,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,160,194,0,0,150,194,0,0,142,194,0,0,136,194,0,0,130,194,0,0,124,194,0,0,120,194,0,0,116,194,0,0,116,194,0,0,116,194,0,0,116,194,0,0,108,194,0,0,96,194,0,0,100,194,0,0,84,194,0,0,72,194,0,0,104,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,80,194,0,0,84,194,0,0,88,194,0,0,104,194,0,0,134,194,0,0,124,194,0,0,134,194,0,0,136,194,0,0,144,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,162,194,0,0,164,194,0,0,170,194,0,0,178,194,0,0,180,194,0,0,186,194,0,0,194,194,0,0,202,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,130,194,0,0,116,194,0,0,108,194,0,0,100,194,0,0,96,194,0,0,92,194,0,0,92,194,0,0,96,194,0,0,96,194,0,0,100,194,0,0,92,194,0,0,84,194,0,0,80,194,0,0,60,194,0,0,48,194,0,0,48,194,0,0,72,194,0,0,48,194,0,0,36,194,0,0,28,194,0,0,28,194,0,0,40,194,0,0,32,194,0,0,56,194,0,0,76,194,0,0,68,194,0,0,72,194,0,0,84,194,0,0,88,194,0,0,124,194,0,0,112,194,0,0,116,194,0,0,120,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,140,194,0,0,146,194,0,0,148,194,0,0,150,194,0,0,152,194,0,0,150,194,0,0,158,194,0,0,170,194,0,0,178,194,0,0,182,194,0,0,192,194,0,0,204,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,80,194,0,0,72,194,0,0,68,194,0,0,68,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,68,194,0,0,72,194,0,0,72,194,0,0,68,194,0,0,56,194,0,0,44,194,0,0,28,194,0,0,12,194,0,0,4,194,0,0,24,194,0,0,16,194,0,0,0,194,0,0,232,193,0,0,0,194,0,0,0,194,0,0,0,194,0,0,12,194,0,0,48,194,0,0,28,194,0,0,24,194,0,0,24,194,0,0,56,194,0,0,72,194,0,0,52,194,0,0,56,194,0,0,84,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,88,194,0,0,88,194,0,0,84,194,0,0,84,194,0,0,96,194,0,0,100,194,0,0,108,194,0,0,132,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,158,194,0,0,166,194,0,0,170,194,0,0,180,194,0,0,194,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,172,194,0,0,160,194,0,0,150,194,0,0,150,194,0,0,158,194,0,0,160,194,0,0,158,194,0,0,160,194,0,0,162,194,0,0,164,194,0,0,176,194,0,0,190,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,176,194,0,0,166,194,0,0,158,194,0,0,156,194,0,0,150,194,0,0,142,194,0,0,134,194,0,0,136,194,0,0,146,194,0,0,146,194,0,0,144,194,0,0,146,194,0,0,150,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,202,194,0,0,192,194,0,0,180,194,0,0,172,194,0,0,162,194,0,0,154,194,0,0,146,194,0,0,138,194,0,0,132,194,0,0,116,194,0,0,120,194,0,0,132,194,0,0,128,194,0,0,120,194,0,0,130,194,0,0,132,194,0,0,140,194,0,0,144,194,0,0,152,194,0,0,162,194,0,0,160,194,0,0,168,194,0,0,180,194,0,0,190,194,0,0,204,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,206,194,0,0,194,194,0,0,184,194,0,0,176,194,0,0,166,194,0,0,158,194,0,0,148,194,0,0,140,194,0,0,132,194,0,0,108,194,0,0,84,194,0,0,104,194,0,0,120,194,0,0,92,194,0,0,88,194,0,0,88,194,0,0,88,194,0,0,104,194,0,0,116,194,0,0,120,194,0,0,144,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,160,194,0,0,166,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,150,194,0,0,140,194,0,0,132,194,0,0,120,194,0,0,96,194,0,0,64,194,0,0,48,194,0,0,64,194,0,0,56,194,0,0,56,194,0,0,44,194,0,0,56,194,0,0,64,194,0,0,64,194,0,0,76,194,0,0,104,194,0,0,104,194,0,0,108,194,0,0,112,194,0,0,120,194,0,0,120,194,0,0,116,194,0,0,116,194,0,0,130,194,0,0,128,194,0,0,130,194,0,0,136,194,0,0,140,194,0,0,148,194,0,0,150,194,0,0,156,194,0,0,162,194,0,0,172,194,0,0,190,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,150,194,0,0,140,194,0,0,130,194,0,0,116,194,0,0,92,194,0,0,68,194,0,0,28,194,0,0,4,194,0,0,32,194,0,0,12,194,0,0,0,194,0,0,24,194,0,0,32,194,0,0,4,194,0,0,12,194,0,0,20,194,0,0,56,194,0,0,36,194,0,0,52,194,0,0,48,194,0,0,56,194,0,0,40,194,0,0,52,194,0,0,56,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,88,194,0,0,88,194,0,0,92,194,0,0,100,194,0,0,120,194,0,0,128,194,0,0,132,194,0,0,136,194,0,0,140,194,0,0,152,194,0,0,162,194,0,0,180,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,180,194,0,0,170,194,0,0,164,194,0,0,166,194,0,0,160,194,0,0,156,194,0,0,168,194,0,0,158,194,0,0,160,194,0,0,166,194,0,0,174,194,0,0,178,194,0,0,182,194,0,0,186,194,0,0,198,194,0,0,212,194,0,0,234,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,150,194,0,0,140,194,0,0,136,194,0,0,148,194,0,0,144,194,0,0,148,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,170,194,0,0,174,194,0,0,184,194,0,0,178,194,0,0,182,194,0,0,190,194,0,0,200,194,0,0,212,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,180,194,0,0,166,194,0,0,150,194,0,0,142,194,0,0,124,194,0,0,128,194,0,0,134,194,0,0,120,194,0,0,128,194,0,0,134,194,0,0,140,194,0,0,146,194,0,0,154,194,0,0,162,194,0,0,168,194,0,0,166,194,0,0,170,194,0,0,178,194,0,0,180,194,0,0,186,194,0,0,196,194,0,0,208,194,0,0,218,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,206,194,0,0,192,194,0,0,176,194,0,0,162,194,0,0,150,194,0,0,136,194,0,0,104,194,0,0,88,194],"i8",O3,_.GLOBAL_BASE),C3([0,0,96,194,0,0,88,194,0,0,96,194,0,0,96,194,0,0,104,194,0,0,112,194,0,0,124,194,0,0,132,194,0,0,148,194,0,0,138,194,0,0,144,194,0,0,144,194,0,0,150,194,0,0,148,194,0,0,154,194,0,0,162,194,0,0,162,194,0,0,164,194,0,0,168,194,0,0,174,194,0,0,186,194,0,0,192,194,0,0,198,194,0,0,208,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,204,194,0,0,192,194,0,0,182,194,0,0,170,194,0,0,160,194,0,0,148,194,0,0,136,194,0,0,112,194,0,0,76,194,0,0,56,194,0,0,64,194,0,0,56,194,0,0,44,194,0,0,52,194,0,0,60,194,0,0,60,194,0,0,68,194,0,0,64,194,0,0,96,194,0,0,84,194,0,0,92,194,0,0,104,194,0,0,100,194,0,0,124,194,0,0,104,194,0,0,112,194,0,0,132,194,0,0,128,194,0,0,134,194,0,0,140,194,0,0,140,194,0,0,148,194,0,0,154,194,0,0,168,194,0,0,172,194,0,0,178,194,0,0,182,194,0,0,186,194,0,0,188,194,0,0,202,194,0,0,218,194,0,0,236,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,176,194,0,0,166,194,0,0,156,194,0,0,146,194,0,0,136,194,0,0,112,194,0,0,84,194,0,0,48,194,0,0,12,194,0,0,24,194,0,0,24,194,0,0,8,194,0,0,8,194,0,0,16,194,0,0,32,194,0,0,36,194,0,0,48,194,0,0,76,194,0,0,52,194,0,0,56,194,0,0,60,194,0,0,56,194,0,0,88,194,0,0,72,194,0,0,68,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,76,194,0,0,88,194,0,0,100,194,0,0,104,194,0,0,112,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,128,194,0,0,130,194,0,0,136,194,0,0,154,194,0,0,164,194,0,0,174,194,0,0,190,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,204,194,0,0,194,194,0,0,184,194,0,0,174,194,0,0,166,194,0,0,156,194,0,0,150,194,0,0,164,194,0,0,158,194,0,0,166,194,0,0,170,194,0,0,178,194,0,0,184,194,0,0,190,194,0,0,196,194,0,0,202,194,0,0,210,194,0,0,218,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,172,194,0,0,162,194,0,0,156,194,0,0,148,194,0,0,138,194,0,0,148,194,0,0,148,194,0,0,152,194,0,0,158,194,0,0,166,194,0,0,168,194,0,0,172,194,0,0,178,194,0,0,184,194,0,0,194,194,0,0,186,194,0,0,200,194,0,0,206,194,0,0,214,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,174,194,0,0,166,194,0,0,160,194,0,0,150,194,0,0,138,194,0,0,112,194,0,0,132,194,0,0,132,194,0,0,136,194,0,0,140,194,0,0,148,194,0,0,156,194,0,0,158,194,0,0,162,194,0,0,162,194,0,0,166,194,0,0,168,194,0,0,174,194,0,0,186,194,0,0,192,194,0,0,198,194,0,0,206,194,0,0,214,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,178,194,0,0,170,194,0,0,164,194,0,0,156,194,0,0,142,194,0,0,120,194,0,0,92,194,0,0,104,194,0,0,104,194,0,0,88,194,0,0,88,194,0,0,92,194,0,0,108,194,0,0,116,194,0,0,120,194,0,0,140,194,0,0,132,194,0,0,132,194,0,0,134,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,156,194,0,0,168,194,0,0,168,194,0,0,168,194,0,0,176,194,0,0,182,194,0,0,180,194,0,0,190,194,0,0,196,194,0,0,204,194,0,0,206,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,188,194,0,0,180,194,0,0,174,194,0,0,164,194,0,0,158,194,0,0,146,194,0,0,134,194,0,0,104,194,0,0,60,194,0,0,72,194,0,0,52,194,0,0,36,194,0,0,52,194,0,0,64,194,0,0,48,194,0,0,48,194,0,0,68,194,0,0,88,194,0,0,76,194,0,0,64,194,0,0,60,194,0,0,68,194,0,0,72,194,0,0,76,194,0,0,100,194,0,0,104,194,0,0,112,194,0,0,124,194,0,0,138,194,0,0,140,194,0,0,138,194,0,0,142,194,0,0,148,194,0,0,156,194,0,0,164,194,0,0,180,194,0,0,190,194,0,0,202,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,202,194,0,0,194,194,0,0,186,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,154,194,0,0,144,194,0,0,130,194,0,0,96,194,0,0,64,194,0,0,20,194,0,0,32,194,0,0,16,194,0,0,8,194,0,0,32,194,0,0,72,194,0,0,60,194,0,0,24,194,0,0,36,194,0,0,60,194,0,0,24,194,0,0,12,194,0,0,28,194,0,0,24,194,0,0,44,194,0,0,32,194,0,0,52,194,0,0,72,194,0,0,52,194,0,0,48,194,0,0,60,194,0,0,72,194,0,0,92,194,0,0,64,194,0,0,64,194,0,0,80,194,0,0,132,194,0,0,140,194,0,0,152,194,0,0,164,194,0,0,180,194,0,0,194,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,172,194,0,0,158,194,0,0,152,194,0,0,166,194,0,0,162,194,0,0,170,194,0,0,174,194,0,0,178,194,0,0,186,194,0,0,196,194,0,0,204,194,0,0,214,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,172,194,0,0,158,194,0,0,142,194,0,0,154,194,0,0,148,194,0,0,154,194,0,0,158,194,0,0,162,194,0,0,168,194,0,0,170,194,0,0,180,194,0,0,184,194,0,0,186,194,0,0,184,194,0,0,196,194,0,0,202,194,0,0,216,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,174,194,0,0,156,194,0,0,136,194,0,0,130,194,0,0,132,194,0,0,120,194,0,0,130,194,0,0,134,194,0,0,140,194,0,0,146,194,0,0,150,194,0,0,156,194,0,0,164,194,0,0,164,194,0,0,166,194,0,0,168,194,0,0,182,194,0,0,186,194,0,0,196,194,0,0,204,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,164,194,0,0,148,194,0,0,120,194,0,0,100,194,0,0,104,194,0,0,96,194,0,0,76,194,0,0,80,194,0,0,80,194,0,0,88,194,0,0,88,194,0,0,104,194,0,0,132,194,0,0,108,194,0,0,112,194,0,0,124,194,0,0,132,194,0,0,138,194,0,0,146,194,0,0,158,194,0,0,166,194,0,0,168,194,0,0,160,194,0,0,162,194,0,0,162,194,0,0,164,194,0,0,176,194,0,0,184,194,0,0,196,194,0,0,210,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,204,194,0,0,194,194,0,0,184,194,0,0,168,194,0,0,158,194,0,0,138,194,0,0,100,194,0,0,60,194,0,0,80,194,0,0,60,194,0,0,48,194,0,0,52,194,0,0,72,194,0,0,80,194,0,0,40,194,0,0,40,194,0,0,84,194,0,0,44,194,0,0,44,194,0,0,64,194,0,0,76,194,0,0,96,194,0,0,92,194,0,0,80,194,0,0,100,194,0,0,108,194,0,0,116,194,0,0,120,194,0,0,134,194,0,0,142,194,0,0,156,194,0,0,166,194,0,0,172,194,0,0,188,194,0,0,196,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,168,194,0,0,156,194,0,0,140,194,0,0,116,194,0,0,76,194,0,0,36,194,0,0,32,194,0,0,24,194,0,0,32,194,0,0,56,194,0,0,80,194,0,0,76,194,0,0,36,194,0,0,32,194,0,0,56,194,0,0,32,194,0,0,24,194,0,0,24,194,0,0,36,194,0,0,56,194,0,0,36,194,0,0,56,194,0,0,60,194,0,0,44,194,0,0,44,194,0,0,52,194,0,0,36,194,0,0,52,194,0,0,96,194,0,0,134,194,0,0,136,194,0,0,166,194,0,0,174,194,0,0,180,194,0,0,190,194,0,0,204,194,0,0,214,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,218,194,0,0,210,194,0,0,202,194,0,0,192,194,0,0,182,194,0,0,168,194,0,0,154,194,0,0,164,194,0,0,164,194,0,0,170,194,0,0,178,194,0,0,188,194,0,0,200,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,206,194,0,0,196,194,0,0,184,194,0,0,170,194,0,0,160,194,0,0,142,194,0,0,150,194,0,0,144,194,0,0,152,194,0,0,160,194,0,0,168,194,0,0,172,194,0,0,178,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,208,194,0,0,202,194,0,0,194,194,0,0,184,194,0,0,176,194,0,0,168,194,0,0,160,194,0,0,128,194,0,0,132,194,0,0,124,194,0,0,128,194,0,0,132,194,0,0,138,194,0,0,146,194,0,0,154,194,0,0,166,194,0,0,166,194,0,0,172,194,0,0,182,194,0,0,196,194,0,0,208,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,208,194,0,0,202,194,0,0,194,194,0,0,184,194,0,0,180,194,0,0,168,194,0,0,148,194,0,0,100,194,0,0,104,194,0,0,80,194,0,0,92,194,0,0,88,194,0,0,72,194,0,0,80,194,0,0,72,194,0,0,80,194,0,0,124,194,0,0,120,194,0,0,138,194,0,0,152,194,0,0,154,194,0,0,156,194,0,0,156,194,0,0,158,194,0,0,164,194,0,0,176,194,0,0,188,194,0,0,200,194,0,0,212,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,204,194,0,0,196,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,166,194,0,0,156,194,0,0,140,194,0,0,72,194,0,0,72,194,0,0,36,194,0,0,48,194,0,0,68,194,0,0,60,194,0,0,72,194,0,0,72,194,0,0,48,194,0,0,92,194,0,0,56,194,0,0,60,194,0,0,64,194,0,0,64,194,0,0,88,194,0,0,68,194,0,0,68,194,0,0,104,194,0,0,120,194,0,0,142,194,0,0,162,194,0,0,174,194,0,0,184,194,0,0,194,194,0,0,204,194,0,0,216,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,204,194,0,0,196,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,166,194,0,0,156,194,0,0,140,194,0,0,52,194,0,0,44,194,0,0,36,194,0,0,60,194,0,0,72,194,0,0,76,194,0,0,72,194,0,0,68,194,0,0,52,194,0,0,60,194,0,0,36,194,0,0,48,194,0,0,36,194,0,0,28,194,0,0,44,194,0,0,24,194,0,0,20,194,0,0,32,194,0,0,36,194,0,0,48,194,0,0,72,194,0,0,104,194,0,0,130,194,0,0,146,194,0,0,158,194,0,0,170,194,0,0,184,194,0,0,194,194,0,0,202,194,0,0,210,194,0,0,218,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,200,194,0,0,190,194,0,0,174,194,0,0,162,194,0,0,170,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,202,194,0,0,190,194,0,0,176,194,0,0,166,194,0,0,152,194,0,0,146,194,0,0,144,194,0,0,158,194,0,0,168,194,0,0,180,194,0,0,190,194,0,0,200,194,0,0,210,194,0,0,220,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,208,194,0,0,196,194,0,0,184,194,0,0,174,194,0,0,162,194,0,0,140,194,0,0,130,194,0,0,120,194,0,0,134,194,0,0,142,194,0,0,148,194,0,0,160,194,0,0,170,194,0,0,182,194,0,0,190,194,0,0,198,194,0,0,206,194,0,0,216,194,0,0,222,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,206,194,0,0,194,194,0,0,180,194,0,0,170,194,0,0,152,194,0,0,112,194,0,0,96,194,0,0,88,194,0,0,112,194,0,0,120,194,0,0,116,194,0,0,96,194,0,0,124,194,0,0,130,194,0,0,146,194,0,0,148,194,0,0,154,194,0,0,150,194,0,0,156,194,0,0,162,194,0,0,172,194,0,0,174,194,0,0,176,194,0,0,182,194,0,0,188,194,0,0,196,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,194,194,0,0,184,194,0,0,172,194,0,0,162,194,0,0,158,194,0,0,140,194,0,0,100,194,0,0,76,194,0,0,60,194,0,0,76,194,0,0,104,194,0,0,112,194,0,0,96,194,0,0,84,194,0,0,72,194,0,0,104,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,84,194,0,0,92,194,0,0,128,194,0,0,138,194,0,0,142,194,0,0,170,194,0,0,164,194,0,0,156,194,0,0,162,194,0,0,170,194,0,0,190,194,0,0,204,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,194,194,0,0,184,194,0,0,170,194,0,0,166,194,0,0,158,194,0,0,144,194,0,0,68,194,0,0,32,194,0,0,44,194,0,0,44,194,0,0,88,194,0,0,96,194,0,0,76,194,0,0,72,194,0,0,32,194,0,0,44,194,0,0,24,194,0,0,16,194,0,0,12,194,0,0,20,194,0,0,24,194,0,0,20,194,0,0,48,194,0,0,88,194,0,0,112,194,0,0,100,194,0,0,112,194,0,0,140,194,0,0,150,194,0,0,168,194,0,0,184,194,0,0,206,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,204,194,0,0,190,194,0,0,178,194,0,0,164,194,0,0,166,194,0,0,168,194,0,0,180,194,0,0,184,194,0,0,198,194,0,0,214,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,202,194,0,0,190,194,0,0,178,194,0,0,166,194,0,0,144,194,0,0,148,194,0,0,156,194,0,0,170,194,0,0,176,194,0,0,176,194,0,0,180,194,0,0,184,194,0,0,196,194,0,0,210,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,218,194,0,0,206,194,0,0,194,194,0,0,186,194,0,0,174,194,0,0,162,194,0,0,140,194,0,0,140,194,0,0,134,194,0,0,150,194,0,0,146,194,0,0,152,194,0,0,158,194,0,0,162,194,0,0,166,194,0,0,176,194,0,0,178,194,0,0,194,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,200,194,0,0,188,194,0,0,176,194,0,0,166,194,0,0,150,194,0,0,124,194,0,0,108,194,0,0,108,194,0,0,124,194,0,0,132,194,0,0,112,194,0,0,120,194,0,0,134,194,0,0,134,194,0,0,154,194,0,0,152,194,0,0,162,194,0,0,176,194,0,0,172,194,0,0,184,194,0,0,192,194,0,0,204,194,0,0,218,194,0,0,232,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,184,194,0,0,172,194,0,0,162,194,0,0,146,194,0,0,96,194,0,0,80,194,0,0,60,194,0,0,92,194,0,0,112,194,0,0,104,194,0,0,80,194,0,0,76,194,0,0,52,194,0,0,68,194,0,0,72,194,0,0,84,194,0,0,88,194,0,0,116,194,0,0,142,194,0,0,140,194,0,0,138,194,0,0,156,194,0,0,158,194,0,0,174,194,0,0,180,194,0,0,192,194,0,0,208,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,206,194,0,0,192,194,0,0,180,194,0,0,172,194,0,0,156,194,0,0,140,194,0,0,76,194,0,0,40,194,0,0,60,194,0,0,64,194,0,0,92,194,0,0,88,194,0,0,88,194,0,0,84,194,0,0,40,194,0,0,12,194,0,0,224,193,0,0,4,194,0,0,24,194,0,0,20,194,0,0,48,194,0,0,60,194,0,0,68,194,0,0,88,194,0,0,124,194,0,0,136,194,0,0,156,194,0,0,164,194,0,0,178,194,0,0,188,194,0,0,198,194,0,0,208,194,0,0,218,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,180,194,0,0,158,194,0,0,170,194,0,0,162,194,0,0,164,194,0,0,164,194,0,0,178,194,0,0,188,194,0,0,198,194,0,0,206,194,0,0,218,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,194,194,0,0,170,194,0,0,144,194,0,0,148,194,0,0,140,194,0,0,140,194,0,0,140,194,0,0,152,194,0,0,170,194,0,0,182,194,0,0,186,194,0,0,194,194,0,0,206,194,0,0,218,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,224,194,0,0,186,194,0,0,162,194,0,0,136,194,0,0,120,194,0,0,112,194,0,0,112,194,0,0,100,194,0,0,124,194,0,0,140,194,0,0,154,194,0,0,164,194,0,0,180,194,0,0,186,194,0,0,196,194,0,0,208,194,0,0,218,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,226,194,0,0,200,194,0,0,186,194,0,0,168,194,0,0,124,194,0,0,104,194,0,0,64,194,0,0,84,194,0,0,88,194,0,0,80,194,0,0,80,194,0,0,100,194,0,0,128,194,0,0,132,194,0,0,152,194,0,0,166,194,0,0,162,194,0,0,170,194,0,0,170,194,0,0,180,194,0,0,190,194,0,0,196,194,0,0,202,194,0,0,206,194,0,0,212,194,0,0,216,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,190,194,0,0,172,194,0,0,148,194,0,0,84,194,0,0,72,194,0,0,24,194,0,0,44,194,0,0,68,194,0,0,44,194,0,0,40,194,0,0,28,194,0,0,28,194,0,0,56,194,0,0,80,194,0,0,100,194,0,0,96,194,0,0,144,194,0,0,138,194,0,0,148,194,0,0,162,194,0,0,174,194,0,0,184,194,0,0,188,194,0,0,194,194,0,0,198,194,0,0,204,194,0,0,210,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,198,194,0,0,180,194,0,0,152,194,0,0,132,194,0,0,52,194,0,0,44,194,0,0,36,194,0,0,48,194,0,0,60,194,0,0,44,194,0,0,60,194,0,0,32,194,0,0,240,193,0,0,248,193,0,0,248,193,0,0,28,194,0,0,4,194,0,0,32,194,0,0,36,194,0,0,44,194,0,0,84,194,0,0,108,194,0,0,140,194,0,0,146,194,0,0,154,194,0,0,158,194,0,0,164,194,0,0,168,194,0,0,174,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,182,194,0,0,152,194,0,0,150,194,0,0,170,194,0,0,186,194,0,0,196,194,0,0,208,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,182,194,0,0,140,194,0,0,140,194,0,0,150,194,0,0,172,194,0,0,178,194,0,0,188,194,0,0,196,194,0,0,202,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,190,194,0,0,160,194,0,0,112,194,0,0,130,194,0,0,128,194,0,0,148,194,0,0,166,194,0,0,176,194,0,0,182,194,0,0,190,194,0,0,198,194,0,0,206,194,0,0,214,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,190,194,0,0,160,194,0,0,104,194,0,0,92,194,0,0,68,194,0,0,132,194,0,0,136,194,0,0,142,194,0,0,156,194,0,0,156,194,0,0,160,194,0,0,176,194,0,0,170,194,0,0,178,194,0,0,194,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,190,194,0,0,160,194,0,0,84,194,0,0,80,194,0,0,36,194,0,0,108,194,0,0,108,194,0,0,68,194,0,0,104,194,0,0,96,194,0,0,124,194,0,0,172,194,0,0,158,194,0,0,180,194,0,0,186,194,0,0,196,194,0,0,206,194,0,0,214,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,194,194,0,0,182,194,0,0,146,194,0,0,52,194,0,0,32,194,0,0,4,194,0,0,84,194,0,0,116,194,0,0,68,194,0,0,88,194,0,0,72,194,0,0,72,194,0,0,112,194,0,0,80,194,0,0,134,194,0,0,148,194,0,0,162,194,0,0,184,194,0,0,192,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,226,194,0,0,212,194,0,0,198,194,0,0,184,194,0,0,154,194,0,0,160,194,0,0,176,194,0,0,194,194,0,0,212,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196],"i8",O3,_.GLOBAL_BASE+10240),C3([0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,232,194,0,0,218,194,0,0,204,194,0,0,190,194,0,0,178,194,0,0,148,194,0,0,144,194,0,0,176,194,0,0,174,194,0,0,190,194,0,0,204,194,0,0,218,194,0,0,232,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,232,194,0,0,218,194,0,0,204,194,0,0,190,194,0,0,178,194,0,0,150,194,0,0,132,194,0,0,148,194,0,0,154,194,0,0,156,194,0,0,172,194,0,0,174,194,0,0,180,194,0,0,192,194,0,0,210,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,230,194,0,0,216,194,0,0,202,194,0,0,188,194,0,0,176,194,0,0,132,194,0,0,96,194,0,0,116,194,0,0,140,194,0,0,130,194,0,0,156,194,0,0,144,194,0,0,166,194,0,0,168,194,0,0,186,194,0,0,196,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,190,194,0,0,178,194,0,0,164,194,0,0,100,194,0,0,80,194,0,0,80,194,0,0,108,194,0,0,96,194,0,0,108,194,0,0,104,194,0,0,138,194,0,0,134,194,0,0,176,194,0,0,164,194,0,0,164,194,0,0,178,194,0,0,188,194,0,0,200,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,202,194,0,0,192,194,0,0,180,194,0,0,166,194,0,0,154,194,0,0,88,194,0,0,44,194,0,0,24,194,0,0,72,194,0,0,64,194,0,0,80,194,0,0,64,194,0,0,40,194,0,0,40,194,0,0,76,194,0,0,80,194,0,0,84,194,0,0,108,194,0,0,130,194,0,0,142,194,0,0,156,194,0,0,170,194,0,0,190,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,210,194,0,0,172,194,0,0,136,194,0,0,156,194,0,0,158,194,0,0,180,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,210,194,0,0,172,194,0,0,132,194,0,0,146,194,0,0,154,194,0,0,176,194,0,0,192,194,0,0,210,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,210,194,0,0,184,194,0,0,160,194,0,0,116,194,0,0,128,194,0,0,136,194,0,0,160,194,0,0,174,194,0,0,184,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,208,194,0,0,182,194,0,0,158,194,0,0,80,194,0,0,112,194,0,0,88,194,0,0,128,194,0,0,138,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,168,194,0,0,170,194,0,0,174,194,0,0,176,194,0,0,180,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,236,194,0,0,200,194,0,0,174,194,0,0,154,194,0,0,68,194,0,0,72,194,0,0,48,194,0,0,104,194,0,0,116,194,0,0,116,194,0,0,134,194,0,0,130,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,130,194,0,0,136,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,230,194,0,0,196,194,0,0,168,194,0,0,120,194,0,0,68,194,0,0,48,194,0,0,24,194,0,0,56,194,0,0,68,194,0,0,68,194,0,0,56,194,0,0,28,194,0,0,20,194,0,0,28,194,0,0,32,194,0,0,40,194,0,0,44,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,176,194,0,0,148,194,0,0,154,194,0,0,164,194,0,0,164,194,0,0,170,194,0,0,180,194,0,0,188,194,0,0,198,194,0,0,208,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,176,194,0,0,132,194,0,0,140,194,0,0,162,194,0,0,160,194,0,0,162,194,0,0,168,194,0,0,176,194,0,0,182,194,0,0,186,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,176,194,0,0,116,194,0,0,124,194,0,0,140,194,0,0,142,194,0,0,148,194,0,0,154,194,0,0,160,194,0,0,166,194,0,0,170,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,172,194,0,0,120,194,0,0,124,194,0,0,120,194,0,0,120,194,0,0,104,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,80,194,0,0,88,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,236,194,0,0,216,194,0,0,168,194,0,0,84,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,92,194,0,0,60,194,0,0,52,194,0,0,32,194,0,0,32,194,0,0,32,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,236,194,0,0,200,194,0,0,146,194,0,0,44,194,0,0,20,194,0,0,40,194,0,0,44,194,0,0,84,194,0,0,24,194,0,0,20,194,0,0,12,194,0,0,12,194,0,0,24,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,182,194,0,0,168,194,0,0,148,194,0,0,160,194,0,0,160,194,0,0,160,194,0,0,160,194,0,0,160,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,182,194,0,0,168,194,0,0,148,194,0,0,136,194,0,0,136,194,0,0,136,194,0,0,136,194,0,0,136,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,172,194,0,0,156,194,0,0,140,194,0,0,112,194,0,0,52,194,0,0,240,193,0,0,168,193,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,174,194,0,0,156,194,0,0,134,194,0,0,64,194,0,0,24,194,0,0,232,193,0,0,168,193,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,172,194,0,0,138,194,0,0,96,194,0,0,52,194,0,0,12,194,0,0,4,194,0,0,232,193,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,166,194,0,0,142,194,0,0,64,194,0,0,216,193,0,0,24,194,0,0,20,194,0,0,8,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,0,0,144,4,0,0,72,100,0,0,104,100,0,0,136,100,0,0,0,0,0,0,224,4,0,0,0,0,0,0,0,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,5,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,0,12,195,0,0,12,195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,128,0,0,0,63,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,66,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,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,1,0,0,0,40,103,0,0,200,103,0,0,104,104,0,0,8,105,0,0,168,105,0,0,72,106,0,0,232,106,0,0,136,107,0,0,40,108,0,0,200,108,0,0,104,109,0,0,8,110,0,0,168,110,0,0,72,111,0,0,232,111,0,0,136,112,0,0,40,113,0,0,0,0,0,0,11,0,0,0,48,240,7,0,64,164,1,0,2,0,0,0,64,156,0,0,80,195,0,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,184,216,1,0,24,120,0,0,24,217,1,0,136,149,2,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,200,160,2,0,0,0,0,0,11,0,0,0,160,87,5,0,64,164,1,0,6,0,0,0,64,156,0,0,112,17,1,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,184,216,1,0,24,120,0,0,24,217,1,0,136,149,2,0,160,132,0,0,208,132,0,0,3,0,0,0,120,217,1,0,0,88,5,0,0,0,0,0,11,0,0,0,64,87,5,0,64,164,1,0,255,255,255,255,64,156,0,0,80,195,0,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,184,216,1,0,24,120,0,0,24,217,1,0,136,149,2,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,136,217,1,0,0,0,0,0,11,0,0,0,224,86,5,0,64,164,1,0,2,0,0,0,144,101,0,0,64,156,0,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,128,86,5,0,24,120,0,0,24,217,1,0,136,149,2,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,200,160,2,0,0,0,0,0,11,0,0,0,32,86,5,0,64,164,1,0,255,255,255,255,144,101,0,0,64,156,0,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,128,86,5,0,24,120,0,0,24,217,1,0,0,0,0,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,136,217,1,0,0,0,0,0,3,0,0,0,0,86,5,0,16,172,4,0,2,0,0,0,56,74,0,0,144,101,0,0,48,172,4,0,64,172,4,0,80,172,4,0,136,114,0,0,184,114,0,0,160,172,4,0,160,172,4,0,160,172,4,0,176,173,4,0,224,173,4,0,16,177,4,0,16,177,4,0,64,180,4,0,56,118,0,0,104,118,0,0,112,183,4,0,112,183,4,0,144,183,4,0,144,183,4,0,160,183,4,0,160,183,4,0,176,183,4,0,208,183,4,0,224,183,4,0,224,85,5,0,24,120,0,0,16,184,4,0,48,184,4,0,160,132,0,0,208,132,0,0,2,0,0,0,240,187,4,0,8,240,4,0,0,0,0,0,3,0,0,0,192,85,5,0,16,172,4,0,255,255,255,255,56,74,0,0,144,101,0,0,48,172,4,0,64,172,4,0,80,172,4,0,136,114,0,0,184,114,0,0,160,172,4,0,160,172,4,0,160,172,4,0,176,173,4,0,224,173,4,0,16,177,4,0,16,177,4,0,64,180,4,0,56,118,0,0,104,118,0,0,112,183,4,0,112,183,4,0,144,183,4,0,144,183,4,0,160,183,4,0,160,183,4,0,176,183,4,0,208,183,4,0,224,183,4,0,224,85,5,0,24,120,0,0,16,184,4,0,48,184,4,0,160,132,0,0,208,132,0,0,2,0,0,0,240,187,4,0,248,187,4,0,0,0,0,0,3,0,0,0,232,239,4,0,16,172,4,0,2,0,0,0,152,58,0,0,56,74,0,0,48,172,4,0,64,172,4,0,80,172,4,0,136,114,0,0,184,114,0,0,160,172,4,0,160,172,4,0,160,172,4,0,176,173,4,0,224,173,4,0,16,177,4,0,16,177,4,0,64,180,4,0,56,118,0,0,104,118,0,0,112,183,4,0,112,183,4,0,144,183,4,0,144,183,4,0,160,183,4,0,160,183,4,0,176,183,4,0,208,183,4,0,224,183,4,0,240,183,4,0,24,120,0,0,16,184,4,0,48,184,4,0,160,132,0,0,208,132,0,0,2,0,0,0,240,187,4,0,8,240,4,0,0,0,0,0,3,0,0,0,240,171,4,0,16,172,4,0,255,255,255,255,152,58,0,0,56,74,0,0,48,172,4,0,64,172,4,0,80,172,4,0,136,114,0,0,184,114,0,0,160,172,4,0,160,172,4,0,160,172,4,0,176,173,4,0,224,173,4,0,16,177,4,0,16,177,4,0,64,180,4,0,56,118,0,0,104,118,0,0,112,183,4,0,112,183,4,0,144,183,4,0,144,183,4,0,160,183,4,0,160,183,4,0,176,183,4,0,208,183,4,0,224,183,4,0,240,183,4,0,24,120,0,0,16,184,4,0,48,184,4,0,160,132,0,0,208,132,0,0,2,0,0,0,240,187,4,0,248,187,4,0,0,0,0,0,2,0,0,0,216,171,4,0,0,168,4,0,2,0,0,0,40,35,0,0,152,58,0,0,24,168,4,0,24,168,4,0,32,168,4,0,136,114,0,0,184,114,0,0,96,168,4,0,0,0,0,0,96,168,4,0,184,115,0,0,48,169,4,0,48,169,4,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,152,171,4,0,224,119,0,0,240,119,0,0,176,171,4,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,200,171,4,0,184,47,1,0,0,0,0,0,2,0,0,0,232,167,4,0,0,168,4,0,255,255,255,255,40,35,0,0,152,58,0,0,24,168,4,0,24,168,4,0,32,168,4,0,136,114,0,0,184,114,0,0,96,168,4,0,0,0,0,0,96,168,4,0,184,115,0,0,48,169,4,0,48,169,4,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,152,171,4,0,224,119,0,0,240,119,0,0,176,171,4,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,200,171,4,0,248,180,0,0,0,0,0,0,2,0,0,0,208,167,4,0,40,114,0,0,2,0,0,0,64,31,0,0,40,35,0,0,64,114,0,0,64,114,0,0,72,114,0,0,136,114,0,0,184,114,0,0,232,114,0,0,0,0,0,0,232,114,0,0,184,115,0,0,208,115,0,0,208,115,0,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,208,119,0,0,224,119,0,0,240,119,0,0,0,120,0,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,240,180,0,0,184,47,1,0,0,0,0,0,2,0,0,0,184,167,4,0,40,114,0,0,255,255,255,255,64,31,0,0,40,35,0,0,64,114,0,0,64,114,0,0,72,114,0,0,136,114,0,0,184,114,0,0,232,114,0,0,0,0,0,0,232,114,0,0,184,115,0,0,208,115,0,0,208,115,0,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,208,119,0,0,224,119,0,0,240,119,0,0,0,120,0,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,240,180,0,0,248,180,0,0,0,0,0,0,11,0,0,0,200,113,0,0,64,164,1,0,2,0,0,0,80,195,0,0,64,13,3,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,184,216,1,0,24,120,0,0,24,217,1,0,136,149,2,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,200,160,2,0,0,0,0,0,11,0,0,0,200,113,0,0,64,164,1,0,255,255,255,255,80,195,0,0,64,13,3,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,184,216,1,0,24,120,0,0,24,217,1,0,0,0,0,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,136,217,1,0,0,0,0,0,2,0,0,0,200,113,0,0,40,114,0,0,2,0,0,0,0,0,0,0,64,31,0,0,64,114,0,0,64,114,0,0,72,114,0,0,136,114,0,0,184,114,0,0,232,114,0,0,0,0,0,0,232,114,0,0,184,115,0,0,208,115,0,0,208,115,0,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,208,119,0,0,224,119,0,0,240,119,0,0,0,120,0,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,240,180,0,0,184,47,1,0,0,0,0,0,2,0,0,0,200,113,0,0,40,114,0,0,255,255,255,255,0,0,0,0,64,31,0,0,64,114,0,0,64,114,0,0,72,114,0,0,136,114,0,0,184,114,0,0,232,114,0,0,0,0,0,0,232,114,0,0,184,115,0,0,208,115,0,0,208,115,0,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,208,119,0,0,224,119,0,0,240,119,0,0,0,120,0,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,240,180,0,0,248,180,0,0,0,0,0,0,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,154,153,153,153,153,153,185,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,2,0,0,0,2,0,0,32,0,0,0,25,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,25,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,242,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,90,0,0,0,90,0,0,0,95,0,0,0,95,0,0,0,95,0,0,0,95,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,232,255,255,255,226,255,255,255,216,255,255,255,216,255,255,255,211,255,255,255,211,255,255,255,211,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,0,0,0,0,10,0,0,0,10,0,0,0,255,255,255,255,10,0,0,0,10,0,0,0,255,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,0,0,0,0,236,255,255,255,236,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,226,255,255,255,216,255,255,255,216,255,255,255,211,255,255,255,211,255,255,255,211,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,14,0,0,0,14,0,0,0,15,0,0,0,15,0,0,0,16,0,0,0,16,0,0,0,17,0,0,0,17,0,0,0,17,0,0,0,18,0,0,0,18,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,64,0,0,0,64,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,156,255,255,255,156,255,255,255,151,255,255,255,0,0,0,0,126,255,255,255,126,255,255,255,116,255,255,255,0,0,0,0,0,0,0,0,0,0,8,64],"i8",O3,_.GLOBAL_BASE+20480),C3([0,0,0,0,0,0,16,64,0,0,0,0,0,0,16,64,8,0,0,0,0,0,160,65,0,0,96,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,112,194,0,0,240,193,0,0,32,194,0,0,32,194,0,0,32,194,0,0,32,194,0,0,32,194,0,0,0,64,0,0,150,194,0,0,192,192,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,96,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,194,0,0,240,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,0,64,0,0,160,194,0,0,192,192,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,64,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,160,193,0,0,160,193,0,0,112,193,0,0,112,193,0,0,112,193,0,0,112,193,0,0,112,193,0,0,0,0,0,0,160,194,0,0,192,192,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,32,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,160,193,0,0,112,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,0,0,0,0,160,194,0,0,192,192,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,32,65,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,112,193,0,0,112,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,0,0,0,0,170,194,0,0,192,192,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,8,64,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,3,1,0,24,3,1,0,48,3,1,0,80,3,1,0,112,3,1,0,160,3,1,0,208,3,1,0,232,3,1,0,40,4,1,0,104,4,1,0,152,4,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,128,0,0,0,33,0,0,0,8,0,0,0,16,0,0,0,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,128,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,1,0,0,66,0,0,0,16,0,0,0,32,0,0,0,140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,0,1,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,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,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,2,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,5,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,128,0,0,0,14,0,0,0,4,0,0,0,58,0,0,0,2,0,0,0,8,0,0,0,28,0,0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,128,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,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,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,2,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,5,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,1,0,0,28,0,0,0,8,0,0,0,116,0,0,0,4,0,0,0,16,0,0,0,56,0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,0,1,0,0,4,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,6,0,0,0,7,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,128,0,0,0,8,0,0,0,33,0,0,0,4,0,0,0,16,0,0,0,70,0,0,0,2,0,0,0,6,0,0,0,12,0,0,0,23,0,0,0,46,0,0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,128,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,6,0,0,0,7,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,128,0,0,0,12,0,0,0,46,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,23,0,0,0,33,0,0,0,70,0,0,0,2,0,0,0,6,0,0,0,10,0,0,0,14,0,0,0,19,0,0,0,28,0,0,0,39,0,0,0,58,0,0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,128,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],"i8",O3,_.GLOBAL_BASE+30720),C3([1,0,0,0,2,0,0,0,3,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,1,0,0,66,0,0,0,16,0,0,0,32,0,0,0,140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,0,1,0,0,8,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,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,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,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,255,255,255,255,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,12,0,0,0,13,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,4,0,0,93,0,0,0,23,0,0,0,116,1,0,0,6,0,0,0,46,0,0,0,186,0,0,0,238,2,0,0,14,0,0,0,33,0,0,0,65,0,0,0,130,0,0,0,4,1,0,0,44,2,0,0,3,0,0,0,10,0,0,0,18,0,0,0,28,0,0,0,39,0,0,0,55,0,0,0,79,0,0,0,111,0,0,0,158,0,0,0,220,0,0,0,56,1,0,0,208,1,0,0,138,2,0,0,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,64,64,0,0,144,65,0,4,0,0,8,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,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,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,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,255,255,255,255,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,12,0,0,0,13,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,8,0,0,186,0,0,0,46,0,0,0,232,2,0,0,12,0,0,0,92,0,0,0,116,1,0,0,220,5,0,0,28,0,0,0,66,0,0,0,130,0,0,0,4,1,0,0,8,2,0,0,88,4,0,0,6,0,0,0,20,0,0,0,36,0,0,0,56,0,0,0,78,0,0,0,110,0,0,0,158,0,0,0,222,0,0,0,60,1,0,0,184,1,0,0,112,2,0,0,160,3,0,0,20,5,0,0,164,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,64,64,0,0,144,65,0,8,0,0,6,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,6,0,0,0,7,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,2,0,0,46,0,0,0,186,0,0,0,16,0,0,0,33,0,0,0,65,0,0,0,93,0,0,0,130,0,0,0,22,1,0,0,7,0,0,0,23,0,0,0,39,0,0,0,55,0,0,0,79,0,0,0,110,0,0,0,156,0,0,0,232,0,0,0,104,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,10,0,0,0,248,2,1,0,0,0,0,0,8,181,0,0,24,206,0,0,8,181,0,0,56,206,0,0,1],"i8",O3,_.GLOBAL_BASE+41032),C3([1],"i8",O3,_.GLOBAL_BASE+49544),C3([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],"i8",O3,_.GLOBAL_BASE+50572),C3([1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,8,245,0,0,8,245,0,0,48,245,0,0,48,245,0,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,112,217,0,0,112,217,0,0,152,217,0,0,152,217,0,0,0,0,0,0,255,255,255,255,255,255,255,255,10,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+52752),C3([1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,16,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,30,0,0,0,255,255,255,255,50,0,0,0,255,255,255,255,80,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,136,233,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,219,0,0,0,0,0,0,72,219,0,0,112,219,0,0,0,0,0,0,0,0,0,0,152,219,0,0,192,219,0,0,0,0,0,0,0,0,0,0,232,219,0,0,16,220,0,0,56,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,81,0,0,0,32,233,0,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,120,233,0,0,0,0,0,0,4,0,0,0,81,0,0,0,184,232,0,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,16,233,0,0,0,0,0,0,4,0,0,0,113,2,0,0,40,230,0,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,232,0,0,0,0,0,0,4,0,0,0,113,2,0,0,152,227,0,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,16,230,0,0,0,0,0,0,2,0,0,0,81,0,0,0,24,227,0,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,112,227,0,0,0,0,0,0,2,0,0,0,81,0,0,0,152,226,0,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,240,226,0,0,0,0,0,0,4,0,0,0,81,0,0,0,48,226,0,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,136,226,0,0,0,0,0,0,2,0,0,0,121,0,0,0,128,225,0,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,0,226,0,0,0,0,0,0,2,0,0,0,121,0,0,0,208,224,0,0,1,0,0,0,0,128,187,224,0,0,118,96,4,0,0,0,0,0,0,0,80,225,0,0,0,0,0,0,2,0,0,0,121,0,0,0,32,224,0,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,160,224,0,0,0,0,0,0,2,0,0,0,225,0,0,0,248,222,0,0,1,0,0,0,0,228,91,225,0,224,255,96,4,0,0,0,0,0,0,0,224,223,0,0,0,0,0,0,2,0,0,0,225,0,0,0,208,221,0,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,184,222,0,0,0,0,0,0,2,0,0,0,33,1,0,0,96,220,0,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,136,221,0,0,0,0,0,0,2,5,4,6,6,8,8,8,8,8,9,9,9,9,9,9,9,5,6,6,7,7,8,8,9,8,9,9,9,9,9,9,9,9,5,6,6,7,7,8,8,8,9,9,9,9,9,9,9,9,9,7,7,7,8,8,9,9,9,9,9,9,9,9,9,10,10,9,7,7,7,8,8,9,9,9,9,9,9,9,9,9,9,10,10,8,8,8,9,9,9,9,10,10,10,9,10,10,10,10,10,10,8,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,7,7,9,9,7,7,8,8,10,10,11,11,4,7,7,9,9,10,10,8,8,10,10,10,11,10,11,4,7,7,9,9,10,10,8,8,10,9,11,11,11,11,7,9,9,12,12,11,12,10,10,11,10,12,11,11,11,7,9,9,11,11,13,12,9,9,11,10,11,11,12,11,9,10,10,12,12,14,14,10,10,11,12,12,11,11,11,9,10,11,11,13,14,13,10,11,11,11,12,11,12,12,7,8,8,10,9,11,10,11,12,12,11,12,14,12,13,7,8,8,9,10,10,11,12,12,12,11,12,12,12,13,9,9,9,11,11,13,12,12,12,12,11,12,12,13,12,8,10,10,11,10,11,12,12,12,12,12,12,14,12,12,9,11,11,11,12,12,12,12,13,13,12,12,13,13,12,10,11,11,12,11,12,12,12,11,12,13,12,12,12,13,11,11,12,12,12,13,12,12,11,12,13,13,12,12,13,12,11,12,12,13,13,12,13,12,13,13,13,13,14,13,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,4,4,11,11,11,11,11,11,11,11,11,11,11,11,3,11,8,11,11,11,11,11,11,11,11,11,11,11,11,3,9,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,2,5,5,6,6,7,7,7,7,8,8,5,6,6,7,7,7,7,8,8,8,8,5,6,6,7,7,7,7,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,7,8,8,8,8,8,8,9,8,9,9,8,8,8,8,8,8,8,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,10,11,11,4,6,6,7,7,9,9,11,11,13,12,4,6,6,7,7,9,9,11,11,12,12,6,7,7,9,9,11,11,12,12,13,13,6,7,7,9,9,11,11,12,12,13,13,8,9,9,11,11,12,12,13,13,14,14,8,9,9,11,11,12,12,13,13,14,14,9,11,11,12,12,13,13,14,14,15,15,9,11,11,12,12,13,13,14,14,15,14,11,12,12,13,13,14,14,15,15,16,16,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,4,5,5,7,7,8,8,9,9,9,9,4,5,5,7,7,8,8,9,9,9,9,6,7,7,8,8,8,8,9,9,9,9,6,7,7,8,8,8,8,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,9,9,8,10,10,8,10,10,5,9,9,7,10,10,8,10,10,4,10,10,9,12,12,9,11,11,7,12,11,10,11,13,10,13,13,7,12,12,10,13,12,10,13,13,4,10,10,9,12,12,9,12,12,7,12,12,10,13,13,10,12,13,7,11,12,10,13,13,10,13,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,6,6,7,7,9,9,4,4,5,6,6,7,7,9,9,4,4,4,6,6,7,7,9,9,6,6,6,7,7,8,8,9,9,6,6,6,7,7,8,8,9,9,7,7,7,8,8,8,9,10,10,7,7,7,8,8,9,8,10,10,9,9,9,9,9,10,10,10,10,9,9,9,9,9,10,10,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,5,8,7,8,8,10,10,4,6,6,8,8,8,8,10,10,7,8,8,9,9,9,9,11,11,7,8,8,9,9,9,9,11,11,8,8,8,9,9,10,10,12,11,8,8,8,9,9,10,10,11,11,9,10,10,11,11,11,11,13,12,9,10,10,11,11,12,12,12,13,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,9,9,6,7,7,9,9,6,7,7,9,9,9,9,9,11,11,9,9,9,11,11,6,7,7,9,9,7,7,8,9,10,7,7,8,9,10,9,9,10,10,11,9,9,10,10,12,6,7,7,9,9,7,8,7,10,9,7,8,7,10,9,9,10,9,12,11,10,10,9,12,10,9,10,10,12,11,9,10,10,12,11,9,10,10,12,12,11,11,12,12,13,11,11,12,12,13,9,9,10,12,11,9,10,10,12,12,10,10,10,12,12,11,12,11,13,12,11,12,11,13,12,6,7,7,9,9,7,8,8,10,10,7,8,7,10,9,10,10,10,12,12,10,10,10,12,11,7,8,7,10,10,7,7,9,10,11,8,9,9,11,10,10,10,11,10,12,10,10,11,12,12,7,8,8,10,10,7,9,8,11,10,8,8,9,11,11,10,11,10,12,11,10,11,11,12,12,9,10,10,12,12,9,10,10,12,12,10,11,11,13,12,11,10,12,10,14,12,12,12,13,14,9,10,10,12,12,9,11,10,12,12,10,11,11,12,12,11,12,11,14,12,12,12,12,14,14,5,7,7,9,9,7,7,7,9,10,7,8,8,10,10,10,10,10,11,11,10,10,10,12,12,7,8,8,10,10,8,9,8,11,10,7,8,9,10,11,10,10,10,11,12,10,10,11,11,13,6,7,8,10,10,8,9,9,10,10,7,9,7,11,10,10,11,10,12,12,10,11,10,12,10,9,10,10,12,12,10,11,11,13,12,9,10,10,12,12,12,12,12,14,13,11,11,12,11,14,9,10,10,11,12,10,11,11,12,13,9,10,10,12,12,12,12,12,14,13,11,12,10,14,11,9,9,10,11,12,9,10,10,12,12,9,10,10,12,12,12,12,12,14,14,11,12,12,13,12,9,10,9,12,12,9,10,11,12,13,10,11,10,13,11,12,12,13,13,14,12,12,12,13,13,9,10,10,12,12,10,11,10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,12,13,14,11,12,11,14,13,10,10,11,13,13,12,12,12,14,13,12,10,14,10,15,13,14,14,14,14,11,11,12,13,14,10,12,11,13,13,12,12,12,13,15,12,13,11,15,12,13,13,14,14,14,9,10,9,12,12,9,10,10,12,12,10,10,10,12,12,11,11,12,12,13,12,12,12,14,14,9,10,10,12,12,10,11,10,13,12,10,10,11,12,13,12,12,12,14,13,12,12,13,13,14,9,10,10,12,13,10,10,11,11,12,9,11,10,13,12,12,12,12,13,14,12,13,12,14,13,11,12,11,13,13,12,13,12,14,13,10,11,12,13,13,13,13,13,14,15,12,11,14,12,14,11,11,12,12,13,12,12,12,13,14,10,12,10,14,13,13,13,13,14,15,12,14,11,15,10,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,7,7,6,7,7,9,9,6,7,7,9,9,8,10,9,11,11,9,9,9,11,11,6,8,8,10,10,8,10,10,11,11,8,9,10,11,11,10,11,11,12,12,10,11,11,12,13,6,8,8,10,10,8,10,9,11,11,8,10,9,11,11,10,11,11,12,12,10,11,11,12,12,9,11,11,14,13,10,12,11,14,14,10,12,11,14,13,12,13,13,15,14,12,13,13,15,14,8,11,11,13,14,10,11,12,13,15,10,11,12,14,14,12,13,13,14,15,12,13,13,14,15,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,13,11,12,12,13,14,8,10,10,12,12,9,11,12,13,14,10,12,12,13,13,12,12,13,14,14,11,13,13,15,15,7,10,10,12,12,9,12,11,14,12,10,11,12,13,14,12,13,12,14,14,12,13,13,15,16,10,12,12,15,14,11,12,13,15,15,11,13,13,15,16,14,14,15,15,16,13,14,15,17,15,9,12,12,14,15,11,13,12,15,15,11,13,13,15,15,13,14,13,15,14,13,14,14,17,0,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,14,11,12,12,14,14,7,10,10,12,12,10,12,12,13,13,9,11,12,12,13,11,12,13,15,15,11,12,13,14,15,8,10,10,12,12,10,12,11,13,13,10,12,11,13,13,11,13,13,15,14,12,13,12,15,13,9,12,12,14,14,11,13,13,16,15,11,12,13,16,15,13,14,15,16,16,13,13,15,15,16,10,12,12,15,14,11,13,13,14,16,11,13,13,15,16,13,15,15,16,17,13,15,14,16,15,8,11,11,14,15,10,12,12,15,15,10,12,12,15,16,14,15,15,16,17,13,14,14,16,16,9,12,12,15,15,11,13,14,15,17,11,13,13,15,16,14,15,16,19,17,13,15,15,0,17,9,12,12,15,15,11,14,13,16,15,11,13,13,15,16,15,15,15,18,17,13,15,15,17,17,11,15,14,18,16,12,14,15,17,17,12,15,15,18,18,15,15,16,15,19,14,16,16,0,0,11,14,14,16,17,12,15,14,18,17,12,15,15,18,18,15,17,15,18,16,14,16,16,18,18,7,11,11,14,14,10,12,12,15,15,10,12,13,15,15,13,14,15,16,16,14,15,15,18,18,9,12,12,15,15,11,13,13,16,15,11,12,13,16,16,14,15,15,17,16,15,16,16,17,17,9,12,12,15,15,11,13,13,15,17,11,14,13,16,15,13,15,15,17,17,15,15,15,18,17,11,14,14,17,15,12,14,15,17,18,13,13,15,17,17,14,16,16,19,18,16,15,17,17,0,11,14,14,17,17,12,15,15,18,0,12,15,14,18,16,14,17,17,19,0,16,18,15,0,16,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,5,5,6,6,5,6,6,5,7,6,6,7,8,6,7,8,5,6,6,6,8,7,6,8,7,5,6,6,7,8,8,6,7,7,6,8,7,7,7,9,8,9,9,6,7,8,7,9,7,8,9,9,5,6,6,6,7,7,7,8,8,6,8,7,8,9,9,7,7,9,6,7,8,8,9,9,7,9,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,8,7,9,10,7,9,9,5,8,8,7,10,9,7,9,9,5,8,8,8,10,10,8,10,10,7,10,10,9,10,12,10,12,12,7,10,10,9,12,11,10,12,12,5,8,8,8,10,10,8,10,10,7,10,10,10,12,12,9,11,12,7,10,10,10,12,12,9,12,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,13,9,15,9,16,8,10,13,7,5,8,6,9,7,10,7,10,11,11,6,7,8,8,9,9,9,12,16,8,5,8,6,8,6,9,7,10,12,11,7,7,7,6,7,7,7,11,15,7,5,8,6,7,5,7,6,9,13,13,9,9,8,6,6,5,5,9,14,8,6,8,6,6,4,5,3,5,13,9,9,11,8,10,7,8,4,5,12,11,16,17,15,17,12,13,8,8,15,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,8,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+55148),C3([1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,25,0,0,0,255,255,255,255,45,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,184,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,245,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,246,0,0,0,0,0,0,184,246,0,0,224,246,0,0,0,0,0,0,0,0,0,0,8,247,0,0,48,247,0,0,88,247,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,81,0,0,0,80,2,1,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,168,2,1,0,0,0,0,0,4,0,0,0,81,0,0,0,232,1,1,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,64,2,1,0,0,0,0,0,4,0,0,0,113,2,0,0,88,255,0,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,208,1,1,0,0,0,0,0,4,0,0,0,113,2,0,0,200,252,0,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,255,0,0,0,0,0,0,2,0,0,0,81,0,0,0,72,252,0,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,160,252,0,0,0,0,0,0,2,0,0,0,169,0,0,0,96,251,0,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,16,252,0,0,0,0,0,0,2,0,0,0,25,0,0,0,40,251,0,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,72,251,0,0,0,0,0,0,4,0,0,0,81,0,0,0,192,250,0,0,1,0,0,0,0,176,19,225,0,176,19,97,2,0,0,0,0,0,0,0,24,251,0,0,0,0,0,0,2,0,0,0,225,0,0,0,152,249,0,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,128,250,0,0,0,0,0,0,2,0,0,0,185,1,0,0,128,247,0,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,64,249,0,0,0,0,0,0,1,6,5,7,7,9,9,9,9,10,12,12,10,11,11,10,11,11,11,10,11,6,8,8,9,9,10,10,9,10,11,11,10,11,11,11,11,10,11,11,11,11,6,7,8,9,9,9,10,11,10,11,12,11,10,11,11,11,11,11,11,12,10,8,9,9,10,9,10,10,9,10,10,10,10,10,9,10,10,10,10,9,10,10,9,9,9,9,10,10,9,9,10,10,11,10,9,12,10,11,10,9,10,10,10,8,9,9,10,9,10,9,9,10,10,9,10,9,11,10,10,10,10,10,9,10,8,8,9,9,10,9,11,9,8,9,9,10,11,10,10,10,11,12,9,9,11,8,9,8,11,10,11,10,10,9,11,10,10,10,10,10,10,10,11,11,11,11,8,9,9,9,10,10,10,11,11,12,11,12,11,10,10,10,12,11,11,11,10,8,10,9,11,10,10,11,12,10,11,12,11,11,12,11,12,12,10,11,11,10,9,9,10,11,12,10,10,10,11,10,11,11,10,12,12,10,11,10,11,12,10,9,10,10,11,10,11,11,11,11,11,12,11,11,11,9,11,10,11,10,11,10,9,9,10,11,11,11,10,10,11,12,12,11,12,11,11,11,12,12,12,12,11,9,11,11,12,10,11,11,11,11,11,11,12,11,11,12,11,11,11,10,11,11,9,11,10,11,11,11,10,10,10,11,11,11,12,10,11,10,11,11,11,11,12,9,11,10,11,11,10,10,11,11,9,11,11,12,10,10,10,10,10,11,11,10,9,10,11,11,12,11,10,10,12,11,11,12,11,12,11,11,10,10,11,11,10,12,11,10,11,10,11,10,10,10,11,11,10,10,11,11,11,11,10,10,10,12,11,11,11,11,10,9,10,11,11,11,12,11,11,11,12,10,11,11,11,9,10,11,11,11,11,11,11,10,10,11,11,12,11,10,11,12,11,10,10,11,9,10,11,11,11,11,11,10,11,11,10,12,11,11,11,12,11,11,11,10,10,11,11,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,5,5,5,5,10,10,11,11,11,11,11,11,11,11,5,7,6,8,8,9,10,11,11,11,11,11,11,11,11,6,6,7,9,7,11,10,11,11,11,11,11,11,11,11,5,6,6,11,8,11,11,11,11,11,11,11,11,11,11,5,6,6,9,10,11,10,11,11,11,11,11,11,11,11,7,10,10,11,11,11,11,11,11,11,11,11,11,11,11,7,11,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,6,6,4,6,5,7,7,4,5,6,7,7,6,7,7,7,7,6,7,7,7,7,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,9,9,11,11,12,12,16,16,3,6,6,9,9,11,11,12,12,13,14,18,16,3,6,7,9,9,11,11,13,12,14,14,17,16,7,9,9,11,11,12,12,14,14,14,14,17,16,7,9,9,11,11,13,12,13,13,14,14,17,0,9,11,11,12,13,14,14,14,13,15,14,17,17,9,11,11,12,12,14,14,13,14,14,15,0,0,11,12,12,15,14,15,14,15,14,15,16,17,0,11,12,13,13,13,14,14,15,14,15,15,0,0,12,14,14,15,15,14,16,15,15,17,16,0,18,13,14,14,15,14,15,14,15,16,17,16,0,0,17,17,18,0,16,18,16,0,0,0,17,0,0,16,0,0,16,16,0,15,0,17,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,6,8,7,8,8,10,10,4,6,6,8,8,8,8,10,10,6,8,8,9,9,9,9,11,11,7,8,8,9,9,9,9,11,11,7,8,8,9,9,10,10,12,11,7,8,8,9,9,10,10,11,11,9,10,10,11,11,11,12,12,12,9,10,10,11,11,12,12,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,5,6,7,9,9,6,7,6,9,9,9,9,9,10,11,9,9,9,11,10,6,7,7,10,10,7,7,8,10,10,7,8,8,10,10,10,10,10,10,11,9,10,10,11,12,6,7,7,10,10,7,8,8,10,10,7,8,7,10,10,9,10,10,12,11,10,10,10,11,10,9,10,10,12,11,10,10,10,13,11,9,10,10,12,12,11,11,12,12,13,11,11,11,12,13,9,10,10,12,12,10,10,11,12,12,10,10,11,12,12,11,11,11,13,13,11,12,12,13,13,5,7,7,10,10,7,8,8,10,10,7,8,8,10,10,10,11,11,12,12,10,11,10,12,12,7,8,8,11,11,7,8,9,10,11,8,9,9,11,11,11,10,11,10,12,10,11,11,12,13,7,8,8,10,11,8,9,8,12,10,8,9,9,11,12,10,11,10,13,11,10,11,11,13,12,9,11,10,13,12,10,10,11,12,12,10,11,11,13,13,12,10,13,11,14,11,12,12,15,13,9,11,11,13,13,10,11,11,13,12,10,11,11,12,14,12,13,11,14,12,12,12,12,14,14,5,7,7,10,10,7,8,8,10,10,7,8,8,11,10,10,11,11,12,12,10,11,10,12,12,7,8,8,10,11,8,9,9,12,11,8,8,9,10,11,10,11,11,12,13,11,10,11,11,13,6,8,8,10,11,8,9,9,11,11,7,9,7,11,10,10,11,11,12,12,10,11,10,13,10,9,11,10,13,12,10,12,11,13,13,10,10,11,12,13,11,12,13,15,14,11,11,13,12,13,9,10,11,12,13,10,11,11,12,13,10,11,10,13,12,12,13,13,13,14,12,12,11,14,11,8,10,10,12,13,10,11,11,13,13,10,11,10,13,13,12,13,14,15,14,12,12,12,14,13,9,10,10,13,12,10,10,12,13,13,10,11,11,15,12,12,12,13,15,14,12,13,13,15,13,9,10,11,12,13,10,12,10,13,12,10,11,11,12,13,12,14,12,15,13,12,12,12,15,14,11,12,11,14,13,11,11,12,14,14,12,13,13,14,13,13,11,15,11,15,14,14,14,16,15,11,12,12,13,14,11,13,11,14,14,12,12,13,14,15,12,14,12,15,12,13,15,14,16,15,8,10,10,12,12,10,10,10,12,13,10,11,11,13,13,12,12,12,13,14,13,13,13,15,15,9,10,10,12,12,10,11,11,13,12,10,10,11,13,13,12,12,12,14,14,12,12,13,15,14,9,10,10,13,12,10,10,12,12,13,10,11,10,13,13,12,13,13,14,14,12,13,12,14,13,11,12,12,14,13,12,13,12,14,14,10,12,12,14,14,14,14,14,16,14,13,12,14,12,15,10,12,12,14,15,12,13,13,14,16,11,12,11,15,14,13,14,14,14,15,13,14,11,14,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,7,7,6,7,7,9,9,6,7,7,9,9,8,10,9,11,11,8,9,9,11,11,6,8,8,10,10,8,10,10,11,11,8,10,10,11,11,10,11,11,12,12,10,11,11,12,13,6,8,8,10,10,8,10,10,11,11,8,10,10,11,11,9,10,11,12,12,10,11,11,12,12,8,11,11,14,13,10,12,11,15,13,10,12,11,14,14,12,13,12,16,14,12,14,12,16,15,8,11,11,13,14,10,11,12,13,15,10,11,12,13,15,11,12,13,14,15,12,12,14,14,16,5,8,8,11,11,9,11,11,12,12,8,10,11,12,12,11,12,12,15,14,11,12,12,14,14,7,11,10,13,12,10,11,12,13,14,10,12,12,14,13,12,13,13,14,15,12,13,13,15,15,7,10,11,12,13,10,12,11,14,13,10,12,13,13,15,12,13,12,14,14,11,13,13,15,16,9,12,12,15,14,11,13,13,15,16,11,13,13,16,16,13,14,15,15,15,12,14,15,17,16,9,12,12,14,15,11,13,13,15,16,11,13,13,16,18,13,14,14,17,16,13,15,15,17,18,5,8,9,11,11,8,11,11,12,12,8,10,11,12,12,11,12,12,14,14,11,12,12,14,15,7,11,10,12,13,10,12,12,14,13,10,11,12,13,14,11,13,13,15,14,12,13,13,14,15,7,10,11,13,13,10,12,12,13,14,10,12,12,13,13,11,13,13,16,16,12,13,13,15,14,9,12,12,16,15,10,13,13,15,15,11,13,13,17,15,12,15,15,18,17,13,14,14,15,16,9,12,12,15,15,11,13,13,15,16,11,13,13,15,15,12,15,15,16,16,13,15,14,17,15,7,11,11,15,15,10,13,13,16,15,10,13,13,15,16,14,15,15,17,19,13,15,14,15,18,9,12,12,16,16,11,13,14,17,16,11,13,13,17,16,15,15,16,17,19,13,15,16,0,18,9,12,12,16,15,11,14,13,17,17,11,13,14,16,16,15,16,16,19,18,13,15,15,17,19,11,14,14,19,16,12,14,15,0,18,12,16,15,18,17,15,15,18,16,19,14,15,17,19,19,11,14,14,18,19,13,15,14,19,19,12,16,15,18,17,15,17,15,0,16,14,17,16,19,0,7,11,11,14,14,10,12,12,15,15,10,13,13,16,15,13,15,15,17,0,14,15,15,16,19,9,12,12,16,16,11,14,14,16,16,11,13,13,16,16,14,17,16,19,0,14,18,17,17,19,9,12,12,15,16,11,13,13,15,17,12,14,13,19,16,13,15,15,17,19,15,17,16,17,19,11,14,14,19,16,12,15,15,19,17,13,14,15,17,19,14,16,17,19,19,16,15,16,17,19,11,15,14,16,16,12,15,15,19,0,12,14,15,19,19,14,16,16,0,18,15,19,14,18,16,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,6,6,5,6,6,5,7,7,6,7,8,6,7,8,5,7,7,6,8,8,7,9,7,5,7,7,7,9,9,7,8,8,6,9,8,7,7,10,8,10,10,6,8,8,8,10,8,8,10,10,5,7,7,7,8,8,7,8,9,6,8,8,8,10,10,8,8,10,6,8,9,8,10,10,7,10,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,8,8,10,10,7,10,10,5,8,8,7,10,10,8,10,10,4,9,8,8,11,11,8,11,11,7,11,11,10,11,13,10,13,13,7,11,11,10,13,12,10,13,13,5,9,8,8,11,11,8,11,11,7,11,11,9,13,13,10,12,13,7,11,11,10,13,13,10,13,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,11,9,12,8,7,10,6,4,5,5,7,5,6,16,9,5,5,6,7,7,9,16,7,4,6,5,7,5,7,17,10,7,7,8,7,7,8,18,7,5,6,4,5,4,5,15,7,6,7,5,6,4,5,15,12,13,18,12,17,11,9,17,6,0,0,0,6,0,0,0,120,45,1,0,160,45,1,0,200,45,1,0,240,45,1,0,24,46,1,0,0,0,0,0,56,43,1,0,96,43,1,0,136,43,1,0,176,43,1,0,216,43,1,0,0,0,0,0,216,39,1,0,0,40,1,0,40,40,1,0,80,40,1,0,120,40,1,0,160,40,1,0,200,40,1,0,240,40,1,0,120,36,1,0,160,36,1,0,200,36,1,0,240,36,1,0,24,37,1,0,64,37,1,0,104,37,1,0,144,37,1,0,80,31,1,0,120,31,1,0,160,31,1,0,200,31,1,0,240,31,1,0,24,32,1,0,64,32,1,0,104,32,1,0,144,32,1,0,184,32,1,0,224,32,1,0,8,33,1,0,40,26,1,0,80,26,1,0,120,26,1,0,160,26,1,0,200,26,1,0,240,26,1,0,24,27,1,0,64,27,1,0,104,27,1,0,144,27,1,0,184,27,1,0,224,27,1,0,232,23,1,0,16,24,1,0,56,24,1,0,96,24,1,0,136,24,1,0,0,0,0,0,216,16,1,0,0,17,1,0,40,17,1,0,80,17,1,0,120,17,1,0,160,17,1,0,200,17,1,0,240,17,1,0,24,18,1,0,64,18,1,0,104,18,1,0,144,18,1,0,184,18,1,0,224,18,1,0,8,19,1,0,0,0,0,0,200,9,1,0,240,9,1,0,24,10,1,0,64,10,1,0,104,10,1,0,144,10,1,0,184,10,1,0,224,10,1,0,8,11,1,0,48,11,1,0,88,11,1,0,128,11,1,0,168,11,1,0,208,11,1,0,248,11,1,0,0,0,0,0,160,4,1,0,200,4,1,0,240,4,1,0,24,5,1,0,64,5,1,0,104,5,1,0,144,5,1,0,184,5,1,0,224,5,1,0,8,6,1,0,48,6,1,0,88,6,1,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,192,9,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,128,9,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,64,9,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,192,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,160,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,32,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,8,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,208,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,80,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,56,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,0,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,128,6,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,8,4,8,4,8,4,8,5,8,5,8,6,8,4,8,4,8,5,8,5,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,4,3,5,4,6,4,6,5,7,6,7,6,8,6,8,7,9,8,10,8,12,9,13,10,15,10,15,11,14,0,0,0,0,0,0,0,4,4,4,4,4,4,3,4,4,4,4,4,5,4,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,4,3,4,4,5,5,6,6,7,7,7,8,8,11,8,9,9,9,10,11,11,11,9,10,10,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,3,4,3,4,4,5,4,5,4,6,4,6,5,6,5,7,5,7,6,8,6,8,6,8,7,8,7,9,7,9,8,0,0,0,0,0,0,0,4,5,4,4,4,5,4,4,4,5,4,5,4,5,3,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,3,5,3,5,4,5,4,5,4,5,5,5,5,6,5,6,5,7,5,8,6,8,6,8,6,8,6,8,7,9,7,9,7,11,9,11,11,12,11,14,12,14,16,14,16,13,16,14,16,12,15,13,16,14,16,13,14,12,15,13,15,13,13,13,15,12,14,14,15,13,15,12,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,2,4,5,4,5,4,5,4,5,5,5,5,5,5,6,5,6,5,6,6,7,6,7,6,8,7,8,7,8,7,8,7,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,6,6,6,6,5,6,6,7,6,7,6,7,6,7,6,8,7,8,7,8,7,8,7,8,7,9,7,9,7,9,7,9,8,9,8,10,8,10,8,10,7,10,6,10,8,10,8,11,7,10,7,11,8,11,11,12,12,11,11,12,11,13,11,13,11,13,12,15,12,13,13,14,14,14,14,14,15,15,15,16,14,17,19,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,2,4,6,17,4,5,7,17,8,7,10,17,17,17,17,17,3,4,6,15,3,3,6,15,7,6,9,17,17,17,17,17,6,8,10,17,6,6,8,16,9,8,10,17,17,15,16,17,17,17,17,17,12,15,15,16,12,15,15,16,16,16,16,16,3,3,3,14,5,4,4,11,8,6,6,10,17,12,11,17,6,5,5,15,5,3,4,11,8,5,5,8,16,9,10,14,10,8,9,17,8,6,6,13,10,7,7,10,16,11,13,14,17,17,17,17,17,16,16,16,16,15,16,16,16,16,16,16,1,2,3,6,5,4,7,7,1,0,0,0,16,0,0,0,200,16,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,192,16,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,192,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,128,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,0,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,224,14,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,96,14,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,64,14,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,192,13,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,168,13,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,112,13,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,240,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,216,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,160,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,32,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,5,7,5,7,7,7,7,7,5,7,5,7,5,7,5,7,7,7,7,7,4,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,4,3,4,4,4,5,5,6,5,6,5,7,6,6,6,7,7,7,8,9,9,9,12,10,11,10,10,12,10,10,0,0,0,0,0,0,0,3,4,4,4,4,4,4,4,4,5,4,5,4,5,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,3,7,3,7,5,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,4,4,4,4,4,4,5,5,5,5,6,6,7,6,7,6,8,6,9,7,9,7,9,9,11,9,12,10,12,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,3,4,3,4,4,5,4,5,5,5,6,6,6,7,6,8,6,8,6,9,7,10,7,10,7,10,7,12,7,12,7,12,9,12,11,12,10,12,10,12,11,12,12,12,10,12,10,12,10,12,9,12,11,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,10,10,12,12,12,12,12,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,2,4,5,4,5,4,5,4,5,5,5,5,5,5,6,5,6,5,6,6,6,6,7,7,7,7,7,7,8,8,8,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,6,5,7,5,7,4,7,4,8,4,8,4,8,4,8,3,8,4,9,4,9,4,9,4,9,4,9,5,9,5,9,6,9,7,9,8,9,9,9,10,9,11,9,14,9,15,10,15,10,15,10,15,10,15,11,15,10,14,12,14,11,14,13,14,13,15,15,15,12,15,15,15,13,15,13,15,13,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,7,6,7,6,7,6,7,6,5,5,5,5,5,5,6,5,6,5,6,5,6,5,6,5,6,5,7,5,7,5,7,5,8,5,8,5,8,5,9,5,9,6,10,6,10,6,11,6,11,6,11,6,11,6,11,6,11,6,11,6,12,7,11,7,11,7,11,7,11,7,10,7,11,7,11,7,12,7,11,8,11,8,11,8,11,8,13,8,12,9,11,9,11,9,11,10,12,10,12,9,12,10,12,11,14,12,16,12,12,11,14,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16,2,4,7,13,4,5,7,15,8,7,10,16,16,14,16,16,2,4,7,16,3,4,7,14,8,8,10,16,16,16,15,16,6,8,11,16,7,7,9,16,11,9,13,16,16,16,15,16,16,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16,3,3,6,16,5,5,7,16,9,8,11,16,16,16,16,16,5,5,8,16,5,5,7,16,8,7,9,16,16,16,16,16,9,9,12,16,6,8,11,16,9,10,11,16,16,16,16,16,16,16,16,16,13,16,16,16,15,16,16,16,16,16,16,16,5,4,7,16,6,5,8,16,9,8,10,16,16,16,16,16,5,5,7,15,5,4,6,15,7,6,8,16,16,16,16,16,9,9,11,15,7,7,9,16,8,8,9,16,16,16,16,16,16,16,16,16,15,15,15,16,15,15,14,16,16,16,16,16,8,8,11,16,8,9,10,16,11,10,14,16,16,16,16,16,6,8,10,16,6,7,10,16,8,8,11,16,14,16,16,16,10,11,14,16,9,9,11,16,10,10,11,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,12,16,15,16,12,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1,2,3,6,4,7,5,7,2,6,8,9,7,11,13,13,1,3,5,5,6,6,12,10,1,0,0,0,16,0,0,0,216,23,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,208,23,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,208,22,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,144,22,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,16,22,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,240,21,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,112,21,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,80,21,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,208,20,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,184,20,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,128,20,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,0,20,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,232,19,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,176,19,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,48,19,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,5,2,6,3,6,4,7,4,7,5,9,5,11,6,11,6,11,7,11,6,11,6,11,9,11,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,2,4,2,5,3,5,4,6,6,6,7,7,8,7,8,7,8,7,9,8,9,8,9,8,10,8,11,9,12,9,12,0,0,0,0,0,0,0,4,5,4,5,4,5,4,5,3,5,3,5,3,5,4,5,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,3,7,3,8,3,10,3,8,3,9,3,8,4,9,4,9,5,9,6,10,6,9,7,11,7,12,9,13,10,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,4,3,4,4,4,4,5,5,5,5,5,6,5,7,5,8,6,8,6,9,7,10,7,10,8,10,8,11,9,11,0,0,0,0,0,0,0,4,5,4,5,3,5,3,5,3,5,4,4,4,4,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,3,4,3,4,4,5,4,5,4,5,5,6,5,6,5,7,5,7,6,7,6,8,7,8,7,8,7,9,8,9,9,9,9,10,10,10,11,9,12,9,12,9,15,10,14,9,13,10,13,10,12,10,12,10,13,10,12,11,13,11,14,12,13,13,14,14,13,14,15,14,16,13,13,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,15,1,5,5,5,5,5,5,5,6,5,6,5,6,5,6,5,6,6,7,7,7,7,8,7,8,8,9,8,10,9,10,9,0,0,0,0,0,0,0,0,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,5,8,4,9,4,9,4,9,4,9,4,9,4,9,4,9,4,9,4,9,4,8,4,8,4,9,5,9,5,9,5,9,5,9,6,10,6,10,7,10,8,11,9,11,11,12,13,12,14,13,15,13,15,14,16,14,17,15,17,15,15,16,16,15,16,16,16,15,18,16,15,17,17,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,2,5,5,4,5,4,5,4,5,4,6,5,6,5,6,5,6,5,7,5,7,6,8,6,8,6,8,6,9,6,9,6,5,5,5,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,7,5,7,5,7,5,7,5,8,6,8,6,8,6,9,6,9,6,10,6,10,6,11,6,11,7,11,7,12,7,12,7,12,7,12,7,12,7,12,7,12,7,12,8,13,8,12,8,12,8,13,8,13,9,13,9,13,9,13,9,12,10,12,10,13,10,14,11,14,12,14,13,14,13,14,14,15,16,15,15,15,14,15,17,21,22,22,21,22,22,22,22,22,22,21,21,21,21,21,21,21,21,21,21,2,3,7,13,4,4,7,15,8,6,9,17,21,16,15,21,2,5,7,11,5,5,7,14,9,7,10,16,17,15,16,21,4,7,10,17,7,7,9,15,11,9,11,16,21,18,15,21,18,21,21,21,15,17,17,19,21,19,18,20,21,21,21,20,1,5,7,21,5,8,9,21,10,9,12,20,20,16,20,20,4,8,9,20,6,8,9,20,11,11,13,20,20,15,17,20,9,11,14,20,8,10,15,20,11,13,15,20,20,20,20,20,20,20,20,20,13,20,20,20,18,18,20,20,20,20,20,20,3,6,8,20,6,7,9,20,10,9,12,20,20,20,20,20,5,7,9,20,6,6,9,20,10,9,12,20,20,20,20,20,8,10,13,20,8,9,12,20,11,10,12,20,20,20,20,20,18,20,20,20,15,17,18,20,18,17,18,20,20,20,20,20,7,10,12,20,8,9,11,20,14,13,14,20,20,20,20,20,6,9,12,20,7,8,11,20,12,11,13,20,20,20,20,20,9,11,15,20,8,10,14,20,12,11,14,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,11,16,18,20,15,15,17,20,20,17,20,20,20,20,20,20,9,14,16,20,12,12,15,20,17,15,18,20,20,20,20,20,16,19,18,20,15,16,20,20,17,17,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,1,4,2,6,3,7,5,7,2,10,8,14,7,12,11,14,1,5,3,7,4,9,7,13,1,0,0,0,0,1,0,0,40,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,32,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,16,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,240,24,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,176,24,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,2,4,3,5,4,5,5,5,5,6,6,6,6,6,6,6,7,7,8,6,9,7,12,11,16,13,16,12,15,13,15,12,14,12,15,15,15,0,0,0,0,0,0,0,0,0,0,3,3,3,4,3,4,4,4,4,4,5,5,5,6,6,0,0,0,0,0,0,0,0,0,0,0,2,3,2,3,3,3,0,0,0,0,0,0,1,3,2,3,0,0,0,0,4,5,6,11,5,5,6,10,7,7,6,6,14,13,9,9,6,6,6,10,6,6,6,9,8,7,7,9,14,12,8,11,8,7,7,11,8,8,7,11,9,9,7,9,13,11,9,13,19,19,18,19,15,16,16,19,11,11,10,13,10,10,9,15,5,5,6,13,6,6,6,11,8,7,6,7,14,11,10,11,6,6,6,12,7,6,6,11,8,7,7,11,13,11,9,11,9,7,6,12,8,7,6,12,9,8,8,11,13,10,7,13,19,19,17,19,17,14,14,19,12,10,8,12,13,10,9,16,7,8,7,12,7,7,7,11,8,7,7,8,12,12,11,11,8,8,7,12,8,7,6,11,8,7,7,10,10,11,10,11,9,8,8,13,9,8,7,12,10,9,7,11,9,8,7,11,18,18,15,18,18,16,17,18,15,11,10,18,11,9,9,18,16,16,13,16,12,11,10,16,12,11,9,6,15,12,11,13,16,16,14,14,13,11,12,16,12,9,9,13,13,10,10,12,17,18,17,17,14,15,14,16,14,12,14,15,12,10,11,12,18,18,18,18,18,18,18,18,18,12,13,18,16,11,9,18,1,0,0,0,8,0,0,0,72,31,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,8,31,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,200,30,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,72,30,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,40,30,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,168,29,1],"i8",O3,_.GLOBAL_BASE+62212),C3([1,0,0,0,18,0,0,0,144,29,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,88,29,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,216,28,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,192,28,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,136,28,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,8,28,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,4,3,4,4,4,5,4,7,5,8,5,11,6,10,6,12,7,12,7,12,8,12,8,12,10,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,3,6,3,6,4,7,4,7,4,7,4,8,4,8,4,8,4,8,4,9,4,9,5,10,5,10,7,10,8,10,8,0,0,0,0,0,0,0,4,4,4,4,4,4,4,5,3,5,3,5,4,6,4,6,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,1,5,3,5,3,5,4,7,5,10,7,10,7,12,10,14,10,14,9,14,11,14,14,14,13,13,13,13,13,13,13,0,0,0,0,0,0,0,4,5,4,6,4,8,3,9,3,9,2,9,3,8,4,9,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,4,3,5,3,5,3,6,3,6,4,6,4,7,4,7,5,8,5,8,6,9,7,9,7,9,8,10,9,10,9,11,10,11,11,11,11,11,11,12,12,12,13,12,13,12,14,12,15,12,14,12,16,13,17,13,17,14,17,14,16,13,17,14,17,14,17,15,17,15,15,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,16,2,5,5,4,5,4,5,4,5,5,5,5,5,5,6,5,6,5,6,5,7,6,7,6,7,6,8,6,9,7,9,7,5,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,7,5,7,5,7,5,7,5,7,5,7,5,8,5,8,5,8,5,8,5,8,6,8,6,8,6,9,6,9,6,9,6,9,6,9,7,9,7,9,7,9,7,10,7,10,8,10,8,10,8,10,8,10,8,11,8,11,8,11,8,11,8,11,9,12,9,12,9,12,9,12,9,12,10,12,10,13,11,13,11,14,12,14,13,15,14,16,14,17,15,18,16,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,3,6,10,17,4,8,11,20,8,10,11,20,20,20,20,20,2,4,8,18,4,6,8,17,7,8,10,20,20,17,20,20,3,5,8,17,3,4,6,17,8,8,10,17,17,12,16,20,13,13,15,20,10,10,12,20,15,14,15,20,20,20,19,19,1,4,10,19,3,8,13,19,7,12,19,19,19,19,19,19,2,6,11,19,8,13,19,19,9,11,19,19,19,19,19,19,6,7,13,19,9,13,19,19,10,13,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,1,3,4,7,2,5,6,7,1,0,0,0,8,0,0,0,112,36,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,48,36,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,240,35,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,112,35,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,80,35,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,208,34,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,184,34,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,128,34,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,0,34,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,232,33,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,176,33,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,48,33,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,1,6,3,7,3,8,4,8,5,8,8,8,9,7,8,8,7,7,7,8,9,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,3,5,4,6,4,6,4,7,4,7,4,8,4,8,4,9,4,9,4,10,4,10,5,10,5,11,5,12,6,12,6,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,5,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,4,8,3,8,4,8,4,8,6,8,5,8,4,8,4,8,6,8,7,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,4,4,4,4,5,4,5,4,6,5,7,5,7,6,8,6,8,6,9,7,9,7,10,7,9,8,11,8,11,0,0,0,0,0,0,0,4,5,4,5,4,5,3,5,3,5,3,5,4,4,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,5,3,6,4,6,4,7,4,7,4,7,4,8,4,8,4,9,5,9,5,9,5,9,6,10,6,10,6,11,7,10,7,10,8,11,9,11,9,11,10,11,11,12,11,11,12,15,15,12,14,11,14,12,14,11,14,13,14,12,14,11,14,11,14,12,14,11,14,11,14,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,2,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,6,5,6,5,6,5,7,6,7,6,7,6,8,6,8,6,5,5,5,5,5,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,6,6,6,7,6,7,6,7,6,7,6,7,6,7,6,8,6,8,6,8,7,8,7,8,7,8,7,9,7,9,8,9,8,9,8,10,8,10,9,10,9,10,9,11,9,11,9,10,10,11,10,11,10,11,11,11,11,11,11,12,13,14,14,14,15,15,16,16,16,17,15,16,15,16,16,17,17,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,7,6,9,17,7,6,8,17,12,9,11,16,16,16,16,16,5,4,7,16,5,3,6,14,9,6,8,15,16,16,16,16,5,4,6,13,3,2,4,11,7,4,6,13,16,11,10,14,12,12,12,16,9,7,10,15,12,9,11,16,16,15,15,16,1,6,12,16,4,12,15,16,9,15,16,16,16,16,16,16,2,5,11,16,5,11,13,16,9,13,16,16,16,16,16,16,4,8,12,16,5,9,12,16,9,13,15,16,16,16,16,16,15,16,16,16,11,14,13,16,12,15,16,16,16,16,16,15,1,6,3,7,2,4,5,7,1,0,0,0,64,0,0,0,152,39,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,152,38,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,136,38,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,104,38,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,40,38,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,24,38,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,248,37,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,184,37,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,4,3,6,3,7,3,8,5,8,6,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,7,0,0,0,0,0,0,0,0,0,2,3,3,4,3,4,4,5,4,6,5,6,7,6,8,8,0,0,0,0,0,0,0,0,3,3,3,3,2,4,3,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,3,5,2,5,3,5,3,6,3,6,4,7,6,7,8,7,9,8,9,9,9,10,9,11,13,11,13,10,10,13,13,13,13,13,13,12,12,12,12,0,0,0,0,0,0,0,0,0,3,4,3,4,3,5,3,6,3,6,4,6,4,7,5,7,0,0,0,0,0,0,0,0,2,3,3,3,3,4,3,4,0,0,0,0,0,0,0,5,6,8,15,6,9,10,15,10,11,12,15,15,15,15,15,4,6,7,15,6,7,8,15,9,8,9,15,15,15,15,15,6,8,9,15,7,7,8,15,10,9,10,15,15,15,15,15,15,13,15,15,15,10,11,15,15,13,13,15,15,15,15,15,4,6,7,15,6,8,9,15,10,10,12,15,15,15,15,15,2,5,6,15,5,6,7,15,8,6,7,15,15,15,15,15,5,6,8,15,5,6,7,15,9,6,7,15,15,15,15,15,14,12,13,15,12,10,11,15,15,15,15,15,15,15,15,15,7,8,9,15,9,10,10,15,15,14,14,15,15,15,15,15,5,6,7,15,7,8,9,15,12,9,10,15,15,15,15,15,7,7,9,15,7,7,8,15,12,8,9,15,15,15,15,15,13,13,14,15,12,11,12,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,13,13,13,15,15,15,15,15,15,15,15,15,15,15,15,15,15,12,13,15,15,12,13,15,15,14,15,15,15,15,15,15,15,15,15,15,15,15,13,15,15,15,15,15,15,15,15,15,7,5,5,9,9,6,6,9,12,8,7,8,11,8,9,15,6,3,3,7,7,4,3,6,9,6,5,6,8,6,8,15,8,5,5,9,8,5,4,6,10,7,5,5,11,8,7,15,14,15,13,13,13,13,8,11,15,10,7,6,11,9,10,15,1,0,0,0,64,0,0,0,248,42,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,248,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,232,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,200,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,136,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,120,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,88,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,24,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,7,2,7,3,8,4,9,5,9,8,10,11,11,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,13,13,13,0,0,0,0,0,0,0,0,0,3,4,3,6,3,6,3,6,3,7,3,8,4,9,4,9,0,0,0,0,0,0,0,0,3,3,2,3,3,4,3,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,3,5,3,5,3,5,4,5,4,5,5,5,5,6,5,6,5,6,5,6,5,6,5,7,8,9,11,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,0,0,3,3,3,4,4,4,4,5,4,5,4,5,4,6,4,6,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,8,13,17,17,8,11,17,17,11,13,17,17,17,17,17,17,6,10,16,17,6,10,15,17,8,10,16,17,17,17,17,17,9,13,15,17,8,11,17,17,10,12,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,6,11,15,17,7,10,15,17,8,10,17,17,17,15,17,17,4,8,13,17,4,7,13,17,6,8,15,17,16,15,17,17,6,11,15,17,6,9,13,17,8,10,17,17,15,17,17,17,16,17,17,17,12,14,15,17,13,14,15,17,17,17,17,17,5,10,14,17,5,9,14,17,7,9,15,17,15,15,17,17,3,7,12,17,3,6,11,17,5,7,13,17,12,12,17,17,5,9,14,17,3,7,11,17,5,8,13,17,13,11,16,17,12,17,17,17,9,14,15,17,10,11,14,17,16,14,17,17,8,12,17,17,8,12,17,17,10,12,17,17,17,17,17,17,5,10,17,17,5,9,15,17,7,9,17,17,13,13,17,17,7,11,17,17,6,10,15,17,7,9,15,17,12,11,17,17,12,15,17,17,11,14,17,17,11,10,15,17,17,16,17,17,10,7,8,13,9,6,7,11,10,8,8,12,17,17,17,17,7,5,5,9,6,4,4,8,8,5,5,8,16,14,13,16,7,5,5,7,6,3,3,5,8,5,4,7,14,12,12,15,10,7,8,9,7,5,5,6,9,6,5,5,15,12,9,10,1,0,0,0,0,1,0,0,120,44,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,112,44,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,96,44,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,64,44,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,0,44,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,3,5,3,5,3,6,4,7,4,7,5,7,6,7,6,7,8,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,0,0,0,0,0,0,0,0,0,0,4,3,4,3,4,3,5,3,5,4,5,4,6,4,6,0,0,0,0,0,0,0,0,0,0,0,2,2,3,3,3,3,0,0,0,0,0,0,2,2,2,2,0,0,0,0,6,7,7,12,6,6,7,12,7,6,6,10,15,12,11,13,7,7,8,13,7,7,8,12,7,7,7,11,12,12,11,13,10,9,9,11,9,9,9,10,10,8,8,12,14,12,12,14,11,11,12,14,11,12,11,15,15,12,13,15,15,15,15,15,6,6,7,10,6,6,6,11,7,6,6,9,14,12,11,13,7,7,7,10,6,6,7,9,7,7,6,10,13,12,10,12,9,9,9,11,9,9,8,9,9,8,8,10,13,12,10,12,12,12,11,13,12,12,11,12,15,13,12,15,15,15,14,14,6,6,6,8,6,6,5,6,7,7,6,5,11,10,9,8,7,6,6,7,6,6,5,6,7,7,6,6,11,10,9,8,8,8,8,9,8,8,7,8,8,8,6,7,11,10,9,9,14,11,10,14,14,11,10,15,13,11,9,11,15,12,12,11,11,9,8,8,10,9,8,9,11,10,9,8,12,11,12,11,13,10,8,9,11,10,8,9,10,9,8,9,10,8,12,12,15,11,10,10,13,11,10,10,8,8,7,12,10,9,11,12,15,12,11,15,13,11,11,15,12,14,11,13,15,15,13,13,1,0,0,0,0,1,0,0,184,46,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,176,46,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,160,46,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,128,46,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,64,46,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,3,5,3,5,3,5,4,6,5,6,5,7,6,6,7,7,9,9,11,11,16,11,14,10,11,11,13,16,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,3,3,4,3,4,3,4,4,5,4,5,4,6,5,6,0,0,0,0,0,0,0,0,0,0,0,3,2,3,2,3,3,0,0,0,0,0,0,2,2,2,2,0,0,0,0,7,7,7,11,6,6,7,11,7,6,6,10,12,10,10,13,7,7,8,11,7,7,7,11,7,6,7,10,11,10,10,13,10,10,9,12,9,9,9,11,8,8,8,11,13,11,10,14,15,15,14,15,15,14,13,14,15,12,12,17,17,17,17,17,7,7,6,9,6,6,6,9,7,6,6,8,11,11,10,12,7,7,7,9,7,6,6,9,7,6,6,9,13,10,10,11,10,9,8,10,9,8,8,10,8,8,7,9,13,12,10,11,17,14,14,13,15,14,12,13,17,13,12,15,17,17,14,17,7,6,6,7,6,6,5,7,6,6,6,6,11,9,9,9,7,7,6,7,7,6,6,7,6,6,6,6,10,9,8,9,10,9,8,8,9,8,7,8,8,7,6,8,11,10,9,10,17,17,12,15,15,15,12,14,14,14,10,12,15,13,12,13,11,10,8,10,11,10,8,8,10,9,7,7,10,9,9,11,11,11,9,10,11,10,8,9,10,8,6,8,10,9,9,11,14,13,10,12,12,11,10,10,8,7,8,10,10,11,11,12,17,17,15,17,17,17,17,17,17,13,12,17,17,17,14,17,200,47,1,0,216,72,1,0,200,47,1,0,248,72,1,0,1],"i8",O3,_.GLOBAL_BASE+72464),C3([1],"i8",O3,_.GLOBAL_BASE+78916),C3([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],"i8",O3,_.GLOBAL_BASE+79944),C3([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],"i8",O3,_.GLOBAL_BASE+81996),C3([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,120,124,1,0,120,124,1,0,160,124,1,0,160,124,1,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,48,84,1,0,48,84,1,0,88,84,1,0,88,84,1,0,0,0,0,0,255,255,255,255,255,255,255,255,10,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+83152),C3([1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,231,3,0,0,0,0,0,0,231,3,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,16,124,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,85,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,85,1,0,0,0,0,0,0,0,0,0,0,0,0,0,104,85,1,0,0,0,0,0,0,0,0,0,0,0,0,0,144,85,1,0,0,0,0,0,0,0,0,0,0,0,0,0,184,85,1,0,0,0,0,0,224,85,1,0,8,86,1,0,0,0,0,0,0,0,0,0,48,86,1,0,88,86,1,0,0,0,0,0,0,0,0,0,128,86,1,0,168,86,1,0,208,86,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,161,25,0,0,88,98,1,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,0,124,1,0,0,0,0,0,4,0,0,0,113,2,0,0,200,95,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,98,1,0,0,0,0,0,2,0,0,0,81,0,0,0,72,95,1,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,160,95,1,0,0,0,0,0,2,0,0,0,81,0,0,0,200,94,1,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,32,95,1,0,0,0,0,0,2,0,0,0,33,1,0,0,88,93,1,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,128,94,1,0,0,0,0,0,4,0,0,0,81,0,0,0,240,92,1,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,72,93,1,0,0,0,0,0,2,0,0,0,121,0,0,0,64,92,1,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,192,92,1,0,0,0,0,0,2,0,0,0,169,0,0,0,88,91,1,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,8,92,1,0,0,0,0,0,2,0,0,0,25,0,0,0,32,91,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,91,1,0,0,0,0,0,2,0,0,0,169,0,0,0,56,90,1,0,1,0,0,0,0,136,93,225,0,176,19,97,4,0,0,0,0,0,0,0,232,90,1,0,0,0,0,0,2,0,0,0,225,0,0,0,16,89,1,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,248,89,1,0,0,0,0,0,2,0,0,0,185,1,0,0,248,86,1,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,184,88,1,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,9,8,9,9,9,9,9,9,9,9,11,11,12,7,7,7,7,8,8,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,7,7,7,7,8,8,9,8,9,9,9,9,9,9,10,10,10,10,11,11,12,8,8,8,8,8,8,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,12,11,9,9,8,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,8,8,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,12,11,12,11,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,12,11,12,11,11,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,12,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,12,11,11,12,11,10,10,10,10,10,10,10,10,10,10,10,10,11,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,12,11,12,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,12,11,12,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,12,11,11,12,11,11,12,10,10,11,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,12,12,11,12,11,11,12,12,12,11,11,10,10,10,10,10,10,10,10,10,11,12,12,11,12,12,11,12,11,11,11,11,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,5,5,7,7,9,9,11,11,12,12,13,13,6,5,5,6,6,9,9,10,10,12,12,12,13,15,14,6,5,5,7,7,9,9,10,10,12,12,12,13,14,13,17,7,7,8,8,10,10,11,11,12,13,13,13,13,13,17,7,7,8,8,10,10,11,11,13,13,13,13,14,14,17,11,11,9,9,11,11,12,12,12,13,13,14,15,13,17,12,12,9,9,11,11,12,12,13,13,13,13,14,16,17,17,17,11,12,12,12,13,13,13,14,15,14,15,15,17,17,17,12,12,11,11,13,13,14,14,15,14,15,15,17,17,17,15,15,13,13,14,14,15,14,15,15,16,15,17,17,17,15,15,13,13,13,14,14,15,15,15,15,16,17,17,17,17,16,14,15,14,14,15,14,14,15,15,15,17,17,17,17,17,14,14,16,14,15,15,15,15,15,15,17,17,17,17,17,17,16,16,15,17,15,15,14,17,15,17,16,17,17,17,17,16,15,14,15,15,15,15,15,15,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,3,10,10,10,10,10,10,10,10,10,10,5,6,6,10,10,10,10,10,10,10,10,10,10,6,7,8,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,8,8,9,9,10,10,7,5,5,7,7,8,8,8,8,9,10,11,11,7,5,5,7,7,8,8,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,9,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,9,10,9,10,11,11,11,0,13,12,9,8,9,9,10,10,11,11,12,11,0,0,0,9,9,9,9,10,10,11,11,12,12,0,0,0,10,10,9,9,10,10,11,11,12,12,0,0,0,13,13,10,10,11,11,12,11,13,12,0,0,0,14,14,10,10,11,10,11,11,12,12,0,0,0,0,0,12,12,11,11,12,12,13,13,0,0,0,0,0,12,12,11,10,12,11,13,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,5,7,7,7,7,7,7,10,10,9,7,7,7,7,8,8,8,8,9,9,9,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,6,7,6,6,4,7,7,10,9,9,10,9,9,5,7,7,10,9,9,10,9,9,6,10,10,10,10,10,11,10,10,6,9,9,10,9,10,11,10,10,6,9,9,10,9,9,11,9,10,7,10,10,11,11,11,11,10,10,6,9,9,10,10,10,11,9,9,6,9,9,10,10,10,10,9,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,5,5,8,8,8,8,9,9,10,10,11,11,11,11,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,9,9,8,8,10,10,10,10,11,11,12,12,12,12,0,0,0,9,9,8,8,10,10,10,10,11,11,12,12,12,12,0,0,0,10,10,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,10,10,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,11,11,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,11,12,12,13,13,0,0,0,0,0,10,10,11,11,11,11,12,12,13,12,13,13,0,0,0,0,0,0,0,11,10,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,14,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,14,13,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,4,5,6,6,8,8,0,0,0,8,8,7,7,9,9,0,0,0,8,8,7,7,9,9,0,0,0,9,10,8,8,9,9,0,0,0,10,10,8,8,9,9,0,0,0,11,10,8,8,10,10,0,0,0,11,11,8,8,10,10,0,0,0,12,12,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,2,3,7,7,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,8,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,8,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,7,9,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,8,10,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,8,10,8],"i8",O3,_.GLOBAL_BASE+86572),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,18,8,11,8,8,9,9,10,4,4,18,5,9,5,6,7,8,10,18,18,18,18,17,17,17,17,17,17,7,5,17,6,11,6,7,8,9,12,12,9,17,12,8,8,9,10,10,13,7,5,17,6,8,4,5,6,8,10,6,5,17,6,8,5,4,5,7,9,7,7,17,8,9,6,5,5,6,8,8,8,17,9,11,8,6,6,6,7,9,10,17,12,12,10,9,7,7,8,0,0,0,0,2,0,0,0,100,0,0,0,216,163,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,125,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,125,1,0,0,0,0,0,0,0,0,0,0,0,0,0,176,125,1,0,0,0,0,0,0,0,0,0,0,0,0,0,216,125,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,1,0,0,0,0,0,40,126,1,0,80,126,1,0,0,0,0,0,0,0,0,0,120,126,1,0,160,126,1,0,0,0,0,0,0,0,0,0,200,126,1,0,240,126,1,0,24,127,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,161,25,0,0,32,138,1,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,200,163,1,0,0,0,0,0,4,0,0,0,113,2,0,0,144,135,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,8,138,1,0,0,0,0,0,2,0,0,0,81,0,0,0,16,135,1,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,104,135,1,0,0,0,0,0,2,0,0,0,81,0,0,0,144,134,1,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,232,134,1,0,0,0,0,0,2,0,0,0,33,1,0,0,32,133,1,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,72,134,1,0,0,0,0,0,4,0,0,0,81,0,0,0,184,132,1,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,16,133,1,0,0,0,0,0,2,0,0,0,121,0,0,0,8,132,1,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,136,132,1,0,0,0,0,0,2,0,0,0,169,0,0,0,32,131,1,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,208,131,1,0,0,0,0,0,2,0,0,0,25,0,0,0,232,130,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,8,131,1,0,0,0,0,0,4,0,0,0,81,0,0,0,128,130,1,0,1,0,0,0,0,176,19,225,0,176,19,97,2,0,0,0,0,0,0,0,216,130,1,0,0,0,0,0,2,0,0,0,225,0,0,0,88,129,1,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,64,130,1,0,0,0,0,0,2,0,0,0,185,1,0,0,64,127,1,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,0,129,1,0,0,0,0,0,1,5,5,7,7,8,7,8,8,10,10,9,9,10,10,10,11,11,10,12,11,12,12,12,9,8,8,8,8,8,9,10,10,10,10,11,11,11,10,11,11,12,12,11,12,8,8,7,7,8,9,10,10,10,9,10,10,9,10,10,11,11,11,11,11,11,9,9,9,9,8,9,10,10,11,10,10,11,11,12,10,10,12,12,11,11,10,9,9,10,8,9,10,10,10,9,10,10,11,11,10,11,10,10,10,12,12,12,9,10,9,10,9,9,10,10,11,11,11,11,10,10,10,11,12,11,12,11,12,10,11,10,11,9,10,9,10,9,10,10,9,10,10,11,10,11,11,11,11,12,11,9,10,10,10,10,11,11,11,11,11,10,11,11,11,11,10,12,10,12,12,11,12,10,10,11,10,9,11,10,11,9,10,11,10,10,10,11,11,11,11,12,12,10,9,9,11,10,9,12,11,10,12,12,11,11,11,11,10,11,11,12,11,10,12,9,11,10,11,10,10,11,10,11,9,10,10,10,11,12,11,11,12,11,10,10,11,11,9,10,10,12,10,11,10,10,10,9,10,10,10,10,9,10,10,11,11,11,11,12,11,10,10,10,10,11,11,10,11,11,9,11,10,12,10,12,11,10,11,10,10,10,11,10,10,11,11,10,11,10,10,10,10,11,11,12,10,10,10,11,10,11,12,11,10,11,10,10,11,11,10,12,10,9,10,10,11,11,11,10,12,10,10,11,11,11,10,10,11,10,10,10,11,10,11,10,12,11,11,10,10,10,12,10,10,11,9,10,11,11,11,10,10,11,10,10,9,11,11,12,12,11,12,11,11,11,11,11,11,9,10,11,10,12,10,10,10,10,11,10,10,11,10,10,12,10,10,10,10,10,9,12,10,10,10,10,12,9,11,10,10,11,10,12,12,10,12,12,12,10,10,10,10,9,10,11,10,10,12,10,10,12,11,10,11,10,10,12,11,10,12,10,10,11,9,11,10,9,10,9,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,5,5,10,8,11,11,11,11,11,11,11,11,6,6,6,7,6,11,10,11,11,11,11,11,11,11,11,7,5,6,6,6,8,7,11,11,11,11,11,11,11,11,11,7,8,8,8,9,9,11,11,11,11,11,11,11,11,11,9,8,7,8,9,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,4,5,5,7,6,6,6,5,7,7,7,6,6,7,7,7,6,6,7,7,7,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,6,7,7,7,7,8,8,9,9,7,6,6,7,7,8,8,7,7,8,9,10,10,7,6,6,7,7,8,7,7,7,9,9,10,12,0,8,8,8,8,8,9,8,8,9,9,10,10,0,8,8,8,8,8,9,8,9,9,9,11,10,0,0,13,9,8,9,9,9,9,10,10,11,11,0,13,0,9,9,9,9,9,9,11,10,11,11,0,0,0,8,9,10,9,10,10,13,11,12,12,0,0,0,8,9,9,9,10,10,13,12,12,13,0,0,0,12,0,10,10,12,11,10,11,12,12,0,0,0,13,13,10,10,10,11,12,0,13,0,0,0,0,0,0,13,11,0,12,12,12,13,12,0,0,0,0,0,0,13,13,11,13,13,11,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,6,6,8,8,9,9,9,9,10,10,10,7,7,8,8,9,9,9,9,10,10,9,7,7,8,8,9,9,9,9,10,10,10,8,8,9,9,9,9,9,9,10,10,10,8,8,9,9,9,9,8,9,10,10,10,8,8,9,9,9,10,10,10,10,10,10,9,9,9,9,9,9,10,10,11,10,11,9,9,9,9,10,10,10,10,11,11,11,10,10,9,9,10,10,10,9,11,10,10,10,10,10,10,9,9,10,10,11,11,10,10,10,9,9,9,10,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,11,9,10,12,9,10,4,7,7,10,10,10,11,9,9,6,11,10,11,11,12,11,11,11,6,10,10,11,11,12,11,10,10,6,9,10,11,11,11,11,10,10,7,10,11,12,11,11,12,11,12,6,9,9,10,9,9,11,10,10,6,9,9,10,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,6,6,8,8,9,9,8,8,10,9,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,11,0,0,0,8,8,9,9,10,10,9,9,10,10,11,11,12,12,0,0,0,8,8,9,9,10,10,9,9,11,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,11,12,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,10,10,10,10,11,11,10,10,11,11,12,12,13,13,0,0,0,0,0,10,9,10,11,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,9,10,11,12,12,13,13,14,13,0,0,0,0,0,9,9,9,10,10,10,11,11,13,12,13,13,0,0,0,0,0,10,10,10,10,11,11,12,12,13,13,14,14,0,0,0,0,0,0,0,10,10,11,11,12,12,13,13,13,14,0,0,0,0,0,0,0,11,11,11,11,12,12,13,14,14,14,0,0,0,0,0,0,0,11,11,11,11,12,12,13,13,14,13,0,0,0,0,0,0,0,11,11,12,12,13,13,14,14,14,14,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,5,5,7,6,8,8,0,0,0,7,7,7,7,8,8,0,0,0,7,7,7,7,8,9,0,0,0,8,8,8,8,9,9,0,0,0,8,8,8,8,9,9,0,0,0,9,9,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,10,10,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,2,3,7,7,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,8,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,6,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,4,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,9,0,0,0,0,0,0,8,9,11,0,0,0,0,0,0,9,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,9,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,11,11,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,9,11,11,0,0,0,0,0,0,8,11,9],"i8",O3,_.GLOBAL_BASE+97272),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,5,18,7,10,6,7,8,9,10,5,2,18,5,7,5,6,7,8,11,17,17,17,17,17,17,17,17,17,17,7,4,17,6,9,6,8,10,12,15,11,7,17,9,6,6,7,9,11,15,6,4,17,6,6,4,5,8,11,16,6,6,17,8,6,5,6,9,13,16,8,9,17,11,9,8,8,11,13,17,9,12,17,15,14,13,12,13,14,17,12,15,17,17,17,17,17,16,17,17,0,0,0,0,154,153,153,153,153,153,185,191,0,0,0,0,0,0,0,0,154,153,153,153,153,153,185,63,154,153,153,153,153,153,201,63,51,51,51,51,51,51,211,63,154,153,153,153,153,153,217,63,0,0,0,0,0,0,224,63,51,51,51,51,51,51,227,63,102,102,102,102,102,102,230,63,154,153,153,153,153,153,233,63,205,204,204,204,204,204,236,63,0,0,0,0,0,0,240,63,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,0,0,0,35,0,0,0,21,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,20,0,0,0,8,0,0,0,0,0,0,192,0,0,160,63,25,0,0,0,12,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,9,0,0,0,253,255,255,255,0,0,0,0,0,0,0,0,20,0,0,0,9,0,0,0,252,255,255,255,0,0,0,0,0,0,0,0,20,0,0,0,9,0,0,0,252,255,255,255,0,0,0,0,0,0,0,0,20,0,0,0,6,0,0,0,250,255,255,255,0,0,0,0,0,0,0,0,20,0,0,0,3,0,0,0,246,255,255,255,0,0,0,0,0,0,0,0,18,0,0,0,1,0,0,0,242,255,255,255,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,240,255,255,255,0,0,0,0,0,0,0,0,18,0,0,0,254,255,255,255,240,255,255,255,0,0,0,0,0,0,0,0,12,0,0,0,254,255,255,255,236,255,255,255,0,0,0,0,0,0,0,0,253,255,255,255,248,255,255,255,243,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,247,255,255,255,247,255,255,255,247,255,255,255,247,255,255,255,247,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,252,255,255,255,246,255,255,255,242,255,255,255,240,255,255,255,242,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,245,255,255,255,245,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,255,255,255,244,255,255,255,242,255,255,255,240,255,255,255,241,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,254,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,244,255,255,255,243,255,255,255,242,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,251,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,243,255,255,255,243,255,255,255,243,255,255,255,246,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,243,255,255,255,245,255,255,255,246,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,243,255,255,255,245,255,255,255,246,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,248,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,253,255,255,255,248,255,255,255,243,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,255,255,255,246,255,255,255,242,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,245,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,250,255,255,255,244,255,255,255,242,255,255,255,240,255,255,255,241,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,254,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,244,255,255,255,243,255,255,255,242,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,250,255,255,255,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,243,255,255,255,243,255,255,255,243,255,255,255,246,255,255,255,252,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,243,255,255,255,245,255,255,255,246,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,243,255,255,255,245,255,255,255,246,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,248,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,3,0,0,0,3,0,0,0,15,0,0,0,3,0,0,0,3,0,0,0,15,0,0,0,10,0,0,0,10,0,0,0,100,0,0,0,10,0,0,0,10,0,0,0,100,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,236,255,255,255,240,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,250,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,2,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,16,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,252,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,14,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,252,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,244,255,255,255,246,255,255,255,250,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,252,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,11,0,0,0,224,255,255,255,224,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,232,255,255,255,234,255,255,255,240,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,230,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,247,255,255,255,251,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,11,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,222,255,255,255,228,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,240,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,11,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,234,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,224,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,234,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,3,0,0,0,5,0,0,0,10,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,224,255,255,255,224,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,224,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,2,0,0,0,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,222,255,255,255,224,255,255,255,224,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,224,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,244,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,221,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,236,255,255,255,240,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,254,255,255,255,2,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,2,0,0,0,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,16,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,14,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,244,255,255,255,246,255,255,255,250,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,2,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,224,255,255,255,224,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,232,255,255,255,234,255,255,255,240,255,255,255,244,255,255,255,250,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,0,0,0,0,4,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,230,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,251,255,255,255,253,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,253,255,255,255,255,255,255,255,4,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,230,255,255,255,236,255,255,255,240,255,255,255,243,255,255,255,243,255,255,255,243,255,255,255,243,255,255,255,243,255,255,255,245,255,255,255,248,255,255,255,250,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,240,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,251,255,255,255,253,255,255,255,1,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,234,255,255,255,238,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,11,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,240,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,249,255,255,255,251,255,255,255,254,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,222,255,255,255,228,255,255,255,234,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,242,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,2,0,0,0,6,0,0,0,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,222,255,255,255,224,255,255,255,224,255,255,255,232,255,255,255,240,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,251,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,224,255,255,255,230,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,238,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,221,255,255,255,226,255,255,255,231,255,255,255,231,255,255,255,231,255,255,255,231,255,255,255,231,255,255,255,231,255,255,255,241,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,236,255,255,255,240,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,250,255,255,255,252,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,10,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,10,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,1,0,0,0,4,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,10,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,3,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,249,255,255,255,252,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,8,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,0,0,0,0,2,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,252,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,255,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,255,255,255,255,1,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,252,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,255,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,224,255,255,255,224,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,232,255,255,255,234,255,255,255,240,255,255,255,244,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,253,255,255,255,255,255,255,255,0,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,247,255,255,255,251,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,255,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,224,255,255,255,224,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,251,255,255,255,254,255,255,255,0,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,234,255,255,255,237,255,255,255,237,255,255,255,237,255,255,255,237,255,255,255,238,255,255,255,239,255,255,255,240,255,255,255,244,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,255,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,224,255,255,255,224,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,240,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,234,255,255,255,236,255,255,255,241,255,255,255,246,255,255,255,248,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,7,0,0,0,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,249,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,222,255,255,255,226,255,255,255,228,255,255,255,230,255,255,255,232,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,2,0,0,0,218,255,255,255,218,255,255,255,218,255,255,255,218,255,255,255,220,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,240,255,255,255,244,255,255,255,246,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,218,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,228,255,255,255,236,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,221,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,236,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,20,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,246,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0,15,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,10,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,252,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,10,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,1,0,0,0,4,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4],"i8",O3,_.GLOBAL_BASE+107456),C3([4,0,0,0,5,0,0,0,6,0,0,0,10,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,3,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,252,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,8,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,0,0,0,0,2,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,251,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,252,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,255,255,255,255,1,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,249,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,252,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,240,255,255,255,244,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,253,255,255,255,255,255,255,255,0,0,0,0,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,247,255,255,255,248,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,252,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,251,255,255,255,254,255,255,255,0,0,0,0,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,238,255,255,255,240,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,243,255,255,255,243,255,255,255,244,255,255,255,246,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,252,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,0,0,0,0,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,237,255,255,255,237,255,255,255,237,255,255,255,237,255,255,255,238,255,255,255,239,255,255,255,240,255,255,255,244,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,7,0,0,0,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,236,255,255,255,240,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,230,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,240,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,2,0,0,0,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,234,255,255,255,238,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,249,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,236,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,17,0,0,0,17,0,0,0,18,0,0,0,18,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,14,0,0,0,14,0,0,0,14,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,16,0,0,0,16,0,0,0,17,0,0,0,17,0,0,0,17,0,0,0,18,0,0,0,18,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,7,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,205,204,204,204,204,204,244,63,154,153,153,153,153,153,249,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,12,64,0,0,0,0,0,0,16,64,0,0,0,0,0,0,16,64,51,51,51,51,51,51,17,64,102,102,102,102,102,102,18,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,32,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,32,0,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,0,0,0,0,0,1,0,0,128,0,0,0,128,0,0,0,0,1,0,0,0,2,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,154,153,153,153,153,153,201,63,154,153,153,153,153,153,201,63,154,153,153,153,153,153,201,63,154,153,153,153,153,153,217,63,51,51,51,51,51,51,227,63,0,0,0,0,128,135,195,64,0,0,0,0,128,135,195,64,0,0,0,0,128,135,195,64,0,0,0,0,128,135,195,64,0,0,0,0,128,135,195,64,0,0,0,0,128,135,195,64,156,255,255,255,156,255,255,255,156,255,255,255,156,255,255,255,156,255,255,255,156,255,255,255,151,255,255,255,151,255,255,255,151,255,255,255,151,255,255,255,146,255,255,255,136,255,255,255,126,255,255,255,126,255,255,255,126,255,255,255,126,255,255,255,116,255,255,255,116,255,255,255,116,255,255,255,116,255,255,255,116,255,255,255,116,255,255,255,116,255,255,255,106,255,255,255,205,204,204,204,204,204,43,64,51,51,51,51,51,51,46,64,154,153,153,153,153,153,47,64,0,0,0,0,0,128,48,64,51,51,51,51,51,51,49,64,102,102,102,102,102,230,50,64,154,153,153,153,153,25,52,64,0,0,0,0,0,0,72,64,0,0,0,0,0,56,143,64,0,0,0,0,0,56,143,64,0,0,0,0,0,56,143,64,0,0,0,0,0,56,143,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,248,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,4,64,154,153,153,153,153,153,5,64,0,0,0,0,0,0,8,64,154,153,153,153,153,153,13,64,0,0,0,0,0,0,16,64,0,0,0,0,0,0,16,64,248,148,2,0,40,149,2,0,88,149,2,0,0,0,0,0,8,181,0,0,224,217,1,0,8,181,0,0,32,218,1,0,8,181,0,0,96,218,1,0,8,181,0,0,160,218,1,0,8,181,0,0,224,218,1,0,8,181,0,0,32,219,1,0,8,181,0,0,96,219,1,0,8,181,0,0,160,219,1,0,8,181,0,0,224,219,1,0,8,181,0,0,32,220,1,0,8,181,0,0,96,220,1,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,232,133,2,0,232,133,2,0,16,134,2,0,16,134,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,208,134,2,0,208,134,2,0,16,134,2,0,16,134,2,0,1,0,0,0,0,0,0,0,16,0,0,0,240,233,0,0,216,118,2,0,216,118,2,0,0,119,2,0,0,119,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,192,119,2,0,192,119,2,0,0,119,2,0,0,119,2,0,1,0,0,0,0,0,0,0,16,0,0,0,240,233,0,0,0,106,2,0,0,106,2,0,40,106,2,0,40,106,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,232,106,2,0,232,106,2,0,40,106,2,0,40,106,2,0,1,0,0,0,0,0,0,0,16,0,0,0,240,233,0,0,0,93,2,0,0,93,2,0,40,93,2,0,40,93,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,232,93,2,0,232,93,2,0,40,93,2,0,40,93,2,0,1,0,0,0,0,0,0,0,16,0,0,0,240,233,0,0,56,79,2,0,56,79,2,0,96,79,2,0,96,79,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,32,80,2,0,32,80,2,0,96,79,2,0,96,79,2,0,1,0,0,0,0,0,0,0,16,0,0,0,240,233,0,0,8,65,2,0,8,65,2,0,48,65,2,0,48,65,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,240,65,2,0,240,65,2,0,48,65,2,0,48,65,2,0,1,0,0,0,0,0,0,0,16,0,0,0,88,206,0,0,56,48,2,0,56,48,2,0,96,48,2,0,96,48,2,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,32,49,2,0,32,49,2,0,96,48,2,0,96,48,2,0,1,0,0,0,0,0,0,0,16,0,0,0,88,206,0,0,40,31,2,0,40,31,2,0,80,31,2,0,80,31,2,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,16,32,2,0,16,32,2,0,80,31,2,0,80,31,2,0,1,0,0,0,0,0,0,0,16,0,0,0,88,206,0,0,64,15,2,0,64,15,2,0,104,15,2,0,104,15,2,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,40,16,2,0,40,16,2,0,104,15,2,0,104,15,2,0,1,0,0,0,0,0,0,0,16,0,0,0,160,220,1,0,208,251,1,0,208,251,1,0,248,251,1,0,248,251,1,0,1,0,0,0,0,0,0,0,32,0,0,0,160,220,1,0,184,252,1,0,184,252,1,0,248,251,1,0,248,251,1,0,1,0,0,0,0,0,0,0,16,0,0,0,160,220,1,0,184,231,1,0,184,231,1,0,224,231,1,0,224,231,1,0,1,0,0,0,0,0,0,0,32,0,0,0,160,220,1,0,160,232,1,0,160,232,1,0,224,231,1,0,224,231,1,0,0,0,0,0,255,255,255,255,255,255,255,255,10,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+117696),C3([1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,71,0,0,0,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,104,251,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,233,1,0,0,0,0,0,0,0,0,0,0,0,0,0,88,233,1,0,0,0,0,0,0,0,0,0,0,0,0,0,128,233,1,0,0,0,0,0,0,0,0,0,0,0,0,0,168,233,1,0,0,0,0,0,208,233,1,0,248,233,1,0,0,0,0,0,0,0,0,0,32,234,1,0,72,234,1,0,0,0,0,0,0,0,0,0,112,234,1,0,152,234,1,0,0,0,0,0,0,0,0,0,192,234,1,0,232,234,1,0,0,0,0,0,0,0,0,0,16,235,1,0,56,235,1,0,96,235,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,200,232,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,9,13,13,14,15,14,14,15,15,5,5,9,10,12,12,13,14,16,15,10,6,6,6,8,11,12,13,16,15,11,7,5,3,5,8,10,12,15,15,10,10,7,4,3,5,8,10,12,12,12,12,9,7,5,4,6,8,10,13,13,12,11,9,7,5,5,6,9,12,14,12,12,10,8,6,6,6,7,11,13,12,14,13,10,8,7,7,7,10,11,11,12,13,12,11,10,8,8,9,0,0,0,0,4,0,0,0,81,0,0,0,0,251,1,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,88,251,1,0,0,0,0,0,4,0,0,0,113,2,0,0,112,248,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,250,1,0,0,0,0,0,2,0,0,0,81,0,0,0,240,247,1,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,72,248,1,0,0,0,0,0,2,0,0,0,33,1,0,0,128,246,1,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,168,247,1,0,0,0,0,0,4,0,0,0,81,0,0,0,24,246,1,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,112,246,1,0,0,0,0,0,2,0,0,0,121,0,0,0,104,245,1,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,232,245,1,0,0,0,0,0,2,0,0,0,169,0,0,0,128,244,1,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,48,245,1,0,0,0,0,0,2,0,0,0,25,0,0,0,72,244,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,104,244,1,0,0,0,0,0,2,0,0,0,169,0,0,0,96,243,1,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,16,244,1,0,0,0,0,0,2,0,0,0,121,0,0,0,176,242,1,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,48,243,1,0,0,0,0,0,2,0,0,0,225,0,0,0,136,241,1,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,112,242,1,0,0,0,0,0,2,0,0,0,185,1,0,0,112,239,1,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,48,241,1,0,0,0,0,0,2,0,0,0,225,0,0,0,72,238,1,0,1,0,0,0,0,117,153,225,0,24,61,97,4,0,0,0,0,0,0,0,48,239,1,0,0,0,0,0,2,0,0,0,105,1,0,0,136,236,1,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,248,237,1,0,0,0,0,0,1,0,0,0,49,0,0,0,136,235,1,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,192,235,1,0,0,0,0,0,2,4,4,5,4,5,5,5,5,6,6,6,6,6,6,6,6,6,6,7,6,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,8,7,8,7,9,8,10,9,10,10,11,11,12,12,4,7,6,9,9,10,9,9,8,10,10,11,10,12,10,13,12,13,12,4,6,6,9,9,9,9,9,9,10,10,11,11,11,12,12,12,12,12,7,9,8,11,10,10,10,11,10,11,11,12,12,13,12,13,13,13,13,7,8,9,10,10,11,11,10,10,11,11,11,12,13,13,13,13,14,14,8,9,9,11,11,12,11,12,12,13,12,12,13,13,14,15,14,14,14,8,9,9,10,11,11,11,12,12,13,12,13,13,14,14,14,15,14,16,8,9,9,11,10,12,12,12,12,15,13,13,13,17,14,15,15,15,14,8,9,9,10,11,11,12,13,12,13,13,13,14,15,14,14,14,16,15,9,11,10,12,12,13,13,13,13,14,14,16,15,14,14,14,15,15,17,9,10,10,11,11,13,13,13,14,14,13,15,14,15,14,15,16,15,16,10,11,11,12,12,13,14,15,14,15,14,14,15,17,16,15,15,17,17,10,12,11,13,12,14,14,13,14,15,15,15,15,16,17,17,15,17,16,11,12,12,14,13,15,14,15,16,17,15,17,15,17,15,15,16,17,15,11,11,12,14,14,14,14,14,15,15,16,15,17,17,17,16,17,16,15,12,12,13,14,14,14,15,14,15,15,16,16,17,16,17,15,17,17,16,12,14,12,14,14,15,15,15,14,14,16,16,16,15,16,16,15,17,15,12,13,13,14,15,14,15,17,15,17,16,17,17,17,16,17,16,17,17,12,13,13,14,16,15,15,15,16,15,17,17,15,17,15,17,16,16,17,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,3,3,11,11,11,11,11,11,11,11,11,11,11,11,4,10,11,11,11,11,11,11,11,11,11,11,11,11,11,4,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,4,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,6,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,6,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,8,8,8,9,9,9,9,9,9,9,9,9,9,10,9,10,9,10,10,10,10,8,8,8,9,9,9,9,9,9,9,9,9,9,10,10,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,8,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,8,9,9,10,9,11,10,4,6,6,8,8,9,9,9,9,10,10,11,10,12,10,4,6,6,8,8,9,10,9,9,10,10,11,11,12,12,7,8,8,10,10,11,11,10,10,11,11,12,12,13,12,7,8,8,10,10,11,11,10,10,11,11,12,12,12,13,8,10,9,11,11,12,12,11,11,12,12,13,13,14,13,8,9,9,11,11,12,12,11,12,12,12,13,13,14,13,8,9,9,10,10,12,11,13,12,13,13,14,13,15,14,8,9,9,10,10,11,12,12,12,13,13,13,14,14,14,9,10,10,12,11,13,12,13,13,14,13,14,14,14,15,9,10,10,11,12,12,12,13,13,14,14,14,15,15,15,10,11,11,12,12,13,13,14,14,14,14,15,14,16,15,10,11,11,12,12,13,13,13,14,14,14,14,14,15,16,11,12,12,13,13,14,13,14,14,15,14,15,16,16,16,11,12,12,13,13,14,13,14,14,15,15,15,16,15,15,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,5,6,6,7,7,7,7,7,7,7,7,6,6,6,7,7,7,7,7,7,7,7,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,7,7,7,7,7,7,7,8,7,8,8,7,7,7,7,7,7,7,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,5,6,6,7,7,8,9,10,10,11,11,5,6,6,7,7,8,8,9,9,10,10,11,11,5,6,6,7,7,8,8,9,9,10,10,11,11,6,7,7,8,8,9,9,10,10,11,11,12,12,6,7,7,8,8,9,9,10,10,11,11,12,12,8,8,8,9,9,10,10,11,11,12,12,13,13,8,8,8,9,9,10,10,11,11,12,12,13,13,9,9,9,10,10,11,11,12,12,13,13,13,13,9,9,9,10,10,11,11,12,12,13,13,14,14,10,10,10,11,11,12,12,13,13,14,13,15,14,10,10,10,11,11,12,12,13,13,14,14,14,14,11,11,12,12,12,13,13,14,14,14,14,15,15,11,11,12,12,12,13,13,14,14,14,15,15,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,4,4,4,5,5,4,5,4,5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,9,9,10,10,4,6,5,7,7,8,8,8,8,9,9,10,10,4,5,6,7,7,8,8,8,8,9,9,10,10,6,7,7,8,8,8,8,9,9,10,10,10,10,6,7,7,8,8,8,8,9,9,10,10,10,10,7,8,8,8,8,9,9,9,9,10,10,11,11,7,8,8,8,8,9,9,9,9,10,10,11,11,8,8,8,9,9,9,9,9,10,10,10,11,11,8,8,8,9,9,9,9,10,9,10,10,11,11,9,9,9,10,10,10,10,10,11,11,11,11,12,9,9,9,10,10,10,10,10,10,11,10,12,11,10,10,10,10,10,11,11,11,11,11,12,12,12,10,10,10,10,10,11,11,11,11,12,11,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,5,5,5,6,6,7,7,7,7,7,7,5,6,6,6,6,7,7,7,7,8,7,5,6,6,6,6,7,7,7,7,7,7,6,6,6,7,7,7,7,7,7,8,8,6,6,6,7,7,7,7,7,7,8,8,7,7,7,7,7,8,7,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,8,7,8,8,8,8,8,8,7,7,7,7,8,8,8,8,8,8,8,7,8,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,8,8,9,9,7,9,9,5,8,8,7,9,9,8,9,9,5,8,8,8,10,10,8,10,10,7,10,10,9,10,12,9,11,11,7,10,10,9,11,10,9,11,12,5,8,8,8,10,10,8,10,10,7,10,10,9,12,11,9,10,11,7,10,10,9,11,11,10,12,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,5,5,6,6,7,7,8,8,8,8,9,9,10,10,11,11,5,5,5,6,6,7,7,8,8,8,8,9,9,10,10,11,11,5,5,5,6,6,7,7,8,8,8,8,9,9,10,10,11,11,6,6,6,7,6,7,7,8,8,9,9,10,10,11,11,12,11,6,6,6,6,7,7,7,8,8,9,9,10,10,11,11,11,12,7,7,7,7,7,8,8,9,9,9,9,10,10,11,11,12,12,7,7,7,7,7,8,8,9,9,9,9,10,10,11,11,12,12,8,8,8,8,8,9,8,10,9,10,10,11,10,12,11,13,12,8,8,8,8,8,9,9,9,10,10,10,10,11,11,12,12,12,8,8,8,9,9,9,9,10,10,11,10,12,11,12,12,13,12,8,8,8,9,9,9,9,10,10,10,11,11,11,12,12,12,13,9,9,9,10,10,10,10,11,10,11,11,12,11,13,12,13,13,9,9,10,10,10,10,10,10,11,11,11,11,12,12,13,13,13,10,11,10,11,11,11,11,12,11,12,12,13,12,13,13,14,13,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,11,11,11,12,11,12,12,12,12,13,13,13,13,14,13,14,14,11,11,11,11,12,12,12,12,12,12,13,13,13,13,14,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,3,4,4,5,5,7,7,8,8,4,5,5,6,6,7,7,9,9,4,4,5,6,6,7,7,9,9,5,6,6,7,7,8,8,9,9,5,6,6,7,7,8,8,9,9,7,7,7,8,8,9,9,10,10,7,7,7,8,8,9,9,10,10,8,9,9,10,9,10,10,11,11,8,9,9,9,10,10,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,5,7,7,9,9,6,7,7,9,9,8,9,9,11,10,8,9,9,11,11,6,7,7,9,9,7,8,8,10,10,7,8,8,9,10,9,10,10,11,11,9,9,10,11,11,6,7,7,9,9,7,8,8,10,9,7,8,8,10,10,9,10,9,11,11,9,10,10,11,11,8,9,9,11,11,9,10,10,12,11,9,10,10,11,12,11,11,11,13,13,11,11,11,12,13,8,9,9,11,11,9,10,10,11,11,9,10,10,12,11,11,12,11,13,12,11,11,12,13,13,6,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,11,9,10,10,11,12,7,8,8,10,10,8,9,9,11,11,8,9,9,10,10,10,11,11,12,12,10,10,11,12,12,7,8,8,10,10,8,9,8,10,10,8,9,9,10,10,10,11,10,12,11,10,10,11,12,12,9,10,10,11,12,10,11,11,12,12,10,11,10,12,12,12,12,12,13,13,11,12,12,13,13,9,10,10,11,11,9,10,10,12,12,10,11,11,12,13,11,12,11,13,12,12,12,12,13,14,6,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,11,11,9,10,10,11,12,7,8,8,10,10,8,9,9,11,10,8,8,9,10,10,10,11,10,12,12,10,10,11,11,12,7,8,8,10,10,8,9,9,10,10,8,9,9,10,10,10,11,10,12,12,10,11,10,12,12,9,10,10,12,11,10,11,11,12,12,9,10,10,12,12,12,12,12,13,13,11,11,12,12,14,9,10,10,11,12,10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,12,12,12,13,13,8,9,9,11,11,9,10,10,12,11,9,10,10,12,12,11,12,11,13,13,11,11,12,13,13,9,10,10,12,12,10,11,11,12,12,10,11,11,12,12,12,12,12,14,14,12,12,12,13,13,9,10,10,12,11,10,11,10,12,12,10,11,11,12,12,11,12,12,14,13,12,12,12,13,14,11,12,11,13,13,11,12,12,13,13,12,12,12,14,14,13,13,13,13,15,13,13,14,15,15,11,11,11,13,13,11,12,11,13,13,11,12,12,13,13,12,13,12,15,13,13,13,14,14,15,8,9,9,11,11,9,10,10,11,12,9,10,10,11,12,11,12,11,13,13,11,12,12,13,13,9,10,10,11,12,10,11,10,12,12,10,10,11,12,13,12,12,12,14,13,11,12,12,13,14,9,10,10,12,12,10,11,11,12,12,10,11,11,12,12,12,12,12,14,13,12,12,12,14,13,11,11,11,13,13,11,12,12,14,13,11,11,12,13,13,13,13,13,15,14,12,12,13,13,15,11,12,12,13,13,12,12,12,13,14,11,12,12,13,13,13,13,14,14,15,13,13,13,14,14,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,5,7,7,5,7,7,5,7,7,7,9,9,7,9,9,5,7,7,7,9,9,7,9,9,5,7,7,7,9,9,7,9,9,8,9,9,9,10,11,9,11,11,7,9,9,9,11,10,9,11,11,5,7,7,7,9,9,8,9,10,7,9,9,9,11,11,9,10,11,7,9,10,9,11,11,9,11,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,16,18,18,17,17,17,17,17,17,5,8,11,12,11,12,17,17,16,16,6,6,8,8,9,10,14,15,16,16,6,7,7,4,6,9,13,16,16,16,6,6,7,4,5,8,11,15,17,16,7,6,7,6,6,8,9,10,14,16,11,8,8,7,6,6,3,4,10,15,14,12,12,10,5,6,3,3,8,13,15,17,15,11,6,8,6,6,9,14,17,15,15,12,8,10,9,9,12,15,0,0,0,0,2,0,0,0,100,0,0,0,216,14,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,253,1,0,0,0,0,0,0,0,0,0,0,0,0,0,112,253,1,0,0,0,0,0,0,0,0,0,0,0,0,0,152,253,1,0,0,0,0,0,0,0,0,0,0,0,0,0,192,253,1,0,0,0,0,0,232,253,1,0,16,254,1,0,0,0,0,0,0,0,0,0,56,254,1,0,96,254,1,0,0,0,0,0,0,0,0,0,136,254,1,0,176,254,1,0,0,0,0,0,0,0,0,0,216,254,1,0,0,255,1,0,0,0,0,0,0,0,0,0,40,255,1,0,80,255,1,0,120,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,224,252,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,9,13,14,14,15,14,14,15,15,5,4,6,8,10,12,12,14,15,15,9,5,4,5,8,10,11,13,16,16,10,7,4,3,5,7,9,11,13,13,10,9,7,4,4,6,8,10,12,14,13,11,9,6,5,5,6,8,12,14,13,11,10,8,7,6,6,7,10,14,13,11,12,10,8,7,6,6,9,13,12,11,14,12,11,9,8,7,9,11,11,12,14,13,14,11,10,8,8,9,0,0,0,0,4,0,0,0,81,0,0,0,112,14,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,200,14,2,0,0,0,0,0,4,0,0,0,113,2,0,0,224,11,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,14,2,0,0,0,0,0,2,0,0,0,81,0,0,0,96,11,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,184,11,2,0,0,0,0,0,2,0,0,0,33,1,0,0,240,9,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,24,11,2,0,0,0,0,0,4,0,0,0,81,0,0,0,136,9,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,224,9,2,0,0,0,0,0,2,0,0,0,121,0,0,0,216,8,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,88,9,2,0,0,0,0,0,2,0,0,0,169,0,0,0,240,7,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,160,8,2,0,0,0,0,0,2,0,0,0,25,0,0,0,184,7,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,216,7,2,0,0,0,0,0,2,0,0,0,169,0,0,0,208,6,2,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,128,7,2,0,0,0,0,0,2,0,0,0,121,0,0,0,32,6,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,160,6,2,0,0,0,0,0,2,0,0,0,225,0,0,0,248,4,2,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,224,5,2,0,0,0,0,0,2,0,0,0,185,1,0,0,224,2,2,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,160,4,2,0,0,0,0,0,2,0,0,0,81,0,0,0,96,2,2,0,1,0,0,0,0,24,125,225,0,24,61,97,4,0,0,0,0,0,0,0,184,2,2,0,0,0,0,0,2,0,0,0,105,1,0,0,160,0,2,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,16,2,2,0,0,0,0,0,1,0,0,0,49,0,0,0,160,255,1,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,216,255,1,0,0,0,0,0,2,3,4,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,8,7,8,6,9,7,10,8,11,10,11,11,11,11,4,7,6,9,9,10,9,9,9,10,10,11,10,11,10,11,11,13,11,4,7,7,9,9,9,9,9,9,10,10,11,10,11,11,11,12,11,12,7,9,8,11,11,11,11,10,10,11,11,12,12,12,12,12,12,14,13,7,8,9,10,11,11,11,10,10,11,11,11,11,12,12,14,12,13,14,8,9,9,11,11,11,11,11,11,12,12,14,12,15,14,14,14,15,14,8,9,9,11,11,11,11,12,11,12,12,13,13,13,13,13,13,14,14,8,9,9,11,10,12,11,12,12,13,13,13,13,15,14,14,14,16,16,8,9,9,10,11,11,12,12,12,13,13,13,14,14,14,15,16,15,15,9,10,10,11,12,12,13,13,13,14,14,16,14,14,16,16,16,16,15,9,10,10,11,11,12,13,13,14,15,14,16,14,15,16,16,16,16,15,10,11,11,12,13,13,14,15,15,15,15,15,16,15,16,15,16,15,15,10,11,11,13,13,14,13,13,15,14,15,15,16,15,15,15,16,15,16,10,12,12,14,14,14,14,14,16,16,15,15,15,16,16,16,16,16,16,11,12,12,14,14,14,14,15,15,16,15,16,15,16,15,16,16,16,16,12,12,13,14,14,15,16,16,16,16,16,16,15,16,16,16,16,16,16,12,13,13,14,14,14,14,15,16,15,16,16,16,16,16,16,16,16,16,12,13,14,14,14,16,15,16,15,16,16,16,16,16,16,16,16,16,16,12,14,13,14,15,15,15,16,15,16,16,15,16,16,16,16,16,16,16,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,3,3,9,9,9,9,9,9,4,9,9,9,9,9,9,9,9,5,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,6,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,5,6,6,7,7,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,10,9,10,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,10,9,10,10,9,10,8,9,8,9,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,8,9,8,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,9,10,10,9,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,7,9,8,10,9,11,10,4,6,6,8,8,10,9,9,9,10,10,11,10,12,10,4,6,6,8,8,10,10,9,9,10,10,11,11,11,12,7,8,8,10,10,11,11,11,10,12,11,12,12,13,11,7,8,8,10,10,11,11,10,10,11,11,12,12,13,13,8,10,10,11,11,12,11,12,11,13,12,13,12,14,13,8,10,9,11,11,12,12,12,12,12,12,13,13,14,13,8,9,9,11,10,12,11,13,12,13,13,14,13,14,13,8,9,9,10,11,12,12,12,12,13,13,14,15,14,14,9,10,10,12,11,13,12,13,13,14,13,14,14,14,14,9,10,10,12,12,12,12,13,13,14,14,14,15,14,14,10,11,11,13,12,13,12,14,14,14,14,14,14,15,15,10,11,11,12,12,13,13,14,14,14,15,15,14,16,15,11,12,12,13,12,14,14,14,13,15,14,15,15,15,17,11,12,12,13,13,14,14,14,15,15,14,15,15,14,17,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,4,5,5,6,6,7,7,7,7,7,7,5,6,6,7,7,7,7,7,7,7,7,5,6,6,7,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,8,8,6,7,7,7,7,7,7,7,7,7,8,7,7,7,7,7,7,7,8,8,8,8,7,7,7,7,7,7,7,8,8,8,8,7,7,7,8,7,8,8,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,5,6,6,7,7,8,8,10,10,11,11,5,6,6,7,7,8,8,9,9,11,10,12,11,5,6,6,7,7,8,8,9,9,10,11,11,12,6,7,7,8,8,9,9,10,10,11,11,12,12,6,7,7,8,8,9,9,10,10,11,12,13,12,7,8,8,9,9,10,10,11,11,12,12,13,13,8,8,8,9,9,10,10,11,11,12,12,13,13,9,9,9,10,10,11,11,12,12,13,13,14,14,9,9,9,10,10,11,11,12,12,13,13,14,14,10,11,11,12,11,13,12,13,13,14,14,15,15,10,11,11,11,12,12,13,13,14,14,14,15,15,11,12,12,13,13,14,13,15,14,15,15,16,15,11,11,12,13,13,13,14,14,14,15,15,15,16,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,4,4,5,5,4,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,9,9,10,10,4,6,5,7,7,8,8,8,8,9,9,10,10,4,6,6,7,7,8,8,8,8,9,9,10,10,6,7,7,7,8,8,8,8,9,9,10,10,10,6,7,7,8,8,8,8,9,8,10,9,11,10,7,8,8,8,8,8,9,9,9,10,10,11,11,7,8,8,8,8,9,8,9,9,10,10,11,11,8,8,8,9,9,9,9,9,10,10,10,11,11,8,8,8,9,9,9,9,10,9,10,10,11,11,9,9,9,9,10,10,10,10,10,10,11,11,12,9,9,9,10,9,10,10,10,10,11,10,12,11,10,10,10,10,10,11,11,11,11,11,12,12,12,10,10,10,10,11,11,11,11,11,12,11,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,4,5,5,6,6,7,7,7,7,8,8,5,5,5,6,6,7,7,8,8,8,8,5,5,5,6,6,7,7,7,8,8,8,6,6,6,7,7,7,7,8,8,8,8,6,6,6,7,7,7,7,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,8,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,8,8,8,8,8,8,8,8,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,8,8,9,9,7,9,9,5,8,8,7,9,9,8,9,9,5,8,8,8,10,10,8,10,10,7,10,10,9,10,12,9,12,11,7,10,10,9,11,10,9,11,12,5,8,8,8,10,10,8,10,10,7,10,10,9,11,11,9,10,11,7,10,10,9,11,11,10,12,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,4,4,6,6,7,7,8,8,8,8,10,10,11,11,11,11,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,6,6,6,7,7,8,8,9,9,9,9,10,10,11,11,12,12,6,6,6,7,7,8,8,9,9,9,9,10,10,11,11,12,12,7,7,7,8,8,9,8,10,9,10,9,11,10,12,11,13,12,7,7,7,8,8,8,9,9,10,9,10,10,11,11,12,12,13,8,8,8,9,9,9,9,10,10,11,10,11,11,12,12,13,13,8,8,8,9,9,9,10,10,10,10,11,11,11,12,12,12,13,8,9,9,9,9,10,9,11,10,11,11,12,11,13,12,13,13,8,9,9,9,9,9,10,10,11,11,11,11,12,12,13,13,13,10,10,10,10,10,11,10,11,11,12,11,13,12,13,13,14,13,10,10,10,10,10,10,11,11,11,11,12,12,13,13,13,13,14,11,11,11,11,11,12,11,12,12,13,12,13,13,14,13,14,14,11,11,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,11,12,12,12,12,13,12,13,12,13,13,14,13,14,14,14,14,11,12,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,3,4,4,5,5,7,7,9,9,4,5,4,6,6,7,7,9,9,4,4,5,6,6,7,7,9,9,5,6,6,7,7,8,8,10,10,6,6,6,7,7,8,8,10,10,7,7,7,8,8,9,9,11,10,7,7,7,8,8,9,9,10,11,9,9,9,10,10,11,10,12,11,9,9,9,9,10,11,11,11,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,5,7,6,9,9,5,6,7,9,9,8,9,9,11,11,8,9,9,11,11,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,9,10,10,11,12,5,7,7,9,9,7,8,7,10,10,7,8,8,10,10,9,10,9,12,11,9,10,10,12,12,8,9,9,12,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,14,11,11,12,13,14,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,11,13,13,11,12,12,14,14,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,9,10,10,11,12,7,8,8,10,10,8,9,9,11,11,8,9,9,11,11,10,11,11,12,13,10,11,11,12,13,6,8,8,10,10,8,9,8,11,10,8,9,9,11,11,10,11,10,13,12,10,11,11,13,13,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,12,13,13,14,12,13,13,14,14,9,10,10,12,12,10,11,10,13,12,10,11,11,13,13,11,13,12,14,13,12,13,13,14,14,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,9,10,10,12,12,7,8,8,10,10,8,9,9,11,11,8,8,9,10,11,10,11,11,13,13,10,10,11,12,13,7,8,8,10,10,8,9,9,11,11,8,9,9,11,11,10,11,11,13,13,10,11,11,13,12,9,10,10,12,12,10,11,11,13,13,10,10,11,12,13,12,13,13,14,14,12,12,13,13,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,15,14,12,13,13,14,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,12,12,12,14,13,11,12,12,14,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,14,15,12,13,13,14,15,9,10,10,12,12,10,11,10,13,12,10,11,11,13,13,12,13,12,15,14,12,13,13,14,15,11,12,12,14,14,12,13,13,14,14,12,13,13,15,14,14,14,14,14,16,14,14,15,16,16,11],"i8",O3,_.GLOBAL_BASE+124340),C3([12,12,14,14,11,12,12,14,14,12,13,13,14,15,13,14,13,16,14,14,14,14,16,16,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,12,12,14,14,9,10,10,12,12,10,11,11,13,13,10,10,11,12,13,12,13,13,15,14,12,12,13,13,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,14,14,12,13,13,15,14,11,12,12,14,13,12,13,13,15,14,11,12,12,13,14,14,15,14,16,15,13,13,14,13,16,11,12,12,14,14,12,13,13,14,15,12,13,12,15,14,14,14,14,16,15,14,15,13,16,14,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,5,7,7,5,7,7,5,7,7,8,9,9,7,9,9,5,7,7,7,9,9,8,9,9,5,7,7,7,9,9,7,9,9,7,9,9,9,10,11,9,11,10,7,9,9,9,11,10,9,10,11,5,7,7,7,9,9,7,9,9,7,9,9,9,11,10,9,10,10,8,9,9,9,11,11,9,11,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,6,14,18,18,17,17,17,17,17,17,4,7,9,9,10,13,15,17,17,17,6,7,5,6,8,11,16,17,16,17,5,7,5,4,6,10,14,17,17,17,6,6,6,5,7,10,13,16,17,17,7,6,7,7,7,8,7,10,15,16,12,9,9,6,6,5,3,5,11,15,14,14,13,5,5,7,3,4,8,15,17,17,13,7,7,10,6,6,10,15,17,17,16,10,11,14,10,10,15,17,0,0,0,0,2,0,0,0,100,0,0,0,192,30,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,16,2,0,0,0,0,0,0,0,0,0,0,0,0,0,224,16,2,0,0,0,0,0,0,0,0,0,0,0,0,0,8,17,2,0,0,0,0,0,0,0,0,0,0,0,0,0,48,17,2,0,0,0,0,0,0,0,0,0,0,0,0,0,88,17,2,0,0,0,0,0,0,0,0,0,0,0,0,0,128,17,2,0,0,0,0,0,168,17,2,0,208,17,2,0,0,0,0,0,0,0,0,0,248,17,2,0,32,18,2,0,0,0,0,0,0,0,0,0,72,18,2,0,112,18,2,0,152,18,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,80,16,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,9,14,13,15,14,16,13,13,14,5,5,7,7,8,9,11,10,12,15,10,6,5,6,6,9,10,10,13,16,10,6,6,6,6,8,9,9,12,15,14,7,6,6,5,6,6,8,12,15,10,8,7,7,6,7,7,7,11,13,14,10,9,8,5,6,4,5,9,12,10,9,9,8,6,6,5,3,6,11,12,11,12,12,10,9,8,5,5,8,10,11,15,13,13,13,12,8,6,7,0,0,0,0,4,0,0,0,81,0,0,0,88,30,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,176,30,2,0,0,0,0,0,4,0,0,0,81,0,0,0,240,29,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,72,30,2,0,0,0,0,0,4,0,0,0,113,2,0,0,96,27,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,216,29,2,0,0,0,0,0,4,0,0,0,113,2,0,0,208,24,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,72,27,2,0,0,0,0,0,2,0,0,0,81,0,0,0,80,24,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,168,24,2,0,0,0,0,0,2,0,0,0,81,0,0,0,208,23,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,40,24,2,0,0,0,0,0,4,0,0,0,81,0,0,0,104,23,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,192,23,2,0,0,0,0,0,2,0,0,0,121,0,0,0,184,22,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,56,23,2,0,0,0,0,0,2,0,0,0,121,0,0,0,8,22,2,0,1,0,0,0,0,128,187,224,0,0,118,96,4,0,0,0,0,0,0,0,136,22,2,0,0,0,0,0,2,0,0,0,121,0,0,0,88,21,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,216,21,2,0,0,0,0,0,2,0,0,0,121,0,0,0,168,20,2,0,1,0,0,0,0,226,120,225,0,232,51,97,4,0,0,0,0,0,0,0,40,21,2,0,0,0,0,0,2,0,0,0,169,0,0,0,192,19,2,0,1,0,0,0,0,96,18,225,0,128,184,96,4,0,0,0,0,0,0,0,112,20,2,0,0,0,0,0,1,0,0,0,49,0,0,0,192,18,2,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,248,18,2,0,0,0,0,0,2,4,4,4,4,5,5,5,5,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,6,5,8,6,9,8,10,9,11,10,4,6,6,8,8,9,9,11,10,11,11,11,11,4,6,6,8,8,10,9,11,11,11,11,11,12,6,8,8,10,10,11,11,12,12,13,12,13,13,6,8,8,10,10,11,11,12,12,12,13,14,13,8,10,10,11,11,12,13,14,14,14,14,15,15,8,10,10,11,12,12,13,13,14,14,14,14,15,9,11,11,13,13,14,14,15,14,16,15,17,15,9,11,11,12,13,14,14,15,14,15,15,15,16,10,12,12,13,14,15,15,15,15,16,17,16,17,10,13,12,13,14,14,16,16,16,16,15,16,17,11,13,13,14,15,14,17,15,16,17,17,17,17,11,13,13,14,15,15,15,15,17,17,16,17,16,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,10,10,10,10,10,10,10,10,4,10,10,10,10,10,10,10,10,10,10,4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,4,5,5,6,6,7,7,7,7,7,7,5,6,6,7,7,7,7,7,7,7,7,5,6,6,6,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,8,8,6,7,7,7,7,7,7,7,7,8,8,7,7,7,7,7,8,7,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,10,11,11,4,6,6,7,7,9,9,11,10,12,12,5,6,5,7,7,9,9,10,11,12,12,6,7,7,8,8,10,10,11,11,13,13,6,7,7,8,8,10,10,11,12,13,13,8,9,9,10,10,11,11,12,12,14,14,8,9,9,10,10,11,11,12,12,14,14,10,10,10,11,11,13,12,14,14,15,15,10,10,10,12,12,13,13,14,14,15,15,11,12,12,13,13,14,14,15,14,16,15,11,12,12,13,13,14,14,15,15,15,16,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,3,4,4,6,6,7,7,8,8,8,8,4,5,5,6,6,8,7,8,8,8,8,4,5,5,6,6,7,8,8,8,8,8,6,7,6,7,7,8,8,9,9,9,9,6,6,7,7,7,8,8,9,9,9,9,7,8,7,8,8,9,9,9,9,9,9,7,7,8,8,8,9,9,9,9,9,9,8,8,8,9,9,9,9,10,9,9,9,8,8,8,9,9,9,9,9,9,9,10,8,8,8,9,9,9,9,10,9,10,10,8,8,8,9,9,9,9,9,10,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,9,8,8,9,9,7,10,10,5,8,9,7,9,10,8,9,9,4,9,9,9,11,10,8,10,10,7,11,10,10,10,12,10,12,12,7,10,10,10,12,11,10,12,12,5,9,9,8,10,10,9,11,11,7,11,10,10,12,12,10,11,12,7,10,11,10,12,12,10,12,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,7,7,9,9,4,5,4,6,6,8,7,9,9,4,4,5,6,6,7,7,9,9,5,6,6,7,7,8,8,10,10,5,6,6,7,7,8,8,10,10,7,8,7,8,8,10,9,11,11,7,7,8,8,8,9,10,11,11,9,9,9,10,10,11,10,12,11,9,9,9,10,10,11,11,11,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,7,8,10,10,4,5,5,8,7,8,8,11,11,3,5,5,7,7,8,9,11,11,6,8,7,9,9,10,10,12,12,6,7,8,9,10,10,10,12,12,8,8,8,10,10,12,11,13,13,8,8,9,10,10,11,11,13,13,10,11,11,12,12,13,13,14,14,10,11,11,12,12,13,13,14,14,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,6,7,6,9,9,6,6,7,9,9,8,9,9,11,11,8,9,9,10,11,6,7,7,9,9,7,8,8,10,10,6,7,8,9,10,9,10,10,12,12,9,9,10,11,12,6,7,7,9,9,6,8,7,10,9,7,8,8,10,10,9,10,9,12,11,9,10,10,12,11,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,13,14,11,11,12,13,13,8,9,9,11,11,9,10,10,12,11,9,10,10,12,12,11,12,11,13,13,11,12,12,13,13,6,7,7,9,9,7,8,7,10,10,7,7,8,10,10,9,10,10,12,11,9,10,10,12,12,7,8,8,10,10,8,8,9,11,11,8,9,9,11,11,10,11,11,12,12,10,10,11,12,13,6,7,7,10,10,7,9,8,11,10,8,8,9,10,11,10,11,10,13,11,10,11,11,12,12,9,10,10,12,12,10,10,11,13,13,10,11,11,13,12,12,12,13,13,14,12,12,13,14,14,9,10,10,12,12,9,10,10,12,12,10,11,11,13,13,11,12,11,14,12,12,13,13,14,14,6,7,7,9,9,7,8,7,10,10,7,7,8,10,10,9,10,10,12,11,9,10,10,11,12,6,7,7,10,10,8,9,8,11,10,7,8,9,10,11,10,11,11,13,12,10,10,11,11,13,7,8,8,10,10,8,9,9,11,11,8,9,9,11,11,10,11,10,13,12,10,11,11,12,12,9,10,10,12,12,10,11,11,13,12,9,10,10,12,13,12,13,12,14,14,11,11,12,12,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,12,14,14,12,13,12,14,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,12,12,13,13,9,10,10,12,12,10,11,11,13,13,10,11,11,13,12,12,13,13,14,14,12,12,13,14,14,9,10,10,12,12,9,11,10,13,12,10,10,11,12,13,11,13,12,14,13,12,12,13,14,14,11,12,12,13,13,11,12,13,14,14,12,13,13,14,14,13,13,14,14,16,13,14,14,16,16,11,11,11,13,13,11,12,11,14,13,12,12,13,14,15,13,14,12,16,13,14,14,14,15,16,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,12,12,13,14,9,10,10,12,12,10,11,10,13,12,9,10,11,12,13,12,13,12,14,14,12,12,13,13,14,9,10,10,12,12,10,11,11,12,13,10,11,11,13,13,12,13,12,14,14,12,13,13,14,14,11,12,12,13,13,12,13,12,14,14,11,11,12,13,14,13,15,14,16,15,13,12,14,13,16,11,12,12,13,13,12,13,13,14,14,12,12,12,14,14,13,14,14,15,15,13,14,13,16,14,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,4,8,8,5,7,6,9,9,5,6,7,9,9,8,9,9,13,12,8,9,10,12,13,5,7,7,10,9,7,9,9,11,11,6,8,9,11,11,10,11,11,14,14,9,10,11,13,14,5,7,7,9,9,7,9,8,11,11,7,9,9,11,11,9,11,10,14,13,10,11,11,14,14,8,10,10,14,13,10,11,12,15,14,9,11,11,15,14,13,14,14,16,16,12,13,14,17,16,8,10,10,13,13,9,11,11,14,15,10,11,12,14,15,12,14,13,16,16,13,14,15,15,17,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,12,11,15,14,10,11,12,14,14,7,9,9,12,12,9,11,11,13,13,9,11,11,13,13,11,13,13,14,17,11,13,13,15,16,6,9,9,11,11,8,11,10,13,12,9,11,11,13,13,11,13,12,16,14,11,13,13,16,16,10,12,12,15,15,11,13,13,16,16,11,13,13,16,15,14,16,17,17,19,14,16,16,18,0,9,11,11,14,15,10,13,12,16,15,11,13,13,16,16,14,15,14,0,16,14,16,16,18,0,5,7,7,10,10,7,9,9,12,11,7,9,9,11,12,10,11,11,15,14,10,11,12,14,14,6,9,9,11,11,9,11,11,13,13,8,10,11,12,13,11,13,13,17,15,11,12,13,14,15,7,9,9,11,12,9,11,11,13,13,9,11,11,13,13,11,13,12,16,16,11,13,13,15,14,9,11,11,14,15,11,13,13,16,15,10,12,13,16,16,15,16,16,0,0,14,13,15,16,18,10,11,11,15,15,11,13,14,16,18,11,13,13,16,15,15,16,16,19,0,14,15,15,16,16,8,10,10,13,13,10,12,11,16,15,10,11,11,16,15,13,15,16,18,0,13,14,15,17,17,9,11,11,15,15,11,13,13,16,18,11,13,13,16,17,15,16,16,0,0,15,18,16,0,17,9,11,11,15,15,11,13,12,17,15,11,13,14,16,17,15,18,15,0,17,15,16,16,18,19,13,15,14,0,18,14,16,16,19,18,14,16,15,19,19,16,18,19,0,0,16,17,0,0,0,12,14,14,17,17,13,16,14,0,18,14,16,15,18,0,16,18,16,19,17,18,19,17,0,0,8,10,10,14,14,9,12,11,15,15,10,11,12,15,17,13,15,15,18,16,14,16,15,18,17,9,11,11,16,15,11,13,13,0,16,11,12,13,16,15,15,16,16,0,17,15,15,16,18,17,9,12,11,15,17,11,13,13,16,16,11,14,13,16,16,15,15,16,18,19,16,18,16,0,0,12,14,14,0,16,14,16,16,0,18,13,14,15,16,0,17,16,18,0,0,16,16,17,19,0,13,14,14,17,0,14,17,16,0,19,14,15,15,18,19,17,16,18,0,0,15,19,16,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,4,5,6,6,5,6,6,5,6,6,6,8,8,6,7,8,5,6,6,6,8,7,6,8,8,5,6,6,6,8,7,6,8,8,6,8,8,8,9,9,8,9,9,6,8,7,7,9,8,8,9,9,5,6,6,6,8,7,6,8,8,6,8,8,8,9,9,7,8,9,6,8,8,8,9,9,8,9,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,4,7,7,5,7,7,5,8,8,8,10,10,7,10,10,5,8,8,7,10,10,8,10,10,5,8,8,8,11,10,8,10,10,8,10,10,10,12,13,10,13,13,7,10,10,10,13,12,10,13,13,5,8,8,8,11,10,8,10,11,7,10,10,10,13,13,10,12,13,8,11,11,10,13,13,10,13,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,12,17,16,16,17,17,17,17,17,4,7,11,11,12,9,17,10,17,17,7,7,8,9,7,9,11,10,15,17,7,9,10,11,10,12,14,12,16,17,7,8,5,7,4,7,7,8,16,16,6,10,9,10,7,10,11,11,16,17,6,8,8,9,5,7,5,8,16,17,5,5,8,7,6,7,7,6,6,14,12,10,12,11,7,11,4,4,2,7,17,15,15,15,8,15,6,8,5,9,0,0,0,0,2,0,0,0,100,0,0,0,208,47,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,200,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,240,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,24,33,2,0,0,0,0,0,0,0,0,0,0,0,0,0,64,33,2,0,0,0,0,0,0,0,0,0,0,0,0,0,104,33,2,0,0,0,0,0,144,33,2,0,184,33,2,0,0,0,0,0,0,0,0,0,224,33,2,0,8,34,2,0,0,0,0,0,0,0,0,0,48,34,2,0,88,34,2,0,128,34,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,56,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,9,14,13,14,13,16,12,13,14,5,4,6,6,8,9,11,10,12,15,10,5,5,6,6,8,10,10,13,16,10,6,6,6,6,8,9,9,12,14,13,7,6,6,4,6,6,7,11,14,10,7,7,7,6,6,6,7,10,13,15,10,9,8,5,6,5,6,10,14,10,9,8,8,6,6,5,4,6,11,11,11,12,11,10,9,9,5,5,9,10,12,15,13,13,13,13,8,7,7,0,0,0,0,4,0,0,0,81,0,0,0,104,47,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,192,47,2,0,0,0,0,0,4,0,0,0,81,0,0,0,0,47,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,88,47,2,0,0,0,0,0,4,0,0,0,113,2,0,0,112,44,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,46,2,0,0,0,0,0,4,0,0,0,113,2,0,0,224,41,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,44,2,0,0,0,0,0,2,0,0,0,81,0,0,0,96,41,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,184,41,2,0,0,0,0,0,2,0,0,0,81,0,0,0,224,40,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,56,41,2,0,0,0,0,0,4,0,0,0,81,0,0,0,120,40,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,208,40,2,0,0,0,0,0,2,0,0,0,121,0,0,0,200,39,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,72,40,2,0,0,0,0,0,2,0,0,0,121,0,0,0,24,39,2,0,1,0,0,0,0,128,187,224,0,0,118,96,4,0,0,0,0,0,0,0,152,39,2,0,0,0,0,0,2,0,0,0,121,0,0,0,104,38,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,232,38,2,0,0,0,0,0,2,0,0,0,225,0,0,0,64,37,2,0,1,0,0,0,0,228,91,225,0,224,255,96,4,0,0,0,0,0,0,0,40,38,2,0,0,0,0,0,2,0,0,0,225,0,0,0,24,36,2,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,0,37,2,0,0,0,0,0,2,0,0,0,33,1,0,0,168,34,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,208,35,2,0,0,0,0,0,3,5,5,7,7,8,8,8,8,8,8,9,8,8,9,9,9,5,6,6,7,7,8,8,8,8,8,8,9,9,9,9,9,9,5,6,6,7,7,8,8,8,8,8,8,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,9,9,9,9,10,9,9,9,10,9,9,9,9,9,9,9,9,9,9,10,9,9,9,10,9,9,10,9,9,9,9,9,9,9,9,9,10,10,10,9,10,9,10,10,9,9,9,9,9,9,9,9,9,10,10,9,10,10,9,9,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,7,7,8,9,8,8,9,8,9,8,9,9,4,7,6,8,8,9,9,9,9,9,9,9,9,9,9,4,7,6,9,9,10,10,9,9,10,10,10,10,11,11,7,9,8,10,10,11,11,10,10,11,11,11,11,11,11,7,8,9,10,10,11,11,10,10,11,11,11,11,11,12,8,10,10,11,11,12,12,11,11,12,12,12,12,13,12,8,10,10,11,11,12,11,11,11,11,12,12,12,12,13,8,9,9,11,10,11,11,12,12,12,12,13,12,13,12,8,9,9,11,11,11,11,12,12,12,12,12,13,13,13,9,10,10,11,12,12,12,12,12,13,13,13,13,13,13,9,10,10,11,11,12,12,12,12,13,13,13,13,14,13,10,10,10,12,11,12,12,13,13,13,13,13,13,13,13,10,10,11,11,11,12,12,13,13,13,13,13,13,13,13,10,11,11,12,12,13,12,12,13,13,13,13,13,13,14,10,11,11,12,12,13,12,13,13,13,14,13,13,14,13,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,2,9,8,15,15,15,15,15,15,15,15,15,15,4,8,9,13,14,14,14,14,14,14,14,14,14,14,14,5,8,9,14,14,14,14,14,14,14,14,14,14,14,14,11,14,14,14,14,14,14,14,14,14,14,14,14,14,14,11,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,3,5,5,6,6,7,7,7,7,7,7,5,6,5,7,7,7,7,8,7,8,8,5,5,6,6,7,7,7,7,7,8,8,6,7,7,7,7,8,7,8,8,8,8,6,6,7,7,7,7,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,10,10,4,6,6,7,7,9,9,10,10,11,11,4,6,6,7,7,9,9,10,10,11,11,6,8,8,9,9,10,10,11,11,12,12,6,8,8,9,9,10,10,11,11,12,12,8,9,9,10,10,11,11,12,12,13,13,8,9,9,10,10,11,11,12,12,13,13,10,10,10,11,11,13,13,13,13,15,14,9,10,10,12,11,12,13,13,13,14,15,11,12,12,13,13,13,13,15,14,15,15,11,11,12,13,13,14,14,14,15,15,15,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,3,4,4,6,6,7,7,8,8,8,8,4,5,5,7,6,8,8,8,8,8,8,4,5,5,6,7,8,8,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,7,8,8,8,8,8,8,9,9,9,9,7,8,8,8,8,8,8,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,9,8,7,10,10,8,10,10,5,8,9,7,10,10,7,10,9,4,8,8,9,11,11,8,11,11,7,11,11,10,10,13,10,13,13,7,11,11,10,13,12,10,13,13,5,9,8,8,11,11,9,11,11,7,11,11,10,13,13,10,12,13,7,11,11,10,13,13,9,13,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,7,7,9,9,4,5,4,6,6,7,7,9,9,4,4,5,6,6,7,8,9,9,5,6,6,7,7,8,8,10,10,5,6,6,7,7,8,8,10,10,7,8,7,8,8,10,9,11,11,7,7,8,8,8,9,10,10,11,9,9,9,10,10,11,11,12,11,9,9,9,10,10,11,11,11,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,8,8,10,10,4,5,5,8,7,8,8,11,11,3,5,5,7,8,8,8,11,11,6,8,7,9,9,10,9,12,11,6,7,8,9,9,9,10,11,12,8,8,8,10,9,12,11,13,13,8,8,9,9,10,11,12,13,13,10,11,11,12,12,13,13,14,14,10,10,11,11,12,13,13,14,14,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,6,7,6,9,9,6,6,7,9,9,8,9,9,11,11,8,9,9,11,11,6,7,7,9,9,7,8,8,10,10,7,7,8,9,10,9,10,10,11,11,9,9,10,11,12,6,7,7,9,9,7,8,7,10,9,7,8,8,10,10,9,10,9,12,11,9,10,10,12,11,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,11,12,13,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,11,13,12,11,12,12,13,13,5,7,7,9,9,7,8,7,10,10,7,7,8,10,10,9,10,10,12,11,9,10,10,11,12,7,8,8,10,10,8,8,9,11,11,8,9,9,11,11,10,10,11,12,13,10,10,11,12,12,6,7,7,10,10,7,9,8,11,10,8,8,9,10,11,10,11,10,13,11,10,11,11,12,12,9,10,10,12,12,10,10,11,13,13,10,11,11,12,13,12,12,12,13,14,12,12,13,14,14,9,10,10,12,12,9,10,10,13,12,10,11,11,13,13,11,12,11,14,12,12,13,13,14,14,6,7,7,9,9,7,8,7,10,10,7,8,8,10,10,9,10,10,12,11,9,10,10,11,12,6,7,7,10,10,8,9,8,11,10,7,8,9,10,11,10,11,11,12,12,10,10,11,11,13,7,8,8,10,10,8,9,9,11,11,8,9,8,11,11,10,11,10,13,12,10,11,11,13,12,9,10,10,12,12,10,11,11,13,12,9,10,10,12,13,12,13,12,14,14,11,11,12,12,14,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,12,12,12,14,14,12,13,12,14,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,12,12,13,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,12,13,14,15,12,12,13,14,14,9,10,10,12,12,9,11,10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,13,14,15,11,12,12,14,13,11,12,12,14,14,12,13,13,14,14,13,13,14,14,16,13,14,14,15,15,11,12,11,13,13,11,12,11,14,13,12,12,13,14,15,12,14,12,15,12,13,14,15,15,16,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,12,12,13,13,9,10,10,12,12,10,11,10,13,12,9,10,11,12,13,12,13,12,14,14,12,12,13,13,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,12,14,14,12,13,13,14,14,11,11,11,13,13,12,13,12,14,14,11,11,12,13,14,14,14,14,16,15,12,12,14,12,15,11,12,12,13,14,12,13,13,14,15,11,12,12,14,14,13,14,14,16,16,13,14,13,16,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,4,8,8,5,7,6,9,9,5,6,7,9,9,8,9,9,13,12,8,9,10,12,13,5,7,7,10,9,7,9,9,11,11,7,8,9,11,11,10,11,11,14,14,9,10,11,13,14,5,7,7,9,10,6,9,8,11,11,7,9,9,11,11,9,11,10,14,13,10,11,11,14,13,8,10,10,13,13,10,11,11,15,15,9,11,11,14,14,13,14,14,17,16,12,13,14,16,16,8,10,10,13,14,9,11,11,14,15,10,11,12,14,15,12,14,13,16,15,13,14,14,15,17,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,12,11,14,14,10,11,11,14,14,7,9,9,12,11,9,11,11,13,13,9,11,11,13,13,11,13,13,14,15,11,12,13,15,16,6,9,9,11,12,8,11,10,13,12,9,11,11,13,14,11,13,12,16,14,11,13,13,15,16,10,12,11,14,15,11,13,13,15,17,11,13,13,17,16,15,15,16,17,16,14,15,16,18,0,9,11,11,14,15,10,12,12,16,15,11,13,13,16,16,13,15,14,18,15,14,16,16,0,0,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,11,11,14,14,10,11,12,14,14,6,9,9,11,11,9,11,11,13,13,8,10,11,12,13,11,13,13,16,15,11,12,13,14,16,7,9,9,11,12,9,11,11,13,13,9,11,11,13,13,11,13,13,16,15,11,13,12,15,15,9,11,11,15,14,11,13,13,17,16,10,12,13,15,16,14,16,16,0,18,14,14,15,15,17,10,11,12,15,15,11,13,13,16,16,11,13,13,16,16,14,16,16,19,17,14,15,15,17,17,8,10,10,14,14,10,12,11,15,15,10,11,12,16,15,14,15,15,18,20,13,14,16,17,18,9,11,11,15,16,11,13,13,17,17,11,13,13,17,16,15,16,16,0,0,15,16,16,0,0,9,11,11,15,15,10,13,12,17,15,11,13,13,17,16,15,17,15,20,19,15,16,16,19,0,13,15,14,0,17,14,15,16,0,20,15,16,16,0,19,17,18,0,0,0,16,17,18,0,0,12,14,14,19,18,13,15,14,0,17,14,15,16,19,19,16,18,16,0,19,19,20,17,20,0,8,10,10,13,14,10,11,11,15,15,10,12,12,15,16,14,15,14,19,16,14,15,15,0,18,9,11,11,16,15,11,13,13,0,16,11,12,13,16,17,14,16,17,0,19,15,16,16,18,0,9,11,11,15,16,11,13,13,16,16,11,14,13,18,17,15,16,16,18,20,15,17,19,0,0,12,14,14,17,17,14,16,15,0,0,13,14,15,19,0,16,18,20,0,0,16,16,18,18,0,12,14,14,17,20,14,16,16,19,0,14,16,14,0,20,16,20,17,0,0,17,0,15,0,19,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,4,5,6,6,5,6,6,5,6,6,6,8,8,6,7,8,5,6,6,6,8,7,6,8,8,5,6,6,6,8,8,6,8,8,6,8,8,8,9,9,8,9,9,6,7,7,7,9,8,8,9,9,5,6,6,6,8,7,6,8,8,6,8,8,8,9,9,7,8,9,6,8,8,8,9,9,8,9,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,4,8,7,5,7,7,5,8,8,8,10,10,7,9,10,5,8,8,7,10,9,8,10,10,5,8,8,8,10,10,8,10,10,8,10,10,10,12,13,10,13,13,7,10,10,10,13,11,10,13,13,5,8,8,8,11,10,8,10,10,7,10,10,10,13,13,10,11,13,8,10,11,10,13,13,10,13,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,11,16,13,17,13,17,16,17,17,4,7,9,9,13,10,16,12,16,17,7,6,5,7,8,9,12,12,16,17,6,9,7,9,10,10,15,15,17,17,6,7,5,7,5,7,7,10,16,17,7,9,8,9,8,10,11,11,15,17,7,7,7,8,5,8,8,9,15,17,8,7,9,9,7,8,7,2,7,15,14,13,13,15,5,10,4,3,6,17,17,15,13,17,7,11,7,6,9,16,0,0,0,0,2,0,0,0,100,0,0,0,160,64,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,49,2,0,0,0,0,0,0,0,0,0,0,0,0,0,216,49,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,2,0,0,0,0,0,0,0,0,0,0,0,0,0,40,50,2,0,0,0,0,0,0,0,0,0,0,0,0,0,80,50,2,0,0,0,0,0,0,0,0,0,0,0,0,0,120,50,2,0,0,0,0,0,160,50,2,0,200,50,2,0,0,0,0,0,0,0,0,0,240,50,2,0,24,51,2,0,0,0,0,0,0,0,0,0,64,51,2,0,104,51,2,0,144,51,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,72,49,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,13,12,14,12,16,11,13,14,5,4,5,6,7,8,10,9,12,15,10,5,5,5,6,8,9,9,13,15,10,5,5,6,6,7,8,8,11,13,12,7,5,6,4,6,7,7,11,14,11,7,7,6,6,6,7,6,10,14,14,9,8,8,6,7,7,7,11,16,11,8,8,7,6,6,7,4,7,12,10,10,12,10,10,9,10,5,6,9,10,12,15,13,14,14,14,8,7,8,0,0,0,0,4,0,0,0,81,0,0,0,56,64,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,144,64,2,0,0,0,0,0,4,0,0,0,81,0,0,0,208,63,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,40,64,2,0,0,0,0,0,4,0,0,0,113,2,0,0,64,61,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,184,63,2,0,0,0,0,0,4,0,0,0,113,2,0,0,176,58,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,40,61,2,0,0,0,0,0,2,0,0,0,81,0,0,0,48,58,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,136,58,2,0,0,0,0,0,2,0,0,0,81,0,0,0,176,57,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,8,58,2,0,0,0,0,0,4,0,0,0,81,0,0,0,72,57,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,160,57,2,0,0,0,0,0,2,0,0,0,121,0,0,0,152,56,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,24,57,2,0,0,0,0,0,2,0,0,0,121,0,0,0,232,55,2,0,1,0,0,0,0,128,187,224,0,0,118,96,4,0,0,0,0,0,0,0,104,56,2,0,0,0,0,0,2,0,0,0,121,0,0,0,56,55,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,184,55,2,0,0,0,0,0,2,0,0,0,169,0,0,0,80,54,2,0,1,0,0,0,0,232,87,225,0,224,255,96,4,0,0,0,0,0,0,0,0,55,2,0,0,0,0,0,2,0,0,0,225,0,0,0,40,53,2,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,16,54,2,0,0,0,0,0,2,0,0,0,33,1,0,0,184,51,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,224,52,2,0,0,0,0,0,2,5,5,7,7,8,8,8,8,8,8,9,9,9,9,9,9,5,6,6,7,7,8,8,9,8,9,9,9,9,9,9,9,9,5,6,6,7,7,8,8,9,8,9,9,9,9,9,9,9,9,7,7,7,8,8,9,8,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,9,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,9,9,9,9,9,9,9,9,10,9,10,10,10,8,8,8,9,8,9,9,9,9,9,9,9,10,9,10,9,10,8,9,9,9,9,9,9,9,9,9,10,9,10,10,10,10,10,8,9,9,9,9,9,9,10,9,10,9,10,10,10,10,10,10,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,9,10,9,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,10,9,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,7,8,7,9,8,9,9,4,7,6,9,8,10,10,9,8,9,9,9,9,9,8,5,6,6,8,9,10,10,9,9,9,10,10,10,10,11,7,8,8,10,10,11,11,10,10,11,11,11,12,11,11,7,8,8,10,10,11,11,10,10,11,11,12,11,11,11,8,9,9,11,11,12,12,11,11,12,11,12,12,12,12,8,9,10,11,11,12,12,11,11,12,12,12,12,12,12,8,9,9,10,10,12,11,12,12,12,12,12,12,12,13,8,9,9,11,11,11,11,12,12,12,12,13,12,13,13,9,10,10,11,11,12,12,12,13,12,13,13,13],"i8",O3,_.GLOBAL_BASE+134580),C3([14,13,9,10,10,11,11,12,12,12,13,13,12,13,13,14,13,9,11,10,12,11,13,12,12,13,13,13,13,13,13,14,9,10,10,12,12,12,12,12,13,13,13,13,13,14,14,10,11,11,12,12,12,13,13,13,14,14,13,14,14,14,10,11,11,12,12,12,12,13,12,13,14,13,14,14,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,2,12,10,13,13,13,13,13,13,13,13,4,9,9,13,13,13,13,13,13,13,13,13,13,5,10,9,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,5,6,6,7,7,7,7,7,7,5,6,5,7,6,7,7,8,8,8,8,5,5,5,6,6,7,7,8,8,8,8,6,7,6,7,7,8,8,8,8,8,8,6,6,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,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,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,10,10,4,6,6,7,7,9,9,10,10,11,11,4,6,6,7,7,9,9,10,10,11,11,6,8,7,9,9,10,10,11,11,13,12,6,8,8,9,9,10,10,11,11,12,13,8,9,9,10,10,12,12,13,12,14,13,8,9,9,10,10,12,12,13,13,14,14,9,11,11,12,12,13,13,14,14,15,14,9,11,11,12,12,13,13,14,14,15,14,11,12,12,13,13,14,14,15,14,15,14,11,11,12,13,13,14,14,14,14,15,15,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,4,5,5,7,7,8,8,9,8,8,9,4,5,5,7,7,8,8,9,9,8,9,6,7,7,8,8,9,8,9,9,9,9,6,7,7,8,8,9,9,9,9,9,9,7,8,8,9,9,9,9,9,9,9,9,7,8,8,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,9,9,8,11,10,7,11,10,5,9,9,7,10,10,8,10,11,4,9,9,9,12,12,9,12,12,8,12,12,11,12,12,10,12,13,7,12,12,11,12,12,10,12,13,4,9,9,9,12,12,9,12,12,7,12,11,10,13,13,11,12,12,7,12,12,10,13,13,11,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,7,7,9,9,4,5,4,6,6,7,7,9,9,4,4,5,6,6,7,7,9,9,5,6,6,7,7,8,8,10,10,6,6,6,7,7,8,8,10,10,7,7,7,8,8,9,9,11,10,7,7,7,8,8,9,9,10,11,9,9,9,10,10,11,10,11,11,9,9,9,10,10,11,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,8,8,10,10,4,5,5,8,7,8,8,11,10,3,5,5,7,8,8,8,10,11,6,8,7,10,9,10,10,11,11,6,7,8,9,9,9,10,11,12,8,8,8,10,10,11,11,13,12,8,8,9,9,10,11,11,12,13,10,11,10,12,11,13,12,14,14,10,10,11,11,12,12,13,14,14,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,6,7,6,9,9,6,6,7,9,9,8,9,9,11,11,8,9,9,11,11,6,7,7,9,9,7,8,8,10,10,6,7,8,9,10,9,10,10,11,12,9,9,10,11,12,6,7,7,9,9,6,8,7,10,9,7,8,8,10,10,9,10,9,12,11,9,10,10,12,11,8,9,9,12,11,9,10,10,12,12,9,10,10,12,12,11,12,12,13,14,11,11,12,13,14,8,9,9,11,12,9,10,10,12,12,9,10,10,12,12,11,12,11,14,13,11,12,12,13,13,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,9,10,10,12,12,7,8,8,10,10,8,8,9,10,11,8,9,9,11,11,10,10,11,11,13,10,11,11,12,13,6,7,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,13,11,10,11,11,12,12,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,11,13,12,15,12,13,13,14,15,9,10,10,12,12,9,11,10,13,12,10,11,11,13,13,11,13,11,14,12,12,13,13,14,15,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,9,10,10,12,12,6,8,7,10,10,8,9,9,11,11,7,8,9,10,11,10,11,11,12,12,10,10,11,11,13,7,8,8,10,10,8,9,9,11,11,8,9,8,11,10,10,11,11,13,12,10,11,10,13,11,9,10,10,12,12,10,11,11,13,12,9,10,10,12,13,12,13,13,14,15,11,11,13,12,14,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13,14,14,12,13,11,14,12,8,9,9,12,12,9,10,10,12,12,9,10,10,12,12,12,12,12,14,14,11,12,12,14,13,9,10,10,12,12,10,11,11,13,13,10,11,11,13,12,12,12,13,14,15,12,13,13,15,14,9,10,10,12,12,10,11,10,13,12,10,11,11,12,13,12,13,12,15,13,12,13,13,14,15,11,12,12,14,13,11,12,12,14,15,12,13,13,15,14,13,12,14,12,16,13,14,14,15,15,11,11,12,14,14,11,12,11,14,13,12,13,13,14,15,13,14,12,16,12,14,14,15,16,16,8,9,9,11,12,9,10,10,12,12,9,10,10,12,13,11,12,12,13,13,12,12,13,14,14,9,10,10,12,12,10,11,10,13,12,10,10,11,12,13,12,13,13,15,14,12,12,13,13,15,9,10,10,12,13,10,11,11,12,13,10,11,11,13,13,12,13,13,14,15,12,13,12,15,14,11,12,11,14,13,12,13,13,15,14,11,11,12,13,14,14,15,14,16,15,13,12,14,13,16,11,12,12,13,14,12,13,13,14,15,11,12,11,14,14,14,14,14,15,16,13,15,12,16,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,5,8,8,5,7,6,9,9,5,6,7,9,9,8,10,9,13,12,8,9,10,12,12,5,7,7,10,10,7,9,9,11,11,6,8,9,11,11,10,11,11,14,14,9,10,11,13,14,5,7,7,9,10,7,9,8,11,11,7,9,9,11,11,9,11,10,14,13,10,11,11,14,14,8,10,10,13,13,10,11,11,15,14,9,11,11,14,14,13,14,14,17,16,12,13,13,15,16,8,10,10,13,13,9,11,11,14,15,10,11,11,14,15,12,14,13,16,16,13,15,14,15,17,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,11,11,14,14,10,11,12,14,14,7,9,9,12,11,9,11,11,13,13,9,11,11,13,13,12,13,13,15,16,11,12,13,15,16,6,9,9,11,11,8,11,10,13,12,9,11,11,13,14,11,13,12,16,14,11,13,13,16,17,10,12,11,15,15,11,13,13,16,16,11,13,13,17,16,14,15,15,17,17,14,16,16,17,18,9,11,11,14,15,10,12,12,15,15,11,13,13,16,17,13,15,13,17,15,14,15,16,18,0,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,11,11,14,14,10,11,12,14,15,6,9,9,12,11,9,11,11,13,13,8,10,11,12,13,11,13,13,16,15,11,12,13,14,15,7,9,9,11,12,9,11,11,13,13,9,11,11,13,13,11,13,13,15,16,11,13,13,15,14,9,11,11,15,14,11,13,13,17,15,10,12,12,15,15,14,16,16,17,17,13,13,15,15,17,10,11,12,15,15,11,13,13,16,16,11,13,13,15,15,14,15,15,18,18,14,15,15,17,17,8,10,10,13,13,10,12,11,15,15,10,11,12,15,15,14,15,15,18,18,13,14,14,18,18,9,11,11,15,16,11,13,13,17,17,11,13,13,16,16,15,15,16,17,0,14,15,17,0,0,9,11,11,15,15,10,13,12,18,16,11,13,13,15,16,14,16,15,20,20,14,15,16,17,0,13,14,14,20,16,14,15,16,19,18,14,15,15,19,0,18,16,0,20,20,16,18,18,0,0,12,14,14,18,18,13,15,14,18,16,14,15,16,18,20,16,19,16,0,17,17,18,18,19,0,8,10,10,14,14,10,11,11,14,15,10,11,12,15,15,13,15,14,19,17,13,15,15,17,0,9,11,11,16,15,11,13,13,16,16,10,12,13,15,17,14,16,16,18,18,14,15,15,18,0,9,11,11,15,15,11,13,13,16,17,11,13,13,18,17,14,18,16,18,18,15,17,17,18,0,12,14,14,18,18,14,15,15,20,0,13,14,15,17,0,16,18,17,0,0,16,16,0,17,20,12,14,14,18,18,14,16,15,0,18,14,16,15,18,0,16,19,17,0,0,17,18,16,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,4,5,6,6,5,6,6,5,6,6,6,8,8,6,7,8,5,6,6,6,8,7,6,8,8,5,6,6,6,8,8,6,8,8,6,8,8,8,9,9,8,9,9,6,8,7,7,9,8,8,9,9,5,6,6,6,8,7,6,8,8,6,8,7,8,9,9,7,8,9,6,8,8,8,9,9,8,9,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,7,5,8,8,8,10,10,7,9,10,5,8,8,7,10,9,8,10,10,5,8,8,8,10,10,8,10,10,8,10,10,10,12,13,10,13,13,7,10,10,10,13,11,10,13,13,4,8,8,8,11,10,8,10,10,7,10,10,10,13,13,10,11,13,8,10,11,10,13,13,10,13,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,10,17,13,17,13,17,17,17,17,3,6,8,9,11,9,15,12,16,17,6,5,5,7,7,8,10,11,17,17,7,8,7,9,9,10,13,13,17,17,8,6,5,7,4,7,5,8,14,17,9,9,8,9,7,9,8,10,16,17,12,10,7,8,4,7,4,7,16,17,12,11,9,10,6,9,5,7,14,17,14,13,10,15,4,8,3,5,14,17,17,14,11,15,6,10,6,8,15,17,0,0,0,0,2,0,0,0,64,0,0,0,248,78,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,66,2,0,0,0,0,0,0,0,0,0,0,0,0,0,128,66,2,0,0,0,0,0,0,0,0,0,0,0,0,0,168,66,2,0,0,0,0,0,0,0,0,0,0,0,0,0,208,66,2,0,0,0,0,0,0,0,0,0,0,0,0,0,248,66,2,0,0,0,0,0,32,67,2,0,72,67,2,0,0,0,0,0,0,0,0,0,112,67,2,0,152,67,2,0,192,67,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,24,66,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,12,12,13,12,11,13,5,4,6,7,8,8,9,13,9,5,4,5,5,7,9,13,9,6,5,6,6,7,8,12,12,7,5,6,4,5,8,13,11,7,6,6,5,5,6,12,10,8,8,7,7,5,3,8,10,12,13,12,12,9,6,7,4,0,0,0,81,0,0,0,144,78,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,232,78,2,0,0,0,0,0,4,0,0,0,81,0,0,0,40,78,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,128,78,2,0,0,0,0,0,4,0,0,0,113,2,0,0,152,75,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,16,78,2,0,0,0,0,0,4,0,0,0,113,2,0,0,8,73,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,128,75,2,0,0,0,0,0,2,0,0,0,81,0,0,0,136,72,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,224,72,2,0,0,0,0,0,2,0,0,0,169,0,0,0,160,71,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,80,72,2,0,0,0,0,0,2,0,0,0,25,0,0,0,104,71,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,71,2,0,0,0,0,0,2,0,0,0,169,0,0,0,128,70,2,0,1,0,0,0,0,232,87,225,0,224,255,96,4,0,0,0,0,0,0,0,48,71,2,0,0,0,0,0,2,0,0,0,225,0,0,0,88,69,2,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,64,70,2,0,0,0,0,0,2,0,0,0,33,1,0,0,232,67,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,16,69,2,0,0,0,0,0,2,5,5,7,7,7,7,8,8,8,8,9,9,9,9,9,9,5,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,5,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,7,7,7,8,8,8,8,9,9,9,9,10,9,10,9,10,10,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,8,9,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,8,8,8,9,9,9,9,9,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,10,10,10,10,10,10,10,10,11,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,10,10,10,10,10,10,10,10,10,10,11,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,7,9,8,10,8,10,9,11,11,4,7,6,8,7,9,9,10,10,11,10,11,10,12,10,4,6,7,8,8,9,9,10,10,11,11,11,11,12,12,6,8,8,10,9,11,10,12,11,12,12,12,12,13,13,6,8,8,10,10,10,11,11,11,12,12,13,12,13,13,8,9,9,11,11,12,11,12,12,13,13,13,13,13,13,8,9,9,11,11,11,12,12,12,13,13,13,13,13,13,9,10,10,12,11,13,13,13,13,14,13,13,14,14,14,9,10,11,11,12,12,13,13,13,13,13,14,15,14,14,10,11,11,12,12,13,13,14,14,14,14,14,15,16,16,10,11,11,12,13,13,13,13,15,14,14,15,16,15,16,10,12,12,13,13,14,14,14,15,15,15,15,15,15,16,11,12,12,13,13,14,14,14,15,15,15,16,15,17,16,11,12,12,13,13,13,15,15,14,16,16,16,16,16,17,11,12,12,13,13,14,14,15,14,15,15,17,17,16,16,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,3,12,12,12,12,12,12,12,12,12,12,3,12,11,12,12,12,12,12,12,12,12,12,12,4,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,6,5,4,5,5,5,6,5,6,5,6,6,5,5,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,11,10,13,13,4,6,5,8,8,9,9,10,10,11,11,14,14,4,6,6,8,8,9,9,10,10,11,11,14,14,6,8,8,9,9,10,10,11,11,12,12,15,15,6,8,8,9,9,10,11,11,11,12,12,15,15,8,9,9,11,10,11,11,12,12,13,13,16,16,8,9,9,10,10,11,11,12,12,13,13,16,16,10,10,10,12,11,12,12,13,13,14,14,16,16,10,10,10,11,12,12,12,13,13,13,14,16,17,11,12,11,12,12,13,13,14,14,15,14,18,17,11,11,12,12,12,13,13,14,14,14,15,19,18,14,15,14,15,15,17,16,17,17,17,17,21,0,14,15,15,16,16,16,16,17,17,18,17,20,21,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,6,6,7,7,9,9,4,5,5,7,7,8,8,10,9,4,5,5,7,7,8,8,10,10,6,7,7,8,8,9,9,11,10,6,7,7,8,8,9,9,10,11,7,8,8,9,9,10,10,11,11,7,8,8,9,9,10,10,11,11,9,10,10,11,10,11,11,12,12,9,10,10,10,11,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,5,7,6,9,9,5,6,7,9,9,9,9,9,11,11,8,9,9,11,11,5,7,7,9,9,7,8,8,10,10,7,7,8,10,10,9,10,10,11,12,9,10,10,11,12,5,7,7,9,9,7,8,7,10,10,7,8,8,10,10,9,10,10,12,11,9,10,10,12,11,9,10,9,12,12,9,10,10,13,12,9,10,10,12,12,12,12,12,14,14,11,12,12,13,14,9,9,10,12,12,9,10,10,13,13,9,10,10,12,13,11,12,12,14,13,11,12,12,14,14,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,9,10,10,12,12,7,8,8,11,10,8,8,9,11,11,8,9,9,11,11,11,11,11,12,13,10,11,11,13,13,6,8,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,13,11,10,11,11,13,13,9,11,10,13,12,10,11,11,13,14,10,11,11,14,13,12,12,13,12,15,12,13,13,15,15,9,10,10,12,13,10,11,10,13,12,10,11,11,13,14,12,13,11,15,13,13,13,13,15,15,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,10,10,11,12,13,6,8,8,10,10,8,9,9,11,11,7,8,9,10,11,10,11,11,13,13,10,10,11,11,13,7,8,8,10,11,8,9,9,11,11,8,9,8,11,11,10,11,11,13,13,11,12,11,13,12,9,10,10,13,12,10,11,11,14,13,10,10,11,12,13,12,13,13,15,15,12,11,13,13,14,9,10,11,12,13,10,11,11,13,14,10,11,11,13,13,12,13,13,15,15,12,13,12,15,12,8,9,9,12,12,9,11,10,13,13,9,10,10,13,13,12,13,13,15,15,12,12,12,14,14,9,10,10,13,13,10,11,11,13,14,10,11,11,14,13,13,13,14,14,16,13,13,13,15,15,9,10,10,13,13,10,11,10,14,13,10,11,11,13,14,12,14,13,16,14,12,13,13,14,15,11,12,12,15,14,11,12,13,14,15,12,13,13,16,15,14,12,15,12,16,14,15,15,16,16,11,12,12,14,14,11,13,12,15,14,12,13,13,15,16,13,15,13,17,13,14,15,15,16,17,8,9,9,12,12,9,10,10,12,13,9,10,10,13,13,12,12,12,14,14,12,13,13,15,15,9,10,10,13,12,10,11,11,14,13,10,10,11,13,14,13,13,13,15,15,12,13,14,14,16,9,10,10,13,13,10,11,11,13,14,10,11,11,14,14,13,13,13,15,15,13,14,13,16,14,11,12,12,15,14,12,13,13,16,15,11,12,13,14,15,14,15,15,17,16,13,13,15,13,16,11,12,13,14,15,13,13,13,15,16,11,13,12,15,14,14,15,15,16,16,14,15,12,17,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,8,8,5,7,7,9,9,5,7,7,9,9,8,10,9,12,12,8,9,10,12,12,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,12,11,14,14,9,10,11,13,14,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,9,11,10,14,13,10,11,11,14,14,8,10,10,14,13,10,12,12,15,14,9,11,11,15,14,13,14,14,17,17,12,14,14,16,16,8,10,10,14,14,9,11,11,14,15,10,12,12,14,15,12,14,13,16,16,13,14,15,15,18,4,7,7,10,10,7,9,9,12,11,7,9,9,11,12,10,12,11,15,14,10,11,12,14,15,7,9,9,12,12,9,11,12,13,13,9,11,12,13,13,12,13,13,15,16,11,13,13,15,16,7,9,9,12,12,9,11,10,13,12,9,11,12,13,14,11,13,12,16,14,12,13,13,15,16,10,12,12,16,15,11,13,13,17,16,11,13,13,17,16,14,15,15,17,17,14,16,16,18,20,9,11,11,15,16,11,13,12,16,16,11,13,13,16,17,14,15,14,18,16,14,16,16,17,20,5,7,7,10,10,7,9,9,12,11,7,9,10,11,12,10,12,11,15,15,10,12,12,14,14,7,9,9,12,12,9,12,11,14,13,9,10,11,12,13,12,13,14,16,16,11,12,13,14,16,7,9,9,12,12,9,12,11,13,13,9,12,11,13,13,11,13,13,16,16,12,13,13,16,15,9,11,11,16,14,11,13,13,16,16,11,12,13,16,16,14,16,16,17,17,13,14,15,16,17,10,12,12,15,15,11,13,13,16,17,11,13,13,16,16,14,16,15,19,19,14,15,15,17,18,8,10,10,14,14,10,12,12,15,15,10,12,12,16,16,14,16,15,20,19,13,15,15,17,16,9,12,12,16,16,11,13,13,16,18,11,14,13,16,17,16,17,16,20,0,15,16,18,18,20,9,11,11,15,15,11,14,12,17,16,11,13,13,17,17,15,17,15,20,20,14,16,16,17,0,13,15,14,18,16,14,15,16,0,18,14,16,16,0,0,18,16,0,0,20,16,18,18,0,0,12,14,14,17,18,13,15,14,20,18,14,16,15,19,19,16,20,16,0,18,16,19,17,19,0,8,10,10,14,14,10,12,12,16,15,10,12,12,16,16,13,15,15,18,17,14,16,16,19,0,9,11,11,16,15,11,14,13,18,17,11,12,13,17,18,14,17,16,18,18,15,16,17,18,18,9,12,12,16,16,11,13,13,16,18,11,14,13,17,17,15,16,16,18,20,16,17,17,20,20,12,14,14,18,17,14,16,16,0,19,13,14,15,18,0,16,0,0,0,0,16,16,0,19,20,13,15,14,0,0,14,16,16,18,19,14,16,15,0,20,16,20,18,0,20,17,20,17,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,5,6,6,5,6,6,5,6,6,7,8,8,6,8,8,5,6,6,6,8,8,7,8,8,5,7,6,6,8,8,6,8,8,6,8,8,8,9,10,8,10,10,6,8,8,8,10,8,8,10,10,5,6,6,6,8,8,6,8,8,6,8,8,8,10,10,8,8,10,6,8,8,8,10,10,8,10,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,10,11,8,10,11,5,8,8,8,11,10,8,11,11,4,8,8,8,11,11,8,11,11,8,11,11,11,13,14,11,15,14,8,11,11,10,13,12,11,14,14,4,8,8,8,11,11,8,11,11,7,11,11,11,15,14,10,12,14,8,11,11,11,14,14,11,14,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,14,17,15,17,16,14,13,16,10,7,7,10,13,10,15,16,9,4,4,6,5,7,9,16,12,8,7,8,8,8,11,16,14,7,4,6,3,5,8,15,13,8,5,7,4,5,7,16,12,9,6,8,3,3,5,16,14,13,7,10,5,5,7,15,2,0,0,0,64,0,0,0,192,92,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,80,2,0,0,0,0,0,0,0,0,0,0,0,0,0,176,80,2,0,0,0,0,0,0,0,0,0,0,0,0,0,216,80,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81,2,0,0,0,0,0,0,0,0,0,0,0,0,0,40,81,2,0,0,0,0,0,80,81,2,0,120,81,2,0,0,0,0,0,0,0,0,0,160,81,2,0,200,81,2,0,240,81,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,72,80,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,9,13,12,14,11,10,13,8,4,5,7,8,7,8,12,11,4,3,5,5,7,9,14,11,6,5,6,6,6,7,13,13,7,5,6,4,5,7,14,11,7,6,6,5,5,6,13,9,7,8,6,7,5,3,9,9,12,13,12,14,10,6,7,4,0,0,0,81,0,0,0,88,92,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,176,92,2,0,0,0,0,0,4,0,0,0,81,0,0,0,240,91,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,72,92,2,0,0,0,0,0,4,0,0,0,113,2,0,0,96,89,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,216,91,2,0,0,0,0,0,4,0,0,0,113,2,0,0,208,86,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,72,89,2,0,0,0,0,0,2,0,0,0,81,0,0,0,80,86,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,168,86,2,0,0,0,0,0,2,0,0,0,169,0,0,0,104,85,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,24,86,2,0,0,0,0,0,2,0,0,0,25,0,0,0,48,85,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,80,85,2,0,0,0,0,0,2,0,0,0,81,0,0,0,176,84,2,0,1,0,0,0,0,224,63,225,0,224,255,96,4,0,0,0,0,0,0,0,8,85,2,0,0,0,0,0,2,0,0,0,225,0,0,0,136,83,2,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,112,84,2,0,0,0,0,0,2,0,0,0,33,1,0,0,24,82,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,64,83,2,0,0,0,0,0,2,5,5,7,6,7,7,8,8,8,8,9,9,9,9,9,9,5,6,6,7,7,8,8,8,8,9,9,9,9,9,9,10,10,5,6,6,7,7,8,8,8,8,9,8,9,9,9,9,10,9,7,7,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,7,7,7,8,8,8,8,9,9,9,9,10,9,10,10,10,10,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,7,8,8,9,8,9,9,9,9,10,9,10,10,10,10,10,10,8,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,8,9,8,9,9,9,9,10,9,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,11,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,11,11,11,10,11,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,6,8,7,9,8,10,9,11,11,4,7,7,8,7,9,9,10,10,11,11,11,11,12,12,4,7,7,7,7,9,9,10,10,11,11,12,12,12,11,6,8,8,9,9,10,10,11,11,12,12,13,12,13,13,6,8,8,9,9,10,11,11,11,12,12,13,14,13,13,8,9,9,11,11,12,12,12,13,14,13,14,14,14,15,8,9,9,11,11,11,12,13,14,13,14,15,17,14,15,9,10,10,12,12,13,13,13,14,15,15,15,16,16,16,9,11,11,12,12,13,13,14,14,14,15,16,16,16,16,10,12,12,13,13,14,14,15,15,15,16,17,17,17,17,10,12,11,13,13,15,14,15,14,16,17,16,16,16,16,11,13,12,14,14,14,14,15,16,17,16,17,17,17,17,11,13,12,14,14,14,15,17,16,17,17,17,17,17,17,12,13,13,15,16,15,16,17,17,16,16,17,17,17,17,12,13,13,15,15,15,16,17,17,17,16,17,16,17,17,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,3,10,10,10,10,10,10,4,10,10,10,10,10,10,10,10,4,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,6,5,4,5,5,5,6,5,6,5,6,6,5,5,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,10,11,13,14,4,6,5,8,8,9,9,10,10,11,11,14,14,4,6,6,8,8,9,9,10,10,11,11,14,14,6,8,8,9,9,10,10,11,11,12,12,15,15,6,8,8,9,9,10,11,11,11,12,12,15,15,8,9,9,11,10,11,11,12,12,13,13,15,16,8,9,9,10,11,11,11,12,12,13,13,16,16,10,10,11,11,11,12,12,13,13,13,14,17,16,9,10,11,12,11,12,12,13,13,13,13,16,18,11,12,11,12,12,13,13,13,14,15,14,17,17,11,11,12,12,12,13,13,13,14,14,15,18,17,14,15,15,15,15,16,16,17,17,19,18,0,20,14,15,14,15,15,16,16,16,17,18,16,20,18,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,6,6,7,7,9,9,4,5,5,7,7,8,8,10,10,4,5,5,7,7,8,8,10,10,6,7,7,8,8,9,9,11,10,6,7,7,8,8,9,9,10,10,7,8,8,9,9,10,10,11,11,7,8,8,9,9,10,10,11,11,9,10,10,11,10,11,11,12,12,9,10,10,10,10,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,5,7,6,9,9,5,6,7,9,9,9,9,9,11,11,9,9,9,11,11,5,7,7,9,9,7,8,8,10,10,7,7,8,10,10,9,10,10,11,12,9,10,10,11,12,5,7,7,9,9,7,8,7,10,10,7,8,8,10,10,9,10,9,12,11,9,10,10,12,11,9,10,9,12,12,9,10,10,13,12,9,10,10,12,13,12,12,12,14,14,11,12,12,13,14,9,9,10,12,12,9,10,10,12,12,9,10,10,12,13,11,12,11,14,13,12,12,12,14,13,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,9,10,10,12,12,7,8,8,11,10,8,8,9,11,11,8,9,9,11,11,11,11,11,12,13,10,11,11,13,13,6,8,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,13,11,10,11,11,13,13,9,11,10,13,12,10,11,11,13,13,10,11,11,13,13,12,12,13,12,15,12,13,13,15,15,9,10,10,12,13,10,11,10,13,12,10,11,11,13,14,12,13,11,15,13,12,13,13,15,15,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,10,10,11,12,12,6,8,8,10,10,8,9,9,11,11,7,8,9,10,11,10,11,11,13,13,10,10,11,11,13,7,8,8,10,10,8,9,9,11,11,8,9,9,11,11,10,11,11,13,13,11,11,11,13,12,9,10,10,13,12,10,11,11,14,13,10,10,11,12,13,12,13,13,15,15,12,11,13,13,14,9,10,11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13,15,15,12,13,12,15,12,8,9,9,12,12,9,11,10,13,13,9,10,10,13,13,12,13,13,15,14,12,12,12,14,13,9,10,10,13,12,10,11,11,13,13,10,11,11,14,12,13,13,14,14,16,12,13,13,15,15,9,10,10,13,13,10,11,10,14,13,10,11,11,13,14,12,14,13,15,14,13,13,13,15,15,11,13,12,15,14,11,12,13,14,15,12,13,13,16,14,14,12,15,12,16,14,15,15,17,15,11,12,12,14,14,11,13,11,15,14,12,13,13,15,15,13,15,12,17,13,14,15,15,16,16,8,9,9,12,12,9,10,10,12,13,9,10,10,13,13,12,12,12,14,14,12,13,13,15,15,9,10,10,13,12,10,11,11,14,13,10,10,11,13,14,12,13,13,15,15,12,12,13,14,16,9,10,10,13,13,10,11,11,13,14,10,11,11,14,13,12,13,13,14,15,13,14,13,16,14,11,12,12,14,14,12,13,13,15,14,11,12,13,14,15,14,15,15,16,16,13,13,15,13,16,11,12,12,14,15,12,13,13,14,15,11,13,12,15,14,14,15,15,16,16,14,15,12,16,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,7,7,5,7,7,9,9,5,7,7,9,9,8,9,9,12,12,8,9,9,11,12,5,7,7,10,10,7,9,9,11,11,7,9,9,10,11,10,11,11,13,13,9,10,11,13,13,5,7,7,10,10,7,9,9,11,10,7,9,9,11,11,9,11,10,13,13,10,11,11,14,13,8,10,10,14,13,10,11,11,15,14,9,11,11,14,14,13,14,13,16,16,12,13,13,15,15,8,10,10,13,14,9,11,11,14,14,10,11,11,14,15,12,13,13,15,15,13,14,14,15,16,5,7,7,10,10,7,9,9,11,11,7,9,9,11,12,10,11,11,14,14,10,11,11,14,14,7,9,9,12,12,9,11,11,13,13,9,11,11,13,13,12,12,13,15,15,11,12,13,15,16,7,9,9,11,11,8,11,10,13,12,9,11,11,13,13,11,13,12,15,13,11,13,13,15,16,9,12,11,15,14,11,12,13,16,15,11,13,13,15,16,14,14,15,17,16,13,15,16,0,17,9,11,11,15,15,10,13,12,15,15,11,13,13,15,16,13,15,13,16,15,14,16,15,0,19,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,12,11,14,14,10,11,12,14,14,7,9,9,12,12,9,11,11,14,13,9,10,11,12,13,11,13,13,16,16,11,12,13,13,16,7,9,9,12,12,9,11,11,13,13,9,11,11,13,13,11,13,13,15,15,12,13,12,15,14,9,11,11,15,14,11,13,12,16,16,10,12,12,15,15,13,15,15,17,19,13,14,15,16,17,10,12,12,15,15,11,13,13,16,16,11,13,13,15,16,13,15,15,0,0,14,15,15,16,16,8,10,10,14,14,10,12,12,15,15,10,12,11,15,16,14,15,15,19,20,13,14,14,18,16,9,11,11,15,15,11,13,13,17,16,11,13,13,16,16,15,17,17,20,20,14,15,16,17,20,9,11,11,15,15,10,13,12,16,15,11,13,13,15,17,14,16,15,18,0,14,16,15,18,20,12,14,14,0,0,14,14,16,0,0,13,16,15,0,0,17,17,18,0,0,16,17,19,19,0,12,14,14,18,0,12,16,14,0,17,13,15,15,18,0,16,18,17,0,17,16,18,17,0,0,7,10,10,14,14,10,12,11,15,15,10,12,12,16,15,13,15,15,18,0,14,15,15,17,0,9,11,11,15,15,11,13,13,16,16,11,12,13,16,16,14,15,16,17,17,14,16,16,16,18,9,11,12,16,16,11,13,13,17,17,11,14,13,20,17,15,16,16,19,0,15,16,17,0,19,11,13,14,17,16,14,15,15,20,18,13,14,15,17,19,16,18,18,0,20,16,16,19,17,0,12,15,14,17,0,14,15,15,18,19,13,16,15,19,20,15,18,18,0,20,17,0,16,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,4,5,6,6,5,6,6,5,6,6,7,8,8,6,8,8,5,6,6,6,8,8,7,8,8,5,7,6,7,8,8,6,8,8,7,8,8,8,9,10,8,10,10,6,8,8,8,10,8,8,10,10,5,6,6,6,8,8,7,8,8,6,8,8,8,10,10,8,8,10,7,8,8,8,10,10,8,10,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,10,11,8,10,11,5,8,8,8,11,10,8,11,11,4,8,8,8,11,11,8,11,11,8,11,11,11,13,14,11,14,14,8,11,11,10,14,12,11,14,14,4,8,8,8,11,11,8,11,11,7,11,11,11,14,14,10,12,14,8,11,11,11,14,14,11,14,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,14,14,14,15,13,15,12,16,10,8,7,9,9,8,12,16,10,5,4,6,5,6,9,16,14,8,6,8,7,8,10,16,14,7,4,6,3,5,8,16,15,9,5,7,4,4,7,16,13,10,6,7,4,3,4,13,13,12,7,9,5,5,6,12,2,0,0,0,64,0,0,0,192,105,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,94,2,0,0,0,0,0,0,0,0,0,0,0,0,0,120,94,2,0,0,0,0,0,0,0,0,0,0,0,0,0,160,94,2,0,0,0,0,0,0,0,0,0,0,0,0,0,200,94,2,0,0,0,0,0,0,0,0,0,0,0,0,0,240,94,2,0,0,0,0,0,24,95,2,0,64,95,2,0,0,0,0,0,0,0,0,0,104,95,2,0,144,95,2,0,184,95,2],"i8",O3,_.GLOBAL_BASE+144820),C3([2,0,0,0,64,0,0,0,16,94,2,0,0,0,0,0,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,9,14,12,15,13,10,13,7,4,5,6,8,7,8,12,13,4,3,5,5,6,9,15,12,6,5,6,6,6,7,14,14,7,4,6,4,6,8,15,12,6,6,5,5,5,6,14,9,7,8,6,7,5,4,10,10,13,14,14,15,10,6,8,4,0,0,0,81,0,0,0,88,105,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,176,105,2,0,0,0,0,0,4,0,0,0,81,0,0,0,240,104,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,72,105,2,0,0,0,0,0,4,0,0,0,113,2,0,0,96,102,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,216,104,2,0,0,0,0,0,4,0,0,0,113,2,0,0,208,99,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,72,102,2,0,0,0,0,0,2,0,0,0,81,0,0,0,80,99,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,168,99,2,0,0,0,0,0,2,0,0,0,169,0,0,0,104,98,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,24,99,2,0,0,0,0,0,2,0,0,0,25,0,0,0,48,98,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,80,98,2,0,0,0,0,0,2,0,0,0,81,0,0,0,176,97,2,0,1,0,0,0,0,32,53,225,0,32,245,96,4,0,0,0,0,0,0,0,8,98,2,0,0,0,0,0,2,0,0,0,169,0,0,0,200,96,2,0,1,0,0,0,0,128,211,224,0,0,122,96,4,0,0,0,0,0,0,0,120,97,2,0,0,0,0,0,2,0,0,0,169,0,0,0,224,95,2,0,1,0,0,0,0,0,88,224,0,0,16,96,4,0,0,0,0,0,0,0,144,96,2,0,0,0,0,0,2,5,5,6,6,7,7,8,7,8,8,8,8,5,6,6,7,7,8,8,8,8,8,8,8,8,5,6,6,7,7,8,7,8,8,8,8,8,8,6,7,7,7,8,8,8,8,8,9,9,9,9,6,7,7,8,7,8,8,9,9,9,9,9,9,7,8,8,8,8,8,8,9,9,9,9,9,9,7,8,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,9,9,9,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,6,7,6,8,7,9,7,9,8,4,7,6,8,8,9,8,10,9,10,10,11,11,4,7,7,8,8,8,8,9,10,11,11,11,11,6,8,8,10,10,10,10,11,11,12,12,12,12,7,8,8,10,10,10,10,11,11,12,12,13,13,7,9,9,11,10,12,12,13,13,14,13,14,14,7,9,9,10,11,11,12,13,13,13,13,16,14,9,10,10,12,12,13,13,14,14,15,16,15,16,9,10,10,12,12,12,13,14,14,14,15,16,15,10,12,12,13,13,15,13,16,16,15,17,17,17,10,11,11,12,14,14,14,15,15,17,17,15,17,11,12,12,14,14,14,15,15,15,17,16,17,17,10,12,12,13,14,14,14,17,15,17,17,17,17,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,12,12,12,12,12,12,4,12,12,12,12,12,12,12,12,5,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,6,5,4,5,5,5,6,5,6,5,6,6,5,5,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,10,11,11,14,13,4,6,5,8,8,9,9,11,10,12,11,15,14,4,5,6,8,8,9,9,11,11,11,11,14,14,6,8,8,10,9,11,11,11,11,12,12,15,15,6,8,8,9,9,11,11,11,12,12,12,15,15,8,10,10,11,11,11,11,12,12,13,13,15,16,8,10,10,11,11,11,11,12,12,13,13,16,16,10,11,11,12,12,12,12,13,13,13,13,17,16,10,11,11,12,12,12,12,13,13,13,14,16,17,11,12,12,13,13,13,13,14,14,15,14,18,17,11,12,12,13,13,13,13,14,14,14,15,19,18,14,15,15,15,15,16,16,18,19,18,18,0,0,14,15,15,16,15,17,17,16,18,17,18,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,8,8,9,9,4,6,5,8,8,8,8,10,10,4,5,6,8,8,8,8,10,10,7,8,8,9,9,9,9,11,11,7,8,8,9,9,9,9,11,11,8,8,8,9,9,10,11,12,12,8,8,8,9,9,10,10,12,12,10,10,10,11,11,12,12,13,13,10,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,5,7,6,9,9,5,6,7,9,9,9,9,9,11,11,9,9,9,11,11,5,7,7,9,9,7,8,8,10,10,7,7,8,10,10,10,10,10,11,12,9,10,10,11,12,5,7,7,9,9,6,8,7,10,10,7,8,8,10,10,9,10,10,12,11,9,10,10,12,11,9,10,10,12,12,10,10,10,13,12,9,10,10,12,13,12,12,12,14,14,11,12,12,13,14,9,10,10,12,12,9,10,10,12,13,10,10,10,12,13,11,12,12,14,13,12,12,12,14,13,5,7,7,10,9,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,10,10,10,12,12,7,8,8,11,10,8,8,9,11,11,8,9,9,11,11,10,11,11,12,13,10,11,11,13,13,6,8,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,13,11,10,11,11,13,13,9,10,10,13,13,10,11,11,13,13,10,11,11,14,13,12,11,13,12,15,12,13,13,15,15,9,10,10,12,13,10,11,10,13,13,10,11,11,13,13,12,13,11,15,13,12,13,13,15,15,5,7,7,9,10,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,10,10,11,12,12,6,8,8,10,10,8,9,9,11,11,7,8,9,10,11,10,11,11,13,13,10,10,11,11,13,7,8,8,10,11,8,9,9,11,11,8,9,8,11,11,10,11,11,13,13,10,11,11,13,12,9,10,10,13,12,10,11,11,14,13,10,10,11,13,13,12,13,13,15,15,12,11,13,12,14,9,10,10,12,13,10,11,11,13,14,10,11,11,13,13,12,13,13,15,15,12,13,12,15,12,8,9,9,12,12,9,11,10,13,13,9,10,10,13,13,12,13,13,15,15,12,12,12,14,14,9,10,10,13,13,10,11,11,13,14,10,11,11,14,12,13,13,14,14,16,12,13,13,15,14,9,10,10,13,13,10,11,10,14,13,10,11,11,13,14,12,14,13,16,14,13,13,13,14,15,11,13,12,15,14,11,12,13,14,15,12,13,13,16,15,14,12,15,12,16,14,15,15,17,16,11,12,12,14,15,11,13,11,15,14,12,13,13,15,16,13,15,12,17,13,14,15,15,16,16,8,9,9,12,12,9,10,10,13,13,9,10,10,13,13,12,13,12,14,14,12,13,13,15,15,9,10,10,13,13,10,11,11,14,13,10,10,11,13,14,12,13,13,15,14,12,12,14,14,16,9,10,10,13,13,10,11,11,13,14,10,11,11,14,13,13,13,13,15,15,13,14,13,16,14,11,12,12,14,14,12,13,13,16,15,11,12,13,14,15,14,15,15,16,16,14,13,15,13,17,11,12,12,14,15,12,13,13,15,16,11,13,12,15,15,14,15,14,16,16,14,15,12,17,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,7,8,5,7,7,9,9,5,7,7,9,9,8,9,9,12,11,8,9,9,11,12,5,7,7,10,10,7,9,9,11,11,7,9,9,10,11,10,11,11,13,13,9,10,11,12,13,5,7,7,10,10,7,9,9,11,10,7,9,9,11,11,9,11,10,13,13,10,11,11,13,13,8,10,10,14,13,10,11,11,15,14,9,11,11,15,14,13,14,13,16,14,12,13,13,15,16,8,10,10,13,14,9,11,11,14,15,10,11,11,14,15,12,13,13,15,15,12,13,14,15,16,5,7,7,10,10,7,9,9,11,11,7,9,9,11,12,10,11,11,14,13,10,11,11,14,14,7,9,9,12,12,9,11,11,13,13,9,11,11,13,13,12,13,12,14,14,11,12,13,15,15,7,9,9,12,12,8,11,10,13,12,9,11,11,13,13,11,13,12,15,13,11,13,13,15,16,9,12,11,15,15,11,12,12,16,15,11,12,13,16,16,13,14,15,16,15,13,15,15,17,17,9,11,11,14,15,10,12,12,15,15,11,13,12,15,16,13,15,14,16,16,13,15,15,17,19,5,7,7,10,10,7,9,9,12,11,7,9,9,11,11,10,11,11,14,14,10,11,11,13,14,7,9,9,12,12,9,11,11,13,13,9,10,11,12,13,11,13,12,16,15,11,12,12,14,15,7,9,9,12,12,9,11,11,13,13,9,11,11,13,12,11,13,12,15,16,12,13,13,15,14,9,11,11,15,14,11,13,12,16,15,10,11,12,15,15,13,14,14,18,17,13,14,14,15,17,10,11,11,14,15,11,13,12,15,17,11,13,12,15,16,13,15,14,18,17,14,15,15,16,18,7,10,10,14,14,10,12,12,15,15,10,12,12,15,15,14,15,15,18,17,13,15,15,16,16,9,11,11,16,15,11,13,13,16,18,11,13,13,16,16,15,16,16,0,0,14,15,16,18,17,9,11,11,15,15,10,13,12,17,16,11,12,13,16,17,14,15,16,19,19,14,15,15,0,20,12,14,14,0,0,13,14,16,19,18,13,15,16,20,17,16,18,0,0,0,15,16,17,18,19,11,14,14,0,19,12,15,14,17,17,13,15,15,0,0,16,17,15,20,19,15,17,16,19,0,8,10,10,14,15,10,12,11,15,15,10,11,12,16,15,13,14,14,19,17,14,15,15,0,0,9,11,11,16,15,11,13,13,17,16,10,12,13,16,17,14,15,15,18,18,14,15,16,20,19,9,12,12,0,15,11,13,13,16,17,11,13,13,19,17,14,16,16,18,17,15,16,16,17,19,11,14,14,18,18,13,14,15,0,0,12,14,15,19,18,15,16,19,0,19,15,16,19,19,17,12,14,14,16,19,13,15,15,0,17,13,15,14,18,18,15,16,15,0,18,16,17,17,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,5,6,6,5,6,6,5,6,6,7,8,8,6,8,8,5,6,6,6,8,7,7,8,8,5,6,6,7,8,8,6,8,8,6,8,8,8,9,10,8,10,10,6,8,8,7,10,8,8,10,10,5,6,6,6,8,8,7,8,8,6,8,8,8,10,10,8,8,10,6,8,8,8,10,10,8,10,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,11,11,8,10,11,5,8,8,8,11,10,8,11,11,4,8,8,8,11,11,8,11,11,8,11,11,11,13,14,11,13,13,7,11,11,10,13,12,11,14,14,4,8,8,8,11,11,8,11,11,8,11,11,11,14,13,10,12,13,8,11,11,11,13,13,11,13,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,13,15,17,17,15,15,12,17,11,9,7,10,10,9,12,17,10,6,3,6,5,7,10,17,15,10,6,9,8,9,11,17,15,8,4,7,3,5,9,16,16,10,5,8,4,5,8,16,13,11,5,8,3,3,5,14,13,12,7,10,5,5,7,14,2,0,0,0,64,0,0,0,152,118,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,107,2,0,0,0,0,0,0,0,0,0,0,0,0,0,120,107,2,0,0,0,0,0,0,0,0,0,0,0,0,0,160,107,2,0,0,0,0,0,0,0,0,0,0,0,0,0,200,107,2,0,0,0,0,0,0,0,0,0,0,0,0,0,240,107,2,0,0,0,0,0,24,108,2,0,64,108,2,0,0,0,0,0,0,0,0,0,104,108,2,0,144,108,2,0,184,108,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,16,107,2,0,0,0,0,0,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,8,13,10,17,11,11,15,7,2,4,5,8,7,9,16,13,4,3,5,6,8,11,20,10,4,5,5,7,6,8,18,15,7,6,7,8,10,14,20,10,6,7,6,9,7,8,17,9,8,10,8,10,5,4,11,12,17,19,14,16,10,7,12,4,0,0,0,81,0,0,0,48,118,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,136,118,2,0,0,0,0,0,4,0,0,0,81,0,0,0,200,117,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,32,118,2,0,0,0,0,0,4,0,0,0,113,2,0,0,56,115,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,176,117,2,0,0,0,0,0,4,0,0,0,113,2,0,0,168,112,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,32,115,2,0,0,0,0,0,2,0,0,0,81,0,0,0,40,112,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,128,112,2,0,0,0,0,0,2,0,0,0,169,0,0,0,64,111,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,240,111,2,0,0,0,0,0,2,0,0,0,25,0,0,0,8,111,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,40,111,2,0,0,0,0,0,2,0,0,0,49,0,0,0,176,110,2,0,1,0,0,0,0,176,31,225,0,32,245,96,3,0,0,0,0,0,0,0,232,110,2,0,0,0,0,0,2,0,0,0,169,0,0,0,200,109,2,0,1,0,0,0,0,128,211,224,0,0,122,96,4,0,0,0,0,0,0,0,120,110,2,0,0,0,0,0,2,0,0,0,169,0,0,0,224,108,2,0,1,0,0,0,0,0,88,224,0,0,16,96,4,0,0,0,0,0,0,0,144,109,2,0,0,0,0,0,2,5,4,6,6,7,7,8,8,8,8,9,8,5,5,6,7,7,8,8,8,8,9,9,9,9,5,6,5,7,7,8,8,8,8,9,9,9,9,6,7,7,8,8,8,8,9,8,9,9,9,9,6,7,7,8,7,8,8,9,9,9,9,9,9,7,8,8,8,8,9,9,9,9,9,9,9,9,7,8,8,9,8,9,8,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,9,9,10,10,8,8,9,9,9,9,9,9,9,9,10,9,10,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,10,9,9,10,10,9,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,6,6,6,6,7,7,8,8,9,9,5,7,7,8,7,7,7,9,8,10,9,10,11,5,7,7,8,8,7,7,8,9,10,10,11,11,6,8,8,9,9,9,9,11,10,12,12,15,12,6,8,8,9,9,9,9,11,11,12,11,14,12,7,8,8,10,10,12,12,13,13,13,15,13,13,7,8,8,10,10,11,11,13,12,14,15,15,15,9,10,10,11,12,13,13,14,15,14,15,14,15,8,10,10,12,12,14,14,15,14,14,15,15,14,10,12,12,14,14,15,14,15,15,15,14,15,15,10,12,12,13,14,15,14,15,15,14,15,15,15,12,15,13,15,14,15,15,15,15,15,15,15,15,13,13,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,5,5,4,5,5,5,5,5,6,6,6,6,5,6,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,9,11,10,14,13,4,6,5,8,8,9,9,11,10,11,11,14,14,4,5,6,8,8,9,9,10,10,11,11,14,14,6,8,8,9,9,10,10,11,11,12,12,16,15,7,8,8,9,9,10,10,11,11,12,12,15,15,9,10,10,10,10,11,11,12,12,12,12,15,15,9,10,9,10,11,11,11,12,12,12,13,15,15,10,10,11,11,11,12,12,13,12,13,13,16,15,10,11,11,11,11,12,12,13,12,13,13,16,17,11,11,12,12,12,13,13,13,14,14,15,17,17,11,11,12,12,12,13,13,13,14,14,14,16,18,14,15,15,15,15,16,16,16,16,17,18,0,0,14,15,15,15,15,17,16,17,18,17,17,18,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,6,8,8,8,8,9,9,4,6,6,8,8,8,8,9,9,7,8,8,9,9,9,9,11,10,7,8,8,9,9,9,9,10,10,7,8,8,9,9,10,10,11,11,7,8,8,9,9,10,10,11,11,9,9,9,10,10,11,11,12,12,9,9,9,10,11,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,9,9,5,6,6,9,9,5,6,6,9,9,9,10,9,12,12,9,9,10,12,12,5,7,7,10,10,7,7,8,10,10,6,7,8,10,10,10,10,10,11,13,10,9,10,12,13,5,7,7,10,10,6,8,7,10,10,7,8,7,10,10,9,10,10,12,12,10,10,10,13,11,9,10,10,13,13,10,11,10,13,13,10,10,10,13,13,12,12,13,14,14,12,12,13,14,14,9,10,10,13,13,10,10,10,13,13,10,10,10,13,13,12,13,12,15,14,12,13,12,15,15,5,7,6,10,10,7,8,8,10,10,7,8,8,10,10,10,11,10,13,13,10,10,10,12,12,7,8,8,11,10,8,8,9,10,11,8,9,9,11,11,11,10,11,11,14,11,11,11,13,13,6,8,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,14,11,10,11,11,13,13,10,11,11,14,13,10,10,11,14,13,10,11,11,14,14,12,11,13,12,16,13,14,14,15,15,10,10,11,13,14,10,11,10,14,13,10,11,11,14,14,12,13,12,15,13,13,13,14,15,16,5,7,7,10,10,7,8,8,10,10,7,8,8,10,10,10,10,10,13,13,10,10,11,12,13,6,8,8,11,10,8,9,9,11,11,7,8,9,10,11,10,11,11,13,13,10,10,11,11,13,6,8,8,10,11,8,9,9,11,11,8,9,8,12,10,10,11,11,13,13,10,11,10,14,11,10,10,10,14,13,10,11,11,14,13,10,10,11,13,13,12,14,14,16,16,12,12,13,13,15,10,11,11,13,14,10,11,11,14,15,10,11,10,13,13,13,14,13,16,16,12,13,11,15,12,9,10,10,13,13,10,11,11,14,13,10,10,11,13,14,13,14,13,16,16,13,13,13,15,16,9,10,10,13,13,10,10,11,13,14,10,11,11,15,13,13,13,14,14,18,13,13,14,16,15,9,10,10,13,14,10,11,10,14,13,10,11,11,13,14,13,14,13,16,15,13,13,14,15,16,12,13,12,16,14,11,11,13,15,15,13,14,13,16,15,15,12,16,12,17,14,15,15,17,17,12,13,13,14,16,11,13,11,16,15,12,13,14,15,16,14,15,13,0,14,14,16,16,0,0,9,10,10,13,13,10,11,10,14,14,10,11,11,13,13,12,13,13,14,16,13,14,14,16,16,9,10,10,14,14,11,11,11,14,13,10,10,11,14,14,13,13,13,16,16,13,13,14,14,17,9,10,10,13,14,10,11,11,13,15,10,11,10,14,14,13,13,13,14,17,13,14,13,17,14,12,13,13,16,14,13,14,13,16,15,12,12,13,15,16,15,15,16,18,16,15,13,15,14,0,12,12,13,14,16,13,13,14,15,16,11,12,11,16,14,15,16,16,17,17,14,15,12,17,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,8,8,5,8,7,9,9,5,7,8,9,9,9,10,9,12,12,9,9,10,12,12,6,8,8,11,10,8,10,10,11,11,8,9,10,11,11,10,11,11,14,13,10,11,11,13,13,5,8,8,10,10,8,10,10,11,11,8,10,10,11,11,10,11,11,13,13,10,11,11,13,13,9,11,11,15,14,10,12,12,15,14,10,12,11,15,14,13,14,14,16,16,12,14,13,17,15,9,11,11,14,15,10,11,12,14,16,10,11,12,14,16,12,13,14,16,16,13,13,15,15,18,5,8,8,11,11,8,10,10,12,12,8,10,10,12,13,11,12,12,14,14,11,12,12,15,15,8,10,10,13,13,10,12,12,13,13,10,12,12,14,14,12,13,13,15,15,12,13,13,16,16,7,10,10,12,12,10,12,11,13,13,10,12,12,13,14,12,13,12,15,14,12,13,13,16,16,10,12,12,17,16,12,13,13,16,15,11,13,13,17,17,15,15,15,16,17,14,15,15,19,19,10,12,12,15,16,11,13,12,15,18,11,13,13,16,16,14,15,15,17,17,14,15,15,17,19,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,16,15,11,12,12,14,15,7,10,10,13,13,10,12,12,14,13,10,11,12,13,13,12,13,13,16,16,12,12,13,15,15,8,10,10,13,13,10,12,12,14,14,10,12,12,13,13,12,13,13,16,16,12,13,13,15,15,10,12,12,16,15,11,13,13,17,16,11,12,13,16,15,13,15,15,19,17,14,15,14,17,16,10,12,12,16,16,11,13,13,16,17,12,13,13,15,17,14,15,15,17,19,14,15,15,17,17,8,11,11,16,16,10,13,12,17,17,10,12,13,16,16,15,17,16,20,19,14,15,17,18,19,9,12,12,16,17,11,13,14,17,18,11,13,13,19,18,16,17,18,19,19,15,16,16,19,19,9,12,12,16,17,11,14,13,18,17,11,13,13,17,17,16,17,16,20,19,14,16,16,18,18,12,15,15,19,17,14,15,16,0,20,13,15,16,20,17,18,16,20,0,0,15,16,19,20,0,12,15,14,18,19,13,16,15,20,19,13,16,15,20,18,17,18,17,0,20,16,17,16,0,0,8,11,11,16,15,10,12,12,17,17,10,13,13,17,16,14,16,15,18,20,15,16,16,19,19,9,12,12,16,16,11,13,13,17,16,11,13,14,17,18,15,15,16,20,20,16,16,17,19,19,9,13,12,16,17,11,14,13,17,17,11,14,14,18,17,14,16,15,18,19,16,17,18,18,19,12,14,15,19,18,13,15,16,18,0,13,14,15,0,0,16,16,17,20,0,17,17,20,20,0,12,15,15,19,20,13,15,15,0,0,14,16,15,0,0,15,18,16,0,0,17,18,16,0,19,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,6,6,5,6,6,5,7,7,7,8,8,6,8,8,5,7,7,6,8,8,7,8,8,4,7,7,7,8,8,7,8,8,7,8,8,8,9,10,8,10,10,6,8,8,8,10,8,8,10,10,5,7,7,7,8,8,7,8,8,6,8,8,8,10,10,8,8,10,6,8,8,8,10,10,8,10,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,11,11,8,10,10,5,8,8,8,11,10,8,11,11,4,8,8,8,11,11,8,11,11,8,12,11,11,13,13,11,13,14,7,11,11,10,13,12,11,13,14,4,8,8,8,11,11,8,11,12,8,11,11,11,13,13,10,12,13,8,11,11,11,14,13,11,14,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,12,13,14,13,17,12,15,17,5,5,6,10,10,11,15,16,4,3,3,7,5,7,10,16,7,7,7,10,9,11,12,16,6,5,5,9,5,6,10,16,8,7,7,9,6,7,9,16,11,7,3,6,4,5,8,16,12,9,4,8,5,7,9,16,2,0,0,0,64,0,0,0,168,133,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,120,2,0,0,0,0,0,0,0,0,0,0,0,0,0,80,120,2,0,0,0,0,0,0,0,0,0,0,0,0,0,120,120,2,0,0,0,0,0,0,0,0,0,0,0,0,0,160,120,2,0,0,0,0,0,0,0,0,0,0,0,0,0,200,120,2,0,0,0,0,0,240,120,2,0,24,121,2,0,0,0,0,0,0,0,0,0,64,121,2,0,104,121,2,0,144,121,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,232,119,2,0,0,0,0,0,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,8,13,10,17,11,11,15,7,2,4,5,8,7,9,16,13,4,3,5,6,8,11,20,10,4,5,5,7,6,8,18,15,7,6,7,8,10,14,20,10,6,7,6,9,7,8,17,9,8,10,8,10,5,4,11,12,17,19,14,16,10,7,12,4,0,0,0,81,0,0,0,64,133,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,152,133,2,0,0,0,0,0,4,0,0,0,81,0,0,0,216,132,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,48,133,2,0,0,0,0,0,4,0,0,0,113,2,0,0,72,130,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,132,2,0,0,0,0,0,4,0,0,0,113,2,0,0,184,127,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,48,130,2,0,0,0,0,0,2,0,0,0,81,0,0,0,56,127,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,144,127,2,0,0,0,0,0,2,0,0,0,169,0,0,0,80,126,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,0,127,2,0,0,0,0,0,2,0,0,0,25,0,0,0,24,126,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,56,126,2,0,0,0,0,0,4,0,0,0,113,2,0,0,136,123,2,0,1,0,0,0,0,32,21,225,0,32,245,96,3,0,0,0,0,0,0,0,0,126,2,0,0,0,0,0,2,0,0,0,169,0,0,0,160,122,2,0,1,0,0,0,0,128,211,224,0,0,122,96,4,0,0,0,0,0,0,0,80,123,2,0,0,0,0,0,2,0,0,0,169,0,0,0,184,121,2,0,1,0,0,0,0,0,88,224,0,0,16,96,4,0,0,0,0,0,0,0,104,122,2,0,0,0,0,0,2,5,4,6,6,7,7,8,8,8,8,9,8,5,5,6,7,7,8,8,8,8,9,9,9,9,5,6,5,7,7,8,8,8,8,9,9,9,9,6,7,7,8,8,8,8,9,8,9,9,9,9,6,7,7,8,7,8,8,9,9,9,9,9,9,7,8,8,8,8,9,9,9,9,9,9,9,9,7,8,8,9,8,9,8,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,9,9,10,10,8,8,9,9,9,9,9,9,9,9,10,9,10,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,10,9,9,10,10,9,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,6,6,6,6,7,7,8,8,9,9,5,7,7,8,7,7,7,9,8,10,9,10,11,5,7,7,8,8,7,7,8,9,10,10,11,11,6,8,8,9,9,9,9,11,10,12,12,15,12,6,8,8,9,9,9,9,11,11,12,11,14,12,7,8,8,10,10,12,12,13,13,13,15,13,13,7,8,8,10,10,11,11,13,12,14,15,15,15,9,10,10,11,12,13,13,14,15,14,15,14,15,8,10,10,12,12,14,14,15,14,14,15,15,14,10,12,12,14,14,15,14,15,15,15,14,15,15,10,12,12,13,14,15,14,15,15,14,15,15,15,12,15,13,15,14,15,15,15,15,15,15,15,15,13,13,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,11,11,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,5,5,4,5,5,5,5,5,6,6,6,6,5,6,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,9,11,10,14,13,4,6,5,8,8,9,9,11,10,11,11,14,14,4,5,6,8,8,9,9,10,10,11,11,14,14,6,8,8,9,9,10,10,11,11,12,12,16,15,7,8,8,9,9,10,10,11,11,12,12,15,15,9,10,10,10,10,11,11,12,12,12,12,15,15,9,10,9,10,11,11,11,12,12,12,13,15,15,10,10,11,11,11,12,12,13,12,13,13,16,15,10,11,11,11,11,12,12,13,12,13,13,16,17,11,11,12,12,12,13,13,13,14,14,15,17,17,11,11,12,12,12,13,13,13,14,14,14,16,18,14,15,15,15,15,16,16,16,16,17,18,0,0,14,15,15,15,15,17,16,17,18,17,17,18,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,6,8,8,8,8,9,9,4,6,6,8,8,8,8,9,9,7,8,8,9,9,9,9,11,10,7,8,8,9,9,9,9,10,10,7,8,8,9,9,10,10,11,11,7,8,8,9,9,10,10,11,11,9,9,9,10,10,11,11,12,12,9,9,9,10,11,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,9,9,5,6,6,9,9,5,6,6,9,9,9,10,9,12,12,9,9,10,12,12,5,7,7,10,10,7,7,8,10,10,6,7,8,10,10,10,10,10,11,13,10,9,10,12,13,5,7,7,10,10,6,8,7,10,10,7,8,7,10,10,9,10,10,12,12,10,10,10,13,11,9,10,10,13,13,10,11,10,13,13,10,10,10,13,13,12,12,13,14,14,12,12,13,14,14,9,10,10,13,13,10,10,10,13,13,10,10,10,13,13,12,13,12,15,14,12,13,12,15,15,5,7,6,10,10,7,8,8,10,10,7,8,8,10,10,10,11,10,13,13,10,10,10,12,12,7,8,8,11,10,8,8,9,10,11,8,9,9,11,11,11,10,11,11,14,11,11,11,13,13,6,8,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,14,11,10,11,11,13,13,10,11,11,14,13,10,10,11,14,13,10,11,11,14,14,12,11,13,12,16,13,14,14,15,15,10,10,11,13,14,10,11,10,14,13,10,11,11,14,14,12,13,12,15,13,13,13,14,15,16,5,7,7,10,10,7,8,8,10,10,7,8,8,10,10,10,10,10,13,13,10,10,11,12,13,6,8,8,11,10,8,9,9,11,11,7,8,9,10,11,10,11,11,13,13,10,10,11,11,13,6,8,8,10,11,8,9,9,11,11,8,9,8,12,10,10,11,11,13,13,10,11,10,14,11,10,10,10,14,13,10,11,11,14,13,10,10,11,13,13,12,14,14,16,16,12,12,13,13,15,10,11,11,13,14,10,11,11,14,15,10,11,10,13,13,13,14,13,16,16,12,13,11,15,12,9,10,10,13,13,10,11,11,14,13,10,10,11,13,14,13,14,13,16,16,13,13,13,15,16,9,10,10,13,13,10,10,11,13,14,10,11,11,15,13,13,13,14,14,18,13,13,14,16,15,9,10,10,13,14,10,11,10,14,13,10,11,11,13,14,13,14,13,16,15,13,13,14,15,16,12,13,12,16,14,11,11,13,15,15,13,14,13,16,15,15,12,16,12,17,14,15,15,17,17,12,13,13,14,16,11,13,11,16,15,12,13,14,15,16,14,15,13,0,14,14,16,16,0,0,9,10,10,13,13,10,11,10,14,14,10,11,11,13,13,12,13,13,14,16,13,14,14,16,16,9,10,10,14,14,11,11,11,14,13,10,10,11,14,14,13,13,13,16,16,13,13,14,14,17,9,10,10,13,14,10,11,11,13,15,10,11,10,14,14,13,13,13,14,17,13,14,13,17,14,12,13,13,16,14,13,14,13,16,15,12,12,13,15,16,15,15,16,18,16,15,13,15,14,0,12,12,13,14,16,13,13,14,15,16,11,12,11,16,14,15,16,16,17,17,14,15,12,17,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,8,8,5,8,7,9,9,5,7,8,9,9,9,10,9,12,12,9,9,10,12,12,6,8,8,11,10,8,10,10,11,11,8,9,10,11,11,10,11,11,14,13,10,11,11,13,13,5,8,8,10,10,8,10,10,11,11,8,10,10,11,11,10,11,11,13,13,10,11,11,13,13,9,11,11,15,14,10,12,12,15,14,10,12,11,15,14,13,14,14,16,16,12,14,13,17,15,9,11,11,14,15,10,11,12,14,16,10,11,12,14,16,12,13,14,16,16,13,13,15,15,18,5,8,8,11,11,8,10,10,12,12,8,10,10,12,13,11,12,12,14,14,11,12,12,15,15,8,10,10,13,13,10,12,12,13,13,10,12,12,14,14,12,13,13,15,15,12,13,13,16,16,7,10,10,12,12,10,12,11,13,13,10,12,12,13,14,12,13,12,15,14,12,13,13,16,16,10,12,12,17,16,12,13,13,16,15,11,13,13,17,17,15,15,15,16,17,14,15,15,19,19,10,12,12,15,16,11,13,12,15,18,11,13,13,16,16,14,15,15,17,17,14,15,15,17,19,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,16,15,11,12,12,14,15,7,10,10,13,13,10,12,12,14,13,10,11,12,13,13,12,13,13,16,16,12,12,13,15,15,8,10,10,13,13,10,12,12,14,14,10,12,12,13,13,12,13,13,16,16,12,13,13,15,15,10,12,12,16,15,11,13,13,17,16,11,12,13,16,15,13,15,15,19,17,14,15,14,17,16,10,12,12,16,16,11,13,13,16,17,12,13,13,15,17,14,15,15,17,19,14,15,15,17,17,8,11,11,16,16,10,13,12,17,17,10,12,13,16,16,15,17,16,20,19,14,15,17,18,19,9,12,12,16,17,11,13,14,17,18,11,13,13,19,18,16,17,18,19,19,15,16,16,19,19,9,12,12,16,17,11,14,13,18,17,11,13,13,17,17,16,17,16,20,19,14,16,16,18,18,12,15,15,19,17,14,15,16,0,20,13,15,16,20,17,18,16,20,0,0,15,16,19,20,0,12,15,14,18,19,13,16,15,20,19,13,16,15,20,18,17,18,17,0,20,16,17,16,0,0,8,11,11,16,15,10,12,12,17,17,10,13,13,17,16,14,16,15,18,20,15,16,16,19,19,9,12,12,16,16,11,13,13,17,16,11,13,14,17,18,15,15,16,20,20,16,16,17,19,19,9,13,12,16,17,11,14,13,17,17,11,14,14,18,17,14,16,15,18,19,16,17,18,18,19,12,14,15,19,18,13,15,16,18,0,13,14,15,0,0,16,16,17,20,0,17,17,20,20,0,12,15,15,19,20,13,15,15,0,0,14,16,15,0,0,15,18,16,0,0,17,18,16,0,19,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,6,6,5,6,6,5,7,7,7,8,8,6,8,8,5,7,7,6,8,8,7,8,8,4,7,7,7,8,8,7,8,8,7,8,8,8,9,10,8,10,10,6,8,8,8,10,8,8,10,10,5,7,7,7,8,8,7,8,8,6,8,8,8,10,10,8,8,10,6,8,8,8,10,10,8,10,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,11,11,8,10,10,5,8,8,8,11,10,8,11,11,4,8,8,8,11,11,8,11,11,8,12,11,11,13,13,11,13,14,7,11,11,10,13,12,11,13,14,4,8,8,8,11,11,8,11,12,8,11,11,11,13,13,10,12,13,8,11,11,11,14,13,11,14,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,12,13,14,13,17,12,15,17,5,5,6,10,10,11,15,16,4,3,3,7,5,7,10,16,7,7,7,10,9,11,12,16,6,5,5,9,5,6,10,16,8,7,7,9,6,7,9,16,11,7,3,6,4,5,8,16,12,9,4,8,5,7,9,16],"i8",O3,_.GLOBAL_BASE+155104),C3([2,0,0,0,64,0,0,0,184,148,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,135,2,0,0,0,0,0,0,0,0,0,0,0,0,0,96,135,2,0,0,0,0,0,0,0,0,0,0,0,0,0,136,135,2,0,0,0,0,0,0,0,0,0,0,0,0,0,176,135,2,0,0,0,0,0,0,0,0,0,0,0,0,0,216,135,2,0,0,0,0,0,0,136,2,0,40,136,2,0,0,0,0,0,0,0,0,0,80,136,2,0,120,136,2,0,160,136,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,248,134,2,0,0,0,0,0,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,6,12,9,14,9,9,19,6,1,5,5,8,7,9,19,12,4,4,7,7,9,11,18,9,5,6,6,8,7,8,17,14,8,7,8,8,10,12,18,9,6,8,6,8,6,8,18,9,8,11,8,11,7,5,15,16,18,18,18,17,15,11,18,4,0,0,0,81,0,0,0,80,148,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,168,148,2,0,0,0,0,0,4,0,0,0,81,0,0,0,232,147,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,64,148,2,0,0,0,0,0,4,0,0,0,113,2,0,0,88,145,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,208,147,2,0,0,0,0,0,4,0,0,0,113,2,0,0,200,142,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,145,2,0,0,0,0,0,2,0,0,0,81,0,0,0,72,142,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,160,142,2,0,0,0,0,0,2,0,0,0,169,0,0,0,96,141,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,16,142,2,0,0,0,0,0,2,0,0,0,25,0,0,0,40,141,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,72,141,2,0,0,0,0,0,4,0,0,0,113,2,0,0,152,138,2,0,1,0,0,0,0,32,21,225,0,32,245,96,3,0,0,0,0,0,0,0,16,141,2,0,0,0,0,0,2,0,0,0,169,0,0,0,176,137,2,0,1,0,0,0,0,128,211,224,0,0,122,96,4,0,0,0,0,0,0,0,96,138,2,0,0,0,0,0,2,0,0,0,169,0,0,0,200,136,2,0,1,0,0,0,0,0,88,224,0,0,16,96,4,0,0,0,0,0,0,0,120,137,2,0,0,0,0,0,3,4,4,6,6,7,7,8,8,9,9,9,8,4,5,5,6,6,8,8,9,8,9,9,9,9,4,5,5,7,6,8,8,8,8,9,8,9,8,6,7,7,7,8,8,8,9,9,9,9,9,9,6,7,7,7,7,8,8,9,9,9,9,9,9,7,8,8,8,8,9,8,9,9,10,9,9,10,7,8,8,8,8,9,9,9,9,9,9,10,10,8,9,9,9,9,9,9,9,9,10,10,9,10,8,9,9,9,9,9,9,9,9,9,9,10,10,9,9,9,10,9,9,10,9,9,10,10,10,10,9,9,9,9,9,9,9,10,9,10,10,10,10,9,9,9,10,9,9,10,10,9,10,10,10,10,9,9,9,10,9,9,9,10,10,10,10,10,10,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,6,6,6,6,9,8,9,8,8,8,5,7,7,7,7,8,8,8,10,8,10,8,9,5,7,7,8,7,7,8,10,10,11,10,12,11,7,8,8,9,9,9,10,11,11,11,11,11,11,7,8,8,8,9,9,9,10,10,10,11,11,12,7,8,8,9,9,10,11,11,12,11,12,11,11,7,8,8,9,9,10,10,11,11,11,12,12,11,8,10,10,10,10,11,11,14,11,12,12,12,13,9,10,10,10,10,12,11,14,11,14,11,12,13,10,11,11,11,11,13,11,14,14,13,13,13,14,11,11,11,12,11,12,12,12,13,14,14,13,14,12,11,12,12,12,12,13,13,13,14,13,14,14,11,12,12,14,12,13,13,12,13,13,14,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,5,3,11,11,11,11,11,11,11,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,5,5,4,5,5,6,5,5,6,5,6,6,5,6,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,10,11,11,15,15,4,5,5,8,8,9,9,11,11,12,12,16,16,4,5,6,8,8,9,9,11,11,12,12,14,14,7,8,8,9,9,10,10,11,12,13,13,16,17,7,8,8,9,9,10,10,12,12,12,13,15,15,9,10,10,10,10,11,11,12,12,13,13,15,16,9,9,9,10,10,11,11,13,12,13,13,17,17,10,11,11,11,12,12,12,13,13,14,15,0,18,10,11,11,12,12,12,13,14,13,14,14,17,16,11,12,12,13,13,14,14,14,14,15,16,17,16,11,12,12,13,13,14,14,14,14,15,15,17,17,14,15,15,16,16,16,17,17,16,0,17,0,18,14,15,15,16,16,0,15,18,18,0,16,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,8,8,9,9,4,6,5,8,7,8,8,10,9,4,6,6,8,8,8,8,10,10,7,8,7,9,9,9,9,11,10,7,8,8,9,9,9,9,10,11,8,8,8,9,9,10,10,11,11,8,8,8,9,9,10,10,11,11,9,10,10,11,10,11,11,12,12,9,10,10,10,11,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,9,9,5,6,6,10,9,5,6,6,9,10,10,10,10,12,11,9,10,10,12,12,5,7,7,10,10,7,7,8,10,11,7,7,8,10,11,10,10,11,11,13,10,10,11,11,13,6,7,7,10,10,7,8,7,11,10,7,8,7,10,10,10,11,9,13,11,10,11,10,13,11,10,10,10,14,13,10,11,11,14,13,10,10,11,13,14,12,12,13,15,15,12,12,13,13,14,10,10,10,12,13,10,11,10,13,13,10,11,11,13,13,12,13,12,14,13,12,13,13,14,13,5,7,7,10,10,7,8,8,11,10,7,8,8,10,10,11,11,11,13,13,10,11,11,12,12,7,8,8,11,11,7,8,9,10,12,8,9,9,11,11,11,10,12,11,14,11,11,12,13,13,6,8,8,10,11,7,9,7,12,10,8,9,10,11,12,10,12,10,14,11,11,12,11,13,13,10,11,11,14,14,10,10,11,13,14,11,12,12,15,13,12,11,14,12,16,12,13,14,15,16,10,10,11,13,14,10,11,10,14,12,11,12,12,13,14,12,13,11,15,12,14,14,14,15,15,5,7,7,10,10,7,8,8,10,10,7,8,8,10,11,10,11,10,12,12,10,11,11,12,13,6,8,8,11,11,8,9,9,12,11,7,7,9,10,12,11,11,11,12,13,11,10,12,11,15,7,8,8,11,11,8,9,9,11,11,7,9,8,12,10,11,12,11,13,12,11,12,10,15,11,10,11,10,14,12,11,12,11,14,13,10,10,11,13,14,13,13,13,17,15,12,11,14,12,15,10,10,11,13,14,11,12,12,14,14,10,11,10,14,13,13,14,13,16,17,12,14,11,16,12,9,10,10,14,13,10,11,10,14,14,10,11,11,13,13,13,14,14,16,15,12,13,13,14,14,9,11,10,14,13,10,10,12,13,14,11,12,11,14,13,13,14,14,14,15,13,14,14,15,15,9,10,11,13,14,10,11,10,15,13,11,11,12,12,15,13,14,12,15,14,13,13,14,14,15,12,13,12,16,14,11,11,12,15,14,13,15,13,16,14,13,12,15,12,17,15,16,15,16,16,12,12,13,13,15,11,13,11,15,14,13,13,14,15,17,13,14,12,0,13,14,15,14,15,0,9,10,10,13,13,10,11,11,13,13,10,11,11,13,13,12,13,12,14,14,13,14,14,15,17,9,10,10,13,13,11,12,11,15,12,10,10,11,13,16,13,14,13,15,14,13,13,14,15,16,10,10,11,13,14,11,11,12,13,14,10,12,11,14,14,13,13,13,14,15,13,15,13,16,15,12,13,12,15,13,12,15,13,15,15,11,11,13,14,15,15,15,15,15,17,13,12,14,13,17,12,12,14,14,15,13,13,14,14,16,11,13,11,16,15,14,16,16,17,0,14,13,11,16,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,8,8,5,8,7,9,9,5,7,8,9,9,9,10,9,12,12,9,9,10,11,12,6,8,8,10,10,8,10,10,11,11,8,9,10,11,11,10,11,11,13,13,10,11,11,12,13,6,8,8,10,10,8,10,9,11,11,8,10,10,11,11,10,11,11,13,12,10,11,11,13,12,9,11,11,15,13,10,12,11,15,13,10,11,11,15,14,12,14,13,16,15,12,13,13,17,16,9,11,11,13,15,10,11,12,14,15,10,11,12,14,15,12,13,13,15,16,12,13,13,16,16,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,14,11,12,12,14,14,8,11,10,13,12,10,11,12,12,13,10,12,12,13,13,12,12,13,13,15,11,12,13,15,14,7,10,10,12,12,9,12,11,13,12,10,12,12,13,14,12,13,12,15,13,11,13,12,14,15,10,12,12,16,14,11,12,12,16,15,11,13,12,17,16,13,13,15,15,17,13,15,15,20,17,10,12,12,14,16,11,12,12,15,15,11,13,13,15,18,13,14,13,15,15,13,15,14,16,16,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,14,11,12,12,14,15,7,10,10,13,12,10,12,12,14,13,9,10,12,12,13,11,13,13,15,15,11,12,13,13,15,8,10,10,12,13,10,12,12,13,13,10,12,11,13,13,11,13,12,15,15,12,13,12,15,13,10,12,12,16,14,11,12,12,16,15,10,12,12,16,14,14,15,14,18,16,13,13,14,15,16,10,12,12,14,16,11,13,13,16,16,11,13,12,14,16,13,15,15,18,18,13,15,13,16,14,8,11,11,16,16,10,13,13,17,16,10,12,12,16,15,14,16,15,20,17,13,14,14,17,17,9,12,12,16,16,11,13,14,16,17,11,13,13,16,16,15,15,19,18,0,14,15,15,18,18,9,12,12,17,16,11,13,12,17,16,11,12,13,15,17,15,16,15,0,19,14,15,14,19,18,12,14,14,0,16,13,14,14,19,18,13,15,16,17,16,15,15,17,18,0,14,16,16,19,0,12,14,14,16,18,13,15,13,17,18,13,15,14,17,18,15,18,14,18,18,16,17,16,0,17,8,11,11,15,15,10,12,12,16,16,10,13,13,16,16,13,15,14,17,17,14,15,17,17,18,9,12,12,16,15,11,13,13,16,16,11,12,13,17,17,14,14,15,17,17,14,15,16,0,18,9,12,12,16,17,11,13,13,16,17,11,14,13,18,17,14,16,14,17,17,15,17,17,18,18,12,14,14,0,16,13,15,15,19,0,12,13,15,0,0,14,17,16,19,0,16,15,18,18,0,12,14,14,17,0,13,14,14,17,0,13,15,14,0,18,15,16,16,0,18,15,18,15,0,17,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,6,6,5,6,6,5,7,7,7,8,8,6,7,9,5,7,7,6,8,7,7,9,8,4,7,7,7,9,8,7,8,8,7,9,8,8,8,10,9,10,10,6,8,8,7,10,8,9,10,10,5,7,7,7,8,8,7,8,9,6,8,8,9,10,10,7,8,10,6,8,9,9,10,10,8,10,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,10,11,8,10,11,5,8,8,8,11,10,8,11,10,4,9,9,8,11,11,8,11,11,8,12,11,10,12,14,11,13,13,7,11,11,10,13,11,11,13,14,4,8,9,8,11,11,8,11,12,7,11,11,11,14,13,10,11,13,8,11,12,11,13,13,10,14,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,12,12,14,12,14,14,14,14,12,6,6,8,9,9,11,14,12,4,2,6,6,7,11,14,13,6,5,7,8,9,11,14,13,8,5,8,6,8,12,14,12,7,7,8,8,8,10,14,12,6,3,4,4,4,7,14,11,7,4,6,6,6,8,14,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,5,0,0,0,4,0,0,0,3,0,0,0,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,224,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,64,65,0,0,72,65,0,0,80,65,0,0,88,65,0,0,96,65,0,0,104,65,0,0,112,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,3,0,0,0,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,64,65,0,0,72,65,0,0,80,65,0,0,88,65,0,0,96,65,0,0,104,65,0,0,112,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,3,0,0,0,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,64,64,0,0,128,64,0,0,128,64,0,0,160,64,0,0,160,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,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,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,128,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,0,65,0,0,0,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,192,64,0,0,192,64,0,0,192,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,64,0,0,224,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,32,65,0,0,32,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,65,0,0,0,65,0,0,32,65,0,0,32,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,65,0,0,32,65,0,0,32,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,32,65,0,0,32,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,200,47,1,0,32,161,2,0,200,47,1,0,96,161,2,0,200,47,1,0,160,161,2,0,200,47,1,0,224,161,2,0,200,47,1,0,32,162,2,0,200,47,1,0,96,162,2,0,200,47,1,0,160,162,2,0,200,47,1,0,224,162,2,0,200,47,1,0,32,163,2,0,200,47,1,0,96,163,2,0,200,47,1,0,160,163,2,0,2,0,0,0,0,0,0,0,32,0,0,0,64,171,3,0,216,86,4,0,0,87,4,0,40,87,4,0,232,87,4,0,2,0,0,0,0,0,0,0,32,0,0,0,64,171,3,0,168,88,4,0,208,88,4,0,40,87,4,0,232,87,4,0,2,0,0,0,0,0,0,0,16,0,0,0,64,171,3,0,248,5,4,0,32,6,4,0,72,6,4,0,8,7,4,0,2,0,0,0,0,0,0,0,32,0,0,0,64,171,3,0,200,7,4,0,240,7,4,0,72,6,4,0,8,7,4,0,2,0,0,0,0,0,0,0,16,0,0,0,64,171,3,0,88,182,3,0,128,182,3,0,168,182,3,0,104,183,3,0,2,0,0,0,0,0,0,0,32,0,0,0,64,171,3,0,40,184,3,0,80,184,3,0,168,182,3,0,104,183,3,0,2,0,0,0,0,0,0,0,16,0,0,0,24,73,1,0,152,128,3,0,152,128,3,0,192,128,3,0,192,128,3,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,128,129,3,0,128,129,3,0,192,128,3,0,192,128,3,0,2,0,0,0,0,0,0,0,16,0,0,0,24,73,1,0,176,85,3,0,176,85,3,0,216,85,3,0,216,85,3,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,152,86,3,0,152,86,3,0,216,85,3,0,216,85,3,0,2,0,0,0,0,0,0,0,16,0,0,0,24,73,1,0,32,42,3,0,32,42,3,0,72,42,3,0,72,42,3,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,8,43,3,0,8,43,3,0,72,42,3,0,72,42,3,0,2,0,0,0,0,0,0,0,16,0,0,0,24,73,1,0,8,254,2,0,8,254,2,0,48,254,2,0,48,254,2,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,240,254,2,0,240,254,2,0,48,254,2,0,48,254,2,0,2,0,0,0,0,0,0,0,16,0,0,0,224,163,2,0,8,235,2,0,8,235,2,0,48,235,2,0,48,235,2,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,240,235,2,0,240,235,2,0,48,235,2,0,48,235,2,0,2,0,0,0,0,0,0,0,16,0,0,0,224,163,2,0,8,216,2,0,8,216,2,0,48,216,2,0,48,216,2,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,240,216,2,0,240,216,2,0,48,216,2,0,48,216,2,0,2,0,0,0,0,0,0,0,16,0,0,0,224,163,2,0,168,195,2,0,168,195,2,0,208,195,2,0,208,195,2,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,144,196,2,0,144,196,2,0,208,195,2,0,208,195,2,0,2,0,0,0,0,0,0,0,16,0,0,0,224,163,2,0,248,174,2,0,248,174,2,0,32,175,2,0,32,175,2,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,224,175,2,0,224,175,2,0,32,175,2,0,32,175,2,0,0,0,0,0,255,255,255,255,255,255,255,255,10,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+165344),C3([1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,71,0,0,0,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,71,0,0,0,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,64,195,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,176,2,0,0,0,0,0,0,0,0,0,0,0,0,0,152,176,2,0,0,0,0,0,0,0,0,0,0,0,0,0,192,176,2,0,0,0,0,0,0,0,0,0,0,0,0,0,232,176,2,0,0,0,0,0,16,177,2,0,56,177,2,0,0,0,0,0,0,0,0,0,96,177,2,0,136,177,2,0,0,0,0,0,0,0,0,0,176,177,2,0,216,177,2,0,0,0,0,0,0,0,0,0,0,178,2,0,40,178,2,0,0,0,0,0,0,0,0,0,80,178,2,0,120,178,2,0,160,178,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,8,176,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,12,14,15,15,15,13,15,15,6,5,8,10,12,12,13,12,14,13,10,6,5,6,8,9,11,11,13,13,13,8,5,4,5,6,8,10,11,13,14,10,7,5,4,5,7,9,11,12,13,11,8,6,5,4,5,7,9,11,12,11,10,8,7,5,4,5,9,10,13,13,11,10,8,6,5,4,7,9,15,14,13,12,10,9,8,7,8,9,12,12,14,13,12,11,10,9,8,9,0,0,0,0,4,0,0,0,81,0,0,0,216,194,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,48,195,2,0,0,0,0,0,4,0,0,0,113,2,0,0,72,192,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,194,2,0,0,0,0,0,2,0,0,0,81,0,0,0,200,191,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,32,192,2,0,0,0,0,0,2,0,0,0,33,1,0,0,88,190,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,128,191,2,0,0,0,0,0,4,0,0,0,81,0,0,0,240,189,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,72,190,2,0,0,0,0,0,2,0,0,0,121,0,0,0,64,189,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,192,189,2,0,0,0,0,0,2,0,0,0,169,0,0,0,88,188,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,8,189,2,0,0,0,0,0,2,0,0,0,25,0,0,0,32,188,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,188,2,0,0,0,0,0,2,0,0,0,169,0,0,0,56,187,2,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,232,187,2,0,0,0,0,0,2,0,0,0,121,0,0,0,136,186,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,8,187,2,0,0,0,0,0,2,0,0,0,225,0,0,0,96,185,2,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,72,186,2,0,0,0,0,0,2,0,0,0,185,1,0,0,72,183,2,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,8,185,2,0,0,0,0,0,2,0,0,0,105,1,0,0,136,181,2,0,1,0,0,0,128,93,176,225,0,24,61,97,5,0,0,0,0,0,0,0,248,182,2,0,0,0,0,0,2,0,0,0,105,1,0,0,200,179,2,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,56,181,2,0,0,0,0,0,1,0,0,0,49,0,0,0,200,178,2,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,0,179,2,0,0,0,0,0,2,4,4,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,7,7,8,7,9,8,9,9,10,10,11,11,11,11,6,5,5,8,8,9,9,9,8,10,9,11,10,12,12,13,12,13,13,5,5,5,8,8,9,9,9,9,10,10,11,11,12,12,13,12,13,13,17,8,8,9,9,9,9,9,9,10,10,12,11,13,12,13,13,13,13,18,8,8,9,9,9,9,9,9,11,11,12,12,13,13,13,13,13,13,17,13,12,9,9,10,10,10,10,11,11,12,12,12,13,13,13,14,14,18,13,12,9,9,10,10,10,10,11,11,12,12,13,13,13,14,14,14,17,18,18,10,10,10,10,11,11,11,12,12,12,14,13,14,13,13,14,18,18,18,10,9,10,9,11,11,12,12,12,12,13,13,15,14,14,14,18,18,16,13,14,10,11,11,11,12,13,13,13,13,14,13,13,14,14,18,18,18,14,12,11,9,11,10,13,12,13,13,13,14,14,14,13,14,18,18,17,18,18,11,12,12,12,13,13,14,13,14,14,13,14,14,14,18,18,18,18,17,12,10,12,9,13,11,13,14,14,14,14,14,15,14,18,18,17,17,18,14,15,12,13,13,13,14,13,14,14,15,14,15,14,18,17,18,18,18,15,15,12,10,14,10,14,14,13,13,14,14,14,14,18,16,18,18,18,18,17,14,14,13,14,14,13,13,14,14,14,15,15,18,18,18,18,17,17,17,14,14,14,12,14,13,14,14,15,14,15,14,18,18,18,18,18,18,18,17,16,13,13,13,14,14,14,14,15,16,15,18,18,18,18,18,18,18,17,17,13,13,13,13,14,13,14,15,15,15,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,4,3,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,5,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,6,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,4,6,6,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,7,7,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,10,9,9,9,10,10,10,10,10,10,10,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,9,9,10,9,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,9,9,10,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,10,10,9,9,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,9,9,9,9,9,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,6,8,8,8,8,9,9,10,10,11,10,6,5,5,7,7,9,9,8,9,10,10,11,11,12,12,6,5,5,7,7,9,9,9,9,10,10,11,11,12,12,21,7,8,8,8,9,9,9,9,10,10,11,11,12,12,21,8,8,8,8,9,9,9,9,10,10,11,11,12,12,21,11,12,9,9,10,10,10,10,10,11,11,12,12,12,21,12,12,9,8,10,10,10,10,11,11,12,12,13,13,21,21,21,9,9,9,9,11,11,11,11,12,12,12,13,21,20,20,9,9,9,9,10,11,11,11,12,12,13,13,20,20,20,13,13,10,10,11,11,12,12,13,13,13,13,20,20,20,13,13,10,10,11,11,12,12,13,13,13,13,20,20,20,20,20,12,12,12,12,12,12,13,13,14,14,20,20,20,20,20,12,12,12,11,13,12,13,13,14,14,20,20,20,20,20,15,16,13,12,13,13,14,13,14,14,20,20,20,20,20,16,15,12,12,13,12,14,13,14,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,5,6,6,6,6,7,7,7,7,7,7,7,6,6,6,6,7,7,7,7,7,7,7,6,6,6,6,7,7,7,7,7,7,8,6,6,6,6,7,7,7,7,7,7,8,8,8,6,6,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,10,10,11,11,6,4,4,6,6,8,8,9,9,10,10,12,12,6,4,5,6,6,8,8,9,9,10,10,12,12,20,6,6,6,6,8,8,9,10,11,11,12,12,20,6,6,6,6,8,8,10,10,11,11,12,12,20,10,10,7,7,9,9,10,10,11,11,12,12,20,11,11,7,7,9,9,10,10,11,11,12,12,20,20,20,9,9,9,9,11,11,12,12,13,13,20,20,20,9,9,9,9,11,11,12,12,13,13,20,20,20,13,13,10,10,11,11,12,13,13,13,20,20,20,13,13,10,10,11,11,12,13,13,13,20,20,20,20,19,12,12,12,12,13,13,14,15,19,19,19,19,19,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,4,4,4,5,5,5,4,4,5,5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,8,8,9,9,5,4,4,6,6,8,8,9,9,9,9,10,10,6,4,4,6,6,8,8,9,9,9,9,10,10,0,6,6,7,7,8,8,9,9,10,10,11,11,0,6,6,7,7,8,8,9,9,10,10,11,11,0,10,10,8,8,9,9,10,10,11,11,12,12,0,11,11,8,8,9,9,10,10,11,11,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,4,5,5,6,6,7,7,7,7,7,7,11,5,5,6,6,7,7,7,7,8,8,11,5,5,6,6,7,7,7,7,8,8,11,5,5,6,6,7,7,8,8,8,8,11,11,11,6,6,7,7,7,8,8,8,11,11,11,6,6,7,7,7,8,8,8,11,11,11,6,6,7,7,7,7,8,8,11,11,11,7,7,7,7,7,7,8,8,11,11,11,10,10,7,7,7,7,8,8,11,11,11,11,11,7,7,7,7,7,7,11,11,11,11,11,7,7,7,7,7,7,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,6,7,7,4,7,6,9,10,10,10,10,9,4,6,7,9,10,10,10,9,10,5,9,9,9,11,11,10,11,11,7,10,9,11,12,11,12,12,12,7,9,10,11,11,12,12,12,12,6,10,10,10,12,12,10,12,11,7,10,10,11,12,12,11,12,12,7,10,10,11,12,12,12,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,10,10,0,5,4,5,5,7,7,8,8,8,8,9,9,10,10,11,11,0,5,5,6,6,7,7,8,8,8,8,9,9,10,10,11,11,0,6,5,6,6,7,7,8,8,9,9,10,10,11,11,11,12,0,0,0,6,6,7,7,8,8,9,9,10,10,11,11,12,12,0,0,0,7,7,7,7,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,7,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,8,8,9,9,10,10,11,11,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,3,4,4,5,5,6,6,8,8,0,4,4,5,5,6,7,8,8,0,4,4,5,5,7,7,8,8,0,5,5,6,6,7,7,9,9,0,0,0,6,6,7,7,9,9,0,0,0,7,7,8,8,9,9,0,0,0,7,7,8,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,0,5,5,8,8,0,5,5,8,8,0,7,7,9,9,0,0,0,9,9,6,7,7,9,8,0,8,8,9,9,0,8,7,9,9,0,9,10,10,10,0,0,0,11,10,6,7,7,8,9,0,8,8,9,9,0,7,8,9,9,0,10,9,11,10,0,0,0,10,10,8,9,8,10,10,0,10,10,12,11,0,10,10,11,11,0,12,13,13,13,0,0,0,13,12,8,8,9,10,10,0,10,10,11,12,0,10,10,11,11,0,13,12,13,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,7,10,10,0,7,7,10,9,0,7,7,10,10,0,9,9,10,10,0,0,0,10,10,6,7,8,10,10,0,7,7,9,10,0,7,7,10,10,0,9,9,10,10,0,0,0,10,10,8,9,9,11,11,0,10,10,11,11,0,10,10,11,11,0,12,12,12,12,0,0,0,12,12,8,9,10,11,11,0,9,10,11,11,0,10,10,11,11,0,12,12,12,12,0,0,0,12,12,0,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,8,7,10,10,0,7,7,10,10,0,7,7,10,9,0,9,9,10,10,0,0,0,10,10,6,7,8,10,10,0,7,7,10,10,0,7,7,9,10,0,9,9,10,10,0,0,0,10,10,8,10,9,12,11,0,10,10,12,11,0,10,9,11,11,0,11,12,12,12,0,0,0,12,12,8,9,10,11,12,0,10,10,11,11,0,9,10,11,11,0,12,11,12,12,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,9,12,12,0,9,9,12,11,0,9,9,11,11,0,10,10,12,11,0,0,0,11,12,7,9,10,12,12,0,9,9,11,12,0,9,9,11,11,0,10,10,11,12,0,0,0,11,11,9,11,10,13,12,0,10,10,12,12,0,10,10,12,12,0,11,11,12,12,0,0,0,13,12,9,10,11,12,13,0,10,10,12,12,0,10,10,12,12,0,11,12,12,12,0,0,0,12,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,11,10,13,13,0,10,10,12,12,0,10,10,12,12,0,11,12,12,12,0,0,0,12,12,9,10,11,13,13,0,10,10,12,12,0,10,10,12,12,0,12,11,13,12,0,0,0,12,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,5,5,0,5,5,6,8,8,0,9,8,0,9,8,6,8,8,0,8,9,0,8,9,0,0,0,0,0,0,0,0,0,5,8,8,0,7,7,0,8,8,5,8,8,0,7,8,0,8,8,0,0,0,0,0,0,0,0,0,5,9,8,0,8,8,0,7,7,5,8,9,0,8,8,0,7,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,13,18,16,17,17,19,18,19,19,5,7,10,11,12,12,13,16,17,18,6,6,7,7,9,9,10,14,17,19,8,7,6,5,6,7,9,12,19,17,8,7,7,6,5,6,8,11,15,19,9,8,7,6,5,5,6,8,13,15,11,10,8,8,7,5,4,4,10,14,12,13,11,9,7,6,4,2,6,12,18,16,16,13,8,7,7,5,8,13,16,17,18,15,11,9,9,8,10,13,0,0,0,0,2,0,0,0,100,0,0,0,160,215,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,197,2,0,0,0,0,0,0,0,0,0,0,0,0,0,72,197,2,0,0,0,0,0,0,0,0,0,0,0,0,0,112,197,2,0,0,0,0,0,0,0,0,0,0,0,0,0,152,197,2,0,0,0,0,0,192,197,2,0,232,197,2,0,0,0,0,0,0,0,0,0,16,198,2,0,56,198,2,0,0,0,0,0,0,0,0,0,96,198,2,0,136,198,2,0,0,0,0,0,0,0,0,0,176,198,2,0,216,198,2,0,0,0,0,0,0,0,0,0,0,199,2,0,40,199,2,0,80,199,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,184,196,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,12,13,14,14,14,13,14,14,6,4,5,8,10,10,11,11,14,13,9,5,4,5,7,8,9,10,13,13,12,7,5,4,5,6,8,9,12,13,13,9,6,5,5,5,7,9,11,14,12,10,7,6,5,4,6,7,10,11,12,11,9,8,7,5,5,6,10,10,13,12,10,9,8,6,6,5,8,10,14,13,12,12,11,10,9,7,8,10,12,13,14,14,13,12,11,9,9,10,0,0,0,0,4,0,0,0,81,0,0,0,56,215,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,144,215,2,0,0,0,0,0,4,0,0,0,113,2,0,0,168,212,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,32,215,2,0,0,0,0,0,2,0,0,0,81,0,0,0,40,212,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,128,212,2,0,0,0,0,0,2,0,0,0,33,1,0,0,184,210,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,224,211,2,0,0,0,0,0,4,0,0,0,81,0,0,0,80,210,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,168,210,2,0,0,0,0,0,2,0,0,0,121,0,0,0,160,209,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,32,210,2,0,0,0,0,0,2,0,0,0,169,0,0,0,184,208,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,104,209,2,0,0,0,0,0,2,0,0,0,25,0,0,0,128,208,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,208,2,0,0,0,0,0,2,0,0,0,169,0,0,0,152,207,2,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,72,208,2,0,0,0,0,0,2,0,0,0,121,0,0,0,232,206,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,104,207,2,0,0,0,0,0,2,0,0,0,225,0,0,0,192,205,2,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,168,206,2,0,0,0,0,0,2,0,0,0,185,1,0,0,168,203,2,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,104,205,2,0,0,0,0,0,2,0,0,0,33,1,0,0,56,202,2,0,1,0,0,0,0,24,157,225,0,24,61,97,5,0,0,0,0,0,0,0,96,203,2,0,0,0,0,0,2,0,0,0,105,1,0,0,120,200,2,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,232,201,2,0,0,0,0,0,1,0,0,0,49,0,0,0,120,199,2,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,176,199,2,0,0,0,0,0,2,4,4,4,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,6,7,7,7,7,8,8,9,9,10,10,10,10,11,11,6,6,6,8,8,9,8,8,7,10,8,11,10,12,11,12,12,13,13,5,5,6,8,8,9,9,8,8,10,9,11,11,12,12,13,13,13,13,17,8,8,9,9,9,9,9,9,10,9,12,10,12,12,13,12,13,13,17,9,8,9,9,9,9,9,9,10,10,12,12,12,12,13,13,13,13,17,13,13,9,9,10,10,10,10,11,11,12,11,13,12,13,13,14,15,17,13,13,9,8,10,9,10,10,11,11,12,12,14,13,15,13,14,15,17,17,17,9,10,9,10,11,11,12,12,12,12,13,13,14,14,15,15,17,17,17,9,8,9,8,11,11,12,12,12,12,14,13,14,14,14,15,17,17,17,12,14,9,10,11,11,12,12,14,13,13,14,15,13,15,15,17,17,17,13,11,10,8,11,9,13,12,13,13,13,13,13,14,14,14,17,17,17,17,17,11,12,11,11,13,13,14,13,15,14,13,15,16,15,17,17,17,17,17,11,11,12,8,13,12,14,13,17,14,15,14,15,14,17,17,17,17,17,15,15,12,12,12,12,13,14,14,14,15,14,17,14,17,17,17,17,17,16,17,12,12,13,12,13,13,14,14,14,14,14,14,17,17,17,17,17,17,17,14,14,13,12,13,13,15,15,14,13,15,17,17,17,17,17,17,17,17,13,14,13,13,13,13,14,15,15,15,14,15,17,17,17,17,17,17,17,16,15,13,14,13,13,14,14,15,14,14,16,17,17,17,17,17,17,17,16,16,13,14,13,13,14,14,15,14,15,14,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,4,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,7,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,4,5,5,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,6,6,7,7,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,10,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,9,10,10,9,10,10,10,10,9,10,9,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,9,9,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,9,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,10,9,10,9,9,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,6,8,8,8,7,9,8,10,10,11,10,6,5,5,7,7,9,9,8,8,10,10,11,11,12,11,6,5,5,7,7,9,9,9,9,10,10,11,11,12,12,20,8,8,8,8,9,9,9,9,10,10,11,11,12,12,20,8,8,8,8,10,9,9,9,10,10,11,11,12,12,20,12,12,9,9,10,10,10,10,10,11,12,12,12,12,20,12,12,9,9,10,10,10,10,11,11,12,12,13,13,20,20,20,9,9,9,9,11,10,11,11,12,12,12,13,20,19,19,9,9,9,9,11,11,11,12,12,12,13,13,19,19,19,13,13,10,10,11,11,12,12,13,13,13,13,19,19,19,14,13,11,10,11,11,12,12,12,13,13,13,19,19,19,19,19,12,12,12,12,13,13,13,13,14,13,19,19,19,19,19,12,12,12,11,12,12,13,14,14,14,19,19,19,19,19,16,15,13,12,13,13,13,14,14,14,19,19,19,19,19,17,17,13,12,13,11,14,13,15,15,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,4,5,6,6,6,7,7,7,7,7,7,8,6,6,6,7,7,7,7,7,7,7,8,6,6,6,6,7,7,7,7,7,7,8,6,6,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,7,9,9,10,10,12,12,6,5,5,7,7,8,8,10,10,11,11,12,12,7,5,5,7,7,8,8,10,10,11,11,12,12,21,7,7,7,7,8,9,10,10,11,11,12,12,21,7,7,7,7,9,9,10,10,12,12,13,13,21,11,11,8,8,9,9,11,11,12,12,13,13,21,11,11,8,8,9,9,11,11,12,12,13,13,21,21,21,10,10,10,10,11,11,12,13,13,13,21,21,21,10,10,10,10,11,11,13,13,14,13,21,21,21,13,13,11,11,12,12,13,13,14,14,21,21,21,14,14,11,11,12,12,13,13,14,14,21,21,21,21,20,13,13,13,12,14,14,16,15,20,20,20,20,20,13,13,13,13,14,13,15,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,4,4,5,5,5,4,4,5,5,5,4,4,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,9,9,10,10,6,5,5,7,7,8,8,9,9,10,10,11,11,6,5,5,7,7,8,8,9,9,10,10,11,11,0,7,7,7,7,9,9,10,10,10,10,11,11,0,7,7,7,7,9,9,10,10,10,10,11,11,0,11,11,9,9,10,10,11,11,11,11,12,12,0,12,12,9,9,10,10,11,11,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,5,6,6,7,7,8,8,8,8,11,4,5,6,6,7,7,8,8,8,8,11,5,5,6,6,7,7,8,8,8,9,12,5,5,6,6,7,7,8,8,9,9,12,12,12,6,6,7,7,8,8,9,9,11,11,11,6,6,7,7,8,8,8,8,11,11,11,6,6,7,7,8,8,8,8,11,11,11,7,7,7,8,8,8,8,8,11,11,11,11,11,7,7,8,8,8,8,11,11,11,11,11,7,7,7,7,8,8,11,11,11,11,11,7,7,7,7,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,6,7,7,4,7,6,10,10,10,10,10,10,4,6,6,10,10,10,10,9,10,5,10,10,9,11,11,10,11,11,7,10,10,11,12,12,12,12,12,7,10,10,11,12,12,12,12,12,6,10,10,10,12,12,10,12,12,7,10,10,11,12,12,12,12,12,7,10,10,11,12,12,12,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,7,7,8,8,8,8,9,9,10,10,11,11,0,4,4,6,6,7,7,8,8,9,8,10,10,11,11,11,11,0,4,4,6,6,7,7,8,8,9,9,10,10,11,11,11,11,0,6,5,6,6,7,7,9,9,9,9,10,10,11,11,12,12,0,0,0,6,6,7,7,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,11,12,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,11,12,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,4,4,5,5,7,7,9,9,0,4,4,6,6,7,7,9,9,0,4,4,6,6,7,7,9,9,0,5,5,6,6,8,8,10,10,0,0,0,6,6,8,8,10,10,0,0,0,7,7,9,9,10,10,0,0,0,7,7,8,8,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,0,5,5,8,8,0,5,5,8,8,0,7,7,9,9,0,0,0,9,9,5,7,7,9,9,0,8,7,10,9,0,8,7,10,9,0,10,10,11,11,0,0,0,11,11,5,7,7,9,9,0,7,8,9,10,0,7,8,9,10,0,10,10,11,11,0,0,0,11,11,8,9,9,11,10,0,11,10,12],"i8",O3,_.GLOBAL_BASE+175348),C3([11,0,11,10,12,12,0,13,13,14,14,0,0,0,14,13,8,9,9,10,11,0,10,11,12,12,0,10,11,12,12,0,13,13,14,14,0,0,0,13,14,0,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,8,7,11,10,0,7,7,10,10,0,7,7,10,10,0,9,9,10,10,0,0,0,11,10,5,7,8,10,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,10,0,0,0,10,10,8,10,9,12,12,0,10,10,12,11,0,10,10,12,12,0,12,12,13,12,0,0,0,13,12,8,9,10,12,12,0,10,10,11,12,0,10,10,11,12,0,12,12,13,13,0,0,0,12,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,7,11,10,0,7,7,10,10,0,7,7,10,10,0,9,9,10,11,0,0,0,10,10,6,7,8,10,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,10,0,0,0,10,10,9,10,9,12,12,0,10,10,12,12,0,10,10,12,11,0,12,12,13,13,0,0,0,13,12,8,9,10,12,12,0,10,10,12,12,0,10,10,11,12,0,12,12,13,13,0,0,0,12,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,13,13,0,9,9,12,12,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,7,10,10,13,13,0,9,9,12,12,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,9,11,11,14,13,0,10,10,13,12,0,11,10,13,12,0,12,12,13,12,0,0,0,13,13,9,11,11,13,14,0,10,11,12,13,0,10,11,13,13,0,12,12,12,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,11,11,14,14,0,10,11,13,13,0,11,10,13,13,0,11,12,13,13,0,0,0,13,12,9,11,11,14,14,0,11,10,13,13,0,10,11,13,13,0,12,12,13,13,0,0,0,12,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,5,5,0,5,5,5,7,7,0,9,8,0,9,8,6,7,7,0,8,9,0,8,9,0,0,0,0,0,0,0,0,0,5,9,8,0,8,8,0,8,8,5,8,9,0,8,8,0,8,8,0,0,0,0,0,0,0,0,0,5,9,8,0,8,8,0,8,8,5,8,9,0,8,8,0,8,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,11,13,14,15,15,18,17,19,17,5,6,8,9,10,10,12,15,19,19,6,6,6,6,8,8,11,14,18,19,8,6,5,4,6,7,10,13,16,17,9,7,6,5,6,7,9,12,15,19,10,8,7,6,6,6,7,9,13,15,12,10,9,8,7,6,4,5,10,15,13,13,11,8,6,6,4,2,7,12,17,15,16,10,8,8,7,6,9,12,19,18,17,13,11,10,10,9,11,14,0,0,0,0,2,0,0,0,100,0,0,0,160,234,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,217,2,0,0,0,0,0,0,0,0,0,0,0,0,0,168,217,2,0,0,0,0,0,0,0,0,0,0,0,0,0,208,217,2,0,0,0,0,0,0,0,0,0,0,0,0,0,248,217,2,0,0,0,0,0,32,218,2,0,72,218,2,0,0,0,0,0,0,0,0,0,112,218,2,0,152,218,2,0,0,0,0,0,0,0,0,0,192,218,2,0,232,218,2,0,0,0,0,0,0,0,0,0,16,219,2,0,56,219,2,0,0,0,0,0,0,0,0,0,96,219,2,0,136,219,2,0,176,219,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,24,217,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,11,13,15,14,14,13,15,14,6,4,5,7,9,10,11,11,14,13,10,4,3,5,7,8,9,10,13,13,12,7,4,4,5,6,8,9,12,14,13,9,6,5,5,6,8,9,12,14,12,9,7,6,5,5,6,8,11,11,12,11,9,8,7,6,6,7,10,11,13,11,10,9,8,7,6,6,9,11,13,13,12,12,12,10,9,8,9,11,12,14,15,15,14,12,11,10,10,12,0,0,0,0,4,0,0,0,81,0,0,0,56,234,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,144,234,2,0,0,0,0,0,4,0,0,0,113,2,0,0,168,231,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,32,234,2,0,0,0,0,0,2,0,0,0,81,0,0,0,40,231,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,128,231,2,0,0,0,0,0,2,0,0,0,33,1,0,0,184,229,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,224,230,2,0,0,0,0,0,4,0,0,0,81,0,0,0,80,229,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,168,229,2,0,0,0,0,0,2,0,0,0,121,0,0,0,160,228,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,32,229,2,0,0,0,0,0,2,0,0,0,169,0,0,0,184,227,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,104,228,2,0,0,0,0,0,2,0,0,0,25,0,0,0,128,227,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,227,2,0,0,0,0,0,2,0,0,0,169,0,0,0,152,226,2,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,72,227,2,0,0,0,0,0,2,0,0,0,121,0,0,0,232,225,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,104,226,2,0,0,0,0,0,2,0,0,0,225,0,0,0,192,224,2,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,168,225,2,0,0,0,0,0,2,0,0,0,185,1,0,0,168,222,2,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,104,224,2,0,0,0,0,0,2,0,0,0,169,0,0,0,192,221,2,0,1,0,0,0,0,220,125,225,0,232,51,97,4,0,0,0,0,0,0,0,112,222,2,0,0,0,0,0,2,0,0,0,169,0,0,0,216,220,2,0,1,0,0,0,0,96,18,225,0,128,184,96,4,0,0,0,0,0,0,0,136,221,2,0,0,0,0,0,1,0,0,0,49,0,0,0,216,219,2,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,16,220,2,0,0,0,0,0,2,4,3,4,5,5,5,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,7,7,7,6,8,8,8,8,6,6,6,8,8,9,8,8,7,9,8,11,10,5,6,6,8,8,9,8,8,8,10,9,11,11,16,8,8,9,8,9,9,9,8,10,9,11,10,16,8,8,9,9,10,10,9,9,10,10,11,11,16,13,13,9,9,10,10,9,10,11,11,12,11,16,13,13,9,8,10,9,10,10,10,10,11,11,16,14,16,8,9,9,9,11,10,11,11,12,11,16,16,16,9,7,10,7,11,10,11,11,12,11,16,16,16,12,12,9,10,11,11,12,11,12,12,16,16,16,12,10,10,7,11,8,12,11,12,12,16,16,15,16,16,11,12,10,10,12,11,12,12,16,16,16,15,15,11,11,10,10,12,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,11,11,11,11,11,11,11,11,11,11,4,6,6,11,11,11,11,11,11,11,11,11,11,4,7,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,5,7,6,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,11,10,10,10,9,9,9,9,9,9,9,9,9,9,10,9,9,10,9,9,10,11,10,11,10,9,9,9,9,9,9,9,10,10,10,9,10,9,9,9,9,11,10,11,10,10,9,9,9,9,9,9,10,9,9,10,9,9,10,9,9,10,11,10,10,11,10,9,9,9,9,9,10,10,9,10,10,10,10,9,10,10,10,10,10,10,11,11,11,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,9,10,11,11,10,11,10,11,10,9,10,10,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,10,11,11,10,10,10,10,10,10,9,10,9,10,10,9,10,9,10,10,10,11,10,11,10,11,11,10,10,10,10,10,10,9,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,10,11,11,10,10,10,10,9,9,10,10,9,9,10,9,10,10,10,10,11,11,10,10,10,10,10,10,10,9,9,10,10,10,9,9,10,10,10,10,10,11,10,11,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,7,9,8,9,9,10,10,6,5,5,7,7,9,9,8,8,10,9,11,10,12,11,6,5,5,8,7,9,9,8,8,10,10,11,11,12,11,19,8,8,8,8,10,10,9,9,10,10,11,11,12,11,19,8,8,8,8,10,10,9,9,10,10,11,11,12,12,19,12,12,9,9,10,10,9,10,10,10,11,11,12,12,19,12,12,9,9,10,10,10,10,10,10,12,12,12,12,19,19,19,9,9,9,9,11,10,11,11,12,11,13,13,19,19,19,9,9,9,9,11,10,11,11,11,12,13,13,19,19,19,13,13,10,10,11,11,12,12,12,12,13,12,19,19,19,14,13,10,10,11,11,12,12,12,13,13,13,19,19,19,19,19,12,12,12,11,12,13,14,13,13,13,19,19,19,19,19,12,12,12,11,12,12,13,14,13,14,19,19,19,19,19,16,16,12,13,12,13,13,14,15,14,19,18,18,18,18,16,15,12,11,12,11,14,12,14,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,4,5,5,6,6,7,7,7,7,7,7,8,6,6,7,7,7,7,7,7,7,7,8,6,6,6,7,7,7,7,7,7,7,8,6,6,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,7,8,9,9,10,10,12,11,6,5,5,7,7,8,8,9,10,11,11,12,12,7,5,5,7,7,8,8,10,10,11,11,12,12,20,7,7,7,7,8,9,10,10,11,11,12,13,20,7,7,7,7,9,9,10,10,11,12,13,13,20,11,11,8,8,9,9,11,11,12,12,13,13,20,11,11,8,8,9,9,11,11,12,12,13,13,20,20,20,10,10,10,10,12,12,13,13,13,13,20,20,20,10,10,10,10,12,12,13,13,13,14,20,20,20,14,14,11,11,12,12,13,13,14,14,20,20,20,14,14,11,11,12,12,13,13,14,14,20,20,20,20,19,13,13,13,13,14,14,15,14,19,19,19,19,19,13,13,13,13,14,14,15,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,4,4,5,5,5,4,4,5,5,5,4,4,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,7,9,8,10,10,6,5,5,7,7,8,8,9,9,9,10,11,11,7,5,5,7,7,8,8,9,9,10,10,11,11,0,7,7,7,7,9,8,9,9,10,10,11,11,0,8,8,7,7,8,9,9,9,10,10,11,11,0,11,11,9,9,10,10,11,10,11,11,12,12,0,12,12,9,9,10,10,11,11,11,11,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,5,6,6,7,7,8,8,8,8,11,4,4,6,6,7,7,8,8,9,9,11,4,4,6,6,7,7,8,8,9,9,12,5,5,6,6,7,7,9,9,9,9,12,12,12,6,6,7,7,9,9,9,9,11,11,11,7,7,7,7,8,8,9,9,11,11,11,7,7,7,7,8,8,9,9,11,11,11,7,7,8,8,8,8,9,9,11,11,11,11,11,8,8,8,8,8,9,11,11,11,11,11,8,8,8,8,8,8,11,11,11,11,11,7,7,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,6,7,7,4,6,7,10,10,10,10,10,9,4,6,6,10,10,10,10,9,10,5,10,10,9,11,12,10,11,12,7,10,10,11,12,12,12,12,12,7,10,10,11,12,12,12,12,12,6,10,10,10,12,12,11,12,12,7,10,10,12,12,12,12,11,12,7,10,10,11,12,12,12,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,7,7,8,8,8,8,9,9,10,10,11,11,0,4,4,6,6,7,7,8,8,9,9,10,10,11,11,12,12,0,4,4,6,6,7,7,8,8,9,9,10,10,11,11,12,12,0,5,5,6,6,8,8,9,9,9,9,10,10,11,12,12,12,0,0,0,6,6,8,7,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,13,12,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,12,13,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,4,4,5,5,7,7,9,9,0,4,4,6,6,7,7,9,9,0,4,4,6,6,7,7,9,9,0,5,5,6,6,8,8,10,10,0,0,0,6,6,8,8,10,10,0,0,0,7,7,9,9,10,10,0,0,0,7,7,8,8,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,0,5,5,8,8,0,5,5,8,8,0,7,7,9,9,0,0,0,9,9,5,7,7,9,9,0,8,8,10,10,0,8,7,10,9,0,10,10,11,11,0,0,0,11,11,5,7,7,9,9,0,8,8,10,10,0,7,8,9,10,0,10,10,11,11,0,0,0,11,11,8,9,9,11,10,0,11,11,12,12,0,11,10,12,12,0,13,14,14,14,0,0,0,14,13,8,9,9,10,11,0,11,11,12,12,0,10,11,12,12,0,13,13,14,14,0,0,0,13,14,0,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,8,7,11,10,0,7,7,10,10,0,7,7,10,10,0,9,9,11,10,0,0,0,11,11,5,7,8,10,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,11,0,0,0,11,11,8,10,9,12,12,0,10,10,12,12,0,10,10,12,12,0,12,12,13,13,0,0,0,13,13,8,9,10,12,12,0,10,10,12,12,0,10,10,11,12,0,12,12,13,13,0,0,0,13,13,0,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,8,8,11,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,11,0,0,0,11,10,5,8,8,10,11,0,7,7,10,10,0,7,7,10,10,0,9,9,11,10,0,0,0,10,11,9,10,10,12,12,0,10,10,12,12,0,10,10,12,12,0,12,13,13,13,0,0,0,13,12,9,10,10,12,12,0,10,10,12,12,0,10,10,12,12,0,13,12,13,13,0,0,0,12,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,14,13,0,9,9,12,12,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,7,10,10,13,14,0,9,9,12,13,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,9,11,11,14,13,0,11,10,13,12,0,11,11,13,13,0,12,12,13,13,0,0,0,13,13,9,11,11,13,14,0,10,11,12,13,0,11,11,13,13,0,12,12,13,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,11,11,14,14,0,10,11,13,13,0,11,10,13,13,0,12,12,13,13,0,0,0,13,12,9,11,11,14,14,0,11,10,13,13,0,10,11,13,13,0,12,12,14,13,0,0,0,13,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,5,5,0,5,5,5,8,7,0,9,9,0,9,8,5,7,8,0,9,9,0,8,9,0,0,0,0,0,0,0,0,0,5,9,9,0,8,8,0,8,8,5,8,9,0,8,8,0,8,8,0,0,0,0,0,0,0,0,0,5,9,9,0,8,8,0,8,8,5,8,9,0,8,8,0,8,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,11,12,14,15,15,17,17,18,18,5,6,6,8,9,10,13,17,18,19,7,5,4,6,8,9,11,15,19,19,8,6,5,5,6,7,11,14,16,17,9,7,7,6,7,7,10,13,15,19,10,8,7,6,7,6,7,9,14,16,12,10,9,7,7,6,4,5,10,15,14,13,11,7,6,6,4,2,7,13,16,16,15,9,8,8,8,6,9,13,19,19,17,12,11,10,10,9,11,14,0,0,0,0,2,0,0,0,100,0,0,0,160,253,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,236,2,0,0,0,0,0,0,0,0,0,0,0,0,0,168,236,2,0,0,0,0,0,0,0,0,0,0,0,0,0,208,236,2,0,0,0,0,0,0,0,0,0,0,0,0,0,248,236,2,0,0,0,0,0,32,237,2,0,72,237,2,0,0,0,0,0,0,0,0,0,112,237,2,0,152,237,2,0,0,0,0,0,0,0,0,0,192,237,2,0,232,237,2,0,0,0,0,0,0,0,0,0,16,238,2,0,56,238,2,0,0,0,0,0,0,0,0,0,96,238,2,0,136,238,2,0,176,238,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,24,236,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,11,13,14,14,13,13,16,14,6,3,4,7,9,9,10,11,14,13,10,4,3,5,7,7,9,10,13,15,12,7,4,4,6,6,8,10,13,15,12,8,6,6,6,6,8,10,13,14,11,9,7,6,6,6,7,8,12,11,13,10,9,8,7,6,6,7,11,11,13,11,10,9,9,7,7,6,10,11,13,13,13,13,13,11,9,8,10,12,12,15,15,16,15,12,11,10,10,12,0,0,0,0,4,0,0,0,81,0,0,0,56,253,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,144,253,2,0,0,0,0,0,4,0,0,0,113,2,0,0,168,250,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,32,253,2,0,0,0,0,0,2,0,0,0,81,0,0,0,40,250,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,128,250,2,0,0,0,0,0,2,0,0,0,33,1,0,0,184,248,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,224,249,2,0,0,0,0,0,4,0,0,0,81,0,0,0,80,248,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,168,248,2,0,0,0,0,0,2,0,0,0,121,0,0,0,160,247,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,32,248,2,0,0,0,0,0,2,0,0,0,169,0,0,0,184,246,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,104,247,2,0,0,0,0,0,2,0,0,0,25,0,0,0,128,246,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,246,2,0,0,0,0,0,2,0,0,0,169,0,0,0,152,245,2,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,72,246,2,0,0,0,0,0,2,0,0,0,121,0,0,0,232,244,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,104,245,2,0,0,0,0,0,2,0,0,0,225,0,0,0,192,243,2,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,168,244,2,0,0,0,0,0,2,0,0,0,185,1,0,0,168,241,2,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,104,243,2,0,0,0,0,0,2,0,0,0,169,0,0,0,192,240,2,0,1,0,0,0,0,220,125,225,0,232,51,97,4,0,0,0,0,0,0,0,112,241,2,0,0,0,0,0,2,0,0,0,169,0,0,0,216,239,2,0,1,0,0,0,0,96,18,225,0,128,184,96,4,0,0,0,0,0,0,0,136,240,2,0,0,0,0,0,1,0,0,0,49,0,0,0,216,238,2,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,16,239,2,0,0,0,0,0,2,4,3,4,5,5,5,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,7,7,7,6,8,8,8,8,6,6,6,8,8,8,8,8,7,9,8,10,10,5,6,6,8,8,9,9,8,8,10,10,10,10,16,9,9,9,9,9,9,9,8,10,9,11,11,16,8,9,9,9,9,9,9,9,10,10,11,11,16,13,13,9,9,10,9,9,10,11,11,11,12,16,13,14,9,8,10,8,9,9,10,10,12,11,16,14,16,9,9,9,9,11,11,12,11,12,11,16,16,16,9,7,9,6,11,11,11,10,11,11,16,16,16,11,12,9,10,11,11,12,11,13,13,16,16,16,12,11,10,7,12,10,12,12,12,12,16,16,15,16,16,10,11,10,11,13,13,14,12,16,16,16,15,15,12,10,11,11,13,11,12,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,11,11,11,11,11,11,11,11,11,11,4,7,7,11,11,11,11,11,11,11,11,11,11,5,8,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,5,6,6,7,7,7,7,8,7,8,8,8,8,8,8,8,8,8,8,10,6,6,7,7,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,10,6,6,7,7,8,8,8,8,8,8,9,8,9,9,9,9,9,9,9,9,10,7,7,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,10,11,11,8,7,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,9,11,11,11,11,11,9,9,9,9,9,9,10,9,9,10,9,10,9,9,10,9,11,11,11,11,11,9,9,9,9,9,9,9,10,10,10,10,9,10,10,9,10,11,11,11,11,11,9,9,9,9,10,10,10,9,10,10,10,10,9,10,10,9,11,11,11,11,11,11,11,9,9,9,9,10,10,10,10,9,10,10,10,10,10,11,11,11,11,11,11,11,10,9,10,10,10,10,10,10,10,9,10,9,10,10,11,11,11,11,11,11,11,10,9,10,9,10,10,9,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,9,10,10,10,10,10,9,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,9,10,10,11,11,11,11,11,11,11,11,11,10,10,10,9,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,10,11,9,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,7,8,8,7,7,8,7,9,8,10,9,6,5,5,8,8,9,9,8,8,9,9,11,10,11,10,6,5,5,8,8,9,9,8,8,9,9,10,10,11,11,18,8,8,9,8,10,10,9,9,10,10,10,10,11,10,18,8,8,9,9,10,10,9,9,10,10,11,11,12,12,18,12,13,9,10,10,10,9,10,10,10,11,11,12,11,18,13,13,9,9,10,10,10,10,10,10,11,11,12,12,18,18,18,10,10,9,9,11,11,11,11,11,12,12,12,18,18,18,10,9,10,9,11,10,11,11,11,11,13,12,18,18,18,14,13,10,10,11,11,12,12,12,12,12,12,18,18,18,14,13,10,10,11,10,12,12,12,12,12,12,18,18,18,18,18,12,12,11,11,12,12,13,13,13,14,18,18,18,18,18,12,12,11,11,12,11,13,13,14,13,18,18,18,18,18,16,16,11,12,12,13,13,13,14,13,18,18,18,18,18,16,15,12,11,12,11,13,11,15,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,3,5,5,6,6,7,7,7,7,7,7,9,5,5,6,6,7,7,7,7,8,7,8,5,5,6,6,7,7,7,7,7,7,9,6,6,7,7,7,7,8,7,7,8,9,9,9,7,7,7,7,7,7,7,8,9,9,9,7,7,7,7,8,8,8,8,9,9,9,7,7,7,7,7,7,8,8,9,9,9,8,8,8,8,7,7,8,8,9,9,9,9,8,8,8,7,7,8,8,9,9,9,8,8,8,8,7,7,8,8,9,9,9,8,8,7,7,7,7,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,8,8,8,10,10,11,10,6,5,5,7,7,8,8,9,9,10,10,12,11,6,5,5,7,7,8,8,9,9,10,10,12,11,21,7,7,7,7,9,9,10,10,11,11,12,12,21,7,7,7,7,9,9,10,10,11,11,12,12,21,12,12,9,9,10,10,11,11,11,11,12,12,21,12,12,9,9,10,10,11,11,12,12,12,12,21,21,21,11,11,10,10,11,12,12,12,13,13,21,21,21,11,11,10,10,12,12,12,12,13,13,21,21,21,15,15,11,11,12,12,13,13,13,13,21,21,21,15,16,11,11,12,12,13,13,14,14,21,21,21,21,20,13,13,13,13,13,13,14,14,20,20,20,20,20,13,13,13,13,13,13,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,4,4,5,5,5,4,4,5,5,5,4,4,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,8,8,10,9,10,10,6,5,5,7,7,9,9,9,9,10,10,11,11,6,5,5,7,7,9,9,10,9,11,10,11,11,0,6,6,7,7,9,9,10,10,11,11,12,12,0,7,7,7,7,9,9,10,10,11,11,12,12,0,11,11,8,8,10,10,11,11,12,12,12,12,0,11,12,9,8,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,4,6,6,7,7,8,8,8,8,11,4,4,6,6,7,7,8,8,8,8,11,4,4,6,6,7,7,8,8,8,8,11,6,6,6,6,8,8,8,8,9,9,11,11,11,6,6,7,8,8,8,8,9,11,11,11,7,7,8,8,8,8,8,8,11,11,11,7,7,8,8,8,8,8,8,11,11,11,8,8,8,8,8,8,8,8,11,11,11,10,10,8,8,8,8,8,8,11,11,11,10,10,8,8,8,8,8,8,11,11,11,10,10,7,7,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,6,7,7,4,6,6,9,9,10,10,10,9,4,6,6,9,10,9,10,9,10,6,9,9,10,12,11,10,11,11,7,10,9,11,12,12,12,12,12,7,10,10,11,12,12,12,12,12,6,10,10,10,12,12,11,12,12,7,9,10,11,12,12,12,12,12,7,10,9,12,12,12,12,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,9,9,9,10,10,10,0,4,4,6,6,8,8,9,9,9,9,10,10,10,10,11,11,0,4,4,6,6,8,8,9,9,9,9,10,10,10,10,11,11,0,6,6,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,7,7,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,12,12,0,0,0,0,0,8,8,9,9,10,10,11,11,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,3,4,6,6,7,7,9,9,0,4,4,6,6,7,7,9,10,0,4,4,6,6,7,7,10,9,0,5,5,7,7,8,8,10,10,0,0,0,7,6,8,8,10,10,0,0,0,7,7,9,9,11,11,0,0,0,7,7,9,9,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,0,5,5,8,8,0,5,5,8,8,0,7,7,9,9,0,0,0,9,9,5,7,7,9,9,0,8,8,10,10,0,8,7,10,9,0,10,10,11,11,0,0,0,11,11,5,7,7,9,9,0,8,8,10,10,0,7,8,9,10,0,10,10,11,11,0,0,0,11,11,8,9,9,11,11,0,11,11,12,12,0,11,10,12,12,0,13,14,14,14,0,0,0,14,13,8,9,9,11,11,0,11,11,12,12,0,10,11,12,12,0,14,13,14,14,0,0,0,13,14,0,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,8,7,11,10,0,7,7,10,10,0,7,7,10,10,0,9,9,11,10,0,0,0,11,11,5,7,8,10,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,11,0,0,0,11,11,8,10,9,12,12,0,10,10,12,12,0,10,10,12,12,0,12,12,13,13,0,0,0,13,13,8,9,10,12,12,0,10,10,11,12,0,10,10,12,12,0,12,12,13,13,0,0,0,13,13,0,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,8,8,11,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,11,0,0,0,11,10,5,8,8,11,11,0,7,7,10,10,0,7,7,10,10,0,9,9,11,11,0,0,0,10,11,8,10,10,12,12,0,10,10,12,12,0,10,10,12,12,0,12,13,13,13,0,0,0,14,13,8,10,10,12,12,0,10,10,12,12,0,10,10,12,12,0,13,12,13,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,14,13,0,9,9,13,12,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,7,10,10,13,14,0,9,9,12,13,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,9,11,11,14,13,0,11,10,14,13,0,11,11,13,13,0,12,12,13,13,0,0,0,13,13,9,11,11,13,14,0,10,11,13,14,0,11,11,13,13,0,12,12,13,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,11,11,14,14,0,11,11,13,13,0,11,10,13,13,0,12,12,13,13],"i8",O3,_.GLOBAL_BASE+185588),C3([13,13,9,11,11,14,14,0,11,11,13,13,0,10,11,13,13,0,12,12,14,13,0,0,0,13,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,5,5,0,5,5,5,8,7,0,9,9,0,9,8,5,7,8,0,9,9,0,8,9,0,0,0,0,0,0,0,0,0,5,9,8,0,8,8,0,8,8,5,8,9,0,8,8,0,8,8,0,0,0,0,0,0,0,0,0,5,9,9,0,8,8,0,8,8,5,9,9,0,8,8,0,8,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,9,11,11,13,14,19,17,17,19,5,4,5,8,10,10,13,16,18,19,7,4,4,5,8,9,12,14,17,19,8,6,5,5,7,7,10,13,16,18,10,8,7,6,5,5,8,11,17,19,11,9,7,7,5,4,5,8,17,19,13,11,8,7,7,5,5,7,16,18,14,13,8,6,6,5,5,7,16,18,18,16,10,8,8,7,7,9,16,18,18,18,12,10,10,9,9,10,17,18,0,0,0,0,2,0,0,0,100,0,0,0,184,41,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,168,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,208,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,248,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,72,0,3,0,0,0,0,0,112,0,3,0,152,0,3,0,0,0,0,0,0,0,0,0,192,0,3,0,232,0,3,0,0,0,0,0,0,0,0,0,16,1,3,0,56,1,3,0,96,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,24,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,9,13,10,12,12,12,12,12,6,4,6,8,6,8,10,10,11,12,8,5,4,10,4,7,8,9,10,11,13,8,10,8,9,9,11,12,13,14,10,6,4,9,3,5,6,8,10,11,11,8,6,9,5,5,6,7,9,11,12,9,7,11,6,6,6,7,8,10,12,11,9,12,7,7,6,6,7,9,13,12,10,13,9,8,7,7,7,8,11,15,11,15,11,10,9,8,7,7,0,0,0,0,8,0,0,0,161,25,0,0,0,16,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,168,41,3,0,0,0,0,0,4,0,0,0,113,2,0,0,112,13,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,15,3,0,0,0,0,0,4,0,0,0,113,2,0,0,224,10,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,13,3,0,0,0,0,0,2,0,0,0,81,0,0,0,96,10,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,184,10,3,0,0,0,0,0,2,0,0,0,81,0,0,0,224,9,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,56,10,3,0,0,0,0,0,2,0,0,0,33,1,0,0,112,8,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,152,9,3,0,0,0,0,0,4,0,0,0,81,0,0,0,8,8,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,96,8,3,0,0,0,0,0,2,0,0,0,121,0,0,0,88,7,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,216,7,3,0,0,0,0,0,2,0,0,0,169,0,0,0,112,6,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,32,7,3,0,0,0,0,0,2,0,0,0,25,0,0,0,56,6,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,6,3,0,0,0,0,0,2,0,0,0,225,0,0,0,16,5,3,0,1,0,0,0,0,134,115,225,0,80,22,97,4,0,0,0,0,0,0,0,248,5,3,0,0,0,0,0,2,0,0,0,33,1,0,0,160,3,3,0,1,0,0,0,0,0,245,224,0,0,149,96,5,0,0,0,0,0,0,0,200,4,3,0,0,0,0,0,2,0,0,0,185,1,0,0,136,1,3,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,72,3,3,0,0,0,0,0,3,5,5,6,6,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,9,11,5,6,7,7,8,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,11,5,5,7,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,11,7,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,10,9,10,11,11,11,7,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,11,11,11,8,8,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,5,5,7,7,9,8,10,9,10,10,11,10,11,11,6,5,5,7,7,8,9,10,10,11,10,12,11,12,11,13,12,6,5,5,7,7,9,9,10,10,11,11,12,12,13,12,13,13,18,8,8,8,8,9,9,10,11,11,11,12,11,13,11,13,12,18,8,8,8,8,10,10,11,11,12,12,13,13,13,13,13,14,18,12,12,9,9,11,11,11,11,12,12,13,12,13,12,13,13,20,13,12,9,9,11,11,11,11,12,12,13,13,13,14,14,13,20,18,19,11,12,11,11,12,12,13,13,13,13,13,13,14,13,18,19,19,12,11,11,11,12,12,13,12,13,13,13,14,14,13,18,17,19,14,15,12,12,12,13,13,13,14,14,14,14,14,14,19,19,19,16,15,12,11,13,12,14,14,14,13,13,14,14,14,19,18,19,18,19,13,13,13,13,14,14,14,13,14,14,14,14,18,17,19,19,19,13,13,13,11,13,11,13,14,14,14,14,14,19,17,17,18,18,16,16,13,13,13,13,14,13,15,15,14,14,19,19,17,17,18,16,16,13,11,14,10,13,12,14,14,14,14,19,19,19,19,19,18,17,13,14,13,11,14,13,14,14,15,15,19,19,19,17,19,18,18,14,13,12,11,14,11,15,15,15,15,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,13,13,13,13,13,13,13,13,13,13,13,13,4,7,7,13,13,13,13,13,13,13,13,13,13,13,13,3,8,6,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,2,4,4,5,5,6,5,5,5,5,6,4,5,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,9,9,10,10,6,5,5,7,7,8,8,8,9,10,10,10,10,7,5,5,7,7,8,8,9,9,10,10,10,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,10,10,10,10,10,11,11,0,13,13,9,9,9,9,10,10,11,11,11,11,0,0,0,10,10,10,10,10,10,11,11,11,11,0,0,0,10,10,10,10,10,10,11,11,12,12,0,0,0,14,14,11,11,11,11,12,12,12,12,0,0,0,14,14,11,11,11,11,12,12,12,12,0,0,0,0,0,12,12,12,12,12,12,13,13,0,0,0,0,0,12,12,12,12,12,12,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,6,6,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,9,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,7,10,10,11,11,10,11,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,7,11,11,12,11,11,12,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,4,4,6,6,8,8,9,9,9,9,10,10,10,10,11,11,0,4,4,6,6,8,8,9,9,9,9,10,10,11,11,12,12,0,4,4,6,6,8,8,9,9,9,9,10,10,11,11,12,12,0,6,6,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,7,7,8,9,10,10,10,10,11,11,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,9,10,10,10,11,11,12,12,12,12,0,0,0,0,0,10,10,10,10,11,11,11,12,12,12,13,13,0,0,0,0,0,0,0,10,10,11,11,11,11,12,12,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,12,13,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,12,12,12,12,13,12,13,13,13,13,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,4,3,6,6,7,7,9,9,0,4,4,6,6,7,7,9,9,0,4,4,6,6,7,7,9,9,0,6,6,7,7,7,7,9,9,0,0,0,7,6,7,7,9,9,0,0,0,8,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,9,9,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,5,5,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,7,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,3,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,6,6,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,5,5,0,0,0,5,5,0,0,0,8,7,0,0,0,0,0,0,0,4,6,6,0,0,0,8,8,0,0,0,8,7,0,0,0,10,10,0,0,0,0,0,0,0,4,6,6,0,0,0,8,8,0,0,0,7,8,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,8,8,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,5,7,8,0,0,0,8,8,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,8,8,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,5,8,8,0,0,0,8,8,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,10,10,0,0,0,10,10,0,0,0,9,10,0,0,0,11,10,0,0,0,0,0,0,0,8,10,10,0,0,0,10,10,0,0,0,10,10,0,0,0,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,4,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,11,10],"i8",O3,_.GLOBAL_BASE+195830),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,8,10,14,11,11,12,16,15,17,5,5,7,9,7,8,10,13,17,17,7,5,5,10,5,7,8,11,13,15,10,8,10,8,8,8,11,15,18,18,8,5,5,8,3,4,6,10,14,16,9,7,6,7,4,3,5,9,14,18,10,9,8,10,6,5,6,9,14,18,12,12,11,12,8,7,8,11,14,18,14,13,12,10,7,5,6,9,14,18,14,14,13,10,6,5,6,8,11,16,0,0,0,0,2,0,0,0,100,0,0,0,72,85,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,43,3,0,0,0,0,0,0,0,0,0,0,0,0,0,192,43,3,0,0,0,0,0,0,0,0,0,0,0,0,0,232,43,3,0,0,0,0,0,0,0,0,0,0,0,0,0,16,44,3,0,0,0,0,0,0,0,0,0,0,0,0,0,56,44,3,0,0,0,0,0,0,0,0,0,0,0,0,0,96,44,3,0,0,0,0,0,136,44,3,0,176,44,3,0,0,0,0,0,0,0,0,0,216,44,3,0,0,45,3,0,0,0,0,0,0,0,0,0,40,45,3,0,80,45,3,0,120,45,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,48,43,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,11,11,11,11,10,11,12,11,5,2,11,5,6,6,7,9,11,12,11,9,6,10,6,7,8,9,10,11,11,5,11,7,8,8,9,11,13,14,11,6,5,8,4,5,7,8,10,11,10,6,7,7,5,5,6,8,9,11,10,7,8,9,6,6,6,7,8,9,11,9,9,11,7,7,6,6,7,9,12,12,10,13,9,8,7,7,7,8,11,13,11,14,11,10,9,8,7,7,0,0,0,0,8,0,0,0,161,25,0,0,144,59,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,56,85,3,0,0,0,0,0,4,0,0,0,113,2,0,0,0,57,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,120,59,3,0,0,0,0,0,4,0,0,0,113,2,0,0,112,54,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,56,3,0,0,0,0,0,2,0,0,0,81,0,0,0,240,53,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,72,54,3,0,0,0,0,0,2,0,0,0,81,0,0,0,112,53,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,200,53,3,0,0,0,0,0,2,0,0,0,33,1,0,0,0,52,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,40,53,3,0,0,0,0,0,4,0,0,0,81,0,0,0,152,51,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,240,51,3,0,0,0,0,0,2,0,0,0,121,0,0,0,232,50,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,104,51,3,0,0,0,0,0,2,0,0,0,169,0,0,0,0,50,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,176,50,3,0,0,0,0,0,2,0,0,0,25,0,0,0,200,49,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,49,3,0,0,0,0,0,2,0,0,0,169,0,0,0,224,48,3,0,1,0,0,0,0,136,93,225,0,176,19,97,4,0,0,0,0,0,0,0,144,49,3,0,0,0,0,0,2,0,0,0,225,0,0,0,184,47,3,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,160,48,3,0,0,0,0,0,2,0,0,0,185,1,0,0,160,45,3,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,96,47,3,0,0,0,0,0,2,5,5,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,11,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,11,6,6,7,7,8,8,8,8,9,9,9,9,9,9,10,9,10,10,10,10,11,7,7,7,7,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,12,11,11,7,7,8,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,12,11,12,8,8,8,8,9,9,9,9,9,10,10,10,10,10,10,10,10,10,11,11,11,8,8,8,8,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,12,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,11,11,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,12,12,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,12,11,11,11,9,10,10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,12,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,12,11,11,12,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,12,12,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,12,12,12,11,11,11,12,11,11,11,10,10,10,10,10,10,10,10,10,10,10,12,11,12,12,12,12,12,11,12,11,11,10,10,10,10,10,10,10,10,10,10,12,12,12,12,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,5,5,7,7,9,8,10,9,10,10,10,10,6,5,5,7,7,9,8,10,9,11,10,12,12,13,13,6,5,5,7,7,9,9,10,10,11,11,12,12,12,13,19,8,8,8,8,9,9,10,10,12,11,12,12,13,13,19,8,8,8,8,9,9,11,11,12,12,13,13,13,13,19,12,12,9,9,11,11,11,11,12,11,13,12,13,13,18,12,12,9,9,11,10,11,11,12,12,12,13,13,14,19,18,18,11,11,11,11,12,12,13,12,13,13,14,14,16,18,18,11,11,11,10,12,11,13,13,13,13,13,14,17,18,18,14,15,11,12,12,13,13,13,13,14,14,14,18,18,18,15,15,12,10,13,10,13,13,13,13,13,14,18,17,18,17,18,12,13,12,13,13,13,14,14,16,14,18,17,18,18,17,13,12,13,10,12,12,14,14,14,14,17,18,18,18,18,14,15,12,12,13,12,14,14,15,15,18,18,18,17,18,15,14,12,11,12,12,14,14,14,15,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,3,12,12,12,12,12,12,12,12,12,12,4,7,7,12,12,12,12,12,12,12,12,12,12,3,8,8,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,5,5,6,5,5,5,5,6,5,4,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,9,9,10,10,6,5,5,7,7,8,8,8,8,9,10,11,11,7,5,5,7,7,8,8,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,9,10,10,10,10,11,11,0,13,13,9,9,10,9,10,10,11,11,11,12,0,0,0,10,10,10,10,10,10,11,11,12,12,0,0,0,10,10,10,10,10,10,11,11,12,12,0,0,0,14,14,11,11,11,11,12,12,12,12,0,0,0,14,14,11,11,11,11,12,12,12,13,0,0,0,0,0,12,12,12,12,12,12,13,13,0,0,0,0,0,13,12,12,12,12,12,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,8,8,10,5,5,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,6,6,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,9,8,10,10,10,10,10,8,8,8,8,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,7,10,10,11,11,10,11,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,7,11,11,12,11,11,12,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,4,4,6,6,8,8,9,9,8,8,9,9,10,10,11,11,0,4,4,6,6,8,8,9,9,9,9,10,10,11,11,11,11,0,4,4,7,6,8,8,9,9,9,9,10,10,11,11,11,11,0,6,6,7,7,8,8,9,9,9,9,10,10,11,11,11,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,9,9,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,9,9,9,10,10,11,11,11,12,12,12,0,0,0,0,0,10,10,10,10,11,11,11,11,12,12,13,12,0,0,0,0,0,0,0,10,10,11,11,11,11,12,12,12,12,0,0,0,0,0,0,0,11,11,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,12,12,12,12,12,12,13,13,13,13,0,0,0,0,0,0,0,0,0,12,12,12,12,12,13,13,13,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,3,3,6,6,7,7,9,9,0,4,4,6,6,7,7,9,9,0,4,5,6,6,7,7,9,9,0,6,6,7,7,8,8,10,10,0,0,0,7,7,8,8,10,9,0,0,0,9,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,10,10,9,9,11,11,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,5,5,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,8,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,0,0,0,5,5,0,0,0,5,5,0,0,0,7,7,0,0,0,0,0,0,0,5,6,6,0,0,0,7,7,0,0,0,7,7,0,0,0,10,10,0,0,0,0,0,0,0,5,6,6,0,0,0,7,7,0,0,0,7,7,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,5,7,8,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,5,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,9,9,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,8,10,10,0,0,0,9,9,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,5,6,6,0,0,0,0,0,0,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,6,8,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,0,0,0,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,7,7,0,0,0,0,0,0,6,8,7,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9],"i8",O3,_.GLOBAL_BASE+207264),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,14,10,15,10,12,15,16,15,4,2,11,5,10,6,8,11,14,14,14,10,7,11,6,8,10,11,13,15,9,4,11,5,9,6,9,12,14,15,14,9,6,9,4,5,7,10,12,13,9,5,7,6,5,5,7,10,13,13,10,8,9,8,7,6,8,10,14,14,13,11,10,10,7,7,8,11,14,15,13,12,9,9,6,5,7,10,14,17,15,13,11,10,6,6,7,9,12,17,0,0,0,0,2,0,0,0,100,0,0,0,48,128,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,87,3,0,0,0,0,0,0,0,0,0,0,0,0,0,80,87,3,0,0,0,0,0,0,0,0,0,0,0,0,0,120,87,3,0,0,0,0,0,0,0,0,0,0,0,0,0,160,87,3,0,0,0,0,0,0,0,0,0,0,0,0,0,200,87,3,0,0,0,0,0,0,0,0,0,0,0,0,0,240,87,3,0,0,0,0,0,24,88,3,0,64,88,3,0,0,0,0,0,0,0,0,0,104,88,3,0,144,88,3,0,0,0,0,0,0,0,0,0,184,88,3,0,224,88,3,0,8,89,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,192,86,3,0,0,0,0,0,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,6,11,11,11,11,10,10,12,11,5,2,11,5,6,6,7,9,11,13,13,10,7,11,6,7,8,9,10,12,11,5,11,6,8,7,9,11,14,15,11,6,6,8,4,5,7,8,10,13,10,5,7,7,5,5,6,8,10,11,10,7,7,8,6,5,5,7,9,9,11,8,8,11,8,7,6,6,7,9,12,11,10,13,9,9,7,7,7,9,11,13,12,15,12,11,9,8,8,8,0,0,0,0,8,0,0,0,161,25,0,0,120,102,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,32,128,3,0,0,0,0,0,4,0,0,0,113,2,0,0,232,99,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,96,102,3,0,0,0,0,0,4,0,0,0,113,2,0,0,88,97,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,208,99,3,0,0,0,0,0,2,0,0,0,81,0,0,0,216,96,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,48,97,3,0,0,0,0,0,2,0,0,0,81,0,0,0,88,96,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,176,96,3,0,0,0,0,0,2,0,0,0,33,1,0,0,232,94,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,16,96,3,0,0,0,0,0,4,0,0,0,81,0,0,0,128,94,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,216,94,3,0,0,0,0,0,2,0,0,0,121,0,0,0,208,93,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,80,94,3,0,0,0,0,0,2,0,0,0,169,0,0,0,232,92,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,152,93,3,0,0,0,0,0,2,0,0,0,25,0,0,0,176,92,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,208,92,3,0,0,0,0,0,2,0,0,0,169,0,0,0,200,91,3,0,1,0,0,0,0,232,87,225,0,224,255,96,4,0,0,0,0,0,0,0,120,92,3,0,0,0,0,0,2,0,0,0,225,0,0,0,160,90,3,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,136,91,3,0,0,0,0,0,2,0,0,0,33,1,0,0,48,89,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,88,90,3,0,0,0,0,0,2,5,5,6,6,7,7,7,7,7,7,8,8,8,8,8,8,10,6,6,7,7,8,7,8,8,8,8,8,9,9,9,9,9,10,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9,9,10,7,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,8,9,9,9,9,9,9,9,9,9,11,11,11,8,8,8,8,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,10,10,10,8,9,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,10,11,11,11,9,9,9,9,9,9,10,10,9,9,10,9,11,10,11,11,11,9,9,9,9,9,9,9,9,10,10,10,9,11,11,11,11,11,9,9,9,9,10,10,9,9,9,9,10,9,11,11,11,11,11,11,11,9,9,9,9,9,9,10,10,10,10,11,11,11,11,11,11,11,10,9,10,10,9,10,9,9,10,9,11,10,10,11,11,11,11,9,10,9,9,9,9,10,10,10,10,11,11,11,11,11,11,10,10,10,9,9,10,9,10,9,10,10,10,10,11,11,11,11,11,11,11,9,9,9,9,9,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,7,9,9,10,10,10,10,6,5,5,7,7,8,8,10,8,11,10,12,12,13,13,6,5,5,7,7,8,8,10,9,11,11,12,12,13,12,18,8,8,8,8,9,9,10,9,11,10,12,12,13,13,18,8,8,8,8,9,9,10,10,11,11,13,12,14,13,18,11,11,9,9,10,10,11,11,11,12,13,12,13,14,18,11,11,9,8,11,10,11,11,11,11,12,12,14,13,18,18,18,10,11,10,11,12,12,12,12,13,12,14,13,18,18,18,10,11,11,9,12,11,12,12,12,13,13,13,18,18,17,14,14,11,11,12,12,13,12,14,12,14,13,18,18,18,14,14,11,10,12,9,12,13,13,13,13,13,18,18,17,16,18,13,13,12,12,13,11,14,12,14,14,17,18,18,17,18,13,12,13,10,12,11,14,14,14,14,17,18,18,18,18,15,16,12,12,13,10,14,12,14,15,18,18,18,16,17,16,14,12,11,13,10,13,13,14,15,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,4,4,12,12,12,12,12,12,12,12,12,12,4,9,8,12,12,12,12,12,12,12,12,12,12,2,9,7,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,5,5,6,5,5,5,5,6,4,5,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,9,9,10,10,6,5,5,7,7,8,8,8,8,9,9,10,10,7,5,5,7,7,8,8,8,8,9,9,11,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,10,10,10,10,11,11,11,12,0,13,13,9,9,10,10,10,10,11,11,12,12,0,0,0,10,10,10,10,11,11,12,12,12,12,0,0,0,10,10,10,10,11,11,12,12,12,12,0,0,0,14,14,11,11,11,11,12,12,13,13,0,0,0,14,14,11,11,11,11,12,12,13,13,0,0,0,0,0,12,12,12,12,13,13,14,13,0,0,0,0,0,13,13,12,12,13,12,14,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,8,8,10,5,5,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,6,6,7,7,8,8,8,8,8,8,10,10,10,7,7,8,7,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,7,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,9,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,7,10,10,11,11,10,12,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,7,11,11,11,11,11,12,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,6,6,7,7,8,8,8,8,9,9,10,10,11,10,0,5,5,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,5,5,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,6,6,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,10,11,11,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,8,9,9,10,10,11,11,12,12,12,12,0,0,0,0,0,8,8,9,9,10,10,11,11,12,11,12,12,0,0,0,0,0,9,10,10,10,11,11,11,11,12,12,13,13,0,0,0,0,0,0,0,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,13,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,4,6,6,7,7,9,9,0,5,5,7,7,7,8,9,9,0,5,5,7,7,8,8,9,9,0,7,7,8,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,9,9,9,9,10,10,0,0,0,9,9,9,9,10,10,0,0,0,10,10,10,10,11,11,0,0,0,0,0,10,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,5,5,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,8,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,3,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,0,0,0,5,5,0,0,0,5,5,0,0,0,7,8,0,0,0,0,0,0,0,5,6,6,0,0,0,7,7,0,0,0,7,7,0,0,0,10,10,0,0,0,0,0,0,0,5,6,6,0,0,0,7,7,0,0,0,7,7,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,5,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,5,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,10,10,0,0,0,9,9,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,8,10,10,0,0,0,9,9,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,5,6,6,0,0,0,0,0,0,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,6,7,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,0,0,0,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,7,7,0,0,0,0,0,0,6,8,7,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,8,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,8],"i8",O3,_.GLOBAL_BASE+218416),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,10,9,13,11,14,10,12,13,13,14,7,2,12,5,10,5,7,10,12,14,12,6,9,8,7,7,9,11,13,16,10,4,12,5,10,6,8,12,14,16,12,6,8,7,6,5,7,11,12,16,10,4,8,5,6,4,6,9,13,16,10,6,10,7,7,6,7,9,13,15,12,9,11,9,8,6,7,10,12,14,14,11,10,9,6,5,6,9,11,13,15,13,11,10,6,5,6,8,9,11,0,0,0,0,2,0,0,0,100,0,0,0,216,170,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,130,3,0,0,0,0,0,0,0,0,0,0,0,0,0,56,130,3,0,0,0,0,0,0,0,0,0,0,0,0,0,96,130,3,0,0,0,0,0,0,0,0,0,0,0,0,0,136,130,3,0,0,0,0,0,0,0,0,0,0,0,0,0,176,130,3,0,0,0,0,0,0,0,0,0,0,0,0,0,216,130,3,0,0,0,0,0,0,131,3,0,40,131,3,0,0,0,0,0,0,0,0,0,80,131,3,0,120,131,3,0,0,0,0,0,0,0,0,0,160,131,3,0,200,131,3,0,240,131,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,168,129,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,12,10,10,10,9,10,12,12,6,1,10,5,6,6,7,9,11,14,12,9,8,11,7,8,9,11,13,15,10,5,12,7,8,7,9,12,14,15,10,6,7,8,5,6,7,9,12,14,9,6,8,7,6,6,7,9,12,12,9,7,9,9,7,6,6,7,10,10,10,9,10,11,8,7,6,6,8,10,12,11,13,13,11,10,8,8,8,10,11,13,15,15,14,13,10,8,8,9,0,0,0,0,8,0,0,0,161,25,0,0,32,145,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,200,170,3,0,0,0,0,0,4,0,0,0,113,2,0,0,144,142,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,8,145,3,0,0,0,0,0,4,0,0,0,113,2,0,0,0,140,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,120,142,3,0,0,0,0,0,2,0,0,0,81,0,0,0,128,139,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,216,139,3,0,0,0,0,0,2,0,0,0,81,0,0,0,0,139,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,88,139,3,0,0,0,0,0,2,0,0,0,33,1,0,0,144,137,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,184,138,3,0,0,0,0,0,4,0,0,0,81,0,0,0,40,137,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,128,137,3,0,0,0,0,0,2,0,0,0,121,0,0,0,120,136,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,248,136,3,0,0,0,0,0,2,0,0,0,169,0,0,0,144,135,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,64,136,3,0,0,0,0,0,2,0,0,0,25,0,0,0,88,135,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,120,135,3,0,0,0,0,0,2,0,0,0,169,0,0,0,112,134,3,0,1,0,0,0,0,184,84,225,0,160,251,96,4,0,0,0,0,0,0,0,32,135,3,0,0,0,0,0,2,0,0,0,169,0,0,0,136,133,3,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,56,134,3,0,0,0,0,0,2,0,0,0,33,1,0,0,24,132,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,64,133,3,0,0,0,0,0,2,4,4,6,6,7,7,7,7,7,7,8,8,8,8,8,8,10,7,7,7,7,7,7,8,8,8,8,9,9,9,9,9,9,10,7,7,7,7,8,8,8,8,8,8,9,9,9,9,9,9,10,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,8,7,8,8,8,8,9,9,9,9,9,9,9,9,10,11,11,8,8,8,8,9,9,9,9,9,9,10,9,9,9,10,11,10,8,8,8,8,9,9,9,9,9,9,9,10,10,10,10,11,10,8,8,9,9,9,9,9,9,10,9,9,10,9,10,11,10,11,11,11,8,8,9,9,9,9,9,9,9,9,10,10,11,11,11,11,11,9,9,9,9,9,9,10,9,9,9,10,10,11,11,11,11,11,9,9,9,9,9,9,9,9,9,10,9,10,11,11,11,11,11,9,9,9,9,10,10,9,9,9,10,10,10,11,11,11,11,11,11,11,9,9,9,10,9,9,10,10,10,10,11,11,10,11,11,11,11,10,9,10,10,9,9,9,9,10,10,11,10,11,11,11,11,11,9,9,9,9,10,9,10,10,10,10,11,10,11,11,11,11,11,10,10,9,9,10,9,10,10,10,10,10,10,10,11,11,11,11,11,11,9,9,10,9,10,9,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,6,8,8,10,9,10,10,6,5,5,7,7,8,7,10,9,11,11,12,13,6,5,5,7,7,8,8,10,10,11,11,13,13,18,8,8,8,8,9,9,10,10,12,12,12,13,18,8,8,8,8,9,9,10,10,12,12,13,13,18,11,11,8,8,10,10,11,11,12,11,13,12,18,11,11,9,7,10,10,11,11,11,12,12,13,17,17,17,10,10,11,11,12,12,12,10,12,12,17,17,17,11,10,11,10,13,12,11,12,12,12,17,17,17,15,14,11,11,12,11,13,10,13,12,17,17,17,14,14,12,10,11,11,13,13,13,13,17,17,16,17,16,13,13,12,10,13,10,14,13,17,16,17,16,17,13,12,12,10,13,11,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,5,4,12,12,12,12,12,12,12,12,12,12,4,9,8,11,11,11,11,11,11,11,11,11,11,2,8,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,5,4,6,5,5,5,5,6,5,5,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,6,5,5,7,7,8,8,8,8,9,9,10,10,7,6,5,7,7,8,8,8,8,9,9,10,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,10,10,10,10,11,11,11,11,0,13,13,9,9,10,10,10,10,11,11,12,12,0,0,0,10,10,10,10,11,11,12,12,12,13,0,0,0,10,10,10,10,11,11,12,12,12,12,0,0,0,14,14,10,11,11,11,12,12,13,13,0,0,0,14,14,11,10,11,11,13,12,13,13,0,0,0,0,0,12,12,11,12,13,12,14,14,0,0,0,0,0,12,12,12,12,13,12,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,4,6,6,7,7,7,7,7,7,9,7,7,6,6,7,7,8,8,8,8,9,6,6,6,6,7,7,8,8,8,8,10,7,7,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,10,9,9,7,10,10,11,10,11,11,10,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,11,11,10,10,7,11,10,11,11,11,12,11,11,6,9,9,11,10,10,11,11,10,6,9,9,11,10,10,12,10,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,3,6,6,8,8,9,9,9,9,9,9,10,10,11,11,0,7,7,7,7,8,8,9,9,9,9,10,10,11,11,12,11,0,7,7,7,7,8,8,9,9,9,9,10,10,11,11,11,12,0,8,8,7,7,9,9,10,10,9,9,10,10,11,11,12,12,0,0,0,7,7,9,9,10,10,10,9,10,10,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,11,11,12,12,13,13,0,0,0,0,0,10,10,10,10,11,11,12,12,13,12,13,13,0,0,0,0,0,0,0,10,10,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,14,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,14,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,6,7,7,9,9,0,7,7,7,7,7,7,9,9,0,7,7,7,7,7,7,9,9,0,8,8,7,7,8,8,10,10,0,0,0,7,7,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,10,10,9,9,11,11,0,0,0,0,0,9,9,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,3,6,6,0,0,0,0,0,6,6,6,6,0,0,0,0,0,6,6,6,6,0,0,0,0,0,7,7,6,6,0,0,0,0,0,0,0,6,7,0,0,0,0,0,0,0,7,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,3,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,0,0,0,7,7,0,0,0,7,7,0,0,0,8,8,0,0,0,0,0,0,0,4,6,6,0,0,0,8,8,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,4,6,6,0,0,0,8,8,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,11,11,0,0,0,11,11,0,0,0,12,11,0,0,0,0,0,0,0,7,8,8,0,0,0,10,11,0,0,0,11,11,0,0,0,11,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,11,11,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,6,8,8,0,0,0,10,11,0,0,0,10,11,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,9,0,0,0,11,12,0,0,0,11,12,0,0,0,12,11,0,0,0,0,0,0,0,8,10,9,0,0,0,12,11,0,0,0,12,11,0,0,0,11,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,5,6,6,0,0,0,0,0,0,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,6,8,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,0,0,0,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,7,7,0,0,0,0,0,0,6,8,7,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9],"i8",O3,_.GLOBAL_BASE+229400),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,11,9,13,12,12,11,12,12,13,15,8,2,11,4,8,5,7,10,12,15,13,7,10,9,8,8,10,13,17,17,11,4,12,5,9,5,8,11,14,16,12,6,8,7,6,6,8,11,13,16,11,4,9,5,6,4,6,10,13,16,11,6,11,7,7,6,7,10,13,15,13,9,12,9,8,6,8,10,12,14,14,10,10,8,6,5,6,9,11,13,15,11,11,9,6,5,6,8,9,12,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,9,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+240320),C3([1,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,231,3,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,81,0,0,0,160,5,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,2,0,0,0,81,0,0,0,72,5,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,56,223,3,0,0,0,0,0,0,0,0,0,0,0,0,0,96,223,3,0,0,0,0,0,0,0,0,0,0,0,0,0,136,223,3,0,0,0,0,0,0,0,0,0,0,0,0,0,176,223,3,0,0,0,0,0,0,0,0,0,0,0,0,0,216,223,3,0,0,0,0,0,0,224,3,0,40,224,3,0,0,0,0,0,0,0,0,0,80,224,3,0,120,224,3,0,0,0,0,0,0,0,0,0,160,224,3,0,200,224,3,0,240,224,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,185,3,0,0,0,0,0,0,0,0,0,0,0,0,0,80,185,3,0,0,0,0,0,0,0,0,0,0,0,0,0,120,185,3,0,0,0,0,0,0,0,0,0,0,0,0,0,160,185,3,0,0,0,0,0,0,0,0,0,0,0,0,0,200,185,3,0,0,0,0,0,240,185,3,0,24,186,3,0,0,0,0,0,0,0,0,0,64,186,3,0,104,186,3,0,0,0,0,0,0,0,0,0,144,186,3,0,184,186,3,0,224,186,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,81,0,0,0,208,184,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,81,0,0,0,120,184,3,0,0,0,0,0,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,4,8,10,9,9,10,11,12,4,2,5,6,6,8,10,11,13,8,4,6,8,7,9,12,12,14,10,6,8,4,5,6,9,11,12,9,5,6,5,5,6,9,11,11,9,7,9,6,5,5,7,10,10,10,9,11,8,7,6,7,9,11,11,12,13,10,10,9,8,9,11,11,15,15,12,13,11,9,10,11,0,0,0,0,0,0,0,5,5,9,10,9,9,10,11,12,5,1,5,6,6,7,10,12,14,9,5,6,8,8,10,12,14,14,10,5,8,5,6,8,11,13,14,9,5,7,6,6,8,10,12,11,9,7,9,7,6,6,7,10,10,10,9,12,9,8,7,7,10,12,11,11,13,12,10,9,8,9,11,11,14,15,15,13,11,9,9,11,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,128,197,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,40,223,3,0,0,0,0,0,4,0,0,0,113,2,0,0,240,194,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,104,197,3,0,0,0,0,0,2,0,0,0,81,0,0,0,112,194,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,200,194,3,0,0,0,0,0,2,0,0,0,81,0,0,0,240,193,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,72,194,3,0,0,0,0,0,2,0,0,0,33,1,0,0,128,192,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,168,193,3,0,0,0,0,0,4,0,0,0,81,0,0,0,24,192,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,112,192,3,0,0,0,0,0,2,0,0,0,121,0,0,0,104,191,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,232,191,3,0,0,0,0,0,2,0,0,0,169,0,0,0,128,190,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,48,191,3,0,0,0,0,0,2,0,0,0,25,0,0,0,72,190,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,104,190,3,0,0,0,0,0,2,0,0,0,169,0,0,0,96,189,3,0,1,0,0,0,0,184,84,225,0,160,251,96,4,0,0,0,0,0,0,0,16,190,3,0,0,0,0,0,2,0,0,0,169,0,0,0,120,188,3,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,40,189,3,0,0,0,0,0,2,0,0,0,33,1,0,0,8,187,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,48,188,3,0,0,0,0,0,2,5,5,6,6,7,6,7,7,8,8,8,8,8,8,8,8,10,6,6,7,7,7,7,8,8,9,9,9,9,9,9,9,9,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,7,7,7,7,8,8,8,9,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,9,9,9,9,9,9,9,9,9,9,10,11,11,8,8,8,8,9,9,9,9,9,9,10,10,9,10,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,10,10,11,10,10,8,8,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,11,11,8,8,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,9,9,9,9,9,9,9,9,10,9,10,9,11,11,11,11,11,9,8,9,9,9,9,9,9,9,10,10,9,11,11,10,11,11,9,9,9,9,9,9,9,9,9,10,10,9,11,11,11,11,11,11,11,9,9,10,9,9,9,9,10,9,10,10,11,10,11,11,11,11,9,10,10,10,9,9,9,9,9,9,10,11,11,11,11,11,11,9,9,9,9,9,9,9,9,10,9,11,11,10,11,11,11,11,10,10,9,9,9,9,9,9,10,9,10,11,10,11,11,11,11,11,11,9,9,10,9,9,9,9,9,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,7,9,9,10,11,12,12,6,5,5,7,7,8,7,10,10,11,11,12,12,6,5,5,7,7,8,8,10,10,11,11,12,12,16,7,7,8,8,9,9,11,11,12,12,13,13,17,7,7,8,7,9,9,11,10,12,12,13,13,19,11,10,8,8,10,10,11,11,12,12,13,13,19,11,11,9,7,11,10,11,11,12,12,13,12,19,19,19,10,10,10,10,11,12,12,12,13,14,18,19,19,11,9,11,9,13,12,12,12,13,13,19,20,19,13,15,11,11,12,12,13,13,14,13,18,19,20,15,13,12,10,13,10,13,13,13,14,20,20,20,20,20,13,14,12,12,13,12,13,13,20,20,20,20,20,13,12,12,12,14,12,14,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,13,13,13,13,13,13,13,13,13,13,3,6,6,13,13,13,13,13,13,13,13,13,13,4,8,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,4,5,6,5,5,5,5,6,5,5,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,7,5,5,7,7,8,8,8,8,9,9,10,10,7,5,6,7,7,8,8,8,8,9,9,11,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,10,10,10,10,11,11,11,11,0,13,13,9,9,9,9,10,10,11,11,12,12,0,0,0,9,10,9,10,11,11,12,11,13,12,0,0,0,10,10,9,9,11,11,12,12,13,12,0,0,0,13,13,10,10,11,11,12,12,13,13,0,0,0,14,14,10,10,11,11,12,12,13,13,0,0,0,0,0,11,12,11,11,12,13,14,13,0,0,0,0,0,12,12,11,11,13,12,14,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,8,8,10,5,5,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,7,7,7,7,8,8,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,9,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,7,10,10,10,11,11,11,10,10,6,9,9,11,11,10,11,10,10,6,9,9,11,10,11,11,10,10,7,11,11,11,11,11,11,11,11,6,9,9,11,10,10,11,11,10,6,9,9,10,10,10,11,10,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,6,6,7,7,8,8,8,8,9,9,10,10,11,11,0,5,5,6,6,8,8,9,9,9,9,10,10,10,10,11,11,0,5,5,6,6,8,8,9,9,9,9,10,10,10,10,11,11,0,7,7,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,10,10,10,11,11,11,12,12,0,0,0,8,8,8,8,9,9,10,10,10,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,6,7,7,9,9,0,6,6,7,7,8,8,9,9,0,6,6,7,7,8,8,9,9,0,7,7,8,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,8,8,9,9,11,11,0,0,0,9,9,9,9,11,11,0,0,0,10,10,10,10,11,11,0,0,0,0,0,9,9,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,3,7,7,0,0,0,0,0,5,5,6,6,0,0,0,0,0,5,5,7,7,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,9,10,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,10,9],"i8",O3,_.GLOBAL_BASE+242772),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,144,235,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,56,5,4,0,0,0,0,0,4,0,0,0,113,2,0,0,0,233,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,120,235,3,0,0,0,0,0,2,0,0,0,81,0,0,0,128,232,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,216,232,3,0,0,0,0,0,2,0,0,0,81,0,0,0,0,232,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,88,232,3,0,0,0,0,0,2,0,0,0,33,1,0,0,144,230,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,184,231,3,0,0,0,0,0,4,0,0,0,81,0,0,0,40,230,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,128,230,3,0,0,0,0,0,2,0,0,0,121,0,0,0,120,229,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,248,229,3,0,0,0,0,0,2,0,0,0,169,0,0,0,144,228,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,64,229,3,0,0,0,0,0,2,0,0,0,25,0,0,0,88,228,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,120,228,3,0,0,0,0,0,2,0,0,0,169,0,0,0,112,227,3,0,1,0,0,0,0,184,84,225,0,160,251,96,4,0,0,0,0,0,0,0,32,228,3,0,0,0,0,0,2,0,0,0,169,0,0,0,136,226,3,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,56,227,3,0,0,0,0,0,2,0,0,0,33,1,0,0,24,225,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,64,226,3,0,0,0,0,0,2,4,4,6,6,6,6,7,7,8,8,8,8,8,8,8,8,10,10,10,7,7,7,7,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,8,7,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,8,9,9,9,9,9,9,10,9,9,10,10,10,7,7,8,8,9,8,9,9,9,9,10,9,9,10,10,11,11,8,8,8,8,9,9,9,9,9,9,10,9,9,10,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,10,10,11,11,11,8,8,9,9,9,9,9,9,9,9,9,9,10,10,10,10,11,11,11,8,8,9,9,9,9,10,9,9,9,9,9,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,10,10,11,11,9,9,9,9,9,9,9,9,9,10,10,10,10,11,10,11,11,9,9,9,9,9,9,9,9,9,10,10,9,10,10,11,11,11,11,11,9,9,9,10,9,9,9,9,9,9,10,11,11,11,11,11,11,10,10,10,10,9,9,9,9,9,9,10,11,11,11,11,11,11,9,10,9,9,9,9,10,9,9,9,11,11,11,11,11,11,11,10,10,9,9,9,9,9,9,10,9,11,11,10,11,11,11,11,10,11,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,5,7,7,9,9,10,10,12,12,6,5,5,7,7,8,8,10,10,12,11,12,12,6,5,5,7,7,8,8,10,10,11,11,12,12,15,7,7,8,8,9,9,11,11,12,12,13,12,15,8,8,8,7,9,9,10,10,12,12,13,13,16,11,10,8,8,10,10,11,11,12,12,13,13,16,11,11,9,8,11,10,11,11,12,12,13,12,16,16,16,10,11,10,11,12,12,12,12,13,13,16,16,16,11,9,11,9,14,12,12,12,13,13,16,16,16,12,14,11,12,12,12,13,13,14,13,16,16,16,15,13,12,10,13,10,13,14,13,13,16,16,16,16,16,13,14,12,13,13,12,13,13,16,16,16,16,16,13,12,12,11,14,12,15,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,3,10,10,10,10,10,10,10,10,10,10,4,8,6,10,10,10,10,10,10,10,10,10,10,4,8,7,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,10,9,7,5,6,7,7,8,8,8,8,9,9,10,10,7,5,5,7,7,8,8,8,8,9,9,10,10,0,8,8,8,8,9,9,9,9,10,10,11,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,10,10,10,11,11,11,11,0,13,13,9,9,9,9,10,10,11,11,11,11,0,0,0,10,10,10,10,11,11,12,11,12,12,0,0,0,10,10,10,9,11,11,12,11,13,12,0,0,0,13,13,10,10,11,11,12,12,13,13,0,0,0,14,14,10,10,11,11,12,12,13,13,0,0,0,0,0,11,12,11,11,12,12,14,13,0,0,0,0,0,12,11,11,11,13,10,14,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,6,6,7,7,7,7,8,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,6,10,10,11,11,11,11,10,10,6,9,9,11,10,10,11,10,10,6,9,9,11,10,11,11,10,10,7,11,10,11,11,11,12,11,11,7,9,9,11,10,10,11,11,10,6,9,9,10,10,10,12,10,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,3,6,6,7,7,8,8,8,8,9,9,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,11,0,0,0,8,8,9,9,9,10,10,10,10,10,11,11,12,12,0,0,0,8,8,9,9,10,9,10,10,10,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,11,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,10,10,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,12,12,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,5,6,6,8,8,0,0,0,7,7,7,7,9,9,0,0,0,7,7,7,7,9,9,0,0,0,7,7,8,8,10,10,0,0,0,7,7,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,10,10,9,9,11,11,0,0,0,0,0,9,9,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,2,7,7,0,0,0,0,0,13,13,6,6,0,0,0,0,0,12,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,11,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,4,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,5,7,6,0,0,0,0,0,0,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9],"i8",O3,_.GLOBAL_BASE+253728),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,13,14,14,15,16,18,18,4,2,5,8,7,9,12,15,15,10,4,5,10,6,8,11,15,17,12,5,7,5,6,8,11,14,17,11,5,6,6,5,6,9,13,17,12,6,7,6,5,6,8,12,14,14,7,8,6,6,7,9,11,14,14,8,9,6,5,6,9,11,13,16,10,10,7,6,7,8,10,11,0,0,0,0,0,0,0,6,8,13,12,13,14,15,16,16,4,2,4,7,6,8,11,13,15,10,4,4,8,6,8,11,14,17,11,5,6,5,6,8,12,14,17,11,5,5,6,5,7,10,13,16,12,6,7,8,7,8,10,13,15,13,8,8,7,7,8,10,12,15,15,7,7,5,5,7,9,12,14,15,8,8,6,6,7,8,10,11,0,0,0,0,0,0,0,2,0,0,0,81,0,0,0,128,86,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,2,0,0,0,81,0,0,0,40,86,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,112,46,4,0,0,0,0,0,0,0,0,0,0,0,0,0,152,46,4,0,0,0,0,0,0,0,0,0,0,0,0,0,192,46,4,0,0,0,0,0,0,0,0,0,0,0,0,0,232,46,4,0,0,0,0,0,0,0,0,0,0,0,0,0,16,47,4,0,0,0,0,0,56,47,4,0,96,47,4,0,0,0,0,0,0,0,0,0,136,47,4,0,176,47,4,0,0,0,0,0,0,0,0,0,216,47,4,0,0,48,4,0,40,48,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,200,8,4,0,0,0,0,0,0,0,0,0,0,0,0,0,240,8,4,0,0,0,0,0,0,0,0,0,0,0,0,0,24,9,4,0,0,0,0,0,0,0,0,0,0,0,0,0,64,9,4,0,0,0,0,0,0,0,0,0,0,0,0,0,104,9,4,0,0,0,0,0,144,9,4,0,184,9,4,0,0,0,0,0,0,0,0,0,224,9,4,0,8,10,4,0,0,0,0,0,0,0,0,0,48,10,4,0,88,10,4,0,128,10,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,2,0,0,0,81,0,0,0,112,8,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,2,0,0,0,81,0,0,0,24,8,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,5,4,9,10,9,10,11,12,13,4,1,5,7,7,9,11,12,14,8,5,7,9,8,10,13,13,13,10,7,9,4,6,7,10,12,14,9,6,7,6,6,7,10,12,12,9,8,9,7,6,7,8,11,12,11,11,11,9,8,7,8,10,12,12,13,14,12,11,9,9,9,12,12,17,17,15,16,12,10,11,13,0,0,0,0,0,0,0,5,4,8,9,8,9,10,12,15,4,1,5,5,6,8,11,12,12,8,5,8,9,9,11,13,12,12,9,5,8,5,7,9,12,13,13,8,6,8,7,7,9,11,11,11,9,7,9,7,7,7,7,10,12,10,10,11,9,8,7,7,9,11,11,12,13,12,11,9,8,9,11,13,16,16,15,15,12,10,11,12,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,184,20,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,96,46,4,0,0,0,0,0,4,0,0,0,113,2,0,0,40,18,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,20,4,0,0,0,0,0,2,0,0,0,81,0,0,0,168,17,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,0,18,4,0,0,0,0,0,2,0,0,0,81,0,0,0,40,17,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,128,17,4,0,0,0,0,0,2,0,0,0,33,1,0,0,184,15,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,224,16,4,0,0,0,0,0,4,0,0,0,81,0,0,0,80,15,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,168,15,4,0,0,0,0,0,2,0,0,0,121,0,0,0,160,14,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,32,15,4,0,0,0,0,0,2,0,0,0,169,0,0,0,184,13,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,104,14,4,0,0,0,0,0,2,0,0,0,25,0,0,0,128,13,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,13,4,0,0,0,0,0,2,0,0,0,81,0,0,0,0,13,4,0,1,0,0,0,0,160,59,225,0,160,251,96,4,0,0,0,0,0,0,0,88,13,4,0,0,0,0,0,2,0,0,0,169,0,0,0,24,12,4,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,200,12,4,0,0,0,0,0,2,0,0,0,33,1,0,0,168,10,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,208,11,4,0,0,0,0,0,2,5,5,6,6,7,7,7,7,8,8,8,8,8,8,8,8,10,6,6,7,7,7,7,8,8,9,9,9,9,9,9,9,9,10,6,6,7,7,8,7,8,8,9,9,9,9,9,9,9,9,10,7,7,7,7,8,8,8,9,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,9,8,9,9,9,9,10,9,9,10,10,10,11,8,8,8,8,9,9,9,9,9,9,9,10,9,10,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,10,10,11,10,10,8,8,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,11,11,8,8,9,9,9,9,9,9,9,9,9,10,11,11,11,11,11,9,9,9,9,9,9,9,9,10,9,10,9,11,11,10,11,11,9,9,9,9,9,9,9,9,9,9,10,9,11,11,10,11,11,9,9,9,9,9,9,9,9,9,9,10,9,11,10,11,11,11,11,11,9,9,10,9,9,9,9,9,9,9,10,11,10,11,11,11,11,10,10,10,10,9,9,9,9,9,9,10,11,11,11,11,11,11,9,10,9,9,9,9,9,9,9,9,11,11,10,11,11,11,10,10,10,9,9,9,9,9,9,9,9,10,11,10,11,11,11,11,11,11,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,7,9,9,10,11,12,12,6,5,5,7,7,8,8,10,10,12,11,12,12,6,5,5,7,7,8,8,10,10,12,11,12,12,17,7,7,8,8,9,9,10,10,12,12,13,13,18,7,7,8,7,9,9,10,10,12,12,12,13,19,10,10,8,8,10,10,11,11,12,12,13,14,19,11,10,8,7,10,10,11,11,12,12,13,12,19,19,19,10,10,10,10,11,11,12,12,13,13,19,19,19,11,9,11,9,14,12,13,12,13,13,19,20,18,13,14,11,11,12,12,13,13,14,13,20,20,20,15,13,11,10,13,11,13,13,14,13,20,20,20,20,20,13,14,12,12,13,13,13,13,20,20,20,20,20,13,13,12,12,16,13,15,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,11,11,11,11,11,11,3,7,6,11,11,11,11,11,11,4,8,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,4,4,6,5,5,5,5,6,5,5,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,7,5,5,7,7,8,8,8,8,9,9,10,10,7,6,5,7,7,8,8,8,8,9,9,10,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,10,10,10,10,11,11,11,11,0,13,13,9,9,9,9,10,10,11,11,11,12,0,0,0,9,10,10,10,11,11,12,11,12,12,0,0,0,10,10,9,9,11,11,12,12,12,12,0,0,0,13,13,10,10,11,11,12,12,13,13,0,0,0,14,14,10,10,11,11,12,12,13,13,0,0,0,0,0,11,12,11,11,13,12,13,13,0,0,0,0,0,12,12,11,11,13,12,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,7,8,9,5,5,6,6,7,7,8,8,8,8,9,5,5,6,6,7,7,8,8,8,8,10,7,7,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,7,10,10,10,11,11,11,10,10,6,9,9,11,11,10,11,10,10,6,9,9,11,10,11,11,10,10,7,11,10,11,11,11,11,11,11,6,9,9,11,10,10,11,11,10,6,9,9,11,10,10,11,10,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,6,6,8,8,8,8,8,8,9,9,10,10,11,11,0,6,6,7,7,8,8,9,9,9,9,10,10,10,11,11,11,0,5,6,7,7,8,8,9,9,9,9,10,10,10,11,11,11,0,7,7,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,12,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,10,11,11,12,12,13,13,0,0,0,0,0,10,10,10,10,11,11,12,12,12,13,13,13,0,0,0,0,0,0,0,10,10,11,11,12,12,12,13,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,11,11,12,11,12,12,13,13,13,13,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,3,6,6,7,7,9,9,0,5,5,7,7,8,7,9,9,0,5,5,7,7,8,8,9,9,0,7,7,8,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,9,9,9,9,11,11,0,0,0,9,9,9,9,11,11,0,0,0,10,10,10,10,11,11,0,0,0,0,0,9,9,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,3,7,7,0,0,0,0,0,5,4,7,7,0,0,0,0,0,5,5,7,7,0,0,0,0,0,6,7,8,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,10,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,10,10],"i8",O3,_.GLOBAL_BASE+263472),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,112,60,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,24,86,4,0,0,0,0,0,4,0,0,0,113,2,0,0,224,57,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,60,4,0,0,0,0,0,2,0,0,0,81,0,0,0,96,57,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,184,57,4,0,0,0,0,0,2,0,0,0,81,0,0,0,224,56,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,56,57,4,0,0,0,0,0,2,0,0,0,33,1,0,0,112,55,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,152,56,4,0,0,0,0,0,4,0,0,0,81,0,0,0,8,55,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,96,55,4,0,0,0,0,0,2,0,0,0,121,0,0,0,88,54,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,216,54,4,0,0,0,0,0,2,0,0,0,169,0,0,0,112,53,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,32,54,4,0,0,0,0,0,2,0,0,0,25,0,0,0,56,53,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,53,4,0,0,0,0,0,4,0,0,0,113,2,0,0,168,50,4,0,1,0,0,0,0,160,27,225,0,160,251,96,3,0,0,0,0,0,0,0,32,53,4,0,0,0,0,0,2,0,0,0,169,0,0,0,192,49,4,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,112,50,4,0,0,0,0,0,2,0,0,0,33,1,0,0,80,48,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,120,49,4,0,0,0,0,0,2,4,4,6,6,7,7,7,7,8,8,8,8,8,8,8,8,10,10,10,7,7,7,8,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,7,7,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,8,8,9,9,9,9,9,10,9,9,10,10,10,7,7,8,8,9,8,9,9,9,9,10,9,9,10,10,10,10,8,8,8,8,9,8,9,9,9,9,9,10,9,10,10,10,10,7,7,8,8,9,9,9,9,9,9,10,9,10,10,10,10,10,8,8,8,9,9,9,9,9,9,9,10,10,10,9,11,10,10,10,10,8,8,9,9,9,9,9,10,9,9,9,10,10,10,10,11,11,9,9,9,9,9,9,9,9,10,9,9,10,11,10,10,11,11,9,9,9,9,9,9,9,9,9,9,10,9,11,11,10,11,11,9,9,9,9,9,9,9,9,9,9,10,9,11,10,10,11,11,11,11,9,9,9,9,9,9,9,9,9,9,10,10,10,11,11,11,11,9,10,9,10,9,9,9,9,10,9,10,11,10,11,10,10,10,10,10,9,9,9,10,9,9,9,10,11,11,10,11,11,10,11,10,10,10,9,9,9,9,10,9,9,10,11,10,11,11,11,11,10,11,10,10,9,10,9,9,9,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,7,9,9,11,12,13,12,6,5,5,7,7,8,8,10,9,12,12,12,12,6,5,5,7,7,8,8,10,9,12,11,11,13,16,7,7,8,8,9,9,10,10,12,12,13,12,16,7,7,8,7,9,9,10,10,11,12,12,13,16,10,10,8,8,10,10,11,12,12,12,13,13,16,11,10,8,7,11,10,11,11,12,11,13,13,16,16,16,10,10,10,10,11,11,13,12,13,13,16,16,16,11,9,11,9,15,13,12,13,13,13,16,16,16,15,13,11,11,12,13,12,12,14,13,16,16,16,14,13,11,11,13,12,14,13,13,13,16,16,16,16,16,13,13,13,12,14,13,14,14,16,16,16,16,16,13,13,12,12,14,14,15,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,5,5,10,10,6,9,8,10,10,6,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,8,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,7,5,5,7,7,8,8,8,8,9,9,10,10,7,5,6,7,7,8,8,8,8,9,9,10,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,10,10,10,10,11,11,11,11,0,13,13,9,9,9,9,10,10,11,11,11,12,0,0,0,10,10,10,10,11,11,11,11,12,12,0,0,0,10,10,9,9,11,11,11,12,12,12,0,0,0,13,13,10,10,11,11,12,12,13,13,0,0,0,14,14,10,10,11,11,12,12,13,13,0,0,0,0,0,11,11,11,11,13,12,13,13,0,0,0,0,0,12,12,11,11,12,12,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,6,6,7,7,7,7,7,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,8,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,10,9,9,4,6,7,10,9,9,11,9,9,7,10,10,11,11,11,12,10,11,6,9,9,11,10,11,11,10,10,6,9,9,11,10,11,11,10,10,7,11,10,12,11,11,11,11,11,7,9,9,10,10,10,11,11,10,6,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,3,6,6,8,7,8,8,8,8,9,9,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,9,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,8,8,9,9,9,9,10,10,10,10,11,11,12,12,0,0,0,8,8,9,9,9,9,10,10,10,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,11,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,10,10,11,11,11,11,11,12,12,12,13,13,0,0,0,0,0,0,0,11,10,11,11,11,11,12,12,13,13,0,0,0,0,0,0,0,11,11,12,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,11,12,12,12,12,13,13,13,0,0,0,0,0,0,0,12,12,12,12,12,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,6,6,6,8,8,0,0,0,7,7,7,7,9,9,0,0,0,7,7,7,7,9,9,0,0,0,7,7,7,8,9,9,0,0,0,7,7,7,7,9,9,0,0,0,9,9,8,8,10,10,0,0,0,8,9,8,8,10,10,0,0,0,10,10,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,2,8,7,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,6,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,11,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,9,11,10],"i8",O3,_.GLOBAL_BASE+274008),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,6,6,12,13,13,14,16,17,17,4,2,5,8,7,9,12,15,15,9,4,5,9,7,9,12,16,18,11,6,7,4,6,8,11,14,18,10,5,6,5,5,7,10,14,17,10,5,7,7,6,7,10,13,16,11,5,7,7,7,8,10,12,15,13,6,7,5,5,7,9,12,13,16,8,9,6,6,7,9,10,12,0,0,0,0,0,0,0,9,8,12,11,12,13,14,14,16,6,1,5,6,6,9,12,14,17,9,4,5,9,7,9,13,15,16,8,5,8,6,8,10,13,17,17,9,6,7,7,8,9,13,15,17,11,8,9,9,9,10,12,16,16,13,7,8,7,7,9,12,14,15,13,6,7,5,5,7,10,13,13,14,7,8,5,6,7,9,10,12,0,0,0,0,0,0,0,2,0,0,0,81,0,0,0,96,167,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,2,0,0,0,81,0,0,0,8,167,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,80,127,4,0,0,0,0,0,0,0,0,0,0,0,0,0,120,127,4,0,0,0,0,0,0,0,0,0,0,0,0,0,160,127,4,0,0,0,0,0,0,0,0,0,0,0,0,0,200,127,4,0,0,0,0,0,0,0,0,0,0,0,0,0,240,127,4,0,0,0,0,0,24,128,4,0,64,128,4,0,0,0,0,0,0,0,0,0,104,128,4,0,144,128,4,0,0,0,0,0,0,0,0,0,184,128,4,0,224,128,4,0,8,129,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,168,89,4,0,0,0,0,0,0,0,0,0,0,0,0,0,208,89,4,0,0,0,0,0,0,0,0,0,0,0,0,0,248,89,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,90,4,0,0,0,0,0,0,0,0,0,0,0,0,0,72,90,4,0,0,0,0,0,112,90,4,0,152,90,4,0,0,0,0,0,0,0,0,0,192,90,4,0,232,90,4,0,0,0,0,0,0,0,0,0,16,91,4,0,56,91,4,0,96,91,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,2,0,0,0,81,0,0,0,80,89,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,2,0,0,0,81,0,0,0,248,88,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,3,3,8,8,8,8,10,12,14,3,2,6,7,7,8,10,12,16,7,6,7,9,8,10,12,14,16,8,6,8,4,5,7,9,11,13,7,6,8,5,6,7,9,11,14,8,8,10,7,7,6,8,10,13,9,11,12,9,9,7,8,10,12,10,13,15,11,11,10,9,10,13,13,16,17,14,15,14,13,14,17,0,0,0,0,0,0,0,4,4,7,8,7,8,10,12,17,3,1,6,6,7,8,10,12,15,7,6,9,9,9,11,12,14,17,8,6,9,6,7,9,11,13,17,7,6,9,7,7,8,9,12,15,8,8,10,8,7,7,7,10,14,9,10,12,10,8,8,8,10,14,11,13,15,13,12,11,11,12,16,17,18,18,19,20,18,16,16,20,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,152,101,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,64,127,4,0,0,0,0,0,4,0,0,0,113,2,0,0,8,99,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,128,101,4,0,0,0,0,0,2,0,0,0,81,0,0,0,136,98,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,224,98,4,0,0,0,0,0,2,0,0,0,81,0,0,0,8,98,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,96,98,4,0,0,0,0,0,2,0,0,0,33,1,0,0,152,96,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,192,97,4,0,0,0,0,0,4,0,0,0,81,0,0,0,48,96,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,136,96,4,0,0,0,0,0,2,0,0,0,121,0,0,0,128,95,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,0,96,4,0,0,0,0,0,2,0,0,0,169,0,0,0,152,94,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,72,95,4,0,0,0,0,0,2,0,0,0,25,0,0,0,96,94,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,128,94,4,0,0,0,0,0,2,0,0,0,81,0,0,0,224,93,4,0,1,0,0,0,0,160,59,225,0,160,251,96,4,0,0,0,0,0,0,0,56,94,4,0,0,0,0,0,2,0,0,0,169,0,0,0,248,92,4,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,168,93,4,0,0,0,0,0,2,0,0,0,33,1,0,0,136,91,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,176,92,4,0,0,0,0,0,3,4,4,6,6,7,7,8,8,8,8,9,9,9,9,9,9,10,6,6,6,6,7,7,8,8,8,9,9,9,9,9,9,9,10,6,6,6,6,7,7,8,8,8,8,9,9,9,9,9,9,10,7,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,7,8,8,8,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,8,8,9,9,9,9,9,9,9,9,11,10,11,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,11,11,8,8,8,8,9,9,9,9,9,9,9,9,11,10,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,10,11,10,11,11,9,9,9,9,9,9,9,9,9,9,9,10,11,11,10,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,10,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,10,11,11,11,11,11,11,9,10,10,10,9,9,9,9,9,9,11,10,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,11,11,10,10,9,9,9,9,9,9,9,9,10,11,11,11,11,11,11,11,11,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,10,11,11,11,6,5,5,7,7,8,8,10,10,10,11,11,11,6,5,5,7,7,8,8,10,10,11,12,12,12,14,7,7,7,8,9,9,11,11,11,12,11,12,17,7,7,8,7,9,9,11,11,12,12,12,12,14,11,11,8,8,10,10,11,12,12,13,11,12,14,11,11,8,8,10,10,11,12,12,13,13,12,14,15,14,10,10,10,10,11,12,12,12,12,11,14,13,16,10,10,10,9,12,11,12,12,13,14,14,15,14,14,13,10,10,11,11,12,11,13,11,14,12,15,13,14,11,10,12,10,12,12,13,13,13,13,14,15,15,12,12,11,11,12,11,13,12,14,14,14,14,17,12,12,11,10,13,11,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,12,11,13,13,14,14,4,7,7,11,13,14,14,14,14,3,8,3,14,14,14,14,14,14,14,10,12,14,14,14,14,14,14,14,14,5,14,8,14,14,14,14,14,12,14,13,14,14,14,14,14,14,14,13,14,10,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,4,5,6,5,5,5,5,6,5,5,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,9,9,10,10,7,5,5,7,7,8,8,8,8,10,9,11,10,7,5,5,7,7,8,8,8,8,9,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,10,10,10,11,11,12,12,0,13,13,9,9,9,9,10,10,11,11,12,12,0,0,0,10,10,10,10,11,11,12,12,12,13,0,0,0,10,10,10,10,11,11,12,12,12,12,0,0,0,14,14,11,11,11,11,12,13,13,13,0,0,0,14,14,11,10,11,11,12,12,13,13,0,0,0,0,0,12,12,12,12,13,13,13,14,0,0,0,0,0,13,12,12,12,13,13,13,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,5,5,7,7,7,7,8,8,10,5,5,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,7,7,7,7,8,8,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,9,9,10,10,10,10,10,8,8,8,8,9,9,10,10,10,10,10,9,9,9,9,8,9,10,10,10,10,10,8,9,8,8,9,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,6,10,9,9,11,9,9,4,6,7,10,9,9,11,9,9,7,10,10,10,11,11,11,11,10,6,9,9,11,10,10,11,10,10,6,9,9,11,10,11,11,10,10,7,11,11,11,11,11,12,11,11,7,9,9,11,10,10,12,10,10,7,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,8,8,9,9,10,10,11,11,0,6,6,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,6,5,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,7,7,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,13,13,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,12,13,13,13,0,0,0,0,0,10,10,11,11,11,11,12,12,13,13,14,14,0,0,0,0,0,0,0,11,11,11,11,12,12,13,13,14,14,0,0,0,0,0,0,0,11,11,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,11,11,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,12,12,12,13,13,13,14,14,14,14,0,0,0,0,0,0,0,0,0,12,12,13,13,14,14,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,3,6,6,7,7,9,9,0,5,5,7,7,8,7,9,9,0,5,5,7,7,8,8,9,9,0,7,7,8,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,9,9,9,9,10,10,0,0,0,9,9,9,9,10,10,0,0,0,10,10,10,10,11,11,0,0,0,0,0,10,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,4,7,7,0,0,0,0,0,4,4,7,7,0,0,0,0,0,4,5,7,7,0,0,0,0,0,6,7,8,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,10,9,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,9,0,0,0,0,0,0,9,9,10,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,10,9],"i8",O3,_.GLOBAL_BASE+284176),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,80,141,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,248,166,4,0,0,0,0,0,4,0,0,0,113,2,0,0,192,138,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,56,141,4,0,0,0,0,0,2,0,0,0,81,0,0,0,64,138,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,152,138,4,0,0,0,0,0,2,0,0,0,81,0,0,0,192,137,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,24,138,4,0,0,0,0,0,2,0,0,0,33,1,0,0,80,136,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,120,137,4,0,0,0,0,0,4,0,0,0,81,0,0,0,232,135,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,64,136,4,0,0,0,0,0,2,0,0,0,121,0,0,0,56,135,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,184,135,4,0,0,0,0,0,2,0,0,0,169,0,0,0,80,134,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,0,135,4,0,0,0,0,0,2,0,0,0,25,0,0,0,24,134,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,56,134,4,0,0,0,0,0,4,0,0,0,113,2,0,0,136,131,4,0,1,0,0,0,0,160,27,225,0,160,251,96,3,0,0,0,0,0,0,0,0,134,4,0,0,0,0,0,2,0,0,0,169,0,0,0,160,130,4,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,80,131,4,0,0,0,0,0,2,0,0,0,33,1,0,0,48,129,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,88,130,4,0,0,0,0,0,3,4,3,6,6,7,7,8,8,9,9,9,9,9,9,9,9,10,11,11,6,6,7,7,8,8,9,9,9,9,9,9,9,9,10,10,10,6,6,7,7,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,7,8,8,8,9,9,9,9,9,9,10,9,10,11,10,7,6,7,7,8,8,9,9,9,9,9,9,9,10,10,10,11,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,8,8,9,9,9,9,9,9,9,10,11,11,11,8,8,8,8,8,8,9,9,9,9,9,9,9,9,11,10,10,11,11,8,8,8,9,9,9,9,9,9,10,9,10,10,10,10,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,11,10,11,11,9,9,9,9,9,9,9,9,9,10,10,10,10,11,10,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,10,10,11,11,11,11,9,9,9,9,9,9,9,9,10,10,10,11,11,10,11,11,11,9,10,10,9,9,9,9,9,9,9,10,11,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,11,11,10,10,9,9,9,9,9,9,9,9,11,11,11,10,11,11,11,11,11,9,9,9,10,9,9,9,9,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,10,10,11,11,11,6,5,5,7,7,8,8,9,10,9,11,11,12,5,5,5,7,7,8,9,10,10,12,12,14,13,15,7,7,8,8,9,10,11,11,10,12,10,11,15,7,8,8,8,9,9,11,11,13,12,12,13,15,10,10,8,8,10,10,12,12,11,14,10,10,15,11,11,8,8,10,10,12,13,13,14,15,13,15,15,15,10,10,10,10,12,12,13,12,13,10,15,15,15,10,10,11,10,13,11,13,13,15,13,15,15,15,13,13,10,11,11,11,12,10,14,11,15,15,14,14,13,10,10,12,11,13,13,14,14,15,15,15,15,15,11,11,11,11,12,11,15,12,15,15,15,15,15,12,12,11,11,14,12,13,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,7,7,11,11,8,11,11,11,11,4,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,9,9,10,10,6,5,5,7,7,8,8,8,8,9,9,11,11,7,5,5,7,7,8,8,8,8,9,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,10,10,10,11,11,11,12,0,13,13,9,9,9,9,10,10,11,11,11,12,0,0,0,10,10,10,10,11,11,12,12,12,13,0,0,0,10,10,10,10,11,11,12,12,13,12,0,0,0,14,14,11,10,11,12,12,13,13,14,0,0,0,15,15,11,11,12,11,12,12,14,13,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,13,13,12,12,13,13,13,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,8,8,10,10,10,7,6,8,8,8,8,8,8,10,10,10,7,6,7,7,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,6,6,10,9,9,11,9,9,4,6,6,10,9,9,10,9,9,7,10,10,11,11,11,12,11,11,7,9,9,11,11,10,11,10,10,7,9,9,11,10,11,11,10,10,7,10,10,11,11,11,12,11,11,7,9,9,11,10,10,11,10,10,7,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,3,6,6,7,7,8,8,8,8,9,9,10,10,10,10,0,0,0,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,8,8,9,9,9,9,10,10,10,10,11,11,12,12,0,0,0,8,8,9,9,9,9,10,10,10,11,11,11,12,12,0,0,0,9,9,10,9,10,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,11,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,10,10,11,10,11,11,11,12,13,12,13,13,0,0,0,0,0,0,0,11,10,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,14,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,14,0,0,0,0,0,0,0,12,12,12,13,13,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,13,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,6,6,6,8,8,0,0,0,6,6,7,7,9,9,0,0,0,6,6,7,7,9,9,0,0,0,7,7,8,8,10,10,0,0,0,7,7,8,8,10,10,0,0,0,9,9,9,9,10,10,0,0,0,9,9,9,9,10,10,0,0,0,10,10,10,10,11,11,0,0,0,0,0,10,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,2,3,7,7,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,9,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,7,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,7,10,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,10,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,9,11,9,0,0,0,0,0,0,10,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,10,11,11,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,10,11,11,0,0,0,0,0,0,9,11,9],"i8",O3,_.GLOBAL_BASE+294712),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,6,12,14,12,14,16,17,18,4,2,5,11,7,10,12,14,15,9,4,5,11,7,10,13,15,18,15,6,7,5,6,8,11,13,16,11,5,6,5,5,6,9,13,15,12,5,7,6,5,6,9,12,14,12,6,7,8,6,7,9,12,13,14,8,8,7,5,5,8,10,12,16,9,9,8,6,6,7,9,9,0,0,0,0,0,0,0,10,9,12,15,12,13,16,14,16,7,1,5,14,7,10,13,16,16,9,4,6,16,8,11,16,16,16,14,4,7,16,9,12,14,16,16,10,5,7,14,9,12,14,15,15,13,8,9,14,10,12,13,14,15,13,9,9,7,6,8,11,12,12,14,8,8,5,4,5,8,11,12,16,10,10,6,5,6,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,64,191,64,0,0,0,0,0,88,203,64,0,0,0,0,0,130,228,64,0,0,0,0,0,112,183,64,0,0,0,0,0,148,193,64,0,0,0,0,0,64,223,64,0,0,0,0,0,112,199,64,0,0,0,0,0,136,211,64,0,0,0,0,0,106,232,64,154,153,153,153,153,153,185,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,2,0,0,0,2,0,0,30,0,0,0,25,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,25,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,242,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,2,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,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,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,0,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,12,0,0,0,12,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,10,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,12,0,0,0,12,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,0,0,0,0,51,51,51,51,51,51,211,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,18,64,0,0,0,0,0,0,22,64,0,0,0,0,0,0,62,64,208,171,4,0,0,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,0,64,191,64,0,0,0,0,0,100,201,64,0,0,0,0,0,124,229,64,0,0,0,0,0,64,207,64,0,0,0,0,0,88,219,64,0,0,0,0,0,64,239,64,0,0,0,0,0,106,248,64,154,153,153,153,153,153,185,191,154,153,153,153,153,153,169,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,4,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,30,0,0,0,25,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,22,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,242,255,255,255,0,0,0,0,0,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,236,255,255,255,246,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,10,0,0,0,255,255,255,255,10,0,0,0,10,0,0,0,255,255,255,255,20,0,0,0,20,0,0,0,255,255,255,255,20,0,0,0,20,0,0,0,255,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,4,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,15,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,10,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,10,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,244,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,249,255,255,255,251,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,238,255,255,255,238,255,255,255,238,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,4,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,4,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,20,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,4,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,12,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,244,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,250,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,14,0,0,0,20,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,20,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,12,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,244,255,255,255,236,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,250,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,0,0,0,0,0,0,0,0,154,153,153,153,153,153,233,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,1,0,0,0,1,0,0,15,39,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,51,51,51,51,51,51,211,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,156,255,255,255,156,255,255,255,156,255,255,255,151,255,255,255,126,255,255,255,126,255,255,255,126,255,255,255,116,255,255,255,0,0,0,0,0,0,26,64,0,0,0,0,0,0,32,64,0,0,0,0,0,0,62,64,0,0,0,0,0,192,88,64,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,8,64,0,0,0,0,0,0,16,64,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,64,64,0,0,64,64,0,0,128,64,0,0,128,64,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,64,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,200,239,4,0,216,239,4,0,8,181,0,0,16,188,4,0,8,181,0,0,48,188,4,0,8,181,0,0,112,188,4,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,216,225,4,0,216,225,4,0,0,226,4,0,0,226,4,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,200,208,4,0,200,208,4,0,240,208,4,0,240,208,4,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,176,209,4,0,176,209,4,0,240,208,4,0,240,208,4,0,1,0,0,0,0,0,0,0,32,0,0,0,160,220,1,0,176,188,4,0,176,188,4,0,216,188,4,0,216,188,4,0,1,0,0,0,0,0,0,0,32,0,0,0,160,220,1,0,152,189,4,0,152,189,4,0,216,188,4,0,216,188,4,0,2,0,0,0,100,0,0,0,96,208,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,40,190,4,0,0,0,0,0,0,0,0,0,0,0,0,0,80,190,4,0,0,0,0,0,0,0,0,0,0,0,0,0,120,190,4,0,0,0,0,0,0,0,0,0,0,0,0,0,160,190,4,0,0,0,0,0,200,190,4,0,240,190,4,0,0,0,0,0,0,0,0,0,24,191,4,0,64,191,4,0,0,0,0,0,0,0,0,0,104,191,4,0,144,191,4,0,0,0,0,0,0,0,0,0,184,191,4,0,224,191,4,0,0,0,0,0,0,0,0,0,8,192,4,0,48,192,4,0,88,192,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,2,0,0,0,100,0,0,0,192,189,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,5,8,10,10,10,11,11,12,14,18,7,5,5,6,8,9,10,12,14,17,9,5,4,5,6,8,10,11,13,19,9,5,4,4,5,6,9,10,12,17,8,6,5,4,4,5,7,10,11,15,8,7,7,6,5,5,6,9,11,14,8,9,8,7,6,5,6,7,11,14,9,11,11,9,7,6,6,6,9,14,11,14,15,13,9,8,7,7,9,14,13,15,19,17,12,11,10,9,10,14,0,0,0,0,4,0,0,0,81,0,0,0,248,207,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,80,208,4,0,0,0,0,0,4,0,0,0,113,2,0,0,104,205,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,224,207,4,0,0,0,0,0,2,0,0,0,81,0,0,0,232,204,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,64,205,4,0,0,0,0,0,2,0,0,0,33,1,0,0,120,203,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,160,204,4,0,0,0,0,0,4,0,0,0,81,0,0,0,16,203,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,104,203,4,0,0,0,0,0,2,0,0,0,121,0,0,0,96,202,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,224,202,4,0,0,0,0,0,2,0,0,0,169,0,0,0,120,201,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,40,202,4,0,0,0,0,0,2,0,0,0,25,0,0,0,64,201,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,96,201,4,0,0,0,0,0,2,0,0,0,169,0,0,0,88,200,4,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,8,201,4,0,0,0,0,0,2,0,0,0,121,0,0,0,168,199,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,40,200,4,0,0,0,0,0,2,0,0,0,225,0,0,0,128,198,4,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,104,199,4,0,0,0,0,0,2,0,0,0,185,1,0,0,104,196,4,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,40,198,4,0,0,0,0,0,2,0,0,0,225,0,0,0,64,195,4,0,1,0,0,0,0,117,153,225,0,24,61,97,4,0,0,0,0,0,0,0,40,196,4,0,0,0,0,0,2,0,0,0,105,1,0,0,128,193,4,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,240,194,4,0,0,0,0,0,1,0,0,0,49,0,0,0,128,192,4,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,184,192,4,0,0,0,0,0,2,3,4,4,4,5,5,6,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,7,8,8,8,8,8,8,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,7,7,7,6,9,7,10,8,12,12,13,13,14,14,4,7,7,9,9,9,8,9,8,10,9,11,9,14,9,14,10,13,11,4,7,7,9,9,9,9,8,9,10,10,11,11,12,13,12,13,14,15,7,9,9,10,11,10,10,10,10,11,12,13,13,13,14,17,14,15,16,7,9,9,10,10,10,10,10,10,11,12,13,13,14,14,15,15,18,18,8,9,9,11,10,11,11,11,12,13,12,14,14,16,15,15,17,18,15,8,9,9,10,10,11,11,11,11,13,13,14,14,15,15,15,16,16,18,7,9,8,10,10,11,11,12,12,14,14,15,15,16,16,15,17,16,18,8,9,9,10,10,11,12,12,12,13,13,16,15,17,16,17,18,17,18,9,10,10,12,11,13,13,14,13,14,14,15,17,16,18,17,18,17,18,9,10,10,12,11,12,13,13,14,15,16,14,15,16,18,18,18,18,17,11,11,11,13,13,14,14,16,15,15,15,16,15,15,18,18,18,17,16,11,11,12,13,13,15,14,15,16,16,16,17,16,15,18,17,18,16,18,12,13,13,15,15,15,16,18,16,17,16,17,16,17,17,17,18,18,17,13,13,13,15,13,16,15,17,16,16,16,18,18,18,18,16,17,17,18,13,15,14,15,15,18,17,18,18,18,16,18,17,18,17,18,16,17,17,14,14,14,15,16,17,16,18,18,18,17,18,17,18,18,18,16,16,16,14,17,16,17,15,16,18,18,17,18,17,18,17,18,18,18,17,18,17,15,16,15,18,15,18,17,16,18,18,18,18,18,18,17,18,16,18,17,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,5,3,9,8,9,9,9,9,9,9,9,9,9,9,5,7,8,9,9,9,9,9,9,9,9,9,9,9,9,5,7,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,3,5,5,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,5,6,6,7,7,8,8,9,9,9,9,9,9,9,9,9,9,10,10,10,10,5,6,6,7,7,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,9,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,7,7,7,8,8,9,9,9,9,9,9,9,9,10,9,10,10,10,9,10,9,8,8,8,9,8,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,8,8,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,7,8,8,7,7,9,8,10,9,11,11,4,7,6,9,8,9,9,9,9,10,9,11,9,12,9,4,6,7,8,8,9,9,9,9,10,10,10,11,11,12,7,9,8,10,10,11,11,10,10,11,11,12,12,13,12,7,8,8,10,10,10,11,10,10,11,11,11,12,12,13,8,9,9,11,11,11,11,11,11,12,12,13,13,13,13,8,9,9,11,11,11,11,11,11,12,12,13,13,13,14,8,9,9,10,10,11,11,12,11,13,13,14,13,14,14,8,9,9,10,10,11,11,12,12,12,12,13,13,14,14,9,10,10,11,11,12,12,13,12,13,13,14,14,15,15,9,10,10,11,11,12,12,12,13,13,13,14,14,14,15,10,11,11,12,12,13,13,14,13,14,14,15,14,15,15,10,11,11,12,12,13,12,13,14,14,14,14,14,15,15,11,12,12,13,13,13,13,14,14,15,14,15,15,16,16,11,12,12,13,13,13,13,14,14,14,15,15,15,16,16,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,2,5,5,7,7,7,7,7,7,8,8,5,6,6,7,7,7,7,8,8,8,8,5,6,6,7,7,7,7,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,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,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,8,9,9,10,10,4,6,6,8,8,9,9,9,9,10,10,11,10,4,6,6,8,8,9,9,9,9,10,10,11,11,7,8,8,10,9,10,10,10,10,11,11,12,12,7,8,8,10,10,10,10,10,10,11,11,12,12,8,9,9,10,10,11,11,11,11,12,12,13,13,8,9,9,10,10,11,11,11,11,12,12,13,13,8,9,9,11,10,11,11,12,12,13,13,14,13,8,9,9,10,10,11,11,12,12,13,13,13,13,9,10,10,11,11,12,12,13,13,13,13,14,14,9,10,10,11,11,12,12,13,13,13,13,14,14,10,11,11,12,12,13,13,14,13,14,14,15,14,10,11,11,12,12,13,13,14,13,14,14,15,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,4,7,7,8,8,8,8,10,10,11,11,4,6,6,7,7,9,9,9,9,10,10,11,11,4,6,6,7,7,9,9,9,9,10,10,11,11,7,8,8,9,9,9,9,10,10,11,11,12,12,7,7,7,9,8,10,9,10,10,11,11,12,12,8,9,9,9,10,10,10,11,11,12,12,13,13,8,9,9,10,9,10,10,11,11,12,12,13,13,8,9,9,10,10,11,11,11,11,12,12,13,13,8,9,9,10,10,11,11,12,11,12,12,13,13,10,10,10,11,11,12,12,12,12,13,13,14,14,10,10,10,11,11,12,12,12,12,13,13,14,14,11,11,11,12,12,13,13,13,13,14,14,14,14,11,11,11,12,12,13,13,13,13,14,14,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,5,5,6,6,7,7,8,8,8,8,5,6,6,7,7,7,7,8,8,8,8,5,6,6,6,7,7,7,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,8,8,8,8,8,8,8,8,9,9,8,8,8,8,8,8,8,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,8,7,9,9,7,9,10,5,8,8,7,10,9,7,10,9,5,8,8,8,11,10,8,10,10,7,10,10,9,9,12,10,12,12,7,10,10,9,12,10,10,11,12,5,8,8,8,10,10,8,11,11,7,11,10,10,12,11,9,10,12,7,10,11,10,12,12,9,12,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,5,6,6,7,7,8,8,9,9,10,10,11,11,11,11,5,5,5,7,6,8,7,9,9,9,9,10,10,11,11,12,12,5,5,5,6,6,7,8,8,9,9,9,10,10,11,11,12,12,6,7,6,7,7,8,8,9,9,9,9,10,10,11,11,12,12,6,6,7,7,7,8,8,9,9,9,9,10,10,11,11,12,12,7,8,8,8,8,9,9,9,9,10,10,11,11,11,11,12,12,7,7,8,8,8,9,9,9,9,10,10,11,11,11,11,12,12,8,9,9,9,9,9,9,10,10,10,10,11,11,12,12,12,12,8,9,9,9,9,9,9,10,10,10,10,11,11,12,12,12,12,9,9,9,9,9,10,10,10,10,10,11,11,11,12,12,13,13,9,9,9,9,9,10,10,10,10,11,10,11,11,12,12,13,13,10,10,10,10,10,11,11,11,11,11,11,11,12,12,12,13,13,10,10,10,10,10,11,11,11,11,11,11,12,11,12,12,13,13,11,11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,11,11,11,11,11,11,11,12,12,12,12,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,13,13,13,13,13,14,14,11,12,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,4,4,6,6,7,7,9,9,4,5,5,6,6,8,7,9,9,4,5,5,6,6,7,8,9,9,6,6,6,7,7,8,8,10,10,6,6,6,7,7,8,8,10,10,7,8,7,8,8,9,9,11,10,7,7,8,8,8,9,9,10,11,9,9,9,10,10,11,10,11,11,9,9,9,10,10,10,11,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,5,7,7,9,9,5,7,7,9,9,9,10,9,11,11,9,9,9,11,11,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,9,10,10,11,12,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,11,10,10,10,12,12,9,10,10,12,12,10,10,10,12,12,9,10,10,12,12,12,12,12,14,14,11,12,12,13,14,9,10,10,12,12,9,10,10,12,12,10,10,10,12,12,11,12,12,14,13,12,12,12,14,13,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,10,10,10,12,12,7,8,8,11,10,8,9,9,11,11,8,9,9,11,11,10,11,11,12,13,10,11,11,12,13,7,8,8,10,10,8,9,8,11,10,8,9,9,11,11,10,11,10,13,12,10,11,11,13,13,10,11,10,13,12,10,11,11,13,13,10,11,11,13,13,12,12,13,13,14,12,13,13,14,14,9,10,10,12,12,10,11,10,13,12,10,11,11,13,13,12,13,12,14,13,12,13,13,14,15,5,7,7,9,10,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,10,10,11,12,12,7,8,8,10,10,8,9,9,11,11,8,8,9,10,11,10,11,11,13,13,10,10,11,12,13,7,8,8,10,10,8,9,9,11,11,8,9,9,11,11,10,11,11,13,12,10,11,11,13,12,9,10,10,12,12,10,11,11,13,13,10,10,11,12,13,12,13,13,15,14,12,12,13,12,14,9,10,11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13,14,14,12,13,12,14,13,8,10,10,12,12,9,11,10,13,12,9,10,10,12,13,12,13,13,14,14,12,12,12,14,14],"i8",O3,_.GLOBAL_BASE+304880),C3([9,10,10,13,13,10,11,11,13,13,10,11,11,13,13,13,13,13,14,15,12,13,13,14,15,9,10,10,12,13,10,11,10,13,13,10,11,11,12,13,12,13,12,15,14,12,13,13,14,15,11,12,12,15,14,12,12,13,14,15,12,13,13,15,14,13,13,15,14,16,14,14,14,16,15,11,12,12,14,14,11,12,12,14,14,12,13,13,14,15,13,14,13,15,13,14,14,14,15,16,8,9,10,12,12,9,10,10,13,12,9,10,11,12,13,12,12,12,14,14,12,13,13,14,14,9,10,10,13,12,10,11,11,13,13,10,10,11,13,13,12,13,13,15,14,12,12,13,14,15,9,10,10,13,13,10,11,11,13,13,10,11,11,13,13,12,13,13,14,14,13,13,13,15,15,11,12,12,14,13,12,13,13,15,14,11,12,12,14,14,14,14,14,16,15,13,13,14,13,16,11,12,12,14,14,12,13,13,14,15,12,13,12,14,14,14,14,14,16,16,14,15,13,16,14,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,5,7,7,5,7,7,5,7,7,7,9,9,7,9,9,5,7,7,7,9,9,8,9,9,5,7,7,8,9,9,7,9,9,7,9,9,9,10,11,9,10,10,7,9,9,9,10,9,9,10,11,5,8,7,7,9,9,8,9,9,7,9,9,9,11,10,9,9,10,7,9,9,9,10,10,9,11,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,8,11,13,13,15,16,19,19,19,19,11,8,8,9,9,11,13,15,19,20,14,8,7,7,8,9,12,13,15,20,15,9,6,5,5,7,10,12,14,18,14,9,7,5,3,4,7,10,12,16,13,10,8,6,3,3,5,8,11,14,11,10,9,7,5,4,4,6,11,14,10,10,10,8,6,5,5,6,10,14,10,10,10,9,8,7,7,7,10,14,11,12,12,12,11,10,10,10,12,16,0,0,0,0,2,0,0,0,100,0,0,0,112,225,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,64,210,4,0,0,0,0,0,0,0,0,0,0,0,0,0,104,210,4,0,0,0,0,0,0,0,0,0,0,0,0,0,144,210,4,0,0,0,0,0,0,0,0,0,0,0,0,0,184,210,4,0,0,0,0,0,0,0,0,0,0,0,0,0,224,210,4,0,0,0,0,0,0,0,0,0,0,0,0,0,8,211,4,0,0,0,0,0,48,211,4,0,88,211,4,0,0,0,0,0,0,0,0,0,128,211,4,0,168,211,4,0,0,0,0,0,0,0,0,0,208,211,4,0,248,211,4,0,32,212,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,2,0,0,0,100,0,0,0,216,209,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,3,6,10,8,12,8,14,8,14,19,5,3,5,5,7,6,11,7,16,19,7,5,6,7,7,9,11,12,19,19,6,4,7,5,7,6,10,7,18,18,8,6,7,7,7,7,8,9,18,18,7,5,8,5,7,5,8,6,18,18,12,9,10,9,9,9,8,9,18,18,8,7,10,6,8,5,6,4,11,18,11,15,16,12,11,8,8,6,9,18,14,18,18,18,16,16,16,13,16,18,0,0,0,0,4,0,0,0,81,0,0,0,8,225,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,96,225,4,0,0,0,0,0,4,0,0,0,81,0,0,0,160,224,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,248,224,4,0,0,0,0,0,4,0,0,0,113,2,0,0,16,222,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,224,4,0,0,0,0,0,4,0,0,0,113,2,0,0,128,219,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,248,221,4,0,0,0,0,0,2,0,0,0,81,0,0,0,0,219,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,88,219,4,0,0,0,0,0,2,0,0,0,81,0,0,0,128,218,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,216,218,4,0,0,0,0,0,4,0,0,0,81,0,0,0,24,218,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,112,218,4,0,0,0,0,0,2,0,0,0,121,0,0,0,104,217,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,232,217,4,0,0,0,0,0,2,0,0,0,121,0,0,0,184,216,4,0,1,0,0,0,0,128,187,224,0,0,118,96,4,0,0,0,0,0,0,0,56,217,4,0,0,0,0,0,2,0,0,0,121,0,0,0,8,216,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,136,216,4,0,0,0,0,0,2,0,0,0,225,0,0,0,224,214,4,0,1,0,0,0,0,228,91,225,0,224,255,96,4,0,0,0,0,0,0,0,200,215,4,0,0,0,0,0,2,0,0,0,225,0,0,0,184,213,4,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,160,214,4,0,0,0,0,0,2,0,0,0,33,1,0,0,72,212,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,112,213,4,0,0,0,0,0,1,6,6,7,8,8,11,10,9,9,11,9,10,9,11,11,9,6,7,6,11,8,11,9,10,10,11,9,11,10,10,10,11,9,5,7,7,8,8,10,11,8,8,11,9,9,10,11,9,10,11,8,9,6,8,8,9,9,10,10,11,11,11,9,11,10,9,11,8,8,8,9,8,9,10,11,9,9,11,11,10,9,9,11,10,8,11,8,9,8,11,9,10,9,10,11,11,10,10,9,10,10,8,8,9,10,10,10,9,11,9,10,11,11,11,11,10,9,11,9,9,11,11,10,8,11,11,11,9,10,10,11,10,11,11,9,11,10,9,11,10,10,10,10,9,11,10,11,10,9,9,10,11,9,8,10,11,11,10,10,11,9,11,10,11,11,10,11,9,9,8,10,8,9,11,9,8,10,10,9,11,10,11,10,11,9,11,8,10,11,11,11,11,10,10,11,11,11,11,10,11,11,10,9,8,10,10,9,11,10,11,11,11,9,9,9,11,11,11,10,10,9,9,10,9,11,11,11,11,8,10,11,10,11,11,10,11,11,9,9,9,10,9,11,9,11,11,11,11,11,10,11,11,10,11,10,11,11,9,11,10,11,10,9,10,9,10,10,11,11,11,11,9,10,9,10,11,11,10,11,11,11,11,11,11,10,11,11,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,6,5,9,9,10,10,6,7,9,9,10,10,10,10,5,10,8,10,8,10,10,8,8,10,9,10,10,10,10,5,8,9,10,10,10,10,8,10,10,10,10,10,10,10,9,10,10,10,10,10,10,9,9,10,10,10,10,10,10,9,9,8,9,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,8,10,10,10,10,10,10,10,10,10,10,10,10,10,6,8,8,10,10,10,8,10,10,10,10,10,10,10,10,5,8,8,10,10,10,9,9,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,2,5,5,6,6,7,7,8,8,8,8,4,6,6,7,7,8,7,8,8,8,8,4,6,6,7,7,7,7,8,8,8,8,6,7,7,7,7,8,8,8,8,8,9,6,7,7,7,7,8,8,8,8,9,9,7,7,7,8,8,8,8,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,9,8,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,5,8,8,10,10,12,12,4,7,7,8,8,9,9,12,11,14,13,4,7,7,7,8,9,10,11,11,13,12,5,8,8,9,9,11,11,12,13,15,14,5,7,8,9,9,11,11,13,13,17,15,8,9,10,11,11,12,13,17,14,17,16,8,10,9,11,11,12,12,13,15,15,17,10,11,11,12,13,14,15,15,16,16,17,9,11,11,12,12,14,15,17,15,15,16,11,14,12,14,15,16,15,16,16,16,15,11,13,13,14,14,15,15,16,16,15,16,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,4,6,5,7,7,8,8,8,8,8,8,4,5,6,7,7,8,8,8,8,8,8,6,7,7,8,8,8,8,9,9,9,9,6,7,7,8,8,8,8,9,9,9,9,7,8,8,8,8,9,9,9,10,9,10,7,8,8,8,8,9,9,9,9,10,9,8,8,8,9,9,10,10,10,10,10,10,8,8,8,9,9,9,9,10,10,10,10,8,8,8,9,9,9,10,10,10,10,10,8,8,8,9,9,10,10,10,10,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,4,8,8,4,8,8,5,11,9,8,12,11,8,12,11,5,10,11,8,11,12,8,11,12,4,11,11,11,14,13,10,13,13,8,14,13,12,14,16,12,16,15,8,14,14,13,16,14,12,15,16,4,11,11,10,14,13,11,14,14,8,15,14,12,15,15,12,14,16,8,14,14,11,16,15,12,15,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,6,6,7,7,9,9,4,4,4,6,6,8,8,9,9,4,4,4,6,6,7,7,9,9,6,6,6,7,7,8,8,10,9,6,6,6,7,7,8,8,9,10,7,8,7,8,8,9,9,10,10,7,8,8,8,8,9,9,10,10,9,9,9,10,10,10,10,11,11,9,9,9,10,10,10,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,6,8,8,8,8,10,10,4,5,6,8,8,8,8,10,10,7,8,8,9,9,9,9,11,11,7,8,8,9,9,9,9,11,11,7,8,8,10,9,11,11,12,11,7,8,8,9,9,11,11,12,12,9,10,10,11,11,12,12,13,12,9,10,10,11,11,12,12,12,13,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,6,6,7,9,9,6,6,6,9,9,9,10,9,11,11,9,9,10,11,11,6,7,7,10,9,7,7,8,9,10,7,7,8,10,10,10,10,10,10,12,9,9,10,11,12,6,7,7,9,9,7,8,7,10,10,7,8,7,10,10,9,10,9,12,11,10,10,9,12,10,9,10,10,12,11,10,10,10,12,12,9,10,10,12,12,12,11,12,13,13,11,11,12,12,13,9,10,10,11,12,9,10,10,12,12,10,10,10,12,12,11,12,11,14,13,11,12,12,14,13,5,7,7,10,10,7,8,8,10,10,7,8,7,10,10,10,10,10,12,12,10,10,10,12,12,6,8,7,10,10,7,7,9,10,11,8,9,9,11,10,10,10,11,11,13,10,10,11,12,13,6,8,8,10,10,7,9,8,11,10,8,9,9,10,11,10,11,10,13,11,10,11,10,12,12,10,11,10,12,11,10,10,10,12,13,10,11,11,13,12,11,11,13,11,14,12,12,13,14,14,9,10,10,12,13,10,11,10,13,12,10,11,11,12,13,11,12,11,14,12,12,13,13,15,14,5,7,7,10,10,7,7,8,10,10,7,8,8,10,10,10,10,10,11,12,10,10,10,12,12,7,8,8,10,10,8,9,8,11,10,7,8,9,10,11,10,11,11,12,12,10,10,11,11,13,7,7,8,10,10,8,8,9,10,11,7,9,7,11,10,10,11,11,13,12,11,11,10,13,11,9,10,10,12,12,10,11,11,13,12,10,10,11,12,12,12,13,13,14,14,11,11,12,12,14,10,10,11,12,12,10,11,11,12,13,10,10,10,13,12,12,13,13,15,14,12,13,10,14,11,8,10,10,12,12,10,11,10,13,13,9,10,10,12,12,12,13,13,15,14,11,12,12,13,13,9,10,10,13,12,10,10,11,13,13,10,11,10,13,12,12,12,13,14,15,12,13,12,15,13,9,10,10,12,13,10,11,10,13,12,10,10,11,12,13,12,14,12,15,13,12,12,13,14,15,11,12,11,14,13,11,11,12,14,15,12,13,12,15,14,13,11,15,11,16,13,14,14,16,15,11,12,12,14,14,11,12,11,14,13,12,12,13,14,15,13,14,12,16,12,14,14,14,15,15,8,10,10,12,12,9,10,10,12,12,10,10,11,13,13,11,12,12,13,13,12,13,13,14,15,9,10,10,13,12,10,11,11,13,12,10,10,11,13,13,12,13,12,15,14,12,12,13,13,16,9,9,10,12,13,10,10,11,12,13,10,11,10,13,13,12,12,13,13,15,13,13,12,15,13,11,12,12,14,14,12,13,12,15,14,11,11,12,13,14,14,14,14,16,15,13,12,15,12,16,11,11,12,13,14,12,13,13,14,15,10,12,11,14,13,14,15,14,16,16,13,14,11,15,11,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,8,8,6,7,7,9,9,5,7,7,9,9,9,10,9,11,11,9,9,10,11,11,6,8,8,10,10,8,9,10,11,11,8,9,10,11,11,10,11,11,12,13,10,11,11,13,13,6,8,8,10,10,8,10,9,11,11,8,10,9,11,11,10,11,11,13,13,10,11,11,13,12,9,11,11,14,13,10,12,12,15,14,10,12,11,14,13,12,13,13,15,15,12,13,13,16,14,9,11,11,13,14,10,11,12,14,14,10,12,12,14,15,12,13,13,14,15,12,13,14,15,16,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,14,11,12,12,14,14,8,10,10,12,12,9,11,12,12,13,10,12,12,13,13,12,12,13,14,15,11,13,13,15,15,7,10,10,12,12,9,12,11,13,12,10,11,12,13,13,12,13,12,15,14,11,12,13,15,15,10,12,12,15,14,11,13,13,16,15,11,13,13,16,15,14,13,14,15,16,13,15,15,17,17,10,12,12,14,15,11,12,12,15,15,11,13,13,15,16,13,15,13,16,15,13,15,15,16,17,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,14,11,12,12,14,14,7,10,10,12,12,10,12,12,14,13,9,11,12,12,13,12,13,13,15,15,12,12,13,13,15,7,10,10,12,13,10,11,12,13,13,10,12,11,13,13,11,13,13,15,15,12,13,12,15,14,9,12,12,15,14,11,13,13,15,15,11,12,13,15,15,13,14,14,17,19,13,13,14,16,16,10,12,12,14,15,11,13,13,15,16,11,13,12,16,15,13,15,15,17,18,14,15,13,16,15,8,11,11,15,14,10,12,12,16,15,10,12,12,16,16,14,15,15,18,17,13,14,15,16,18,9,12,12,15,15,11,12,14,16,17,11,13,13,16,15,15,15,15,17,18,14,15,16,17,17,9,12,12,15,15,11,14,13,16,16,11,13,13,16,16,15,16,15,17,18,14,16,15,17,16,12,14,14,17,16,12,14,15,18,17,13,15,15,17,17,15,15,18,16,20,15,16,17,18,18,11,14,14,16,17,13,15,14,18,17,13,15,15,17,17,15,17,15,18,17,15,17,16,19,18,8,11,11,14,15,10,12,12,15,15,10,12,12,16,16,13,14,14,17,16,14,15,15,17,17,9,12,12,15,16,11,13,13,16,16,11,12,13,16,16,14,16,15,20,17,14,16,16,17,17,9,12,12,15,16,11,13,13,16,17,11,13,13,17,16,14,15,15,17,18,15,15,15,18,18,11,14,14,17,16,13,15,15,17,17,13,14,14,18,17,15,16,16,18,19,15,15,17,17,19,11,14,14,16,17,13,15,14,17,19,13,15,14,18,17,15,17,16,18,18,15,17,15,18,16,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,4,5,6,6,5,6,6,5,6,6,6,7,8,6,7,8,5,6,6,6,8,7,6,8,7,5,6,6,6,8,8,6,8,8,6,8,8,7,7,10,8,9,9,6,8,8,7,9,8,8,9,10,5,6,6,6,8,8,7,8,8,6,8,8,8,10,9,7,8,9,6,8,8,8,9,9,7,10,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,7,7,10,10,7,9,10,5,7,8,7,10,9,7,10,10,5,8,8,8,10,10,8,10,10,7,10,10,10,11,12,10,12,13,7,10,10,9,13,11,10,12,13,5,8,8,8,10,10,8,10,10,7,10,10,10,12,12,9,11,12,7,10,11,10,12,12,10,13,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,7,10,9,11,10,15,11,13,16,6,4,6,6,7,7,10,9,12,16,10,6,5,6,6,7,10,11,16,16,9,6,7,6,7,7,10,8,14,16,11,6,5,4,5,6,8,9,15,16,9,6,6,5,6,6,9,8,14,16,12,7,6,6,5,6,6,7,13,16,8,6,7,6,5,5,4,4,11,16,9,8,9,9,7,7,6,5,13,16,14,14,16,15,16,15,16,16,16,16,0,0,0,0,2,0,0,0,64,0,0,0,136,239,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,192,226,4,0,0,0,0,0,0,0,0,0,0,0,0,0,232,226,4,0,0,0,0,0,0,0,0,0,0,0,0,0,16,227,4,0,0,0,0,0,0,0,0,0,0,0,0,0,56,227,4,0,0,0,0,0,0,0,0,0,0,0,0,0,96,227,4,0,0,0,0,0,136,227,4,0,176,227,4,0,0,0,0,0,0,0,0,0,216,227,4,0,0,228,4,0,40,228,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,4,0,0,0,81,0,0,0,32,239,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,120,239,4,0,0,0,0,0,4,0,0,0,81,0,0,0,184,238,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,16,239,4,0,0,0,0,0,4,0,0,0,113,2,0,0,40,236,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,238,4,0,0,0,0,0,4,0,0,0,113,2,0,0,152,233,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,16,236,4,0,0,0,0,0,2,0,0,0,81,0,0,0,24,233,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,112,233,4,0,0,0,0,0,2,0,0,0,169,0,0,0,48,232,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,224,232,4,0,0,0,0,0,2,0,0,0,25,0,0,0,248,231,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,24,232,4,0,0,0,0,0,4,0,0,0,81,0,0,0,144,231,4,0,1,0,0,0,0,176,19,225,0,176,19,97,2,0,0,0,0,0,0,0,232,231,4,0,0,0,0,0,2,0,0,0,225,0,0,0,104,230,4,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,80,231,4,0,0,0,0,0,2,0,0,0,185,1,0,0,80,228,4,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,16,230,4,0,0,0,0,0,1,6,6,7,8,7,7,10,9,10,9,11,10,9,11,10,9,9,9,9,10,6,8,7,9,9,8,8,10,10,9,11,11,12,12,10,9,11,9,12,10,9,6,9,8,9,12,8,8,11,9,11,11,12,11,12,12,10,11,11,10,10,11,7,10,9,9,9,9,9,10,9,10,9,10,10,12,10,10,10,11,12,10,10,7,9,9,9,10,9,9,10,10,9,9,9,11,11,10,10,10,10,9,9,12,7,9,10,9,11,9,10,9,10,11,11,11,10,11,12,9,12,11,10,10,10,7,9,9,9,9,10,12,10,9,11,12,10,11,12,12,11,9,10,11,10,11,7,9,10,10,11,10,9,10,11,11,11,10,12,12,12,11,11,10,11,11,12,8,9,10,12,11,10,10,12,12,12,12,12,10,11,11,9,11,10,12,11,11,8,9,10,10,11,12,11,11,10,10,10,12,12,12,9,10,12,12,12,12,12,8,10,11,10,10,12,9,11,12,12,11,12,12,12,12,10,12,10,10,10,10,8,12,11,11,11,10,10,11,12,12,12,12,11,12,12,12,11,11,11,12,10,9,10,10,12,10,12,10,12,12,10,10,10,11,12,12,12,11,12,12,12,11,10,11,12,12,12,11,12,12,11,12,12,11,12,12,12,12,11,12,12,10,10,10,10,11,11,12,11,12,12,12,12,12,12,12,11,12,11,10,11,11,12,11,11,9,10,10,10,12,10,10,11,9,11,12,11,12,11,12,12,10,11,10,12,9,9,9,12,11,10,11,10,12,10,12,10,12,12,12,11,11,11,11,11,10,9,10,10,11,10,11,11,12,11,10,11,12,12,12,11,11,9,12,10,12,9,10,12,10,10,11,10,11,11,12,11,10,11,10,11,11,11,11,12,11,11,10,9,10,10,10,9,11,11,10,9,12,10,11,12,11,12,12,11,12,11,12,11,10,11,10,12,11,12,11,12,11,12,10,11,10,10,12,11,10,11,11,11,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,5,5,6,5,9,10,11,11,10,10,10,10,10,10,5,8,8,8,10,10,10,10,10,10,10,10,10,10,10,5,8,9,9,9,10,10,10,10,10,10,10,10,10,10,5,10,8,10,10,10,10,10,10,10,10,10,10,10,10,4,8,9,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,5,6,6,4,6,6,6,6,4,6,6,6,6,6,6,6,7,7,6,6,6,7,7,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,10,10,12,12,13,13,18,17,3,6,6,9,9,11,11,13,13,14,14,18,17,3,6,6,9,9,11,11,13,13,14,14,17,18,7,9,9,11,11,13,13,14,14,15,15,0,0,7,9,9,11,11,13,13,14,14,15,16,19,18,10,11,11,13,13,14,14,16,15,17,18,0,0,10,11,11,13,13,14,14,15,15,16,18,0,0,11,13,13,14,14,15,15,17,17,0,19,0,0,11,13,13,14,14,14,15,16,18,0,19,0,0,13,14,14,15,15,18,17,18,18,0,19,0,0,13,14,14,15,16,16,16,18,18,19,0,0,0,16,17,17,0,17,19,19,0,19,0,0,0,0,16,19,16,17,18,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,6,8,8,8,8,9,9,4,6,6,8,8,8,8,9,9,7,8,8,9,9,9,9,11,10,7,8,8,9,9,9,9,10,11,7,8,8,9,9,10,10,11,11,7,8,8,9,9,10,10,11,11,9,9,9,10,10,11,11,12,12,9,9,9,10,10,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,6,6,6,9,9,6,6,6,9,9,9,10,9,11,11,9,9,9,11,11,6,7,7,10,10,7,7,8,10,10,7,7,8,10,10,10,10,10,11,12,9,10,10,11,12,6,7,7,10,10,7,8,7,10,10,7,8,7,10,10,10,11,10,12,11,10,10,10,13,10,9,10,10,12,12,10,11,10,14,12,9,11,11,13,13,11,12,13,13,13,11,12,12,15,13,9,10,10,12,13,9,11,10,12,13,10,10,11,12,13,11,12,12,12,13,11,12,12,13,13,5,7,7,10,10,7,8,8,10,10,7,8,8,10,10,10,11,10,12,13,10,10,11,12,12,6,8,8,11,10,7,8,9,10,12,8,9,9,11,11,11,10,11,11,12,10,11,11,13,12,7,8,8,10,11,8,9,8,11,10,8,9,9,11,11,10,12,10,13,11,10,11,11,13,13,10,11,10,14,13,10,10,11,13,13,10,12,11,14,13,12,11,13,12,13,13,12,13,14,14,10,11,11,13,13,10,11,10,12,13,10,12,12,12,14,12,12,12,14,12,12,13,12,17,15,5,7,7,10,10,7,8,8,10,10,7,8,8,11,10,10,10,11,12,12,10,11,11,12,13,6,8,8,11,10,8,9,9,11,11,7,8,9,10,11,11,11,11,12,12,10,10,11,12,13,6,8,8,10,11,8,9,9,11,11,7,9,7,11,10,10,12,12,13,13,11,11,10,13,11,9,11,10,14,13,11,11,11,15,13,10,10,11,13,13,12,13,13,14,14,12,11,12,12,13,10,11,11,12,13,10,11,12,13,13,10,11,10,13,12,12,12,13,14,0,12,13,11,13,11,8,10,10,13,13,10,11,11,14,13,10,11,11,13,12,13,14,14,14,15,12,12,12,15,14,9,11,10,13,12,10,10,11,13,14,11,11,11,15,12,13,12,14,15,16,13,13,13,14,13,9,11,11,12,12,10,12,11,13,13,10,11,11,13,14,13,13,13,15,15,13,13,14,17,15,11,12,12,14,14,10,11,12,13,15,12,13,13,0,15,13,11,14,12,16,14,16,14,0,15,11,12,12,14,16,11,13,12,16,15,12,13,13,14,15,12,14,12,15,13,15,14,14,16,16,8,10,10,13,13,10,11,10,13,14,10,11,11,13,13,13,13,12,14,14,14,13,13,16,17,9,10,10,12,14,10,12,11,14,13,10,11,12,13,14,12,12,12,15,15,13,13,13,14,14,9,10,10,13,13,10,11,12,12,14,10,11,10,13,13,13,13,13,14,16,13,13,13,14,14,11,12,13,15,13,12,14,13,14,16,12,12,13,13,14,13,14,14,17,15,13,12,17,13,16,11,12,13,14,15,12,13,14,14,17,11,12,11,14,14,13,16,14,16,0,14,15,11,15,11,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,7,7,6,7,7,8,8,6,7,8,8,8,8,9,9,11,11,8,9,9,11,11,6,9,8,10,10,8,10,10,11,11,8,10,10,11,11,10,11,10,13,12,9,11,10,13,13,6,8,9,10,10,8,10,10,11,11,8,10,10,11,11,9,10,11,13,12,10,10,11,12,12,8,11,11,14,13,10,12,11,15,13,9,12,11,15,14,12,14,13,16,14,12,13,13,17,14,8,11,11,13,14,9,11,12,14,15,10,11,12,13,15,11,13,13,14,16,12,13,14,14,16,5,9,9,11,11,9,11,11,12,12,8,11,11,12,12,11,12,12,15,14,10,12,12,15,15,8,11,11,13,12,10,12,12,13,13,10,12,12,14,13,12,12,13,14,15,11,13,13,17,16,7,11,11,13,13,10,12,12,14,13,10,12,12,13,14,12,13,12,15,14,11,13,13,15,14,9,12,12,16,15,11,13,13,17,16,10,13,13,16,16,13,14,15,15,16,13,15,14,19,17,9,12,12,14,16,11,13,13,15,16,10,13,13,17,16,13,14,13,17,15,12,15,15,16,17,5,9,9,11,11,8,11,11,13,12,9,11,11,12,12,10,12,12,14,15,11,12,12,14,14,7,11,10,13,12,10,12,12,14,13,10,11,12,13,13,11,13,13,15,16,12,12,13,15,15,7,11,11,13,13,10,13,13,14,14,10,12,12,13,13,11,13,13,16,15,12,13,13,15,14,9,12,12,15,15,10,13,13,17,16,11,12,13,15,15,12,15,14,18,18,13,14,14,16,17,9,12,12,15,16,10,13,13,15,16,11,13,13,15,16,13,15,15,17,17,13,15,14,16,15,7,11,11,15,16,10,13,12,16,17,10,12,13,15,17,15,16,16,18,17,13,15,15,17,18,8,12,12,16,16,11,13,14,17,18,11,13,13,18,16,15,17,16,17,19,14,15,15,17,16,8,12,12,16,15,11,14,13,18,17,11,13,14,18,17,15,16,16,18,17,13,16,16,18,18,11,15,14,18,17,13,14,15,18,0,12,15,15,0,17,17,16,17,17,18,14,16,18,18,0,11,14,14,17,0,12,15,14,17,19,12,15,14,18,0,15,18,16,0,17,14,18,16,18,0,7,11,11,16,15,10,12,12,18,16,10,13,13,16,15,13,15,14,17,17,14,16,16,19,18,8,12,12,16,16,11,13,13,18,16,11,13,14,17,16,14,15,15,19,18,15,16,16,0,19,8,12,12,16,17,11,13,13,17,17,11,14,13,17,17,13,15,15,17,19,15,17,17,19,0,11,14,15,19,17,12,15,16,18,18,12,14,15,19,17,14,16,17,0,18,16,16,19,17,0,11,14,14,18,19,12,15,14,17,17,13,16,14,17,16,14,17,16,18,18,15,18,15,0,18,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,6,6,5,6,6,5,7,7,7,8,9,7,8,9,5,7,7,7,9,8,7,9,7,4,7,7,7,9,9,7,8,8,6,9,8,7,8,11,9,11,10,6,8,9,8,11,8,9,10,11,4,7,7,7,8,8,7,9,9,6,9,8,9,11,10,8,8,11,6,8,9,9,10,11,8,11,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,8,5,8,8,8,10,10,8,10,11,5,8,8,8,10,10,8,10,10,4,9,9,9,12,11,8,11,11,8,12,11,10,12,14,10,13,13,7,11,11,10,14,12,11,14,14,4,9,9,8,11,11,9,11,12,7,11,11,10,13,14,10,12,14,8,11,12,10,14,14,10,13,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,5,8,7,14,8,9,19,5,2,5,5,9,6,9,19,8,4,5,7,8,9,13,19,7,4,6,5,9,6,9,19,12,8,7,9,10,11,13,19,8,5,8,6,9,6,7,19,8,8,10,7,7,4,5,19,12,17,19,15,18,13,11,18,9,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,112,199,64,0,0,0,0,0,136,211,64,0,0,0,0,0,124,229,64,0,0,0,0,0,255,244,64,200,47,1,0,32,240,4,0,200,47,1,0,64,240,4,0,200,47,1,0,128,240,4,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,248,45,5,0,248,45,5,0,32,46,5,0,32,46,5,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,32,5,5,0,32,5,5,0,72,5,5,0,72,5,5,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,8,6,5,0,8,6,5,0,72,5,5,0,72,5,5,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,192,240,4,0,192,240,4,0,232,240,4,0,232,240,4,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,168,241,4,0,168,241,4,0,232,240,4,0,232,240,4,0,2,0,0,0,100,0,0,0,184,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,242,4,0,0,0,0,0,0,0,0,0,0,0,0,0,96,242,4,0,0,0,0,0,0,0,0,0,0,0,0,0,136,242,4,0,0,0,0,0,0,0,0,0,0,0,0,0,176,242,4,0,0,0,0,0,216,242,4,0,0,243,4,0,0,0,0,0,0,0,0,0,40,243,4,0,80,243,4,0,0,0,0,0,0,0,0,0,120,243,4,0,160,243,4,0,0,0,0,0,0,0,0,0,200,243,4,0,240,243,4,0,0,0,0,0,0,0,0,0,24,244,4,0,64,244,4,0,104,244,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,2,0,0,0,100,0,0,0,208,241,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,4,7,9,9,9,8,9,10,13,16,5,4,5,6,7,7,8,9,12,16,6,5,5,5,7,7,9,10,12,15,7,6,5,4,5,6,8,9,10,13,8,7,7,5,5,5,7,9,10,12,7,7,7,6,5,5,6,7,10,12,8,8,8,7,7,5,5,6,9,11,8,9,9,8,8,6,6,5,8,11,10,11,12,12,11,9,9,8,9,12,13,14,15,15,14,12,12,11,11,13,0,0,0,0,4,0,0,0,81,0,0,0,80,4,5,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,168,4,5,0,0,0,0,0,4,0,0,0,113,2,0,0,192,1,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,56,4,5,0,0,0,0,0,2,0,0,0,81,0,0,0,64,1,5,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,152,1,5,0,0,0,0,0,2,0,0,0,33,1,0,0,208,255,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,248,0,5,0,0,0,0,0,4,0,0,0,81,0,0,0,104,255,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,192,255,4,0,0,0,0,0,2,0,0,0,121,0,0,0,184,254,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,56,255,4,0,0,0,0,0,2,0,0,0,169,0,0,0,208,253,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,128,254,4,0,0,0,0,0,2,0,0,0,25,0,0,0,152,253,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,184,253,4,0,0,0,0,0,2,0,0,0,169,0,0,0,176,252,4,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,96,253,4,0,0,0,0,0,2,0,0,0,121,0,0,0,0,252,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,128,252,4,0,0,0,0,0,2,0,0,0,225,0,0,0,216,250,4,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,192,251,4,0,0,0,0,0,2,0,0,0,185,1,0,0,192,248,4,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,128,250,4,0,0,0,0,0,2,0,0,0,33,1,0,0,80,247,4,0,1,0,0,0,0,24,157,225,0,24,61,97,5,0,0,0,0,0,0,0,120,248,4,0,0,0,0,0,2,0,0,0,105,1,0,0,144,245,4,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,0,247,4,0,0,0,0,0,1,0,0,0,49,0,0,0,144,244,4,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,200,244,4,0,0,0,0,0,2,4,4,4,4,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,7,7,7,7,8,8,10,9,11,10,13,11,14,13,6,6,6,8,8,8,8,8,7,9,8,11,9,13,11,14,12,14,13,5,6,6,8,8,8,8,8,8,9,9,11,11,13,11,14,13,15,15,17,8,8,8,8,9,9,9,8,11,9,12,10,13,11,14,12,14,13,17,8,8,8,8,9,9,9,9,10,10,11,11,13,13,13,14,16,15,17,12,12,8,8,9,9,10,10,11,11,12,11,13,12,13,12,14,13,16,12,12,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,17,17,17,9,9,9,9,11,11,12,12,12,13,13,13,16,14,14,14,17,17,17,9,8,9,8,11,10,12,12,13,13,14,14,15,15,16,16,17,17,17,12,12,10,10,11,12,12,13,13,14,13,15,15,14,16,15,17,17,17,12,12,10,8,12,9,13,12,14,14,15,14,15,16,16,16,17,17,17,17,17,11,11,12,12,14,14,14,16,15,16,15,16,15,17,17,17,17,17,17,11,9,12,10,13,11,15,14,16,16,17,16,16,15,17,17,17,17,17,15,15,12,12,14,14,15,16,16,15,16,16,17,17,17,17,17,17,17,14,14,12,10,14,11,15,12,17,16,15,16,17,16,17,17,17,17,17,17,17,13,13,14,14,14,16,17,17,16,17,17,17,17,17,17,17,17,17,17,13,9,13,12,15,13,16,16,17,17,17,17,17,17,17,17,17,17,17,15,17,14,14,15,16,16,17,16,17,16,17,17,17,17,17,17,17,17,17,17,14,13,15,16,16,17,16,17,17],"i8",O3,_.GLOBAL_BASE+315120),C3([17,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,4,3,10,8,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,11,11,11,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,11,10,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,8,8,8,8,9,9,9,9,9,9,9,9,10,9,10,10,10,10,11,11,11,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,11,11,11,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,10,10,6,6,6,8,8,9,9,8,8,9,9,10,10,11,11,6,5,5,8,7,9,9,8,8,9,9,10,10,11,11,20,8,8,8,8,9,9,9,9,10,10,11,10,12,11,20,8,8,8,8,9,9,9,9,10,10,11,11,12,12,20,12,12,9,9,10,10,10,10,11,11,12,12,13,12,20,13,13,9,9,10,10,10,10,11,11,12,12,13,13,20,20,20,9,9,9,9,10,10,11,11,12,12,13,12,20,20,20,9,9,9,8,10,10,12,11,12,12,13,13,20,20,20,13,13,10,10,11,11,12,12,13,13,13,13,20,20,20,13,13,10,10,11,10,12,11,13,13,14,14,20,20,20,20,20,11,11,11,11,12,12,13,13,14,14,20,20,20,20,20,11,10,11,11,13,11,13,13,14,14,20,20,21,21,21,14,14,11,12,13,13,13,13,14,14,21,21,21,21,21,15,15,12,11,13,12,14,13,15,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,7,7,9,9,9,6,7,7,7,7,7,8,8,9,9,9,6,6,7,7,7,7,8,8,9,9,9,7,7,7,7,8,8,8,8,9,9,9,7,7,7,7,8,8,8,8,9,9,9,7,7,7,7,8,8,8,8,9,9,9,7,7,7,7,7,7,8,8,9,9,9,7,7,8,8,7,7,8,8,9,9,9,9,9,8,8,7,7,8,8,9,9,9,9,9,8,8,7,7,8,8,9,9,9,9,9,7,7,7,7,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,8,10,9,10,10,5,5,5,7,7,9,9,10,10,11,10,12,11,6,5,5,7,7,9,9,10,10,11,11,12,12,20,7,7,7,7,9,9,10,10,11,11,12,12,20,7,7,7,7,9,9,11,10,12,11,12,12,20,11,11,8,8,10,10,11,11,12,12,13,13,20,12,12,8,8,9,9,11,11,12,12,13,13,20,20,21,10,10,10,10,11,11,12,12,13,13,21,21,21,10,10,10,10,11,11,12,12,13,13,21,21,21,14,14,11,11,12,12,13,13,13,14,21,21,21,16,15,11,11,12,11,13,13,14,14,21,21,21,21,21,13,13,12,12,13,13,14,14,21,21,21,21,21,13,13,12,12,13,13,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,7,8,8,9,9,10,10,5,5,5,7,7,9,9,9,9,11,11,12,12,6,5,5,7,7,9,9,10,9,11,11,12,12,0,7,7,7,7,9,9,10,10,11,11,12,12,0,7,7,7,7,9,9,10,10,11,11,12,12,0,11,11,8,8,10,10,11,11,12,12,13,13,0,12,12,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,6,6,6,6,7,7,7,7,11,10,10,6,6,7,7,8,8,8,8,10,10,10,6,6,7,7,8,8,8,8,11,11,11,7,7,8,8,8,8,9,9,11,11,11,6,7,8,8,8,8,9,9,11,11,11,7,7,8,8,8,8,8,8,11,11,11,7,7,8,8,8,8,9,9,11,11,11,8,8,8,8,8,8,8,8,11,11,11,11,11,8,8,8,8,8,8,12,11,11,11,11,8,8,8,8,8,8,12,11,11,11,11,7,7,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,6,7,7,4,6,6,10,11,10,10,10,11,4,6,6,10,10,11,10,11,10,5,10,10,9,12,11,10,12,12,7,10,10,12,12,12,12,13,13,7,11,10,11,12,12,12,13,13,6,11,10,10,12,12,11,12,12,7,11,10,12,13,13,12,12,12,7,10,11,12,13,13,12,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,6,7,7,8,8,8,8,9,9,0,0,0,6,6,7,7,8,8,8,8,9,9,10,10,11,10,0,0,0,6,6,7,7,8,8,8,8,9,9,10,10,10,10,0,0,0,6,6,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,6,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,10,10,11,11,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,11,11,12,12,0,0,0,7,8,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,5,5,7,7,8,8,0,0,0,6,6,8,8,9,9,0,0,0,6,6,8,8,9,9,0,0,0,7,7,8,9,10,10,0,0,0,7,7,9,9,10,10,0,0,0,8,8,9,9,11,11,0,0,0,7,7,9,9,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,7,7,0,0,0,8,8,0,0,0,8,8,0,0,0,8,8,0,0,0,8,8,4,4,4,8,7,0,0,0,8,8,0,0,0,8,8,0,0,0,9,9,0,0,0,9,9,4,4,4,7,8,0,0,0,8,8,0,0,0,8,8,0,0,0,9,9,0,0,0,9,9,7,8,8,10,9,0,0,0,12,11,0,0,0,11,12,0,0,0,14,13,0,0,0,14,14,7,8,8,9,10,0,0,0,11,12,0,0,0,11,11,0,0,0,14,14,0,0,0,14,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,11,11,0,0,0,12,11,0,0,0,12,12,0,0,0,13,12,0,0,0,13,13,8,8,8,11,11,0,0,0,11,11,0,0,0,12,12,0,0,0,13,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,8,12,11,0,0,0,12,12,0,0,0,12,11,0,0,0,13,13,0,0,0,13,13,8,8,8,11,12,0,0,0,11,12,0,0,0,11,12,0,0,0,13,14,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,9,14,14,0,0,0,13,13,0,0,0,13,13,0,0,0,13,12,0,0,0,13,13,8,9,9,14,14,0,0,0,13,13,0,0,0,13,13,0,0,0,12,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,9,14,14,0,0,0,13,13,0,0,0,13,13,0,0,0,13,13,0,0,0,13,12,8,9,9,14,14,0,0,0,13,13,0,0,0,13,13,0,0,0,13,13,0,0,0,12,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,3,3,0,0,0,0,0,0,4,5,5,0,0,0,0,0,0,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,7,10,12,11,12,13,15,16,18,15,10,8,8,8,9,10,12,13,14,17,10,7,7,7,7,8,10,12,15,18,10,7,7,5,5,6,8,10,13,15,10,7,6,5,4,4,6,9,12,15,11,7,7,5,4,3,4,7,11,13,12,9,8,7,5,4,4,5,10,13,11,11,11,9,7,5,5,5,9,12,13,12,13,12,10,8,8,7,9,13,14,14,14,14,13,11,11,10,10,13,0,0,0,0,2,0,0,0,100,0,0,0,144,45,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,232,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,16,7,5,0,0,0,0,0,0,0,0,0,0,0,0,0,56,7,5,0,0,0,0,0,96,7,5,0,136,7,5,0,0,0,0,0,0,0,0,0,176,7,5,0,216,7,5,0,0,0,0,0,0,0,0,0,0,8,5,0,40,8,5,0,80,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,48,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,5,20,7,10,7,8,10,11,11,4,2,20,5,8,6,7,9,10,10,20,20,20,20,19,19,19,19,19,19,7,5,19,6,10,7,9,11,13,17,11,8,19,10,7,7,8,10,11,15,7,5,19,7,7,5,6,9,11,16,7,6,19,8,7,6,6,7,9,13,9,9,19,11,9,8,6,7,8,13,12,14,19,16,13,10,9,8,9,13,14,17,19,18,18,17,12,11,11,13,0,0,0,0,8,0,0,0,161,25,0,0,216,19,5,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,128,45,5,0,0,0,0,0,4,0,0,0,113,2,0,0,72,17,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,19,5,0,0,0,0,0,2,0,0,0,81,0,0,0,200,16,5,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,32,17,5,0,0,0,0,0,2,0,0,0,81,0,0,0,72,16,5,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,160,16,5,0,0,0,0,0,2,0,0,0,33,1,0,0,216,14,5,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,0,16,5,0,0,0,0,0,4,0,0,0,81,0,0,0,112,14,5,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,200,14,5,0,0,0,0,0,2,0,0,0,121,0,0,0,192,13,5,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,64,14,5,0,0,0,0,0,2,0,0,0,169,0,0,0,216,12,5,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,136,13,5,0,0,0,0,0,2,0,0,0,25,0,0,0,160,12,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,12,5,0,0,0,0,0,2,0,0,0,169,0,0,0,184,11,5,0,1,0,0,0,0,136,93,225,0,176,19,97,4,0,0,0,0,0,0,0,104,12,5,0,0,0,0,0,2,0,0,0,225,0,0,0,144,10,5,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,120,11,5,0,0,0,0,0,2,0,0,0,185,1,0,0,120,8,5,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,56,10,5,0,0,0,0,0,1,4,4,6,6,7,7,8,7,8,8,9,9,9,9,10,10,10,9,10,10,11,12,12,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,10,12,11,11,13,11,7,7,8,8,8,8,9,9,9,10,10,10,10,9,10,10,11,11,12,11,11,8,8,8,8,9,9,10,10,10,10,11,11,11,11,11,11,11,12,11,12,12,8,8,9,9,9,9,9,10,10,10,10,10,10,11,11,11,11,11,11,12,11,9,9,9,9,10,10,10,10,11,10,11,11,11,11,11,11,12,12,12,12,11,9,9,9,9,10,10,10,10,11,11,11,11,11,11,11,11,11,12,12,12,13,9,10,10,9,11,10,10,10,10,11,11,11,11,11,10,11,12,11,12,12,11,12,11,10,9,10,10,11,10,11,11,11,11,11,11,11,11,11,12,12,11,12,12,12,10,10,10,11,10,11,11,11,11,11,11,11,11,11,11,11,12,13,12,12,11,9,10,10,11,11,10,11,11,11,12,11,11,11,11,11,12,12,13,13,12,13,10,10,12,10,11,11,11,11,11,11,11,11,11,12,12,11,13,12,12,12,12,13,12,11,11,11,11,11,11,12,11,12,11,11,11,11,12,12,13,12,11,12,12,11,11,11,11,11,12,11,11,11,11,12,11,11,12,11,12,13,13,12,12,12,12,11,11,11,11,11,12,11,11,12,11,12,11,11,11,11,13,12,12,12,12,13,11,11,11,12,12,11,11,11,12,11,12,12,12,11,12,13,12,11,11,12,12,11,12,11,11,11,12,12,11,12,11,11,11,12,12,12,12,13,12,13,12,12,12,12,11,11,12,11,11,11,11,11,11,12,12,12,13,12,11,13,13,12,12,11,12,10,11,11,11,11,12,11,12,12,11,12,12,13,12,12,13,12,12,12,12,12,11,12,12,12,11,12,11,11,11,12,13,12,13,13,13,13,13,12,13,13,12,12,13,11,11,11,11,11,12,11,11,12,11,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,4,4,8,8,12,13,14,14,14,14,14,14,6,6,6,6,6,10,9,14,14,14,14,14,14,14,14,7,6,5,6,6,10,9,12,13,13,13,13,13,13,13,13,7,7,9,9,11,11,12,13,13,13,13,13,13,13,13,7,7,8,8,11,12,13,13,13,13,13,13,13,13,13,12,12,10,10,13,12,13,13,13,13,13,13,13,13,13,12,12,10,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,6,5,5,7,8,8,9,8,8,9,9,10,11,6,5,5,8,8,9,9,8,8,9,10,10,11,0,8,8,8,9,9,9,9,9,10,10,11,11,0,9,9,9,8,9,9,9,9,10,10,11,11,0,13,13,9,9,10,10,10,10,11,11,12,12,0,14,13,9,9,10,10,10,10,11,11,12,12,0,0,0,10,10,9,9,11,11,12,12,13,12,0,0,0,10,10,9,9,10,10,12,12,13,13,0,0,0,13,14,11,10,11,11,12,12,13,14,0,0,0,14,14,10,10,11,11,12,12,13,13,0,0,0,0,0,12,12,12,12,13,13,14,15,0,0,0,0,0,12,12,12,12,13,13,14,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,6,7,7,7,7,8,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,9,9,10,10,10,10,10,8,8,8,8,9,9,10,10,10,10,10,9,9,8,8,9,9,10,10,10,10,10,8,8,8,8,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,6,7,6,6,4,7,7,10,9,10,10,10,9,4,7,7,10,10,10,11,10,10,6,10,10,11,11,11,11,10,10,6,10,9,11,11,11,11,10,10,6,10,10,11,11,11,11,10,10,7,11,11,11,11,11,12,12,11,6,10,10,11,10,10,11,11,11,6,10,10,10,11,10,11,11,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,6,6,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,9,10,9,10,10,10,10,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,11,12,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,10,10,11,10,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,10,10,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,5,5,6,6,8,8,0,0,0,7,7,7,7,9,9,0,0,0,7,7,7,7,9,9,0,0,0,8,8,8,8,9,9,0,0,0,8,8,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,10,10,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,2,3,7,7,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,8,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,11,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,8,9,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,9,11,9],"i8",O3,_.GLOBAL_BASE+325360),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,6,17,8,12,9,10,10,12,13,5,2,17,4,9,5,7,8,11,13,16,16,16,16,16,16,16,16,16,16,6,4,16,5,10,5,7,10,14,16,13,9,16,11,8,7,8,9,13,16,7,4,16,5,7,4,6,8,11,13,8,6,16,7,8,5,5,7,9,13,9,8,16,9,8,6,6,7,9,13,11,11,16,10,10,7,7,7,9,13,13,13,16,13,13,9,9,9,10,13,0,0,0,0,2,0,0,0,100,0,0,0,88,85,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,46,5,0,0,0,0,0,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,47,5,0,0,0,0,0,0,0,0,0,0,0,0,0,48,47,5,0,0,0,0,0,0,0,0,0,0,0,0,0,88,47,5,0,0,0,0,0,0,0,0,0,0,0,0,0,128,47,5,0,0,0,0,0,168,47,5,0,208,47,5,0,0,0,0,0,0,0,0,0,248,47,5,0,32,48,5,0,0,0,0,0,0,0,0,0,72,48,5,0,112,48,5,0,152,48,5,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,161,25,0,0,160,59,5,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,72,85,5,0,0,0,0,0,4,0,0,0,113,2,0,0,16,57,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,59,5,0,0,0,0,0,2,0,0,0,81,0,0,0,144,56,5,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,232,56,5,0,0,0,0,0,2,0,0,0,81,0,0,0,16,56,5,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,104,56,5,0,0,0,0,0,2,0,0,0,33,1,0,0,160,54,5,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,200,55,5,0,0,0,0,0,4,0,0,0,81,0,0,0,56,54,5,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,144,54,5,0,0,0,0,0,2,0,0,0,121,0,0,0,136,53,5,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,8,54,5,0,0,0,0,0,2,0,0,0,169,0,0,0,160,52,5,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,80,53,5,0,0,0,0,0,2,0,0,0,25,0,0,0,104,52,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,52,5,0,0,0,0,0,4,0,0,0,81,0,0,0,0,52,5,0,1,0,0,0,0,176,19,225,0,176,19,97,2,0,0,0,0,0,0,0,88,52,5,0,0,0,0,0,2,0,0,0,225,0,0,0,216,50,5,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,192,51,5,0,0,0,0,0,2,0,0,0,185,1,0,0,192,48,5,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,128,50,5,0,0,0,0,0,1,5,5,7,8,8,7,9,9,9,12,12,11,12,12,10,10,11,12,12,12,11,12,12,8,9,8,7,9,10,10,11,11,10,11,12,10,12,10,12,12,12,11,12,11,9,8,8,9,10,9,8,9,10,12,12,11,11,12,11,10,11,12,11,12,12,8,9,9,9,10,11,12,11,12,11,11,11,11,12,12,11,11,12,12,11,11,9,9,8,9,9,11,9,9,10,9,11,11,11,11,12,11,11,10,12,12,12,9,12,11,10,11,11,11,11,12,12,12,11,11,11,12,10,12,12,12,10,10,9,10,9,10,10,9,9,9,10,10,12,10,11,11,9,11,11,10,11,11,11,10,10,10,9,9,10,10,9,9,10,11,11,10,11,10,11,10,11,11,10,11,11,11,10,9,10,10,9,10,9,9,11,9,9,11,10,10,11,11,10,10,11,10,11,8,9,11,11,10,9,10,11,11,10,11,11,10,10,10,11,10,9,10,10,11,9,10,10,9,11,10,10,10,10,11,10,11,11,9,11,10,11,10,10,11,11,10,10,10,9,10,10,11,11,11,9,10,10,10,10,10,11,10,10,10,9,10,10,11,10,10,10,10,10,9,10,11,10,10,10,10,11,11,11,10,10,10,10,10,11,10,11,10,11,10,10,10,9,11,11,10,10,10,11,11,10,10,10,10,10,10,10,10,11,11,9,10,10,10,11,10,11,10,10,10,11,9,10,11,10,11,10,10,9,10,10,10,11,10,11,10,10,10,10,10,11,11,10,11,11,10,10,11,11,10,9,9,10,10,10,10,10,9,11,9,10,10,10,11,11,10,10,10,10,11,11,11,10,9,9,10,10,11,10,10,10,10,10,11,11,11,10,10,10,11,11,11,9,10,10,10,10,9,10,9,10,11,10,11,10,10,11,11,10,11,11,11,11,11,10,11,10,10,10,9,11,11,10,11,11,11,11,11,11,11,11,11,10,11,10,10,10,10,11,10,10,11,9,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,5,5,5,5,9,11,11,10,10,10,10,10,10,10,7,6,6,6,6,10,10,10,10,10,10,10,10,10,10,7,6,6,6,6,10,9,10,10,10,10,10,10,10,10,10,7,7,8,9,10,10,10,10,10,10,10,10,10,10,10,8,7,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,3,5,5,7,7,7,6,6,7,7,7,5,5,7,7,7,6,6,7,7,7,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,7,7,7,6,8,8,10,10,6,5,6,8,8,8,8,8,8,8,9,10,10,7,6,6,8,8,8,8,8,8,8,8,10,10,0,8,8,8,8,9,8,9,9,9,10,10,10,0,9,8,8,8,9,9,8,8,9,9,10,10,0,12,11,8,8,9,9,9,9,10,10,11,10,0,12,13,8,8,9,10,9,9,11,11,11,12,0,0,0,8,8,8,8,10,9,12,13,12,14,0,0,0,8,8,8,9,10,10,12,12,13,14,0,0,0,13,13,9,9,11,11,0,0,14,0,0,0,0,14,14,10,10,12,11,12,14,14,14,0,0,0,0,0,11,11,13,13,14,13,14,14,0,0,0,0,0,12,13,13,12,13,14,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,4,6,6,7,7,8,8,8,8,10,10,10,7,7,8,8,8,9,9,9,10,10,10,6,7,8,8,8,8,9,8,10,10,10,7,7,8,8,9,9,9,9,10,10,10,7,7,8,8,9,9,8,9,10,10,10,8,8,9,9,9,9,9,9,11,11,11,8,8,9,9,9,9,9,10,10,11,11,9,9,9,9,9,9,9,10,11,11,11,10,11,9,9,9,9,10,9,11,11,11,10,11,10,10,9,9,10,10,11,11,11,11,11,9,9,9,9,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,6,7,6,6,4,7,7,11,10,10,11,11,10,4,7,7,10,10,10,11,10,10,6,10,10,11,11,11,11,11,10,6,9,9,11,12,12,11,9,9,6,9,10,11,12,12,11,9,10,7,11,11,11,11,11,12,13,12,6,9,10,11,10,10,12,13,13,6,10,9,11,10,10,11,12,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,4,6,6,7,7,8,8,8,8,9,9,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,10,11,11,11,0,0,0,6,6,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,13,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,10,10,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,13,13,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,13,13,13,14,0,0,0,0,0,10,10,10,11,11,11,12,12,13,13,13,14,0,0,0,0,0,0,0,10,10,11,11,12,12,13,13,14,14,0,0,0,0,0,0,0,11,11,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,11,11,12,12,12,13,13,14,15,14,0,0,0,0,0,0,0,12,12,12,12,13,13,13,14,14,15,0,0,0,0,0,0,0,0,0,12,12,13,13,14,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,6,6,6,8,8,0,0,0,7,7,7,7,8,8,0,0,0,7,7,7,7,8,8,0,0,0,7,7,8,8,9,9,0,0,0,7,7,8,8,9,9,0,0,0,8,9,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,10,10,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,2,7,8,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,6,6,7,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,9,9,12,0,0,0,0,0,0,10,12,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,9,12,10,0,0,0,0,0,0,10,11,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,10,12,11,0,0,0,0,0,0,9,10,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,10,11,12,0,0,0,0,0,0,9,12,9],"i8",O3,_.GLOBAL_BASE+339320),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,19,7,9,7,8,11,9,12,4,1,19,6,7,7,8,10,11,13,18,18,18,18,18,18,18,18,18,18,8,6,18,8,9,9,11,12,14,18,9,6,18,9,7,8,9,11,12,18,7,6,18,8,7,7,7,9,11,17,8,8,18,9,7,6,6,8,11,17,10,10,18,12,9,8,7,9,12,18,13,15,18,15,13,11,10,11,15,18,14,18,18,18,18,18,16,16,18,18,0,0,0,0,0,0,0,0,0,64,207,64,0,0,0,0,0,88,219,64,0,0,0,0,0,106,232,64,0,0,0,0,0,249,245,64,0,0,0,0,0,0,35,64,0,0,0,0,0,0,38,64,0,0,0,0,0,0,62,64,0,0,0,0,0,192,88,64,0,0,0,0,0,76,205,64,0,0,0,0,0,136,211,64,0,0,0,0,0,124,229,64,0,0,0,0,0,255,244,64,0,0,0,0,0,76,221,64,0,0,0,0,0,130,228,64,0,0,0,0,0,100,233,64,0,0,0,0,0,64,239,64,0,0,0,0,0,148,241,64,0,0,0,0,0,11,243,64,0,0,0,0,0,255,244,64,0,0,0,0,0,118,246,64,0,0,0,0,0,219,250,64,0,0,0,0,0,76,253,64,0,0,0,0,0,23,1,65,0,0,0,0,128,49,7,65,154,153,153,153,153,153,40,64,0,0,0,0,0,0,42,64,0,0,0,0,0,0,42,64,0,0,0,0,0,0,44,64,0,0,0,0,0,0,46,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,148,209,64,0,0,0,0,0,88,219,64,0,0,0,0,0,23,225,64,0,0,0,0,0,249,229,64,0,0,0,0,0,88,235,64,0,0,0,0,0,76,237,64,0,0,0,0,128,79,242,64,0,0,0,0,0,249,245,64,0,0,0,0,0,106,248,64,0,0,0,0,128,19,252,64,0,0,0,0,128,79,2,65,0,0,0,0,128,49,7,65,0,0,0,0,0,64,223,64,0,0,0,0,0,112,231,64,0,0,0,0,0,76,237,64,0,0,0,0,0,23,241,64,0,0,0,0,0,136,243,64,0,0,0,0,0,255,244,64,0,0,0,0,0,112,247,64,0,0,0,0,0,219,250,64,0,0,0,0,0,76,253,64,0,0,0,0,0,23,1,65,0,0,0,0,0,136,3,65,0,0,0,0,8,76,13,65,0,0,0,0,0,88,203,64,0,0,0,0,0,136,211,64,0,0,0,0,0,88,219,64,0,0,0,0,0,142,226,64,0,0,0,0,0,118,230,64,0,0,0,0,0,94,234,64,0,0,0,0,128,79,242,64,0,0,0,0,0,112,247,64,0,0,0,0,0,76,253,64,0,0,0,0,0,23,1,65,0,0,0,0,0,249,5,65,0,0,0,0,8,76,13,65,88,88,5,0,104,113,5,0,88,88,5,0,200,113,5,0,88,88,5,0,40,114,5,0,88,88,5,0,136,114,5,0,88,88,5,0,232,114,5,0,88,88,5,0,72,115,5,0,168,115,5,0,184,140,5,0,168,115,5,0,24,141,5,0,168,115,5,0,120,141,5,0,168,115,5,0,216,141,5,0,168,115,5,0,56,142,5,0,2,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,30,0,0,0,208,111,7,0,24,201,7,0,24,201,7,0,64,201,7,0,64,201,7,0,2,0,0,0,0,0,0,0,30,0,0,0,208,111,7,0,0,202,7,0,0,202,7,0,64,201,7,0,64,201,7,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,40,202,7,0,40,202,7,0,80,202,7,0,80,202,7,0,2,0,0,0,0,0,0,0,15,0,0,0,208,111,7,0,0,162,7,0,0,162,7,0,40,162,7,0,40,162,7,0,2,0,0,0,0,0,0,0,30,0,0,0,208,111,7,0,232,162,7,0,232,162,7,0,40,162,7,0,40,162,7,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,16,163,7,0,16,163,7,0,56,163,7,0,56,163,7,0,2,0,0,0,0,0,0,0,15,0,0,0,208,111,7,0,232,122,7,0,232,122,7,0,16,123,7,0,16,123,7,0,2,0,0,0,0,0,0,0,30,0,0,0,208,111,7,0,208,123,7,0,208,123,7,0,16,123,7,0,16,123,7,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,248,123,7,0,248,123,7,0,32,124,7,0,32,124,7,0,2,0,0,0,0,0,0,0,15,0,0,0,72,198,6,0,0,59,7,0,0,59,7,0,40,59,7,0,40,59,7,0,2,0,0,0,0,0,0,0,30,0,0,0,72,198,6,0,232,59,7,0,232,59,7,0,40,59,7,0,40,59,7,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,16,60,7,0,16,60,7,0,56,60,7,0,56,60,7,0,2,0,0,0,0,0,0,0,15,0,0,0,72,198,6,0,48,6,7,0,48,6,7,0,88,6,7,0,88,6,7,0,2,0,0,0,0,0,0,0,30,0,0,0,72,198,6,0,24,7,7,0,24,7,7,0,88,6,7,0,88,6,7,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,64,7,7,0,64,7,7,0,104,7,7,0,104,7,7,0,2,0,0,0,0,0,0,0,15,0,0,0,72,198,6,0,96,209,6,0,96,209,6,0,136,209,6,0,136,209,6,0,2,0,0,0,0,0,0,0,30,0,0,0,72,198,6,0,72,210,6,0,72,210,6,0,136,209,6,0,136,209,6,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,112,210,6,0,112,210,6,0,152,210,6,0,152,210,6,0,2,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],"i8",O3,_.GLOBAL_BASE+349504),C3([2,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2],"i8",O3,_.GLOBAL_BASE+360488),C3([2,0,0,0,0,0,0,0,15,0,0,0,152,142,5,0,120,145,6,0,120,145,6,0,160,145,6,0,160,145,6,0,2,0,0,0,0,0,0,0,30,0,0,0,152,142,5,0,96,146,6,0,96,146,6,0,160,145,6,0,160,145,6,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,136,146,6,0,136,146,6,0,176,146,6,0,176,146,6,0,2,0,0,0,0,0,0,0,15,0,0,0,152,142,5,0,176,96,6,0,176,96,6,0,216,96,6,0,216,96,6,0,2,0,0,0,0,0,0,0,30,0,0,0,152,142,5,0,152,97,6,0,152,97,6,0,216,96,6,0,216,96,6,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,216,165,5,0,216,165,5,0,0,166,5,0,0,166,5,0,2,0,0,0,0,0,0,0,15,0,0,0,152,142,5,0,136,46,6,0,136,46,6,0,176,46,6,0,176,46,6,0,2,0,0,0,0,0,0,0,30,0,0,0,152,142,5,0,112,47,6,0,112,47,6,0,176,46,6,0,176,46,6,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,216,165,5,0,216,165,5,0,0,166,5,0,0,166,5,0,2,0,0,0,0,0,0,0,15,0,0,0,152,142,5,0,24,241,5,0,24,241,5,0,64,241,5,0,64,241,5,0,2,0,0,0,0,0,0,0,30,0,0,0,152,142,5,0,0,242,5,0,0,242,5,0,64,241,5,0,64,241,5,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,216,165,5,0,216,165,5,0,0,166,5,0,0,166,5,0,2,0,0,0,0,0,0,0,15,0,0,0,152,142,5,0,176,153,5,0,176,153,5,0,216,153,5,0,216,153,5,0,2,0,0,0,0,0,0,0,30,0,0,0,152,142,5,0,152,154,5,0,152,154,5,0,216,153,5,0,216,153,5,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,216,165,5,0,216,165,5,0,0,166,5,0,0,166,5,0,0,0,0,0,255,255,255,255,255,255,255,255,8,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+363696),C3([1,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,16,241,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,169,5,0,0,0,0,0,0,0,0,0,16,170,5,0,0,0,0,0,0,0,0,0,56,170,5,0,96,170,5,0,0,0,0,0,0,0,0,0,136,170,5,0,176,170,5,0,0,0,0,0,0,0,0,0,216,170,5,0,0,171,5,0,0,0,0,0,0,0,0,0,40,171,5,0,80,171,5,0,0,171,5,0,0,0,0,0,120,171,5,0,160,171,5,0,200,171,5,0,240,171,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,224,169,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,2,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+366508),C3([32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,216,169,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,166,5,0,232,166,5,0,0,0,0,0,0,0,0,0,16,167,5,0,56,167,5,0,96,167,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,240,168,5,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,160,169,5,0,0,0,0,0,2,0,0,0,25,0,0,0,184,168,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,216,168,5,0,0,0,0,0,2,0,0,0,9,0,0,0,152,168,5,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,168,168,5,0,0,0,0,0,1,0,0,0,25,0,0,0,16,168,5,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,48,168,5,0,0,0,0,0,1,0,0,0,25,0,0,0,136,167,5,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,168,167,5,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,2,3,4,5,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,5,6,6,6,6,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,4,4,5,5,4,5,5,5,5,4,5,5,5,5,5,5,5,4,5,5,5,5,5,4,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,10,10,12,12,12,12,13,12,5,5,5,8,6,11,9,12,12,13,12,12,12,4,5,5,6,8,9,11,12,12,13,12,12,12,7,7,8,9,9,11,8,12,9,12,12,12,12,7,8,8,9,9,8,11,9,12,12,12,11,12,10,10,10,11,11,11,11,11,10,11,11,12,11,10,10,10,11,11,11,11,10,11,11,11,11,12,11,11,11,12,11,12,11,12,11,13,11,13,11,11,11,11,11,12,11,12,10,13,11,12,11,13,12,12,12,13,12,13,13,13,12,14,12,14,13,12,12,12,12,13,13,13,12,14,12,14,13,14,13,14,14,14,14,14,14,14,14,15,14,15,14,13,14,13,14,14,14,14,14,15,14,14,14,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,1,3,0,0,0,0,3,3,3,3,3,3,3,3,5,0,0,0,243,0,0,0,8,240,5,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,0,241,5,0,0,0,0,0,5,0,0,0,53,12,0,0,184,227,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,240,239,5,0,0,0,0,0,5,0,0,0,243,0,0,0,176,226,5,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,168,227,5,0,0,0,0,0,5,0,0,0,243,0,0,0,168,225,5,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,160,226,5,0,0,0,0,0,5,0,0,0,243,0,0,0,160,224,5,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,152,225,5,0,0,0,0,0,5,0,0,0,53,12,0,0,80,212,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,224,5,0,0,0,0,0,5,0,0,0,53,12,0,0,0,200,5,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,56,212,5,0,0,0,0,0,1,0,0,0,7,0,0,0,216,199,5,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,224,199,5,0,0,0,0,0,5,0,0,0,243,0,0,0,208,198,5,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,200,199,5,0,0,0,0,0,5,0,0,0,243,0,0,0,200,197,5,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,192,198,5,0,0,0,0,0,5,0,0,0,53,12,0,0,120,185,5,0,1,0,0,0,0,106,152,225,0,106,120,97,3,0,0,0,0,0,0,0,176,197,5,0,0,0,0,0,5,0,0,0,53,12,0,0,40,173,5,0,1,0,0,0,0,136,83,225,0,136,51,97,3,0,0,0,0,0,0,0,96,185,5,0,0,0,0,0,1,0,0,0,25,0,0,0,160,172,5,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,192,172,5,0,0,0,0,0,1,0,0,0,25,0,0,0,24,172,5,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,56,172,5,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,10,10,10,11,11,11,12,12,12,13,13,13,13,13,13,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,16,16,4,9,11,15,16,4,12,8,16,16,12,16,16,16,16,13,16,16,16,16,5,8,10,16,16,9,9,14,15,16,12,14,14,16,16,16,16,16,16,16,16,16,16,16,16,5,11,8,16,15,12,14,16,16,16,9,15,9,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,6,11,11,16,16,12,13,16,16,16,12,16,14,16,16,16,16,16,16,16,16,16,16,16,16,11,15,15,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12,15,16,16,16,16,16,16,16,16,14,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,5,11,11,16,16,12,15,16,16,16,12,16,14,16,16,16,16,16,16,16,16,16,16,16,16,12,15,15,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,11,15,15,16,16,16,16,16,16,16,15,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,6,11,12,16,16,11,15,16,16,16,13,16,14,16,16,16,16,16,16,16,16,16,16,16,16,11,16,14,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12,14,14,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,8,13,15,16,16,15,15,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,7,12,12,16,16,13,12,16,16,16,14,16,14,16,16,16,16,16,16,16,16,16,16,16,16,13,16,16,16,16,14,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12,14,16,16,16,16,16,16,16,16,14,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,6,11,11,16,16,13,15,16,16,16,11,15,14,16,16,16,16,16,16,16,14,16,16,16,16,11,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,11,16,14,16,16,14,16,16,16,16,13,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,7,11,11,16,16,13,13,16,16,16,13,16,13,16,16,16,16,16,16,16,16,16,16,16,16,12,16,15,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12,14,16,16,16,16,16,16,16,16,14,16,13,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,8,13,14,16,16,15,16,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,15,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,6,7,7,7,7,7,7,7,7,7,7,8,7,8,8,7,8,8,7,8,7,7,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,7,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,9,8,8,9,8,8,8,8,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,8,8,9,8,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,5,5,7,7,5,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,5,7,8,8,9,10,8,9,10,8,9,10,10,10,12,10,11,11,8,10,10,10,11,12,10,11,10,5,8,7,8,10,10,8,10,9,8,10,10,10,10,11,10,12,11,8,10,9,10,11,11,10,12,10,5,8,8,7,9,10,8,10,9,7,9,10,9,10,11,9,11,11,8,10,9,10,11,11,9,11,10,7,9,9,9,10,11,9,11,11,9,9,11,10,10,13,11,12,12,9,11,11,11,12,13,11,13,11,7,9,9,9,10,11,9,11,10,9,11,10,10,10,12,11,13,12,9,11,11,11,12,12,10,12,10,5,8,8,8,9,10,7,10,9,8,9,10,9,10,11,10,11,11,7,10,9,9,11,11,9,11,10,7,9,9,9,10,11,9,11,10,9,11,11,10,10,12,11,12,12,9,10,11,11,12,13,10,12,10,7,9,9,9,11,11,9,11,10,9,11,11,11,11,13,11,13,12,9,11,9,11,12,12,10,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,4,6,6,9,9,6,7,8,10,11,6,8,7,10,10,8,10,10,12,12,8,10,10,12,12,6,7,8,10,10,7,8,9,10,11,8,9,9,11,11,10,10,11,12,13,10,11,11,13,13,6,8,7,10,10,8,9,9,11,11,7,9,8,11,10,10,11,11,13,13,10,11,10,13,12,9,10,10,11,12,10,10,11,12,13,10,11,11,12,13,12,12,13,12,14,12,13,13,14,14,9,10,10,12,11,10,11,11,13,12,10,11,10,13,12,12,13,13,14,14,12,13,12,14,12,7,8,8,10,11,8,9,10,11,12,8,9,9,11,12,10,11,12,13,14,10,11,11,13,13,8,9,10,11,12,9,10,11,12,13,10,10,11,12,12,11,12,12,13,14,11,12,12,14,14,8,9,9,11,12,10,10,11,12,13,9,10,10,12,12,11,12,12,14,14,11,12,12,14,13,11,11,12,12,13,11,12,12,13,14,12,12,13,14,14,13,13,14,14,16,13,14,14,15,15,11,12,11,13,13,12,12,12,14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,15,14,7,8,8,11,10,8,10,9,12,11,8,10,9,12,11,10,11,11,13,13,10,12,11,14,13,8,9,9,12,11,9,10,10,12,12,10,11,10,13,12,11,12,12,13,14,11,12,12,14,14,8,10,9,12,11,10,11,10,12,12,9,11,10,13,11,11,12,12,14,14,11,12,12,14,13,11,11,12,13,13,11,12,12,13,14,12,12,12,14,14,13,13,14,14,15,13,14,14,15,15,11,12,11,13,12,12,12,12,14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,15,14,10,11,11,12,13,11,12,12,13,14,11,12,12,13,14,13,13,14,14,16,13,14,14,15,15,11,12,12,12,14,12,12,13,13,15,12,13,13,13,15,14,14,15,15,16,14,14,15,15,16,11,12,12,13,14,12,13,13,14,15,12,13,13,14,14,14,14,15,15,16,14,14,14,15,15,13,14,14,14,15,14,14,15,15,16,14,15,15,15,16,15,15,16,16,18,16,16,16,17,17,13,14,14,15,15,14,14,15,16,16,14,14,14,16,15,16,16,16,17,17,15,16,16,17,16,10,11,11,13,12,11,12,12,14,13,11,12,12,14,13,13,14,14,15,15,13,14,13,16,14,11,12,12,14,13,12,13,13,14,14,12,13,13,15,14,14,14,14,15,15,14,15,14,16,15,11,12,12,14,12,12,13,13,15,14,12,13,12,15,13,14,15,14,16,15,14,15,14,16,15,13,14,14,15,15,14,14,14,15,16,14,15,14,16,16,15,16,16,16,17,16,16,16,17,17,13,14,14,15,14,14,15,15,16,15,14,15,14,16,15,16,16,16,17,17,15,16,15,18,16,6,8,8,11,11,8,9,10,11,12,8,10,9,12,12,10,11,11,13,13,10,12,11,14,13,8,9,9,11,12,9,10,10,12,12,9,10,10,12,12,11,11,12,13,14,11,12,12,14,14,8,10,9,12,11,10,11,11,12,12,9,11,10,13,12,11,12,12,14,14,11,12,12,14,13,10,11,11,13,13,11,12,12,13,14,11,12,12,14,14,13,13,14,13,15,13,14,14,15,15,11,12,11,13,13,12,12,12,14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,15,14,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,13,14,11,12,12,14,14,9,9,10,11,12,10,10,11,12,13,10,10,11,12,13,12,12,13,13,15,12,12,13,14,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,14,15,12,13,12,14,14,11,11,12,12,14,12,12,13,13,14,12,12,13,13,14,13,13,14,14,16,14,14,14,15,15,11,12,12,14,13,12,13,13,14,14,12,13,13,15,14,14,14,14,16,16,13,14,14,16,14,7,9,9,12,11,9,10,10,12,12,9,11,10,13,12,11,12,12,13,14,11,13,12,14,13,9,10,10,12,12,10,10,11,12,13,10,12,11,13,13,12,12,13,13,14,12,13,13,15,14,9,10,10,12,12,11,11,11,13,13,10,12,10,13,12,12,13,13,14,15,12,13,12,15,13,11,12,12,14,13,12,12,13,13,14,12,13,13,15,14,13,13,14,13,16,14,15,14,16,15,12,12,12,14,14,13,13,13,14],"i8",O3,_.GLOBAL_BASE+369616),C3([14,12,13,12,14,13,14,15,15,16,16,13,14,13,16,13,10,11,12,13,14,11,12,13,13,15,12,12,13,14,14,13,14,14,15,16,13,14,14,16,15,12,12,13,12,14,12,12,13,13,15,13,13,13,13,15,14,14,15,14,16,14,15,15,15,16,12,13,12,14,14,13,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,15,16,16,13,14,14,13,16,14,14,15,14,16,14,14,15,14,16,15,15,16,15,18,16,16,16,16,17,14,14,14,16,15,14,15,15,16,16,14,15,15,16,16,16,16,16,17,17,15,16,16,17,16,10,12,11,14,13,12,13,13,14,14,12,13,12,15,14,14,14,14,15,15,14,15,14,16,15,12,13,12,14,13,12,13,13,15,14,13,14,13,15,14,14,15,15,16,16,14,15,15,17,15,12,13,12,14,14,13,14,14,15,15,13,14,13,15,14,15,15,15,16,16,14,15,15,17,15,14,14,14,16,15,14,15,15,16,16,14,15,15,16,15,16,16,16,16,17,16,17,16,18,17,14,14,14,16,15,15,15,15,16,16,14,15,14,16,15,16,16,17,17,17,15,16,15,17,16,6,8,8,11,11,8,9,10,12,12,8,10,9,12,11,10,11,12,13,13,10,11,11,13,13,8,9,10,11,12,9,10,11,12,13,10,11,11,12,12,11,12,12,13,14,11,12,12,14,14,8,9,9,12,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,14,11,12,11,14,13,11,11,12,13,13,11,12,12,13,14,12,12,12,14,14,13,13,14,14,15,13,14,14,15,15,10,11,11,13,13,11,12,12,14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,15,13,7,9,9,11,12,9,10,11,12,13,9,10,10,12,12,11,12,13,13,14,11,12,12,14,14,9,10,10,12,12,10,10,11,12,13,11,12,11,13,13,12,12,13,13,15,12,13,13,15,14,9,10,10,12,12,10,11,12,13,13,10,11,10,13,12,12,13,13,14,15,12,13,12,14,13,12,12,12,14,14,12,12,13,13,14,13,13,13,15,14,14,13,14,13,16,14,15,15,16,16,11,12,12,13,14,12,13,13,14,15,12,13,12,14,13,14,14,15,15,16,13,14,13,15,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,14,11,12,11,14,13,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,12,13,14,15,12,13,13,15,14,9,10,9,12,11,10,11,10,13,12,10,11,10,13,12,12,13,12,14,14,12,13,12,15,13,11,12,12,13,14,12,13,13,14,14,12,13,13,14,14,14,14,14,14,16,14,14,14,16,15,11,12,11,14,12,12,13,12,15,13,12,13,12,15,13,14,14,14,16,15,13,14,13,16,14,10,11,12,13,14,12,12,13,13,15,12,13,13,14,14,14,14,15,15,16,14,14,14,15,16,12,12,13,14,14,12,13,14,14,15,13,14,14,15,15,14,15,15,15,17,15,15,15,16,16,12,12,13,13,14,13,13,14,14,15,12,13,13,14,15,15,15,15,15,17,14,15,15,15,15,14,14,14,16,16,14,15,15,15,16,15,15,15,16,16,16,15,16,16,18,16,16,17,17,17,14,14,14,15,16,15,15,15,16,17,14,15,14,16,16,16,16,17,17,18,16,16,15,17,16,10,12,11,14,13,12,12,12,14,14,11,13,12,14,13,13,14,14,15,15,13,14,13,16,15,12,12,13,14,14,12,13,13,15,15,13,13,13,15,15,14,15,15,16,16,14,15,15,17,16,12,13,12,14,12,13,13,13,15,13,12,13,12,15,13,14,15,15,16,15,14,15,14,16,14,14,14,14,16,16,14,15,15,16,16,14,15,15,16,16,15,16,16,16,17,16,17,16,18,17,13,14,14,16,13,14,15,15,16,14,14,15,14,16,14,16,16,16,17,16,15,16,15,18,15,9,11,11,13,13,11,12,12,14,14,11,12,12,14,14,13,14,14,15,15,13,14,14,15,15,11,12,12,14,14,11,12,13,14,15,12,13,13,15,14,13,14,14,15,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,14,14,14,14,16,16,14,15,14,16,15,12,13,13,14,15,12,13,14,15,16,13,14,14,16,16,14,14,15,16,17,15,15,15,17,17,13,14,14,15,15,14,15,14,16,16,14,15,14,16,15,15,16,16,17,17,15,16,15,17,16,10,12,12,13,14,11,12,13,14,14,12,13,12,14,14,13,14,14,15,16,13,14,14,16,15,11,12,12,14,14,12,12,13,14,15,12,13,13,15,15,13,13,15,15,17,14,14,15,16,16,12,13,12,14,14,12,13,13,15,15,12,13,13,15,14,14,15,15,16,16,14,15,14,16,16,13,12,14,13,16,13,13,15,14,16,14,13,15,15,16,14,14,16,15,17,15,15,16,16,17,13,14,14,16,15,14,15,15,16,16,14,15,14,16,15,16,16,16,17,17,15,16,16,18,16,10,12,12,14,14,12,12,13,14,14,12,13,12,15,14,13,14,14,15,16,14,15,14,16,15,11,12,12,14,14,12,13,13,14,15,13,14,13,15,15,14,14,15,15,16,14,15,15,17,16,12,13,13,14,14,13,13,14,15,15,12,14,13,15,15,14,15,15,16,16,14,15,15,17,15,13,14,13,15,15,13,14,14,15,16,14,15,14,17,16,15,15,15,15,17,16,16,16,18,17,14,14,14,16,16,15,15,15,16,16,14,15,14,16,16,16,16,17,17,17,16,16,16,17,16,11,12,13,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,15,17,16,12,13,13,14,15,13,13,14,14,16,13,14,14,15,16,15,14,16,15,17,15,15,16,16,17,12,13,13,15,15,13,14,14,16,16,13,14,14,16,15,15,15,16,17,17,15,16,15,17,16,14,14,15,13,16,15,14,16,14,17,15,15,16,14,17,16,15,17,15,18,16,16,17,16,18,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,16,17,17,18,18,16,17,15,18,16,11,12,12,14,14,13,13,14,14,15,13,14,13,16,14,15,15,15,16,16,15,16,15,17,16,12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,16,15,16,16,16,16,18,16,12,13,13,15,15,14,14,15,15,16,13,14,13,16,15,16,16,16,17,17,15,16,15,17,15,14,15,14,16,15,14,15,15,16,16,15,16,15,17,16,16,15,16,15,17,17,18,17,18,17,15,15,15,16,16,16,16,16,17,17,14,15,15,17,16,17,17,18,18,18,16,17,15,18,15,9,11,11,13,13,11,12,12,14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,15,15,11,12,12,14,14,12,13,13,14,15,12,13,13,14,14,14,14,15,15,16,14,14,14,16,16,11,12,12,14,14,12,13,13,14,15,11,13,12,14,14,13,14,14,16,16,13,14,14,16,15,13,14,14,15,15,14,14,15,15,16,14,15,14,16,16,15,15,16,16,17,15,16,16,17,17,12,13,13,15,15,13,14,14,16,15,12,14,13,16,15,15,16,15,17,17,14,15,15,17,15,10,12,12,14,14,12,12,13,14,15,12,13,12,14,14,14,14,15,15,16,13,14,14,16,16,12,13,13,14,14,13,13,14,14,15,13,14,13,15,15,14,15,15,15,17,14,15,15,16,16,11,12,12,14,14,13,13,14,15,15,12,13,13,15,14,14,15,15,16,17,14,15,14,16,15,14,14,14,16,16,14,15,15,16,16,15,15,15,16,16,15,16,16,16,18,16,17,16,18,17,13,13,14,15,15,14,14,15,16,16,13,14,14,16,15,16,16,17,17,17,15,15,15,17,15,10,12,12,14,13,12,12,13,14,14,11,13,12,14,14,13,14,14,16,16,13,14,14,16,15,12,12,13,14,14,12,13,13,14,15,13,13,13,15,15,14,14,15,16,16,14,15,15,16,16,11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14,15,14,16,16,13,15,13,16,15,13,14,14,15,16,14,15,15,15,17,14,15,15,16,16,16,15,16,16,17,16,16,16,17,17,13,14,12,16,13,14,15,13,16,15,13,15,13,16,14,15,16,15,17,16,15,16,14,17,15,11,12,12,14,15,13,13,14,14,16,13,14,13,15,14,15,15,16,16,17,15,15,15,16,16,12,13,13,15,15,13,13,14,15,16,14,15,14,16,15,15,15,16,15,17,16,16,16,17,17,12,13,13,14,15,14,14,15,15,16,13,14,13,15,15,16,16,16,17,17,15,16,15,16,15,15,15,15,16,16,14,15,15,16,17,16,16,16,17,17,16,15,17,15,18,17,18,17,18,18,14,14,15,15,17,15,15,16,16,17,14,15,15,16,16,17,17,17,17,18,16,16,15,17,15,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,14,17,16,13,13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,15,16,16,17,15,16,16,17,17,12,13,13,15,14,13,14,14,16,15,13,14,13,16,14,15,16,16,17,16,15,16,14,17,15,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,15,17,16,18,16,17,17,18,18,14,15,14,16,13,15,16,15,17,14,15,16,14,17,14,16,17,16,18,16,16,17,15,18,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,6,8,8,10,9,8,9,9,10,10,8,9,9,10,10,8,10,10,10,10,8,10,10,10,10,9,9,9,10,10,9,10,10,10,11,9,10,10,11,11,10,10,10,11,11,10,10,10,11,11,9,9,9,10,10,9,10,10,11,11,9,10,10,11,10,10,10,10,11,11,10,10,10,11,11,10,10,10,10,11,10,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,11,10,10,11,11,11,11,10,11,10,11,11,11,11,11,11,11,10,11,11,11,11,9,10,10,10,11,10,10,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,12,11,11,11,12,12,10,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,9,10,10,11,10,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11,11,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,7,10,10,11,11,10,10,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,10,10,11,11,10,11,11,11,11,11,11,11,11,12,11,11,11,12,12,11,11,11,12,12,10,11,11,11,11,11,11,11,12,11,11,11,11,12,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,11,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,10,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,12,11,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,7,10,10,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,12,12,11,11,11,12,12,10,10,10,11,11,11,11,11,12,11,10,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,11,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,10,10,10,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,11,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,13,12,13,12,12,13,13,13,13,12,13,13,13,13,8,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,12,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,8,11,11,11,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,12,12,13,12,13,13,13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,4,7,7,4,7,6,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,6,7,8,8,9,10,8,10,10,8,9,10,10,11,12,10,11,12,8,10,10,10,11,12,10,12,11,6,8,7,8,10,10,8,10,9,8,10,10,10,11,12,10,12,12,8,10,9,10,12,11,10,12,11,5,8,8,8,10,10,8,10,10,7,9,10,9,10,11,10,11,11,8,10,10,10,12,12,10,12,11,7,9,9,9,11,11,9,11,11,9,10,11,11,11,12,11,12,12,9,11,11,11,12,12,11,12,12,7,9,9,10,11,12,10,12,11,9,11,10,11,11,12,12,13,13,9,11,11,12,13,13,11,13,11,5,8,8,8,10,10,8,10,10,8,10,10,10,11,12,10,12,12,7,9,9,9,11,11,9,11,10,7,9,9,10,11,12,10,12,11,9,11,11,11,11,13,12,13,13,9,10,11,12,13,13,11,12,11,7,9,9,9,11,11,9,11,11,9,11,11,11,12,12,11,12,12,9,11,10,11,12,12,10,12,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,6,7,7,6,7,7,6,7,7,7,7,8,7,7,8,6,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,9,5,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,9,8,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,7,8,8,8,9,9,8,9,9,8,9,8,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,6,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,9,7,8,8,8,9,9,8,9,9,8,8,9,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,8,8,8,8,9,9,8,9,9,8,9,9,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,4,4,7,7,4,7,6,5,6,7,7,8,9,7,9,9,5,7,6,7,9,9,7,9,8,6,8,8,8,10,10,8,10,10,8,9,10,10,11,12,10,12,12,8,10,10,10,12,12,10,12,11,6,8,8,8,10,10,8,10,10,8,10,10,10,11,12,10,12,12,8,10,9,10,12,11,10,12,11,5,8,8,8,10,10,8,10,10,8,9,10,10,11,11,10,11,11,8,10,10,10,11,12,10,12,11,8,10,10,10,11,11,10,11,11,10,11,11,11,12,13,11,12,13,10,11,11,11,13,13,11,13,13,7,9,9,10,11,12,10,12,11,9,11,11,11,12,13,12,14,13,9,11,11,12,13,14,11,13,12,5,8,8,8,10,10,8,10,10,8,10,10,10,11,12,10,12,12,8,10,9,10,12,11,9,11,11,7,9,9,10,11,12,10,12,11,9,11,11,11,12,13,12,14,13,9,11,11,12,13,14,11,13,12,8,10,10,10,11,11,10,11,11,10,11,11,11,13,13,11,13,13,10,11,10,11,13,12,11,13,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,8,8,5,7,7,9,9,5,7,7,9,9,6,8,8,11,11,6,8,8,11,11,6,7,7,9,9,7,8,9,10,11,7,9,9,11,10,8,9,10,12,12,8,10,10,12,12,6,7,7,9,9,7,9,9,10,10,7,9,8,11,10,8,10,10,12,12,8,10,9,12,12,8,9,9,11,11,9,10,10,12,12,9,11,11,12,13,11,12,12,13,14,11,12,12,14,14,8,9,9,11,11,9,11,10,13,12,9,10,10,13,12,11,12,12,14,14,11,12,12,14,13,7,8,9,10,10,8,10,10,11,11,8,10,10,11,11,10,11,11,13,13,10,11,11,13,13,8,9,10,10,11,10,11,11,12,13,10,11,11,12,12,11,11,12,13,14,11,12,12,14,14,8,10,10,11,11,10,11,11,12,13,10,11,11,12,12,11,12,12,14,14,11,12,12,14,14,10,11,11,12,13,11,12,12,13,14,12,13,13,14,14,13,13,14,14,16,13,14,14,15,16,10,11,11,13,13,12,12,12,14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,16,15,7,8,8,10,10,8,10,10,11,11,8,10,10,12,11,10,11,11,13,13,10,11,11,13,13,8,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,11,12,12,14,14,8,10,9,11,10,10,11,11,13,12,10,11,10,13,12,11,12,12,14,14,11,12,11,14,13,10,11,11,13,13,11,12,12,14,14,12,12,12,14,14,13,14,14,15,16,13,14,14,15,15,10,11,11,13,12,12,12,12,14,14,11,12,12,14,13,13,14,14,16,15,13,14,13,16,14,10,11,11,13,13,12,12,13,14,15,12,13,13,14,15,13,14,15,15,16,13,14,14,16,16,11,12,13,14,14,13,13,14,15,16,13,14,14,15,16,14,15,15,16,17,14,15,16,17,17,11,12,12,14,14,13,14,14,15,16,13,14,14,15,15,14,15,15,16,18,14,15,15,17,16,13,14,15,15,16,15,15,16,16,18,15,15,15,17,17,16,16,17,17,18,16,16,16,18,18,14,14,14,16,16,15,15,15,16,17,15,15,15,16,17,16,17,17,18,18,16,16,17,18,17,10,11,11,14,13,12,13,13,15,14,11,13,13,15,14,13,15,15,16,16,13,14,14,16,16,11,12,12,14,14,13,13,13,15,15,13,14,13,15,15,15,15,15,17,16,14,15,15,17,16,11,13,12,14,14,13,14,13,15,15,13,14,13,15,15,14,15,15,17,17,14,15,15,17,16,14,14,14,16,16,14,15,15,17,17,15,15,16,17,16,17,16,17,18,18,16,17,17,18,18,13,14,14,16,15,15,15,15,17,17,14,16,15,16,16,17,17,17,18,18,16,17,16,20,19,6,8,8,10,10,8,10,10,11,11,8,10,10,12,11,10,11,11,13,13,10,11,11,13,13,8,9,10,11,11,10,11,11,12,12,10,11,11,13,12,11,12,12,14,14,11,12,12,14,14,9,10,10,11,11,10,11,11,12,12,10,11,11,13,12,11,12,12,14,14,11,12,12,14,14,10,10,11,12,13,11,12,12,14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,15,16,10,11,11,13,13,12,12,12,14,14,12,13,12,14,14,13,14,14,16,16,13,14,14,15,15,9,10,10,11,12,10,11,11,12,13,10,11,11,13,12,11,12,12,14,14,11,12,12,14,14,10,10,11,12,13,11,12,12,13,14,11,12,12,13,14,12,13,14,14,15,12,13,13,15,15,10,11,11,13,13,11,12,12,13,14,11,12,12,14,13,12,13,13,15,15,12,13,13,15,15,12,11,13,12,14,13,13,14,14,15,13,13,14,14,15,14,15,15,16,17,14,15,15,16,17,12,13,12,14,14,13,14,14,15,15,13,14,14,15,15,14,15,15,16,17,14,15,15,16,17,8,9,9,11,11,10,11,11,12,13,10,11,11,13,12,12,13,13,14,15,11,13,12,15,14,9,11,10,12,12,11,12,12,13,14,11,12,12,14,13,13,13,14,15,15,13,14,13,15,15,9,11,11,12,12,11,12,12,14,14,11,12,12,14,13,13,14,14,15,16,13,14,13,15,14,11,12,12,14,13,12,13,13,14,15,13,14,14,16,15,15,15,15,15,16,15,16,15,17,17,11,12,12,14,14,13,14,14,15,15,12,13,13,15,14,15,15,15,17,17,14,15,15,17,15,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,16,16,12,13,13,14,15,13,14,14,16,16,14,14,14,15,16,15,16,16,17,17,15,16,16,17,17,12,13,13,15,15,14,14,14,16,16,14,14,15,16,16,15,16,16,17,17,15,16,16,17,17,14,15,15,15,16,15,15,16,16,18,15,16,16,17,17,17,17,17,18,18,16,17,17,19,18,14,15,15,16,17,15,16,16,17,17,15,16,16,18,17,16,17,17,19,18,17,17,17,19,18,10,12,12,14,14,13,13,14,15,15,12,14,13,16,15,15,15,15,17,17,14,15,15,17,16,12,13,13,15,14,13,14,14,16,16,14,14,15,17,16,15,16,16,17,17,15,16,16,18,17,12,13,13,15,14,14,15,15,16,16,13,15,14,16,15,16,17,16,19,17,15,16,16,17,17,14,15,15,17,15,15,16,15,17,17,16,17,16,18,17,17,17,18,18,18,17,17,18,19,18,14,15,15,16,16,15,16,16,17,18,15,16,16,18,16,17,18,18,19,19,17,18,17,18,19,6,8,8,10,10,8,10,10,11,11,8,10,10,12,11,10,11,11,13,13,9,11,11,13,13,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,11,12,12,14,14,8,10,9,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,11,12,12,14,14,10,11,11,13,13,11,12,13,14,14,12,12,12,14,14,13,14,14,15,16,13,14,14,16,16,10,11,10,13,12,11,12,12,14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,16,15,8,9,9,11,11,10,11,11,12,13,10,11,11,13,12,12,13,13,14,15,12,13,13,15,14,10,11,11,12,12,11,11,12,13,14,11,12,12,14,14,13,13,14,15,16,13,14,14,15,15,9,10,11,12,12,11,12,12,13,14,11,12,12,14,13,13,14,14,15,16,12,14,13,15,15,11,12,12,14,14,12,13,13,14,15,13,14,14,16,15,14,15,15,15,17,15,15,16,16,17,11,12,12,13,14,13,14,14,15,15,12,13,13,15,14,15,16,15,16,17,14,16,15,17,15,9,10,10,12,11,10,11,11,13,13,10,11,11,13,12,11,12,12,14,14,11,12,12,14,14,10,11,11,12,13,11,12,12,13,14,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,10,11,10,13,12,11,12,12,13,13,11,12,12,14,13,12,13,13,15,15,12,13,13,15,14,12,13,12,14,14,13,14,14,15,15,13,14,14,15,15,14,15,15,16,16,14,15,15,16,16,11,13,11,14,12,13,13,13,15,14,12,14,13,15,14,15,15,15,17,16,14,15,14,17,15,10,12,12,14,14,13,13,14,15,16,12,14,13,15,15,14,15,16,17,17,14,15,16,17,17,12,13,13,14,15,13,14,14,16,16,14,14,15,16,16,16,16,16,17,17,16,16,16,18,18,12,13,13,14,15,14,14,15,16,16,13,14,14,16,15,16,16,16,17,18,15,16,16,17,17,14,15,15,16,16,15,15,16,17,17,15,16,16,17,18,17,18,18,18,19,17,18,18,19,19,14,15,15,16,16,15,16,16,17,17,15,16,16,17,17,17,17,18,20,18,17,18,17,18,18,11,12,12,14,14,12,13,14,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,16,17,12,13,13,15,15,14,14,14,16,16,14,14,14,16,16,15,16,16,17,17,15,16,16,17,17,12,13,13,15,14,13,14,14,16,15,14,15,14,16,15,15,16,16,17,17,15,16,16,17,16,14,15,15,16,16,15,16,16,17,17,16,16,16,17,17,17,17,17,19,18,17,17,17,18,19,14,15,14,17,15,15,16,16,17,17,15,16,15,17,17,16,17,17,18,18,16,17,17,18,17,6,11,11,13,13,11,12,12,14,14,11,12,12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,17,18,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,16,16,13,14,14,15,16,14,15,15,16,17,14,15,15,17,16,15,16,17,18,17,16,16,16,18,17,14,14,15,16,16,14,15,15,18,16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,16,16,12,13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,16,16,17,17,15,15,16,17,17,12,13,13,15,15,14,14,14,16,16,13,14,14,16,16,15,16,16,17,17,15,16,16,17,17,14,14,15,15,16,15,15,16,16,17,15,15,16,16,17,16,17,17,17,18,16,17,17,18,18,14,15,15,16,16,15,16,16,17,17,15,16,16,17,17,17,17,17,18,19,17,17,17,18,18,10,12,12,14,14,12,13,14,15,16,13,14,13,15,15,14,15,15,17,17,14,15,16,17,17,12,13,13,15,15,13,14,14,15,15,14,15,14,16,16,15,16,16,17,18,15,17,16,18,17,12,13,13,15,15,14,14,14,16,16,13,14,14,16,15,15,16,16,17,18,15,16,16,17,17,14,14,14,16,16,15,15,16,17,17,15,16,16,17,17,17,17,17,18,20,17,17,17,19,19,14,15,15,16,16,15,17,16,18,18,15,16,15,17,16,17,18,19,19,19,17,17,17,18,17,13,14,14,16,16,14,15,15,17,17,14,15,15,16,17,15,17,17,18,18,16,16,17,18,17,14,15,15,16,17,15,16,16,17,17,15,16,16,17,17,16,17,17,18,18,17,17,17,18,19,14,15,15,16,17,15,16,16,17,17,15,16,16,17,17,16,17,17,18,18,17,17,17,19,19,16,16,16,16,18,16,17,17,17,18,17,17,17,17,19,18,18,18,19,19,18,18,18,19,20,16,16,17,18,18,16,18,17,18,18,17,17,17,20,19,18,18,19,21,20,18,20,18,18,19,10,12,12,14,14,14,14,15,15,17,14,15,14,17,15,16,16,17,18,18,16,18,17,19,18,12,14,13,16,15,14,14,15,15,17,15,16,16,18,17,16,17,18,17,19,17,19,18,20,19,12,13,13,15,15,15,16,17,17,18,14,16,14,17,16,17,18,18,19,19,17,17,17,18,18,15,15,15,17,16,15,16,16,17,17,17,19,17,18,18,18,18,18,18,21,19,20,19,20,19,15,15,16,16,17,17,17,18,20,20,15,16,16,18,17,18,19,19,19,20,18,19,18,19,17,6,11,11,13,13,11,12,12,14,14,11,12,12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,17,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,15,16,16,13,14,14,16,16,15,15,15,16,16,14,15,15,17,16,16,17,17,19,18,16,17,17,18,18,13,14,14,15,15,14,15,15,17,16,14,15,15,17,16,16,17,16,17,18,15,16,16,18,18,10,12,12,14,14,12,13,14,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,17,16,12,13,13,15,15,14,14,14,15,16,14,15,15,16,16,15,16,16,17,18,16,16,16,18,18,12,13,13,14,14,14,14,15,16,16,13,14,14,16,16,15,16,16,18,18,15,16,16,19,17,14,15,15,16,17,15,15,16,17,17,16,17,16,17,18,17,17,18,17,19,17,17,18,18,19,14,14,14,16,16,15,16,16,17,17,15,16,15,17,17,17,17,17,19,20,16,17,17,18,18,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,14,16,16,12,13,13,15,15,14,14,14,16,16,13,14,14,16,16,15,16,16,18,17,15,16,16,17,17,12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,15,16,15,18,18,15,16,15,17,16,14,15,15,16,16,15,16,16,17,17,15,16,16,18,17,16,17,17,18,18,16,17,17,18,18,14,15,14,16,15,15,16,15,17,17,15,16,15,17,16,16,17,17,18,18,17,17,16,19,17,10,12,12,14,15,14,14,15,15,17,14,15,14,17,15,16,17,17,17,18,16,17,17,18,18,12,14,13,16,15,14,14,16,15,17,15,17,16,18,17,17,17,18,17,19,18,18,18,19,18,12,13,14,15,15,15,16,16,16,17,14,15,14,18,16,18,17,18,19,19,17,18,17,20,18,15,15,15,17,17,15,16,16,17,18,18,18,18,19,18,18,18,19,18,20,18,19,19,21,21,15,15,16,16,17,17,18,18,18,18,15,16,16,17,17,17,19,20,19,20,17,18,18,19,17,13,14,14,16,16,14,15,15,16,17,14,15,15,17,17,16,16,17,17,18,15,17,16,17,17,14,15,15,16,16,15,16,16,17,17,16,16,16,17,17,17,17,18,17,18,17,17,17,18,20,14,15,15,17,16,15,16,16,17,17,15,16,16,17,17,17,17,17,18,18,16,17,17,19,18,16,16,17,17,17,17,18,17,19,18,17,17,17,18,19,17,20,18,19,21,17,19,18,19,20,15,17,15,17,16,16,17,17,18,18,17,17,17,18,17,18,19,18,19,21,18,18,17,19,19,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,4,8,8,4,8,8,5,7,8,8,9,10,8,10,10,5,8,7,8,10,10,8,10,9,7,9,9,9,11,11,9,11,11,9,11,11,11,12,13,11,13,13,9,11,11,11,13,13,11,13,13,7,9,9,9,11,11,9,11,11,9,11,11,11,13,13,11,13,13,9,11,11,11,13,13,11,13,12,5,9,9,9,11,11,9,11,11,9,11,11,11,12,13,11,13,13,9,11,11,11,13,13,11,13,13,9,11,12,11,13,13,12,13,13,11,12,13,13,14,15,13,14,14,12,13,13,13,15,15,13,15,14,8,10,10,11,13,13,12,14,13,11,12,12,13,14,15,13,15,15,11,12,12,13,15,15,13,15,14,5,9,9,9,11,11,9,11,11,9,11,11,11,13,13,11,13,13,9,11,10,11,13,13,11,13,12,8,10,10,11,13,13,12,13,13,11,12,12,13,14,15,14,15,15,10,12,12,13,14,15,13,15,14,9,12,11,12,13,13,11,13,13,12,13,13,13,15,15,13,14,15,11,13,12,13,15,14,13,15,14,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,2,0,0,0,64,0,0,0,72,46,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,242,5,0,0,0,0,0,0,0,0,0,144,242,5,0,0,0,0,0,0,0,0,0,184,242,5,0,224,242,5,0,0,0,0,0,0,0,0,0,8,243,5,0,48,243,5,0,0,0,0,0,0,0,0,0,88,243,5,0,128,243,5,0,0,0,0,0,0,0,0,0,168,243,5,0,208,243,5,0,128,243,5,0,0,0,0,0,248,243,5,0,32,244,5,0,72,244,5,0,112,244,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,40,242,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,14,16,17,18,20,21,7,4,6,8,11,12,14,16,13,5,4,4,8,9,11,13,15,8,4,3,5,7,9,10,17,11,8,4,4,6,9,9,17,11,9,7,6,5,7,8,19,13,11,9,9,7,8,8,21,15,13,11,10,8,8,7,5,0,0,0,243,0,0,0,64,45,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,56,46,6,0,0,0,0,0,5,0,0,0,53,12,0,0,240,32,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,40,45,6,0,0,0,0,0,5,0,0,0,243,0,0,0,232,31,6,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,224,32,6,0,0,0,0,0,5,0,0,0,243,0,0,0,224,30,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,216,31,6,0,0,0,0,0,5,0,0,0,243,0,0,0,216,29,6,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,208,30,6,0,0,0,0,0,5,0,0,0,53,12,0,0,136,17,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,29,6,0,0,0,0,0,5,0,0,0,53,12,0,0,56,5,6,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,112,17,6,0,0,0,0,0,1,0,0,0,7,0,0,0,16,5,6,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,24,5,6,0,0,0,0,0,5,0,0,0,243,0,0,0,8,4,6,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,0,5,6,0,0,0,0,0,5,0,0,0,243],"i8",O3,_.GLOBAL_BASE+379856),C3([3,6,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,248,3,6,0,0,0,0,0,5,0,0,0,243,0,0,0,248,1,6,0,1,0,0,0,0,106,120,225,0,106,120,97,2,0,0,0,0,0,0,0,240,2,6,0,0,0,0,0,5,0,0,0,53,12,0,0,168,245,5,0,1,0,0,0,0,136,83,225,0,136,51,97,3,0,0,0,0,0,0,0,224,1,6,0,0,0,0,0,1,0,0,0,25,0,0,0,32,245,5,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,64,245,5,0,0,0,0,0,1,0,0,0,25,0,0,0,152,244,5,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,184,244,5,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,4,5,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,7,7,12,12,5,11,12,12,12,5,12,11,12,12,12,12,12,12,12,12,13,13,13,13,7,11,11,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,7,13,10,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,7,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,7,7,7,8,7,8,7,7,7,8,7,8,8,8,8,8,7,8,7,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,9,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,9,9,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,8,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,8,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,8,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,5,7,7,5,7,7,5,7,7,7,7,9,7,9,9,6,7,7,8,9,9,7,9,7,6,8,8,8,9,10,8,9,9,8,9,10,9,9,10,10,10,10,8,9,9,10,10,11,9,10,10,6,8,8,8,9,9,8,10,9,8,9,9,9,10,10,10,11,10,8,10,9,10,11,10,9,11,9,6,8,8,7,9,9,7,9,9,7,9,9,8,9,10,9,10,10,8,9,9,9,10,10,9,10,9,7,9,9,9,9,10,9,10,10,9,9,10,10,9,11,10,11,11,9,10,10,10,11,11,10,11,10,6,9,8,9,9,10,9,10,9,8,10,10,9,9,10,10,11,11,9,10,10,10,11,11,9,11,9,6,8,8,7,9,9,7,9,9,8,9,9,9,9,10,9,10,10,7,9,9,9,10,10,8,10,9,6,8,9,9,9,10,9,10,9,9,10,10,9,9,11,10,11,11,8,9,10,10,11,11,9,10,9,7,9,9,9,10,10,9,10,9,9,10,10,10,10,11,10,11,11,9,10,9,10,11,11,10,11,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,9,9,5,7,8,10,11,5,8,7,11,10,8,10,11,12,13,8,11,10,13,12,6,7,8,10,11,7,8,10,10,12,8,9,9,12,12,10,10,12,12,14,10,12,12,14,13,6,8,7,11,10,8,9,9,12,12,7,10,8,12,11,10,12,12,13,14,10,12,10,14,12,9,10,11,11,13,10,10,11,11,13,11,12,12,13,14,12,12,13,11,15,13,14,14,15,14,9,11,10,13,11,11,12,12,13,13,10,11,10,13,11,13,14,14,15,15,12,13,12,15,11,6,8,9,11,12,8,9,11,12,13,8,10,10,13,13,11,12,13,14,15,11,12,13,14,14,9,9,10,12,13,10,10,12,12,14,10,11,11,13,14,12,12,14,14,15,13,13,14,15,15,9,10,10,13,13,10,11,11,13,14,10,11,10,14,13,13,13,14,15,15,12,14,13,15,14,12,12,13,13,14,12,13,14,13,15,13,14,14,15,15,14,14,15,14,16,15,15,15,16,16,12,13,13,14,14,13,14,14,15,15,12,14,13,15,14,14,15,15,16,16,14,15,14,16,14,6,9,8,12,11,8,10,10,13,13,8,11,9,13,12,11,12,12,14,14,11,13,12,15,14,9,10,10,13,13,10,10,11,13,14,10,12,11,14,13,12,13,14,14,15,13,13,13,15,14,9,10,9,13,12,10,11,11,14,13,10,12,10,14,12,13,14,13,15,15,12,14,12,15,14,12,13,13,14,14,13,13,13,14,15,13,14,14,15,15,14,14,15,14,16,14,15,15,16,16,12,13,12,14,13,13,14,14,15,15,12,14,13,15,13,15,15,15,16,16,14,15,14,16,14,11,12,12,13,14,12,13,14,14,16,12,13,13,15,15,14,14,16,15,17,14,15,15,16,16,12,13,14,14,15,13,13,15,15,16,14,14,14,15,16,15,15,16,16,17,15,15,16,16,17,13,13,13,15,15,14,14,15,15,16,13,14,14,15,16,15,15,16,16,17,15,16,15,17,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17,17,16,16,17,16,18,16,17,17,17,17,15,15,15,16,16,15,16,16,17,17,15,16,16,17,16,16,17,17,18,18,16,17,16,17,16,11,12,12,15,13,13,13,13,15,15,12,14,13,16,14,14,15,15,16,16,14,15,14,17,15,13,13,13,15,14,13,14,14,16,15,14,14,14,16,15,15,15,16,16,17,15,16,15,17,16,12,14,13,15,14,14,14,14,16,15,13,14,13,16,15,15,16,16,17,16,15,16,15,17,16,15,15,15,16,16,15,15,16,16,17,15,16,16,17,17,16,16,17,17,17,17,17,17,18,17,14,15,15,16,16,15,16,16,17,16,15,16,15,17,16,17,17,17,18,17,16,17,16,18,16,6,9,9,12,12,8,10,10,12,13,8,10,10,13,12,10,12,12,14,15,11,13,12,15,14,8,9,10,12,13,9,10,11,13,14,10,11,11,14,13,12,12,13,14,15,12,13,13,15,15,8,10,10,13,13,10,11,11,13,14,10,12,10,14,13,12,13,13,15,15,12,14,13,15,14,11,12,12,13,14,12,12,13,13,15,12,13,13,15,15,14,13,15,14,16,14,15,15,16,16,12,13,13,14,14,13,13,14,15,14,12,14,13,15,14,14,15,15,16,15,14,15,14,16,14,7,9,10,12,12,9,10,11,13,14,9,11,10,13,13,11,12,13,14,15,12,13,13,15,14,9,10,11,12,13,10,10,12,13,14,11,11,12,14,14,12,12,14,14,15,13,13,14,15,15,9,11,11,13,13,11,12,12,14,14,10,12,10,14,13,13,14,14,15,15,13,14,13,16,14,12,12,13,14,15,13,13,14,14,16,13,14,14,15,15,14,14,15,14,17,14,15,15,16,16,12,13,13,15,14,13,14,14,15,15,13,14,13,16,14,15,15,15,16,16,14,15,14,16,14,7,10,9,13,12,10,11,12,12,14,10,12,11,14,12,12,13,13,14,15,12,14,13,15,14,9,11,10,13,13,10,11,12,13,14,12,13,12,15,13,13,13,14,13,15,13,14,14,16,15,10,11,11,13,13,12,12,13,14,14,11,12,11,14,13,14,14,14,15,16,13,14,13,16,13,12,13,13,14,14,12,13,13,14,15,14,14,14,15,15,14,13,15,13,16,15,15,15,17,16,13,13,13,14,14,14,14,14,15,15,12,13,13,15,14,15,16,16,16,16,14,15,14,16,13,11,12,13,14,15,12,13,14,15,16,13,14,14,15,15,14,14,15,15,17,14,15,15,16,16,13,13,14,14,15,13,13,15,14,16,14,14,15,15,16,15,14,16,15,17,15,16,16,16,17,13,14,14,15,15,14,14,15,16,16,13,15,14,16,16,15,16,16,17,17,15,16,15,17,16,14,15,15,15,17,15,15,16,15,17,15,16,16,16,17,16,16,17,16,18,17,17,17,17,18,15,15,15,17,16,15,16,16,17,17,15,16,16,17,16,16,17,17,18,18,16,17,16,18,17,11,13,12,15,14,13,13,14,15,15,13,14,13,16,14,15,15,15,16,16,15,16,15,17,16,13,14,13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,16,16,16,15,16,15,18,16,13,14,14,15,15,14,15,15,15,16,13,15,13,16,15,15,16,16,17,17,15,16,15,17,16,15,15,15,16,16,15,15,15,16,17,16,16,16,17,16,16,16,17,16,17,17,17,17,18,17,15,15,15,16,16,16,16,16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16,17,15,6,9,9,12,12,8,10,10,12,13,8,10,10,13,12,11,12,13,14,15,10,12,12,14,14,9,10,10,13,13,10,10,12,13,14,10,11,11,14,13,12,13,14,14,15,12,13,13,15,15,8,10,9,13,12,10,11,11,13,14,9,11,10,14,13,12,13,13,15,15,12,13,12,15,14,12,13,13,14,14,12,13,13,14,15,13,14,14,14,15,14,14,15,14,16,14,15,15,16,16,11,12,12,14,13,13,13,13,15,15,12,13,12,15,13,14,15,15,16,16,14,15,14,16,14,7,9,10,12,13,10,10,12,12,14,10,12,11,14,13,12,13,14,14,15,12,13,13,15,14,10,11,11,13,13,11,11,12,13,14,12,13,12,14,14,13,13,14,13,16,14,14,14,15,15,9,10,11,13,14,12,12,13,13,15,10,12,10,14,13,13,14,14,15,16,13,14,13,15,13,13,14,13,14,15,12,13,13,14,15,14,14,14,15,15,14,13,15,13,16,15,16,16,16,16,12,13,13,14,14,14,14,14,15,15,12,13,13,15,14,15,15,16,16,16,14,15,13,16,13,7,10,9,12,12,9,10,11,13,13,9,11,10,14,13,12,13,13,14,15,11,13,12,15,14,9,11,11,13,13,10,10,12,13,14,11,12,12,14,14,13,13,14,14,16,13,14,14,16,15,9,11,10,13,12,11,12,11,14,14,10,12,10,14,13,13,14,13,15,15,12,14,12,16,14,12,13,13,14,15,13,13,14,14,16,13,14,14,15,15,14,14,15,14,16,15,15,15,16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,16,14,14,15,15,16,16,14,15,14,17,14,11,12,13,14,15,13,13,14,14,16,13,14,13,15,15,15,15,16,16,17,15,15,15,16,16,13,14,13,15,15,13,13,15,15,16,14,15,15,16,16,15,15,16,15,17,16,16,16,17,17,13,13,14,14,15,14,14,15,15,16,13,14,13,15,15,15,16,16,16,17,15,16,15,16,16,15,15,15,16,16,15,15,16,16,17,16,16,16,17,17,16,16,17,16,18,17,17,17,18,18,15,15,15,16,16,16,16,16,17,17,15,15,15,16,16,17,17,17,17,18,16,16,16,17,15,11,13,12,15,14,13,13,14,15,15,12,14,13,16,14,14,15,15,16,16,14,15,14,16,15,13,14,14,15,15,13,14,14,16,16,14,15,14,16,16,15,15,16,17,17,15,16,16,17,17,13,14,13,15,14,14,14,14,16,15,13,15,13,16,14,15,16,15,17,16,15,16,14,17,15,14,16,15,16,17,15,16,16,16,17,15,16,16,17,17,16,16,17,17,18,16,17,17,18,17,14,15,15,17,15,15,16,16,17,16,15,16,15,17,15,16,17,17,18,17,16,17,16,18,15,10,12,12,14,14,12,13,13,15,15,12,13,13,15,15,13,14,14,15,16,14,15,14,16,16,12,13,13,15,15,12,13,14,15,15,13,14,14,15,15,14,14,15,16,17,14,15,15,17,16,12,13,13,15,15,13,14,14,15,16,13,14,14,16,15,14,15,15,16,17,14,15,15,17,16,13,14,14,15,16,14,14,15,15,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17,17,14,15,15,16,16,15,15,15,16,16,15,15,15,16,16,16,17,16,17,17,16,16,16,18,16,11,12,12,14,14,12,13,14,15,15,12,13,13,15,15,13,14,15,16,16,14,15,15,16,16,12,13,13,15,15,13,13,14,15,16,13,14,14,15,16,14,14,15,16,17,15,15,15,16,17,12,13,13,15,15,13,14,14,15,16,13,14,14,16,15,15,15,15,16,17,15,16,15,17,16,14,14,15,15,16,14,14,15,15,17,15,15,16,16,17,15,15,16,15,18,16,16,16,17,17,14,15,15,16,16,15,16,16,17,17,15,15,15,17,16,16,17,16,17,17,16,16,16,18,16,11,12,12,14,14,13,13,14,15,15,13,14,13,15,15,14,15,15,16,16,14,15,15,16,16,12,13,13,15,15,13,13,14,15,15,14,14,14,16,15,15,15,15,15,16,15,16,15,17,16,12,13,13,15,15,14,14,15,15,16,13,14,13,16,15,15,15,16,16,17,15,16,15,17,15,14,15,14,16,16,14,15,15,16,16,15,16,15,17,16,15,15,16,15,17,16,17,16,17,17,14,15,15,16,16,15,16,16,16,17,14,15,15,16,16,16,17,17,17,18,16,16,16,17,16,12,13,13,15,15,13,13,14,15,16,13,14,14,16,15,14,15,15,16,17,14,15,15,17,16,13,14,14,15,16,14,14,15,15,17,14,15,15,16,16,15,14,16,15,17,15,16,16,17,17,13,14,14,16,16,14,15,15,16,16,14,15,14,16,16,15,16,16,17,17,15,16,15,17,16,15,15,16,15,17,15,15,16,15,17,15,16,16,16,17,16,15,17,15,18,17,17,17,17,17,15,15,15,17,17,16,16,16,17,17,15,16,15,17,17,16,17,17,18,18,16,17,15,18,15,11,12,12,15,15,13,13,15,14,16,13,14,13,16,14,15,15,16,16,17,15,16,15,17,15,12,14,13,16,14,13,13,14,14,16,14,15,14,16,15,15,15,16,15,17,16,16,16,17,16,12,13,14,15,16,15,15,15,15,16,13,15,13,16,14,16,16,16,17,17,15,16,15,17,15,15,16,15,16,15,14,14,15,16,16,16,16,16,17,16,15,15,16,15,17,17,17,17,18,17,15,15,15,16,16,16,16,16,16,17,14,15,15,17,16,17,17,17,17,18,15,16,15,18,14,10,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,14,15,15,16,13,15,14,16,16,12,13,13,15,15,13,14,14,15,16,13,14,14,15,15,14,15,15,16,17,14,15,15,17,16,12,13,13,15,15,13,14,14,15,15,12,14,13,15,15,14,15,15,16,17,14,15,14,17,15,14,15,15,16,16,14,15,15,16,17,15,15,15,17,16,16,16,16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15,16,16,14,15,14,16,16,15,16,16,17,17,15,16,15,17,16,11,12,12,14,15,13,13,14,14,15,13,14,13,15,15,14,15,15,16,16,14,15,15,16,16,12,14,13,15,15,13,13,14,15,16,14,15,14,16,15,15,15,16,15,17,15,16,16,17,16,12,13,13,15,15,14,14,15,15,16,13,14,13,16,15,15,15,16,16,17,15,15,15,16,16,14,15,15,16,16,14,15,15,16,16,15,16,16,17,17,16,16,16,16,17,16,17,17,18,17,14,14,15,15,16,15,15,16,16,17,14,15,15,16,16,16,16,16,17,17,15,16,15,17,15,11,12,12,14,14,12,13,14,15,15,12,13,13,15,15,14,15,15,16,16,13,15,14,16,16,12,13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,15,15,16,17,15,15,15,17,16,12,13,13,15,15,13,14,14,16,15,13,14,13,16,15,15,16,15,17,17,14,15,14,17,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17,17,16,16,16,16,18,16,17,16,18,17,14,15,14,16,15,15,15,15,17,16,14,15,14,17,15,16,17,16,17,17,15,16,15,17,15,11,12,12,15,15,13,13,15,14,16,13,15,13,16,14,15,15,16,15,17,15,16,15,17,16,12,14,13,15,15,13,13,15,15,16,15,15,15,16,15,15,15,16,15,17,16,16,16,17,16,12,13,14,15,16,14,14,15,15,16,13,14,13,16,14,16,16,16,16,17,15,16,15,17,15,15,16,15,16,16,14,15,15,16,16,16,16,16,17,16,15,15,16,15,17,17,17,17,18,17,15,15,15,15,16,16,16,16,16,17,14,15,14,16,15,17,17,17,17,18,15,16,15,17,15,12,13,13,15,15,13,14,14,15,16,13,14,14,16,15,14,15,15,16,17,14,15,15,17,16,13,14,14,16,15,13,14,15,16,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17,17,13,14,13,16,15,14,15,15,16,16,13,15,14,16,15,15,16,16,17,17,15,16,14,17,15,15,15,16,17,17,15,15,16,16,17,16,16,16,17,17,16,15,17,16,18,17,17,17,18,18,15,15,15,17,14,16,16,16,17,16,15,16,15,17,15,16,17,17,18,17,16,17,15,18,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,7,9,9,10,10,9,10,10,10,11,9,10,10,11,10,9,10,10,11,11,9,10,10,11,11,9,10,10,11,11,10,10,10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11,11,11,9,10,10,11,11,10,10,10,11,11,9,10,10,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,9,10,10,11,11,10,10,11,11,11,10,10,11,11,11,10,11,11,11,12,10,11,11,12,12,10,10,11,11,11,10,11,11,11,12,11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10,11,11,11,11,11,11,11,12,12,10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,10,11,11,10,11,10,11,11,10,11,11,12,12,10,11,11,12,11,10,11,11,11,11,10,11,11,11,12,11,11,11,12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,10,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,12,13,12,9,10,10,11,11,10,10,11,11,11,10,11,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,11,11,11,10,11,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,10,11,11,11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,10,11,11,11,12,11,11,12,12,12,11,11,12,12,12,11,11,12,12,12,11,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,11,12,10,11,11,12,11,11,12,11,12,12,11,12,11,12,12,10,11,11,12,11,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,9,10,10,11,11,10,10,11,11,11,10,11,10,11,11,10,11,11,12,12,10,11,11,12,12,10,11,11,11,11,10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10,11,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11,11,11,12,12,11,11,11,11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,9,10,10,11,11,10,11,11,11,12,10,11,11,12,11,11,11,12,12,12,11,11,12,12,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,12,11,11,12,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12,13,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,13,12,13,12,12,12,12,13,12,12,13,12,13,12,13,13,12,13,12,12,12,12,12,12,13,13,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,13,13,13,12,12,12,12,12,12,12,13,12,13,12,12,12,12,13,12,12,13,13,13,12,12,13,12,13,12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,11],"i8",O3,_.GLOBAL_BASE+390097),C3([12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12,13,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13,13,13,12,12,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,13,12,13,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,13,12,13,12,12,12,12,12,12,12,12,12,12,13,12,13,12,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,13,12,13,12,12,13,12,13,12,12,13,12,13,12,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,4,7,8,4,8,7,5,7,8,7,7,10,8,9,9,5,7,7,8,9,9,7,10,7,5,7,8,8,9,11,8,10,10,8,9,10,10,10,12,11,12,12,8,10,10,10,12,12,10,12,11,5,8,7,8,10,10,8,11,9,8,10,10,10,11,12,10,12,12,8,10,9,11,12,12,10,12,10,5,8,8,7,10,10,8,11,10,7,9,10,9,10,12,10,12,12,8,10,10,10,12,12,10,12,11,7,9,10,9,11,12,10,12,11,9,9,12,10,10,13,12,12,13,10,12,11,12,13,13,11,13,11,7,10,9,10,11,12,10,13,11,9,11,11,11,11,13,12,14,13,10,11,11,12,14,14,11,14,11,5,8,8,8,10,11,7,10,10,8,10,10,10,11,12,10,12,12,7,10,9,10,12,12,9,12,10,7,9,10,10,11,13,10,12,11,10,11,11,11,11,14,12,14,14,9,11,11,12,13,14,11,13,11,7,10,9,10,11,12,9,12,10,10,11,12,11,11,13,12,13,13,9,12,9,12,13,12,10,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,6,7,7,7,7,8,7,8,7,7,7,8,7,8,8,8,8,8,7,8,7,7,8,8,7,8,8,7,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,7,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,7,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,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,9,9,8,9,8,7,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,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,8,8,9,8,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,5,5,7,7,5,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,5,7,8,7,9,10,8,9,9,8,9,10,9,10,12,10,11,11,8,10,9,10,11,12,9,11,10,5,8,7,8,10,9,7,10,9,8,9,10,9,10,11,10,12,11,8,10,9,10,11,11,9,12,10,5,8,8,7,9,10,8,10,9,7,9,10,9,10,11,9,11,11,8,10,9,10,11,11,10,12,10,7,9,10,9,10,12,9,11,11,9,9,12,11,10,13,11,11,13,10,12,11,11,13,13,11,13,12,7,9,9,9,11,11,9,12,11,9,11,10,10,11,12,11,13,12,9,11,11,12,13,13,11,13,11,5,8,8,8,9,10,7,10,9,8,9,10,10,10,12,10,11,11,7,10,9,9,11,11,9,11,10,7,9,9,9,11,12,9,11,11,9,11,11,11,11,13,12,13,13,9,10,11,11,12,13,10,12,11,7,10,9,9,11,11,9,12,10,10,11,12,11,12,13,12,13,13,9,12,9,11,13,11,10,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,9,9,6,8,8,10,10,6,8,8,10,10,8,9,10,12,12,8,10,9,12,12,6,8,8,10,10,8,8,9,10,11,8,9,9,11,11,9,10,11,12,13,10,11,11,13,13,6,8,8,10,10,8,9,9,11,11,8,9,8,11,10,10,11,11,13,13,9,11,10,13,12,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,12,13,13,15,14,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13,14,15,12,13,12,15,12,7,8,8,10,11,8,9,10,11,12,8,9,9,11,11,10,11,11,13,14,10,11,11,13,13,8,9,9,11,12,9,10,11,11,13,9,10,10,12,12,11,11,12,13,15,11,12,12,14,14,8,9,9,11,11,9,10,11,12,13,9,10,10,12,12,11,12,12,14,15,11,12,12,14,14,10,11,12,13,13,11,12,12,13,14,12,12,12,14,14,13,13,14,14,16,14,14,14,16,15,10,11,11,13,13,12,12,12,14,14,11,12,12,14,13,14,14,14,15,16,13,14,13,16,14,7,8,8,11,10,8,9,9,11,11,8,10,9,12,11,10,11,11,13,13,10,11,11,14,13,8,9,9,12,11,9,10,10,12,12,9,11,10,13,12,11,12,12,13,14,11,12,12,15,14,8,9,9,12,11,9,10,10,12,12,9,11,10,13,11,11,12,12,14,14,11,12,12,14,13,10,11,11,13,13,11,12,12,13,14,12,13,12,14,14,13,13,14,14,16,13,14,14,16,15,10,11,11,13,13,12,12,12,14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,16,14,9,10,11,12,13,11,11,12,12,14,11,11,12,13,14,13,13,14,14,16,13,13,14,15,15,11,11,12,12,14,12,12,13,13,15,12,12,13,13,15,14,14,15,15,16,14,14,14,15,16,11,12,12,13,14,12,12,13,14,15,12,13,12,14,14,14,14,15,15,16,14,14,14,16,16,13,13,14,15,16,14,14,15,15,16,14,15,15,16,16,15,15,16,16,18,16,16,16,17,17,13,14,14,15,15,14,14,15,16,16,14,15,14,16,16,16,16,16,17,18,15,16,16,17,16,9,11,10,13,12,11,12,11,14,13,11,12,11,14,12,13,14,13,15,14,13,14,13,16,14,11,12,12,14,13,12,12,13,14,14,12,13,12,15,14,14,14,14,16,16,14,15,14,17,15,11,12,11,14,12,12,13,12,15,13,12,13,12,15,13,14,14,14,16,15,14,15,14,16,15,13,14,14,15,15,14,14,15,16,16,14,15,14,16,16,15,15,16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15,16,16,14,15,14,17,15,16,16,16,17,17,15,16,15,18,16,7,8,8,10,11,8,9,9,11,12,8,9,9,12,11,10,11,11,13,14,10,11,11,14,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,13,14,11,12,12,14,14,8,9,9,12,11,9,10,11,12,13,9,11,10,13,12,11,12,12,14,14,11,12,12,14,13,10,11,11,13,13,11,12,12,13,14,11,12,12,14,14,13,13,14,14,16,13,14,14,16,15,10,12,11,13,13,12,12,12,14,14,11,12,12,14,13,14,14,14,15,16,13,14,14,16,14,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,11,12,13,14,11,12,12,14,14,9,9,10,11,12,10,10,11,12,13,10,10,11,12,13,12,12,13,14,15,12,12,13,14,15,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,15,15,12,13,13,15,14,11,11,12,13,14,12,12,13,13,15,12,12,13,14,15,14,14,15,14,16,14,14,15,15,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,14,14,15,15,16,16,14,15,14,17,15,8,9,9,11,11,9,10,10,12,12,9,11,10,13,12,11,12,12,14,14,11,13,12,15,13,9,10,10,12,12,10,10,11,12,13,10,12,11,13,13,12,12,13,13,15,12,13,13,15,14,9,10,10,12,12,11,11,12,13,13,10,12,10,13,12,12,13,13,15,15,12,13,13,15,13,11,12,12,14,14,12,12,13,14,14,12,13,13,15,14,13,13,14,13,16,14,15,14,16,16,11,12,12,14,14,13,13,13,15,15,12,13,12,15,14,14,15,15,16,17,14,15,13,16,13,10,11,11,13,14,11,12,12,13,15,11,12,12,14,14,13,14,14,15,16,13,14,14,16,16,11,11,12,12,14,12,12,13,13,15,12,13,13,13,15,14,14,15,14,17,14,14,15,15,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,16,16,13,14,14,14,16,14,14,15,14,17,14,15,15,14,17,16,16,17,15,18,16,16,17,16,18,13,14,14,16,16,14,15,15,17,16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11,13,12,15,14,14,14,14,16,15,14,15,14,16,15,11,12,12,14,13,12,13,13,15,14,13,14,13,15,14,14,15,15,16,16,14,15,15,17,15,11,12,12,14,14,13,13,13,15,15,12,13,13,15,14,15,15,15,17,17,14,15,15,17,15,13,14,14,16,15,14,15,15,16,16,15,15,15,17,16,16,16,16,16,17,16,17,16,18,17,14,14,14,16,16,15,15,15,16,16,14,15,14,17,16,16,17,17,17,18,16,17,16,18,16,7,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,11,13,14,10,11,11,14,13,8,9,9,11,12,9,10,11,12,13,9,11,10,13,12,11,12,12,13,14,11,12,12,14,14,8,9,9,11,11,9,10,10,12,12,9,10,10,13,12,11,12,12,14,14,11,12,11,14,13,10,11,12,13,13,11,12,12,13,14,12,13,12,14,14,13,13,14,14,16,13,14,14,16,15,10,11,11,13,13,11,12,12,14,14,11,12,12,14,13,13,14,14,15,16,13,14,13,16,14,8,9,9,11,11,9,10,11,12,13,9,10,10,12,12,11,12,13,13,14,11,12,12,14,14,9,10,10,12,12,10,10,11,12,13,11,12,11,13,13,12,12,13,13,15,12,13,13,15,15,9,10,10,12,12,10,11,12,13,14,10,11,10,13,12,12,13,13,14,15,12,13,12,15,13,12,12,12,14,14,12,12,13,14,15,13,13,13,15,15,14,14,15,13,16,14,15,15,16,16,11,12,12,14,14,12,13,13,14,15,12,13,12,14,14,14,14,15,16,16,13,14,13,16,14,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,14,11,12,11,14,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,14,15,12,13,13,15,14,9,10,9,12,11,10,11,10,13,12,10,11,10,13,12,12,13,12,15,14,12,13,12,15,14,11,12,12,14,14,12,13,13,14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16,16,11,12,11,14,13,12,13,12,15,14,12,13,12,15,13,14,15,14,16,15,13,15,14,17,14,10,11,11,13,14,11,12,13,13,15,11,12,12,14,14,14,14,15,15,17,13,14,14,15,16,11,12,12,14,14,12,12,13,14,15,13,13,13,15,15,14,15,15,15,17,15,15,15,16,16,11,12,12,13,14,13,13,14,14,15,12,13,13,14,15,14,15,15,16,17,14,15,15,16,16,14,14,14,16,16,14,14,15,15,17,15,15,15,17,16,16,16,17,16,18,16,17,17,18,17,13,14,14,15,16,14,15,15,16,17,14,15,15,16,16,16,17,17,17,18,16,16,16,17,16,10,11,11,14,13,11,12,12,14,14,11,12,12,15,13,13,14,14,16,15,13,14,14,16,15,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,17,16,11,12,11,14,12,12,13,13,15,13,12,13,12,15,13,14,15,15,16,15,14,15,14,17,14,13,14,14,16,16,14,15,15,16,17,14,15,15,16,17,16,16,17,17,18,16,17,17,18,18,13,14,14,16,13,14,15,15,17,14,14,15,14,17,14,16,17,16,17,16,16,17,16,18,15,8,11,11,13,13,10,12,12,14,14,11,12,12,14,14,13,13,14,15,16,13,14,14,16,15,10,11,11,14,14,11,12,12,14,15,11,12,12,15,14,13,14,14,15,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14,14,15,16,16,14,15,14,16,16,12,13,13,15,15,12,13,14,15,16,13,14,14,16,16,14,15,15,16,17,15,15,16,17,17,13,14,14,16,15,14,15,15,16,16,14,15,14,16,16,16,16,16,17,17,15,16,16,18,16,10,11,11,13,14,11,12,12,14,15,11,12,12,15,14,13,14,14,16,16,13,14,14,16,16,11,11,12,14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,15,17,14,14,15,16,16,11,12,12,15,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,17,16,13,12,14,14,16,13,13,15,14,17,14,13,15,15,17,15,14,16,15,18,16,15,16,16,18,13,14,14,16,16,14,15,15,17,17,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11,13,12,15,14,13,14,14,15,16,13,14,14,16,16,11,12,12,14,14,12,13,13,14,15,12,13,13,15,15,14,14,15,15,16,14,15,15,17,16,11,12,12,14,14,13,13,13,15,15,12,13,13,15,14,14,15,15,16,17,14,15,14,17,15,13,14,13,16,15,14,14,14,15,16,14,15,14,16,16,15,15,16,16,17,16,16,16,18,17,14,14,14,16,16,15,15,15,17,16,14,15,14,17,16,16,16,17,17,18,16,17,16,18,16,11,13,13,15,15,12,13,14,15,16,12,14,14,15,15,14,15,15,16,17,14,15,15,17,17,12,13,14,14,16,13,14,14,14,16,14,14,14,15,16,15,15,16,15,18,15,16,16,17,17,13,14,14,16,16,14,14,15,16,16,14,15,14,16,16,15,16,16,17,18,15,16,16,18,17,14,14,16,13,17,15,15,16,14,18,15,15,16,14,18,16,16,18,15,19,17,17,18,16,18,15,16,15,17,17,15,16,17,18,18,16,16,16,18,17,17,18,18,19,19,17,18,17,19,18,11,12,12,15,14,13,13,14,15,16,13,14,13,16,14,15,15,15,16,17,15,16,15,17,16,12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,16,16,17,16,16,16,18,17,12,13,13,15,15,14,14,15,16,16,13,14,13,16,15,16,16,16,17,18,15,16,15,17,16,14,15,14,17,15,14,15,15,16,16,15,16,15,17,16,16,15,16,15,17,17,18,17,18,17,15,15,15,16,17,16,16,16,17,17,15,16,15,17,16,17,18,18,18,18,16,17,16,18,15,8,11,11,13,13,11,12,12,14,14,10,12,12,14,14,13,14,14,15,16,13,14,13,16,15,11,12,12,14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,15,16,14,14,14,16,16,10,11,11,14,14,11,12,12,14,15,11,12,12,15,14,13,14,14,16,16,13,14,14,16,15,13,14,14,15,16,14,14,15,16,16,14,15,15,16,16,15,16,16,16,18,16,16,16,17,17,12,13,13,15,15,13,14,14,16,16,12,14,13,16,15,15,16,15,17,17,14,16,15,17,16,10,11,11,13,14,11,12,13,14,15,11,13,12,14,14,14,14,15,16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,14,15,13,14,13,15,15,14,15,15,16,17,14,15,15,17,16,11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14,15,15,16,17,14,15,15,16,16,14,14,14,16,16,14,14,15,16,16,15,15,15,16,16,16,16,17,16,18,16,17,17,18,18,13,13,14,15,16,14,14,15,16,17,13,14,14,16,16,16,16,17,17,18,15,16,15,17,16,10,11,11,14,13,11,12,12,14,14,11,12,12,15,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,17,16,11,12,11,14,14,12,13,13,15,15,12,13,12,15,14,14,15,14,16,16,14,15,14,17,16,14,14,14,16,16,14,15,15,16,17,14,15,15,17,17,16,16,17,17,18,16,17,17,18,18,13,14,12,16,14,14,15,13,17,15,13,15,13,17,14,16,16,15,18,16,15,17,14,18,15,11,12,12,14,15,13,13,14,14,16,13,14,13,15,14,15,15,16,16,17,15,16,15,17,16,12,13,13,15,15,13,13,14,15,16,14,15,14,16,16,15,15,16,15,18,16,16,16,18,17,12,13,13,15,15,14,14,15,15,16,13,14,13,15,15,16,16,16,16,18,15,16,15,17,16,15,15,15,17,16,15,15,16,16,17,16,16,16,18,17,16,16,17,15,18,17,18,17,19,18,14,14,15,15,17,15,15,16,16,17,14,15,15,16,16,17,17,18,17,19,16,17,15,17,15,11,13,12,15,15,12,14,14,15,15,12,14,13,16,15,15,15,15,17,17,14,15,15,17,16,12,14,14,16,16,14,14,15,16,16,14,14,14,16,16,15,16,17,17,18,15,16,16,18,17,12,14,13,16,14,13,14,14,16,15,13,15,14,16,14,15,16,16,17,17,15,16,15,18,15,15,15,16,17,17,15,16,16,17,18,16,16,16,18,18,17,17,18,18,19,17,17,18,19,19,14,15,14,17,13,15,16,15,18,14,15,16,15,18,14,17,18,17,18,16,16,18,16,19,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,4,7,7,4,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,6,7,8,8,9,10,8,9,10,8,9,10,10,10,12,10,11,12,8,10,10,10,11,12,10,11,11,6,8,7,8,10,9,8,10,9,8,10,10,10,11,11,10,12,11,8,10,9,10,12,11,10,12,10,5,8,8,8,10,10,8,10,10,7,9,10,9,10,11,9,11,11,8,10,10,10,12,12,10,12,11,7,9,9,9,10,11,9,11,11,9,9,11,10,11,12,10,11,12,9,11,11,11,12,12,11,12,12,7,9,9,10,11,11,10,12,11,9,11,10,11,11,12,11,13,12,10,11,11,12,13,13,11,13,11,5,8,8,8,10,10,8,10,10,8,10,10,10,11,12,10,12,11,7,10,9,9,11,11,9,11,10,7,9,9,10,11,12,10,11,11,10,11,11,11,11,13,12,13,13,9,10,11,12,12,13,11,12,11,7,9,9,9,11,11,9,11,10,9,11,11,11,12,12,11,12,12,9,11,9,10,12,11,10,12,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,9,15,17,20,21,22,23,5,5,7,9,11,13,17,20,9,5,5,6,8,10,15,18,11,7,5,4,6,9,13,17,14,9,7,5,6,7,10,14,17,10,8,6,6,4,5,8,20,14,13,10,8,4,3,4,23,17,16,14,12,6,4,4,2,0,0,0,64,0,0,0,112,96,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,47,6,0,0,0,0,0,0,0,0,0,0,48,6,0,0,0,0,0,0,0,0,0,40,48,6,0,80,48,6,0,0,0,0,0,0,0,0,0,120,48,6,0,160,48,6,0,0,0,0,0,0,0,0,0,200,48,6,0,240,48,6,0,0,0,0,0,0,0,0,0,24,49,6,0,64,49,6,0,240,48,6,0,0,0,0,0,104,49,6,0,144,49,6,0,184,49,6,0,224,49,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,152,47,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,14,16,17,17,18,20,6,3,5,8,10,11,13,15,13,5,3,5,8,9,11,12,15,7,4,3,5,7,9,11,16,10,7,5,6,7,9,10,17,11,8,7,7,6,8,8,19,13,11,9,9,8,8,9,20,14,13,11,10,8,9,9,5,0,0,0,243,0,0,0,104,95,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,96,96,6,0,0,0,0,0,5,0,0,0,53,12,0,0,24,83,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,80,95,6,0,0,0,0,0,5,0,0,0,243,0,0,0,16,82,6,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,8,83,6,0,0,0,0,0,5,0,0,0,243,0,0,0,8,81,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,0,82,6,0,0,0,0,0,5,0,0,0,243,0,0,0,0,80,6,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,248,80,6,0,0,0,0,0,5,0,0,0,53,12,0,0,176,67,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,79,6,0,0,0,0,0,5,0,0,0,53,12,0,0,96,55,6,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,152,67,6,0,0,0,0,0,1,0,0,0,7,0,0,0,56,55,6,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,64,55,6,0,0,0,0,0,5,0,0,0,243,0,0,0,48,54,6,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,40,55,6,0,0,0,0,0,5,0,0,0,243,0,0,0,40,53,6,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,32,54,6,0,0,0,0,0,5,0,0,0,243,0,0,0,32,52,6,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,24,53,6,0,0,0,0,0,5,0,0,0,243,0,0,0,24,51,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,16,52,6,0,0,0,0,0,1,0,0,0,25,0,0,0,144,50,6,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,176,50,6,0,0,0,0,0,1,0,0,0,25,0,0,0,8,50,6,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,40,50,6,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,4,5,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,5,5,4,10,10,5,10,10,5,10,10,10,10,10,10,10,10,5,10,10,10,10,10,9,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,7,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,7,6,7,8,6,8,7,7,7,8,7,7,8,8,8,8,7,7,7,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,9,8,9,8,8,8,8,8,8,9,8,9,9,8,8,8,9,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,9,9,9,8,9,8,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,6,5,7,8,5,8,7,5,7,7,7,7,9,8,9,9,5,7,7,8,9,9,7,9,7,6,8,8,8,9,10,8,9,9,8,9,10,9,9,11,10,10,11,8,10,9,10,10,11,9,10,10,6,8,8,8,9,9,8,10,9,8,9,10,9,10,10,10,11,10,8,10,9,10,11,10,9,11,9,6,8,8,7,9,9,8,9,9,7,9,9,9,9,10,9,10,10,8,9,9,9,10,10,9,10,9,7,9,9,9,10,10,9,10,10,9,9,10,10,9,11,10,11,11,9,10,10,10,11,11,10,11,10,6,9,8,9,10,10,9,10,9,8,10,10,9,9,10,10,11,11,9,10,10,10,11,11,9,11,9,6,8,8,8,9,9,7,9,9,8,9,9,9,9,10,9,10,10,7,9,9,9,10,10,9,10,9,6,8,9,9,9,10,9,10,10,9,10,10,9,9,11,10,11,11,8,10,10,10,11,11,9,10,9,7,9,9,9,10,10,9,10,10,9,10,10,10,10,11,10,11,11,9,10,9,10,11,11,10,11,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,9,9,5,7,8,10,11,5,8,7,11,10,8,10,11,12,13,8,11,10,13,12,6,7,8,10,11,7,8,10,10,12,8,9,9,12,11,10,10,12,11,14,10,11,12,14,13,6,8,7,11,10,8,9,9,11,12,7,10,8,12,10,10,12,12,13,14,10,12,10,14,11,9,10,11,11,12,10,10,11,11,13,11,12,12,13,13,12,11,13,11,15,13,14,13,14,14,9,11,10,12,11,11,12,12,13,13,10,11,10,13,11,13,13,14,14,14,12,13,11,14,11,7,8,9,11,12,9,9,11,12,13,9,10,10,13,12,11,12,13,13,15,11,12,12,14,14,9,10,10,12,13,10,10,12,12,14,11,11,11,13,13,12,12,13,13,15,12,13,13,15,14,9,10,10,12,13,10,11,11,13,14,10,12,11,14,13,12,13,13,14,15,12,13,13,15,14,12,12,13,13,14,12,13,13,13,15,13,14,14,14,15,14,14,15,14,16,14,15,15,16,16,12,13,13,14,14,13,13,14,15,14,12,13,13,15,14,14,15,15,15,16,14,15,14,16,14,7,9,8,12,11,9,10,10,12,13,9,11,9,13,12,11,12,12,14,14,11,13,12,15,13,9,10,10,13,12,10,11,12,13,14,10,12,11,14,13,12,13,13,14,15,13,13,13,15,14,9,10,10,13,12,11,11,11,13,13,10,12,10,14,12,13,13,13,14,15,12,13,12,15,13,12,13,13,14,14,12,13,13,14,15,13,14,13,15,15,14,14,15,14,16,14,15,15,16,15,12,13,12,14,13,13,13,13,15,14,12,13,13,15,13,14,15,15,16,15,14,15,14,16,14,11,12,12,13,14,12,13,14,14,15,12,13,13,14,15,14,14,15,15,16,14,15,15,16,16,12,13,13,14,15,13,13,14,14,16,13,14,14,15,15,15,15,16,15,17,15,15,15,16,16,12,13,13,14,15,13,14,14,15,16,13,14,14,15,15,15,15,16,16,17,15,15,15,17,16,14,15,15,16,16,15,15,16,15,16,15,16,16,16,17,16,16,17,16,18,16,16,17,18,17,14,15,15,16,16,15,16,16,16,17,15,16,15,17,16,16,17,17,17,18,16,16,16,17,16,11,12,12,14,13,12,13,13,15,14,12,14,13,15,14,14,15,15,16,16,14,15,14,16,15,12,13,13,15,14,13,14,14,15,15,13,14,14,16,15,15,15,15,16,16,15,16,15,17,16,12,13,13,15,14,13,14,14,15,15,13,14,13,16,14,15,15,15,16,16,15,15,15,17,15,14,15,15,16,16,15,15,15,16,16,15,16,16,17,17,16,16,17,17,17,16,17,17,18,17,14,15,15,16,15,15,15,16,16,16,15,15,15,17,15,17,17,17,18,17,16,17,16,18,16,6,9,9,12,12,8,10,10,12,13,9,11,10,13,12,10,12,12,14,14,11,13,12,14,14,8,10,10,12,12,9,10,11,12,14,10,11,11,13,13,12,12,13,13,15,12,13,13,15,14,9,10,10,13,13,10,11,11,13,13,10,12,10,14,13,12,13,13,14,15,12,13,13,15,14,11,12,12,13,14,12,12,13,13,15,12,13,13,14,14,13,13,14,13,16,14,15,15,16,15,11,12,12,14,14,13,13,13,15,14,12,13,13,15,14,14,15,15,16,15,14,14,14,16,14,7,9,10,12,12,9,10,11,13,13,9,11,10,13,13,11,12,13,14,15,12,13,13,15,14,9,10,11,12,13,10,10,12,13,14,11,11,12,14,14,12,12,14,14,15,13,13,13,15,15,9,11,11,13,13,11,12,12,14,14,10,12,10,14,13,13,14,13,15,15,12,14,13,15,14,12,12,13,13,15,12,12,14,13,15,13,14,14,15,15,14,14,15,14,17,14,15,15,16,16,12,13,13,15,14,13,14,14,15,15,12,14,13,15,14,14,15,15,16,16,14,15,14,16,14,7,10,10,12,12,10,11,11,12,13,10,12,10,14,12,12,13,13,14,15,12,13,13,15,14,9,11,10,13,12,10,10,12,12,14,11,13,12,14,13,13,13,14,13,15,13,14,14,15,14,10,11,11,13,13,12,12,12,13,14,10,12,10,14,12,13,14,14,15,15,13,14,13,15,13,12,13,13,14,14,12,12,13,14,15,13,14,14,15,15,13,13,14,13,15,14,15,15,16,16,12,13,13,14,14,13,14,14,15,15,12,13,13,15,13,15,15,15,16,16,13,14,13,16,13,11,12,13,14,14,12,13,14,14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16,16,12,13,14,14,15,13,13,14,14,16,13,14,14,15,16,14,14,16,15,17,15,15,16,16,16,12,13,13,15,15,13,14,14,15,16,13,14,14,15,16,15,15,16,17,17,15,16,15,17,16,14,15,15,15,16,15,15,16,15,17,15,15,16,16,17,16,16,16,16,18,16,16,17,17,17,14,15,15,16,16,15,16,16,16,17,15,16,15,17,16,16,17,17,17,17,16,17,16,18,17,11,12,12,14,14,13,13,14,14,15,13,14,13,15,14,14,15,15,15,16,14,15,15,17,15,12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,15,15,16,15,16,15,17,16,12,13,13,15,15,14,14,14,15,16,13,14,13,16,15,15,15,16,16,17,15,16,15,17,15,14,15,15,16,16,14,15,15,16,16,15,16,16,17,16,15,15,16,15,17,16,17,17,18,17,14,15,15,16,16,15,16,16,16,17,14,15,15,17,16,17,17,17,17,18,15,16,16,18,15,6,9,9,12,12,9,10,11,12,13,8,10,10,13,12,11,12,13,14,14,10,12,12,14,13,9,10,10,12,13,10,10,12,13,14,10,11,11,13,13,12,13,13,14,15,12,13,13,15,14,8,10,10,12,12,10,11,11,13,13,9,11,10,13,13,12,13,13,14,15,12,13,12,15,13,11,12,12,14,14,12,13,13,13,15,13,13,13,14,15,14,14,15,14,16,14,15,15,15,15,11,12,12,14,13,12,13,13,15,14,12,13,12,15,13,14,14,15,16,16,13,14,13,16,13,7,10,10,12,12,10,10,12,12,14,10,11,11,13,12,12,13,13,13,15,12,13,13,15,14,10,11,11,13,13,10,10,12,12,14,12,12,12,14,13,13,13,14,13,15,13,14,14,15,14,9,10,11,13,13,11,12,12,13,14,10,12,10,14,12,13,13,14,14,15,13,13,12,15,13,12,13,13,14,14,12,13,13,14,15,13,14,14,15,15,13,13,15,13,16,15,15,15,16,16,12,13,13,14,14,13,14,14,15,15,12,13,12,15,14,15,15,15,16,16,13,14,13,15,13,7,10,9,12,12,9,10,11,13,13,9,11,10,13,13,11,13,13,14,15,11,13,12,15,14,9,11,11,13,13,10,10,12,13,14,11,12,12,14,14,12,13,14,14,15,13,13,13,15,15,9,11,10,13,12,11,12,11,14,14,10,12,10,14,13,13,14,13,15,15,12,14,12,15,14,12,13,13,14,15,13,13,14,14,15,13,14,14,15,15,14,14,15,14,17,14,15,15,16,16,12,13,12,15,13,13,14,14,15,15,12,14,13,15,13,14,15,15,16,16,14,15,14,16,14,11,12,12,14,14,13,13,14,14,15,13,14,13,15,15,14,15,15,16,17,14,15,15,16,15,12,13,13,15,15,13,13,14,15,16,14,14,14,16,15,15,15,16,15,17,15,16,15,17,16,12,13,13,14,15,14,14,15,15,16,13,14,13,15,15,15,15,16,16,17,15,15,15,16,15,14,15,15,16,16,14,15,15,16,17,15,16,16,17,17,16,15,16,15,17,16,17,17,17,17,14,15,15,15,16,15,15,16,16,17,14,15,15,16,16,16,16,17,17,18,15,16,15,17,15,11,13,12,14,14,12,13,13,15,15,12,14,13,15,14,14,15,15,16,16,14,15,14,16,15,12,13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,15,16,16,17,15,16,15,17,16,12,13,13,15,14,13,14,14,16,15,13,14,13,16,14,15,16,15,17,16,15,15,14,18,15,14,15,15,16,16,15,15,16,16,17,15,16,15,17,16,16,16,17,17,18,16,17,17,18,17,14,15,15,16,15,15,16,15,17,16,15,15,15,17,15,16,17,17,18,17,16,17,16,18,15,10,12,12,14,14,12,13,13,14,14,12,13,13,14,14,13,14,14,15,15,13,14,14,16,15,11,12,13,14,14,12,13,13,15,15,12,13,13,15,15,13,14,15,15,16,14,15,15,16,16,12,13,13,14,14,13,13,14,15,15,13,14,13,15,15,14,15,15,16,16,14,15,14,16,15,13,14,14,15,15,13,14,14,15,16,14,14,15,16,16,14,15,15,15,17,15,16,16,17,17,13,14,14,15,15,14,15,15,16,16,14,15,15,16,16,15,16,16,16,17,15,16,15,17,16,11,12,12,14,14,12,13,13,14,15,12,13,13,15,14,13,14,14,15,16,13,14,14,16,15,12,13,13,14,15,13,13,14,15,15,13,14,14,15,15,14,14,15,15,17,14,15,15,16,16,12,13,13,15,15,13,14,14,15,15,13,14,13,15,15,14,15,15,16,17,14,15,15,16,16,13,13,14,15,16,14,14,15,15,16,14,15,15,16,16,15,15,16,15,18,15,16,16,17,17,14,15,15,16,16,15,15,15,16,16,14,15,15,17,16,16,16,16,17,17,15,16,16,17,16,10,12,12,14,14,12,13,13,14,15,12,13,13,15,14,14,14,15,15,16,14,15,14,16,15,12,13,13,15,14,13,13,14,15,15,13,14,14,15,15,14,14,15,15,16,14,15,15,16,16,12,13,13,15,15,13,14,14,15,16,13,14,13,15,14,15,15,15,16,16,14,15,15,16,15,13,14,14,16,15,14,14,14,15,16,14,15,15,16,16,15,15,16,15,17,16,17,16,17,17,14,14,15,15,16,15,15,16,16,16,14,15,14,16,15,16,16,16,17,17,15,16,15,17,15,11,13,13,14,15,13,13,14,15,15,13,14,13,15,15,14,15,15,15,16,14,15,15,17,15,13,13,14,15,15,13,14,15,15,16,14,14,14,16,16,15,14,16,15,17,15,16,16,17,16,13,14,14,15,15,14,14,14,16,16,13,15,14,16,15,15,15,16,17,17,15,16,15,17,16,14,15,15,15,16,15,15,16,15,17,15,16,16,16,17,16,16,17,15,18,16,17,17,17,17,14,15,15,16,16,15,16,16,17,17,15,16,15,17,16,16,17,17,18,18,16,17,15,18,16,10,12,12,14,14,13,13,14,14,15,13,14,13,15,14,14,15,15,15,16,15,15,15,16,15,12,13,13,15,14,12,12,14,14,15,14,15,14,16,15,15,14,15,14,17,15,16,16,17,16,12,13,13,14,15,14,14,15,15,16,13,14,12,16,14,15,16,16,16,17,15,16,14,17,15,14,15,14,16,15,14,14,15,15,15,15,16,15,17,16,15,14,16,14,16,16,17,17,18,17,14,14,15,15,16,15,16,16,16,17,14,15,14,16,15,16,16,17,17,17,15,16,14,17,14,10,12,12,14,13,12,13,13,14,14,11,13,12,14,14,13,14,14,15,16,13,14,14,16,15,12,13,13,14,14,13,13,14,15,15,13,14,13,15,15,14,14,15,15,16,14,15,15,16,16,11,13,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,13,14,14,16,15,13,14,14,15,15,14,15,15,15,16,14,15,15,16,16,15,16,16,16,17,16,16,16,17,17,13,14,14,15,15,14,15,15,16,16,13,14,14,16,15,15,16,16,17,17,15,15,15,17,15,11,12,12,14,14,12,13,13,14,15,12,13,13,15,14,14,14,15,15,16,14,14,14,16,15,12,13,13,15,14,13,13,14,15,15,13,14,14,16,15,14,15,15,15,16,15,15,15,16,16,12,13,13,14,15,13,13,14,15,15,13,14,13,15,15,15,15,15,16,16,14,15,14,16,15,14,14,15,16,16,14,15,15,15,16,15,16,15,16,16,15,15,16,15,17,16,16,16,17,17,13,14,14,15,16,14,15,15,16,16,14,14,14,16,16,16,16,16,17,17,15,15,15,17,15,11,12,12,14,14,12,13,13,14,15,12,13,13,15,14,14,14,14,15,16,13,14,14,16,15,12,13,13,15,15,13,13,14,15,16,13,14,14,15,15,14,15,15,16,17,14,15,15,17,16,12,13,13,15,14,13,14,14,15,15,13,14,13,15,15,14,15,15,16,16,14,15,14,17,15,14,15,15,16,16,14,15,15,16,17,15,15,15,17,17,15,16,16,16,17,16,17,16,17,17,13,15,14,16,15,14,15,15,16,16,14,15,14,16,15,16,16,16,17,17,15,16,15,17,15,10,12,12,14,14,13,13,14,14,15,13,14,13,15,14,14,15,15,15,17,14,15,15,16,15,12,13,13,15,14,12,12,14,14,15,14,15,14,16,15,15,14,16,15,17,15,16,16,17,16,12,13,13,14,15,14,14,15,15,16,12,14,12,15,14,15,16,16,16,17,15,16,14,17,14,14,15,14,16,16,14,14,15,15,16,15,16,16,17,16,15,14,16,14,17,16,17,17,18,17,14,14,15,15,16,15,15,16,16,17,14,15,14,16,15,16,17,17,17,18,15,16,14,17,14,11,13,13,15,14,13,13,14,15,15,12,14,13,15,15,14,15,15,15,17,14,15,14,16,15,13,14,14,15,15,13,14,15,15,16,14,15,14,16,16,15,15,16,16,17,15,16,16,17,17,13,14,13,15,15,14,14,14,16,16,13,15,14,16,15,15,16,16,17,17,15,16,14,17,15,15,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,15,17,16,17,17,17,17,18,18,14,15,15,17,15,15,16,16,17,16,15,16,15,17,15,16,17,17,17,17,16,17,15,18,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,7,8,8,10,10,8,9,9,10,11,8,9,9,10,10,9,10,10,11,11,9,10,10,11,11,8,9,9,10,10,9,9,10,11,11,9,10,10,11,11,10],"i8",O3,_.GLOBAL_BASE+400337),C3([10,11,11,11,10,11,11,11,11,8,9,9,10,10,9,10,10,11,11,9,10,9,11,11,10,11,11,11,11,10,11,10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11,11,11,11,11,11,11,12,11,11,11,11,12,10,10,10,11,11,10,11,11,11,11,10,11,11,11,11,11,11,11,12,11,11,11,11,12,11,8,9,10,11,11,9,10,11,11,11,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11,10,10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10,10,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12,12,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,8,10,9,11,11,9,10,10,11,11,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,10,10,11,11,10,11,11,12,12,10,11,10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,11,12,11,11,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,13,13,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11,12,11,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12,11,12,11,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,12,12,13,13,13,13,13,13,13,13,13,8,10,10,11,11,9,10,10,11,11,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,9,10,10,11,11,10,10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10,10,10,11,11,10,11,11,12,12,10,11,10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,11,12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12,10,10,11,11,12,11,11,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11,12,11,12,12,10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,13,12,12,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,11,12,12,12,12,12,12,12,13,12,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,11,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,10,10,11,11,9,10,10,11,11,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11,10,11,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,10,12,11,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,11,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,11,11,12,12,11,12,12,12,12,11,12,11,13,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,12,13,13,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,11,12,12,12,11,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,12,13,12,13,12,12,13,13,13,12,12,13,13,13,12,13,13,13,13,12,12,12,12,13,12,12,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,11,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,13,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,11,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,12,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,11,12,12,12,12,12,13,13,11,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,13,13,13,13,13,12,13,12,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13,13,13,13,13,12,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,5,7,8,5,8,7,5,7,8,7,8,10,8,10,10,5,8,7,8,10,10,7,10,8,6,8,9,9,10,12,9,11,11,9,10,11,11,11,13,11,13,13,9,11,11,11,12,13,11,13,11,6,9,8,9,11,11,9,12,10,9,11,11,11,11,13,11,13,13,9,11,10,11,13,13,11,13,11,6,9,9,8,10,11,9,12,11,8,10,11,10,11,13,11,13,13,9,11,11,11,13,12,11,13,11,8,10,10,9,11,12,10,12,12,10,10,12,11,11,14,12,13,14,10,12,12,12,13,13,11,14,11,8,11,10,11,12,13,11,14,12,10,12,11,11,12,14,13,15,14,10,12,12,13,14,15,12,14,12,5,9,9,9,11,12,8,11,10,9,11,11,11,11,13,11,12,13,8,11,10,11,13,13,10,13,11,8,10,11,11,12,14,11,13,12,10,12,12,12,12,14,14,15,14,10,11,12,13,14,15,11,14,12,8,10,10,10,12,12,9,12,11,10,12,12,11,11,14,12,13,13,10,12,10,12,14,13,11,13,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,6,7,7,7,7,7,7,7,7,7,7,8,7,8,8,7,8,8,7,8,7,7,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,8,8,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,9,8,7,8,8,7,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,7,8,8,8,8,9,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,9,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,7,8,8,7,8,8,8,8,8,8,8,9,8,8,9,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,9,8,8,8,8,8,9,9,9,9,9,8,8,8,8,9,9,8,9,8,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,5,4,7,7,4,7,7,5,7,8,7,8,10,8,9,9,5,7,7,8,9,9,7,10,8,5,7,8,8,9,10,8,10,10,8,9,10,10,10,12,10,12,12,8,10,10,10,12,12,10,12,11,5,8,7,8,10,10,8,10,9,8,10,10,10,11,12,10,12,12,8,10,9,10,12,12,10,12,10,5,8,8,7,10,10,8,10,10,7,9,10,9,10,12,10,12,12,8,10,10,10,12,12,10,12,11,7,9,10,9,11,12,10,12,11,9,9,12,11,10,14,12,12,13,10,12,11,12,13,13,11,14,12,7,10,9,10,11,11,10,12,11,9,11,11,11,11,13,12,14,13,10,12,12,12,14,14,11,14,12,5,8,8,8,10,10,7,10,10,8,10,10,10,11,12,10,12,12,7,10,9,10,12,12,9,12,10,7,9,10,10,11,12,10,11,11,10,12,12,11,12,14,12,14,14,9,11,11,12,13,14,11,13,11,7,10,9,10,11,12,9,12,11,10,11,12,11,12,14,12,13,13,9,12,9,12,13,12,11,14,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,9,9,6,8,8,10,10,6,8,8,10,10,8,10,10,12,13,8,10,10,13,12,6,8,8,10,10,8,8,9,10,11,8,9,9,11,11,10,10,11,12,13,10,11,11,13,13,6,8,8,10,10,8,9,9,11,11,8,9,8,11,10,10,11,11,13,13,10,11,10,13,12,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13,13,13,15,14,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13,14,15,12,13,12,15,12,6,8,8,10,11,8,9,10,11,12,8,9,9,11,11,10,11,12,13,14,10,11,11,13,13,8,9,9,11,12,9,10,11,12,13,9,10,10,12,13,11,12,13,13,15,11,12,12,14,14,8,9,9,11,12,9,10,11,12,13,9,10,10,13,12,11,12,13,14,15,11,12,12,14,13,10,11,12,13,14,11,12,13,13,15,12,13,13,14,14,13,13,14,14,16,14,15,14,16,15,10,12,11,14,13,12,12,13,14,14,11,12,12,14,14,14,14,15,15,16,13,14,14,16,14,6,8,8,11,10,8,9,9,11,11,8,10,9,12,11,10,11,11,13,13,10,12,11,14,13,8,9,9,12,11,9,10,10,12,13,9,11,10,13,12,11,12,12,14,14,11,13,12,15,14,8,9,9,12,11,9,10,10,13,12,9,11,10,13,12,11,12,12,14,14,11,13,12,15,13,10,11,12,13,14,11,12,13,13,14,12,13,12,14,14,13,13,14,14,16,14,15,14,16,16,10,12,11,14,13,12,13,13,14,14,11,13,12,15,13,14,14,15,16,16,13,14,13,16,14,9,10,11,12,13,11,11,12,13,14,11,11,12,13,14,13,13,14,14,16,13,14,14,15,15,11,11,12,13,14,12,12,13,13,15,12,13,13,14,15,14,14,15,15,17,14,14,15,16,16,11,12,12,13,14,12,12,13,14,15,12,13,12,14,15,14,14,15,15,17,14,15,14,16,16,13,14,14,15,16,14,14,15,15,17,14,15,15,16,16,15,16,17,16,18,16,17,16,17,17,13,14,14,16,15,14,15,15,16,16,14,15,14,16,15,16,16,17,17,18,16,16,16,17,16,9,11,10,13,12,11,12,11,14,13,11,12,11,14,13,13,14,14,16,15,13,14,13,16,14,11,12,12,14,13,12,12,13,14,14,12,13,13,15,14,14,14,15,16,16,14,15,14,17,15,11,12,11,14,13,12,13,13,15,14,12,13,12,15,13,14,15,14,16,16,14,15,14,17,15,13,14,14,15,16,14,14,15,16,16,14,15,15,16,16,15,16,16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15,17,16,14,15,14,17,15,16,17,17,17,17,16,16,16,18,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,11,13,14,10,11,11,14,13,8,9,9,11,12,9,10,10,12,13,9,10,10,13,12,11,11,12,13,15,11,12,12,15,14,8,9,9,12,11,9,10,11,12,13,9,11,10,13,12,11,12,12,14,15,11,13,12,15,14,10,11,11,13,14,11,12,12,13,14,11,12,12,14,14,13,13,14,14,16,13,14,14,16,15,11,12,11,14,13,12,13,13,14,14,11,13,12,14,13,14,14,15,16,16,13,14,14,16,14,8,9,9,11,12,9,10,10,12,13,9,10,10,13,12,11,12,12,14,15,11,12,12,14,14,9,9,10,11,13,10,10,12,12,14,10,10,11,13,13,12,12,13,14,16,12,12,13,15,15,9,10,10,13,12,10,11,11,13,14,10,12,11,14,13,12,13,13,15,15,12,13,13,15,15,11,11,12,13,15,12,12,13,13,15,12,13,13,14,15,14,14,15,15,17,14,15,15,16,16,11,13,12,15,14,13,13,13,15,15,12,14,13,15,14,15,15,15,16,16,14,15,15,17,15,7,9,9,12,11,9,10,10,12,12,9,11,10,13,12,11,12,12,14,14,11,13,12,15,14,9,10,10,12,12,10,10,11,12,13,10,11,11,14,13,12,12,13,14,15,12,13,13,15,14,9,10,10,12,12,10,11,11,13,13,10,11,10,14,12,12,13,13,15,15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15,12,13,13,15,15,14,13,14,13,16,14,15,15,16,16,11,12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15,15,16,16,14,15,14,17,14,10,11,12,13,14,11,12,13,14,15,11,12,12,14,15,13,14,15,15,17,14,14,14,16,16,11,12,13,12,15,12,12,14,13,16,13,13,14,13,16,14,14,15,14,17,15,15,15,15,17,11,13,12,15,15,13,13,14,15,16,12,14,13,16,15,15,15,15,17,17,15,15,15,17,16,14,14,15,14,16,14,14,16,14,17,15,15,15,14,17,16,16,17,15,18,17,17,17,16,18,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11,13,12,15,14,14,14,14,16,16,14,15,14,16,15,11,12,12,15,13,12,13,13,15,14,13,14,13,16,14,14,15,15,16,16,15,16,15,17,16,11,13,12,15,14,13,13,14,15,15,12,14,13,16,14,15,15,15,17,17,14,16,15,17,16,14,14,14,16,15,14,15,15,16,16,15,16,15,17,16,16,16,16,16,17,16,17,17,18,17,14,15,15,16,16,15,15,16,17,16,14,15,15,17,16,17,17,17,18,18,16,17,16,18,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,12,13,14,10,11,11,14,13,8,9,9,11,12,9,10,11,12,13,9,11,10,13,12,11,12,13,14,15,11,12,12,15,14,8,9,9,12,11,9,10,10,12,13,9,10,10,13,12,11,12,12,14,15,11,12,12,14,13,11,11,12,13,14,11,12,13,13,15,12,13,13,14,14,13,14,14,14,16,14,15,14,16,16,10,11,11,14,13,11,12,12,14,14,11,12,12,14,13,13,14,14,15,16,13,14,13,16,14,7,9,9,11,11,9,10,11,12,13,9,10,10,12,12,11,12,13,14,15,11,12,12,14,14,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,12,13,13,15,12,13,13,15,15,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13,14,15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15,13,14,13,15,15,14,13,15,13,16,15,15,15,16,16,11,12,12,14,14,12,13,13,14,15,12,13,12,15,14,14,15,15,16,17,13,14,13,16,13,8,9,9,12,11,9,10,10,12,13,9,10,10,13,12,11,12,12,14,15,11,12,12,15,14,9,10,10,12,13,10,11,12,13,14,10,11,11,14,13,12,13,13,15,15,12,13,13,15,15,9,10,9,13,11,10,11,10,13,13,10,12,10,14,12,12,13,12,15,15,12,13,12,15,14,11,12,13,14,15,12,13,14,14,15,13,13,13,15,15,14,15,15,15,17,15,15,15,16,16,11,12,11,15,13,12,13,13,15,14,12,13,12,16,13,14,15,15,16,16,14,15,14,17,14,10,11,11,13,14,11,12,13,14,15,11,12,12,14,14,14,14,15,15,17,14,14,14,15,16,11,12,13,14,15,12,13,14,14,16,13,14,13,15,15,14,15,16,15,17,15,15,15,17,17,11,12,12,13,15,13,13,14,14,16,12,13,13,14,15,15,15,15,16,17,14,15,15,16,16,14,15,15,16,16,14,15,15,16,17,15,15,16,16,17,16,16,17,16,18,17,17,17,18,18,14,14,15,15,16,15,15,15,16,17,14,15,15,16,16,16,17,17,17,18,16,16,16,17,16,10,11,11,14,13,11,13,12,15,14,11,13,12,15,14,14,15,14,16,16,13,15,14,17,15,11,12,13,15,15,12,13,14,15,16,13,14,13,16,15,15,15,15,16,17,15,15,15,17,16,11,13,11,15,12,13,14,13,16,13,12,14,12,16,13,15,15,15,17,15,14,16,14,17,14,14,15,15,16,17,15,15,16,16,17,15,16,15,17,17,16,16,17,17,18,16,17,17,18,18,14,15,14,17,13,15,16,15,17,15,15,16,15,17,14,16,17,16,18,16,16,17,16,18,15,9,11,11,13,13,10,12,12,14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,16,16,10,11,12,14,14,11,12,13,14,15,11,13,13,15,15,13,14,14,15,16,14,15,15,16,16,11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14,15,15,16,16,14,15,14,17,16,12,13,13,15,16,13,13,14,15,16,13,14,14,16,16,14,15,16,16,17,15,16,16,17,17,13,14,14,16,15,14,15,15,17,16,14,15,14,17,15,16,16,17,17,17,16,16,16,18,16,10,11,12,14,14,11,12,13,14,15,11,13,12,15,15,13,14,15,16,16,14,15,15,17,16,11,11,13,14,15,12,12,14,14,16,12,13,14,15,15,14,14,15,16,17,15,15,15,17,17,12,13,12,15,15,13,14,14,16,15,13,14,13,16,15,15,16,15,17,17,15,16,15,17,16,13,12,15,14,16,14,13,15,14,17,14,13,15,15,17,15,14,17,15,18,16,15,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11,14,14,11,12,12,14,15,11,13,12,15,14,13,14,14,16,16,14,15,14,16,16,11,12,12,14,14,12,12,13,15,15,12,13,13,15,15,14,14,15,16,16,14,15,15,17,16,11,12,12,15,15,13,13,13,15,15,12,13,13,15,15,15,15,15,17,17,14,15,15,17,16,13,14,13,16,15,14,14,14,16,16,14,15,14,17,16,15,15,16,16,17,16,17,16,18,17,14,15,15,16,16,15,15,15,17,17,14,15,15,17,16,16,17,17,18,18,16,17,16,18,16,12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,14,15,16,16,18,15,16,16,17,17,13,13,14,14,16,14,14,15,15,17,14,14,15,15,17,15,15,17,15,18,16,16,17,17,18,13,14,14,16,16,14,15,15,16,17,14,15,15,17,16,16,17,16,17,18,16,17,16,18,17,15,14,16,13,18,16,15,17,14,18,16,15,17,14,18,17,16,18,15,19,17,17,18,16,19,15,16,16,17,17,16,17,17,18,18,16,17,16,18,17,18,18,18,19,18,17,18,17,19,17,11,12,12,15,15,13,13,14,15,16,13,14,13,16,15,15,15,15,16,17,15,16,15,17,16,12,13,13,15,15,13,13,14,15,16,14,15,14,16,15,15,15,16,16,17,16,16,16,18,17,12,13,13,15,15,14,14,15,16,16,13,14,13,16,15,16,16,16,17,17,15,16,15,18,16,15,15,15,17,15,14,15,15,16,16,16,17,16,17,16,16,16,17,16,17,17,18,17,19,18,15,15,16,17,17,16,16,16,17,17,15,16,15,17,16,17,18,18,18,18,16,17,16,18,16,9,11,11,13,13,11,12,12,14,14,10,12,12,14,14,13,14,14,15,16,13,14,14,16,15,11,12,12,14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,16,17,14,15,15,16,16,10,12,11,14,14,11,13,13,15,15,11,13,12,15,14,14,14,15,16,16,13,14,14,16,15,13,14,14,15,16,14,14,15,15,17,14,15,15,16,17,16,16,16,16,18,16,16,17,17,17,12,13,13,16,15,13,14,14,16,16,12,14,13,16,15,15,16,16,17,17,14,16,15,17,16,10,11,11,14,14,11,12,13,14,15,11,12,12,15,14,14,14,15,16,16,13,14,14,16,16,11,12,12,14,15,12,13,14,15,15,13,13,13,15,15,14,15,15,16,17,15,15,15,16,17,11,12,12,14,14,12,13,13,15,15,12,13,12,15,15,14,15,15,16,17,14,15,14,16,16,14,14,15,16,16,14,15,15,16,17,15,16,15,17,17,16,16,17,16,18,16,17,17,18,18,13,13,14,15,16,14,14,15,16,17,14,14,14,16,15,16,16,17,17,18,15,16,15,17,16,10,12,11,14,14,11,13,13,15,15,11,13,12,15,15,14,15,15,16,16,13,15,14,16,16,12,12,13,15,15,13,13,14,15,16,13,14,14,16,15,15,15,16,16,17,15,15,15,17,17,11,13,11,15,14,12,14,13,16,15,12,14,12,16,14,15,15,15,17,17,14,15,14,17,15,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,17,18,16,17,17,18,18,13,14,12,16,14,14,15,13,17,15,14,15,13,17,14,16,17,15,18,17,15,17,14,18,15,11,12,12,14,15,13,13,14,15,16,13,14,13,16,15,15,15,16,16,17,15,15,15,16,16,12,13,13,15,15,13,13,14,15,16,14,15,14,16,16,15,15,16,16,18,16,16,16,18,17,12,13,13,15,15,14,14,15,15,16,13,14,13,15,15,16,16,16,17,18,15,16,15,17,16,15,16,15,17,16,15,15,16,16,17,16,17,16,17,17,16,16,17,16,18,17,18,18,18,18,14,15,15,15,17,16,15,17,16,17,14,15,15,16,16,17,17,18,18,19,16,16,16,17,16,12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,15,16,16,17,17,15,16,15,18,16,13,14,14,16,16,14,15,15,16,17,14,15,15,17,16,16,16,17,17,18,16,17,16,18,18,13,14,13,16,14,14,15,14,17,15,14,15,14,17,14,16,17,16,18,17,15,17,15,18,15,15,16,16,17,18,16,16,17,17,18,16,17,17,17,18,17,17,18,18,19,17,18,18,19,18,15,16,14,17,13,16,17,15,18,14,16,17,15,18,14,18,18,17,19,16,17,18,16,19,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,4,7,7,4,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,6,7,8,8,9,10,8,9,10,8,9,10,10,10,12,10,11,11,8,10,10,10,11,12,10,11,11,6,8,7,8,10,9,8,10,9,8,10,10,10,11,11,10,12,11,8,10,9,10,11,11,10,12,10,5,8,8,8,10,10,8,10,10,7,9,10,9,10,11,9,11,11,8,10,10,10,11,12,10,12,11,7,9,9,9,10,11,9,11,11,9,9,11,10,11,12,11,11,12,9,11,11,11,12,12,11,12,12,7,9,9,10,11,11,10,12,11,9,11,10,11,11,12,11,13,12,10,11,11,12,13,13,11,13,11,5,8,8,8,10,10,8,10,10,8,10,10,10,11,12,10,12,11,7,10,9,9,11,11,9,11,10,7,9,9,10,11,12,10,11,11,10,11,11,11,11,13,12,13,13,9,10,11,11,12,13,11,12,11,7,9,9,9,11,11,9,11,10,9,11,11,11,12,12,11,12,12,9,11,9,11,12,11,10,12,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,9,14,16,17,19,22,22,5,4,6,9,11,13,17,20,9,5,5,6,9,11,15,19,11,7,5,5,7,9,13,17,14,9,7,6,6,7,11,14,16,11,9,7,6,4,4,8,19,15,13,11,9,4,3,4,21,16,16,15,12,6,4,4,2,0,0,0,64,0,0,0,56,145,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,6,0,0,0,0,0,0,0,0,0,40,98,6,0,0,0,0,0,0,0,0,0,80,98,6,0,120,98,6,0,0,0,0,0,0,0,0,0,160,98,6,0,200,98,6,0,0,0,0,0,0,0,0,0,240,98,6,0,24,99,6,0,0,0,0,0,0,0,0,0,64,99,6,0,104,99,6,0,24,99,6,0,0,0,0,0,144,99,6,0,184,99,6,0,56,167,5,0,96,167,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,192,97,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,13,15,16,17,19,20,6,3,4,7,9,10,12,15,13,4,3,4,7,8,11,13,14,7,4,4,6,7,10,11,16,9,7,6,7,8,9,10,16,9,8,7,7,6,8,8,18,12,10,10,9,8,8,9,20,14,13,12,11,8,9,9,5,0,0,0,243,0,0,0,48,144,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,40,145,6,0,0,0,0,0,5,0,0,0,53,12,0,0,224,131,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,24,144,6,0,0,0,0,0,5,0,0,0,243,0,0,0,216,130,6,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,208,131,6,0,0,0,0,0,5,0,0,0,243,0,0,0,208,129,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,200,130,6,0,0,0,0,0,5,0,0,0,243,0,0,0,200,128,6,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,192,129,6,0,0,0,0,0,5,0,0,0,53,12,0,0,120,116,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,176,128,6,0,0,0,0,0,5,0,0,0,53,12,0,0,40,104,6,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,96,116,6,0,0,0,0,0,1,0,0,0,7,0,0,0,0,104,6,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,8,104,6,0,0,0,0,0,5,0,0,0,243,0,0,0,248,102,6,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,240,103,6,0,0,0,0,0,5,0,0,0,243,0,0,0,240,101,6,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,232,102,6,0,0,0,0,0,5,0,0,0,243,0,0,0,232,100,6,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,224,101,6,0,0,0,0,0,5,0,0,0,243,0,0,0,224,99,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,216,100,6,0,0,0,0,0,1,4,5,5,10,10,5,10,10,5,10,10,10,10,10,10,10,10,5,10,10,10,10,10,10,10,10,7,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,6,7,8,6,8,7,6,7,7,7,7,8,7,8,8,6,7,7,7,8,8,7,8,7,6,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,10,10,8,9,9,9,10,10,9,10,9,6,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,10,10,8,9,9,9,10,9,9,10,9,6,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,9,10,8,9,9,9,10,9,9,10,9,7,8,8,8,9,9,8,9,9,8,8,9,9,9,9,9,9,9,8,9,9,9,10,9,9,9,9,7,9,9,9,9,10,9,10,9,9,9,9,9,9,10,10,10,10,9,9,9,10,10,10,9,10,9,6,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,10,10,8,9,9,9,10,9,9,10,9,7,9,9,9,9,10,9,10,9,9,9,9,9,9,10,10,10,10,9,9,9,10,10,10,9,10,9,7,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,9,10,8,9,8,9,9,9,9,10,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,5,5,7,9,5,9,7,5,7,8,7,7,10,9,10,10,5,8,7,9,10,10,7,10,7,6,9,9,9,10,12,9,11,11,9,10,11,11,11,13,12,13,13,9,11,11,12,13,13,11,13,11,6,9,9,9,11,11,9,12,10,9,11,11,11,11,13,12,13,13,9,11,10,12,13,13,11,13,11,6,9,9,9,11,12,9,12,11,9,10,11,10,10,13,12,13,13,9,11,11,12,13,12,11,13,11,7,9,10,9,10,12,10,12,11,10,10,12,10,10,12,12,12,13,10,11,11,12,12,13,10,12,10,7,10,10,11,11,14,11,14,11,10,12,11,11,11,14,14,14,14,10,11,12,14,14,14,11,14,11,6,9,9,9,11,12,9,12,11,9,11,11,11,11,13,12,12,13,9,11,10,12,13,13,10,13,10,7,10,10,11,11,14,11,14,11,10,12,11,11,11,14,14,15,14,10,11,12,13,14,15,11,14,11,7,10,9,10,11,12,9,12,10,10,11,11,10,10,12,12,13,12,9,12,10,12,13,12,10,12,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,10,10,5,7,8,11,12,5,8,7,12,11,9,11,11,13,15,9,11,11,15,13,6,7,8,11,11,7,7,9,11,13,8,9,9,13,12,11,11,12,12,15,11,12,12,15,14,6,8,7,11,11,8,9,9,12,13,7,9,7,13,11,11,12,12,14,15,11,12,11,15,12,10,11,11,12,14,10,11,12,12,15,12,13,13,14,15,13,12,14,12,16,15,15,15,16,16,10,11,11,14,12,12,13,13,15,14,10,12,11,15,12,15,15,15,16,17,13,14,12,17,12,6,8,8,12,12,8,9,10,13,13,8,9,9,13,13,12,12,13,15,16,12,13,13,16,15,8,9,10,12,13,9,9,11,13,14,10,11,11,14,14,13,13,14,15,16,13,14,14,16,16,8,10,9,13,13,10,11,11,14,14,9,10,10,14,13,13,14,14,16,17,13,13,13,16,15,12,13,13,14,16,13,13,14,14,16,14,14,14,16,16,15,15,16,15,18,16,17,17,18,18,12,13,13,15,15,14,14,14,16,16,13,14,13,16,15,16,16,17,18,18,15,16,15,18,15,6,8,8,12,12,8,9,9,13,13,8,10,9,13,13,12,13,13,15,16,12,13,12,16,15,8,9,10,13,13,9,10,10,13,14,10,11,11,14,14,13,13,13,15,16,13,14,14,17,16,8,10,9,13,13,10,11,11,14,14,9,11,9,14,13,13,14,14,16,16,13,14,13,16,14,12,13,13,15,16,13,13,14,15,16,14,14,14,16,16,15,15,16,15,18,17,17,17,18,18,12,13,13,16,14,14,14,14,16,16,13,14,13,16,14,16,17,17,18,18,15,16,15,18,15,11,12,13,14,16,13,13,14,15,17,13,14,14,16,17,16,16,17,17,19,16,17,17,18,19,13,13,14,16,16,14,14,15,16,17,14,15,15,17,17,17,16,17,17,19,17,17,18,19,19,13,14,14,16,16,14,14,15,17,18,14,15,14,17,17,17,17,18,18,19,17,17,17,18,19,16,16,16,17,18,17,17,17,18,19,17,17,17,18,19,18,18,19,18,20,19,20,19,21,20,16,17,17,18,18,17,17,18,19,19,17,17,17,19,18,19,19,19,19,20,19,19,19,20,19,11,13,12,16,14,13,14,14,17,16,13,14,13,17,15,16,17,17,18,18,16,17,16,19,17,13,14,14,16,16,14,14,14,17,17,14,15,15,17,16,17,17,17,19,19,17,18,17,19,18,13,14,13,17,16,14,15,15,17,17,14,15,14,18,16,17,17,17,19,19,17,17,16,19,17,16,17,17,18,19,17,17,17,18,18,17,18,17,19,18,18,19,18,19,19,19,20,19,20,20,16,17,16,18,17,17,17,17,18,18,17,18,17,19,17,19,19,19,19,20,18,19,19,20,18,6,8,8,12,12,8,9,9,13,13,8,10,9,13,13,11,13,13,15,16,12,13,13,16,15,8,9,9,13,13,9,9,10,13,14,10,11,11,14,14,12,12,13,14,16,13,14,14,17,16,8,10,9,13,13,10,11,11,14,14,9,11,10,14,13,13,14,14,16,16,13,14,13,16,15,12,13,13,14,16,12,13,14,14,16,13,14,14,16,16,15,14,16,15,18,16,17,17,18,17,12,13,13,16,15,14,14,14,16,16,13,14,13,16,15,16,16,17,17,17,15,16,15,18,15,7,9,9,13,13,9,9,11,13,14,9,10,10,14,13,12,13,14,15,16,12,14,13,17,15,9,9,10,13,14,10,9,11,13,15,11,11,11,14,14,13,12,14,14,17,14,14,14,17,16,9,10,10,14,13,11,11,11,14,14,10,11,10,15,13,14,14,14,16,17,13,14,13,17,14,13,13,14,14,16,13,13,14,14,17,14,14,14,16,16,15,14,16,15,18,17,17,17,18,18,13,14,13,16,15,14,14,15,17,16,13,14,13,17,15,17,16,17,17,17,15,16,14,18,14,7,9,9,13,13,9,10,10,13,14,9,11,10,14,13,13,14,14,16,16,13,14,14,17,15,9,10,10,14,13,9,10,11,13,14,11,12,11,15,14,13,13,14,14,16,14,15,15,17,17,9,10,10,14,14,11,12,12,14,15,10,11,10,15,13,14,15,15,17,17],"i8",O3,_.GLOBAL_BASE+410577),C3([14,15,13,17,14,13,14,13,16,16,13,13,14,15,16,14,15,15,17,17,15,14,16,15,18,17,18,17,20,18,13,14,14,16,16,15,15,15,17,17,13,14,13,17,15,17,17,18,18,18,15,16,14,19,14,12,13,13,15,16,13,13,15,16,17,13,14,14,16,16,15,15,17,17,19,16,17,17,19,18,13,13,14,15,17,14,13,15,15,17,14,15,15,16,17,16,15,18,16,19,17,17,17,18,19,13,14,14,17,16,14,15,15,17,17,14,15,14,17,16,17,17,17,18,19,16,17,16,19,17,16,16,17,16,18,16,16,17,16,19,17,17,18,18,19,18,17,18,17,21,19,19,19,20,19,16,17,17,18,18,17,17,18,18,19,16,17,16,18,18,19,19,19,19,20,18,18,17,20,18,11,13,13,16,15,13,14,14,16,17,13,15,14,17,16,16,17,17,18,18,17,17,17,19,18,13,14,13,17,16,14,13,14,16,17,15,16,15,18,16,17,16,17,17,19,18,18,18,20,18,13,14,14,16,17,15,15,15,17,18,14,15,14,18,16,18,18,18,19,20,17,18,16,20,17,16,17,16,18,18,16,16,17,18,18,17,18,18,19,18,18,17,19,17,20,19,20,19,22,20,16,16,17,18,18,18,17,17,19,19,16,17,16,18,17,19,20,19,22,21,18,19,18,21,17,6,8,8,12,12,8,9,10,13,13,8,9,9,13,13,12,13,13,15,16,11,13,13,16,15,8,9,10,13,13,9,10,11,13,14,10,11,11,14,14,13,13,14,15,16,13,14,14,16,16,8,9,9,13,13,10,11,11,14,14,9,10,9,14,13,13,14,14,16,17,12,14,12,16,14,12,13,13,15,16,13,13,14,15,16,13,14,14,15,17,15,15,16,15,18,16,16,17,17,17,12,13,13,16,14,13,14,14,16,16,12,14,13,16,14,16,17,17,18,18,15,15,14,18,14,7,9,9,13,13,9,10,11,13,14,9,10,10,14,13,13,14,14,15,17,13,14,14,16,15,9,10,10,14,14,10,10,11,13,15,11,12,12,15,14,14,13,15,14,17,14,15,15,17,17,9,10,10,13,14,11,11,12,14,15,9,11,10,14,13,14,15,15,16,18,13,14,13,16,14,13,14,14,16,16,13,13,14,15,17,15,15,15,16,17,15,14,16,15,18,17,17,18,19,18,13,14,14,16,16,14,15,15,17,17,13,14,13,16,15,17,17,18,18,18,15,16,14,18,15,7,9,9,13,13,9,10,10,13,14,9,11,10,14,13,12,13,14,15,16,12,14,13,16,15,9,10,10,13,14,10,10,11,13,14,11,11,11,15,14,13,13,14,14,16,14,14,14,17,16,9,10,9,14,13,11,11,11,14,14,10,11,9,15,13,14,14,14,16,16,13,14,12,17,14,13,13,14,15,16,13,13,14,15,16,14,15,14,16,17,15,14,16,14,18,16,17,17,18,18,13,14,13,16,14,14,14,14,16,16,13,14,13,17,14,17,17,17,18,18,15,16,14,18,15,11,13,13,16,16,13,14,15,16,17,13,14,14,17,16,16,17,17,18,19,17,17,17,19,18,13,14,14,17,17,13,13,15,16,18,15,15,15,17,17,17,16,18,17,20,18,17,18,19,19,13,14,14,16,17,15,15,16,16,18,14,15,14,16,16,17,17,18,18,20,17,18,16,18,17,16,17,16,19,18,16,16,17,18,19,18,18,18,19,19,18,17,18,17,21,20,19,19,21,21,16,16,17,18,18,17,17,18,19,19,16,17,16,19,18,20,20,20,19,21,18,18,17,20,18,12,13,13,16,15,13,14,14,16,16,13,14,13,17,16,16,17,17,18,18,15,17,15,19,17,13,14,14,16,17,14,14,15,16,17,14,15,15,17,17,16,16,17,17,18,17,17,17,19,19,13,14,13,17,15,14,15,15,17,16,14,15,13,17,15,17,18,17,19,18,16,17,15,20,16,16,17,17,18,18,16,16,17,18,18,17,18,17,19,18,17,17,18,18,20,19,20,19,20,19,16,16,16,19,16,17,17,17,19,18,16,17,16,19,16,19,19,19,19,19,18,19,17,19,17,11,13,13,16,16,13,14,14,17,17,13,14,14,17,17,15,17,17,19,19,16,18,17,20,19,12,14,14,17,17,13,14,15,17,18,14,15,15,17,18,16,16,17,18,20,17,18,18,20,18,13,14,14,17,17,14,15,15,17,18,14,15,15,17,17,17,18,17,19,19,17,18,17,19,19,15,16,16,18,18,15,16,17,18,19,16,17,17,19,19,17,17,18,18,21,18,19,19,21,19,16,17,17,18,18,17,17,18,19,19,17,18,17,19,19,19,19,19,20,20,18,19,18,21,19,12,13,13,16,16,13,14,14,16,17,13,15,14,17,16,15,16,17,17,19,16,17,17,19,18,13,13,14,16,17,14,13,15,16,17,14,15,15,17,17,15,15,17,17,20,17,17,18,19,18,13,14,14,17,16,15,15,15,17,18,14,15,14,17,16,17,17,17,18,18,16,17,16,19,17,16,15,17,17,19,16,15,17,16,19,17,16,17,18,19,17,16,19,16,20,19,18,19,19,19,16,17,17,18,18,17,17,17,18,19,16,17,16,19,18,20,19,19,20,19,18,18,17,20,17,11,13,13,16,16,13,14,15,16,17,14,15,14,18,16,17,17,17,18,21,17,18,17,20,19,13,14,14,17,16,13,14,15,16,18,15,16,15,18,17,17,16,17,17,19,17,18,18,20,19,13,14,14,16,17,15,15,16,17,18,14,15,14,18,17,17,18,18,19,20,17,18,16,19,17,16,17,15,19,18,16,16,16,18,18,17,18,17,20,19,18,17,18,17,20,20,20,19,22,20,16,17,17,18,19,18,18,18,19,20,16,17,16,19,18,20,19,19,20,20,18,19,17,20,17,13,14,14,16,17,14,14,16,16,18,14,16,15,17,16,16,16,17,17,18,17,17,16,19,18,14,14,15,16,17,14,14,16,16,18,16,16,16,17,17,16,15,17,16,19,18,18,18,19,19,14,15,15,17,17,15,16,16,17,18,14,16,14,18,16,17,17,18,18,19,16,17,16,19,17,16,16,17,16,18,16,16,17,16,19,18,18,18,17,18,17,16,18,16,20,19,19,19,19,19,16,17,17,18,18,17,17,18,19,19,16,17,16,19,17,18,19,19,19,20,17,18,16,20,16,11,14,13,17,17,14,14,16,16,18,14,16,14,19,16,18,18,19,18,19,18,19,18,21,18,13,15,14,18,16,14,14,16,16,18,16,17,16,19,17,18,16,19,17,20,19,19,19,21,19,13,14,15,17,18,17,16,17,17,19,14,16,14,18,16,20,19,19,20,21,18,19,16,21,17,17,18,16,19,17,16,16,17,18,18,19,19,18,21,18,17,17,18,17,20,20,20,20,22,20,17,17,18,18,20,19,19,19,18,20,16,17,17,19,19,21,21,21,20,21,17,19,17,23,17,11,13,13,16,16,13,14,14,17,17,13,14,14,17,17,16,17,17,19,20,15,16,16,19,19,13,14,14,16,17,14,15,15,17,18,14,15,15,17,17,17,17,18,19,19,17,17,18,19,19,13,14,14,17,16,14,15,15,17,17,13,15,14,18,17,17,18,18,19,20,16,17,16,19,18,16,16,17,18,18,17,17,17,18,19,17,18,17,19,19,19,19,19,19,20,19,20,19,20,20,15,16,16,18,17,16,17,17,20,18,15,16,16,19,17,19,19,19,20,20,17,18,17,21,17,11,13,13,16,16,13,14,15,16,17,13,15,14,17,16,17,17,18,18,20,17,17,17,19,19,13,14,14,17,17,14,14,15,17,18,15,15,15,18,17,17,17,18,17,20,18,18,17,20,18,13,14,14,16,17,15,15,16,17,18,14,15,13,17,17,17,18,18,19,20,17,17,16,19,17,16,17,17,18,18,16,16,17,18,18,18,18,18,19,19,18,17,19,18,21,19,20,20,20,20,16,15,17,18,18,17,17,18,18,20,16,16,16,18,17,20,19,20,21,22,17,18,17,20,17,12,13,13,16,16,13,14,15,16,17,13,14,14,17,16,16,17,18,18,19,15,16,16,19,18,13,14,14,16,17,14,14,15,16,17,14,15,15,17,17,16,16,17,17,19,17,17,17,19,18,13,14,13,17,16,14,15,15,17,17,13,15,13,17,16,17,17,17,19,19,15,17,15,19,17,16,17,17,18,18,16,16,17,17,19,17,18,17,19,19,18,17,19,17,19,19,19,19,20,19,15,17,15,19,16,17,17,16,19,18,16,17,15,18,16,19,19,19,20,19,17,19,16,19,16,11,14,14,17,17,15,14,16,16,18,15,16,14,18,16,18,18,19,18,21,18,19,18,20,18,13,15,14,18,17,14,14,16,16,18,16,17,16,19,17,17,17,19,17,22,19,19,19,21,19,13,14,15,17,18,17,16,17,17,19,14,16,14,18,16,19,19,19,20,21,18,18,16,20,17,17,18,16,19,18,15,17,17,19,19,19,19,18,21,19,18,17,20,17,21,22,21,20,21,21,17,16,19,18,20,19,18,19,18,20,16,17,16,19,18,21,20,21,19,23,18,19,16,20,17,13,14,14,17,16,14,14,15,16,18,14,16,14,17,16,16,16,17,17,19,16,17,16,19,17,14,15,15,17,17,14,14,16,16,17,15,16,16,18,17,16,16,17,17,19,17,18,17,19,18,14,15,14,17,16,16,16,16,17,17,14,16,14,17,16,18,18,18,18,19,16,17,15,19,16,17,17,17,18,18,16,15,17,17,18,18,18,18,19,19,17,16,18,16,19,19,19,19,19,19,16,17,16,19,16,18,18,17,19,18,16,17,16,19,16,19,19,20,19,19,17,18,16,20,16,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,6,8,8,10,10,8,9,9,10,11,8,10,9,11,10,9,10,10,11,11,9,10,10,11,11,8,9,9,10,10,9,9,10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11,11,11,8,9,9,11,10,10,10,10,11,11,9,10,9,11,11,10,11,11,11,11,10,11,10,11,11,10,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,9,10,11,11,10,10,11,11,11,10,10,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,11,11,11,10,10,11,11,12,11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10,10,10,11,11,11,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,8,10,9,11,11,10,10,10,11,11,10,11,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11,10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,11,10,11,11,11,11,11,12,12,10,11,10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,11,12,11,11,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,12,12,13,12,10,11,11,12,11,11,11,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13,12,8,10,10,11,11,10,10,11,11,11,10,11,10,11,11,10,11,11,12,12,10,11,11,12,12,9,10,11,11,11,10,10,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12,12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,13,12,13,12,12,13,13,13,13,12,13,13,13,13,8,10,10,11,11,10,10,11,11,11,9,11,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,11,11,11,10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,9,11,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,12,13,12,12,13,12,13,12,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,12,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,12,13,13,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12,12,13,12,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12,13,12,13,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,12,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,13,12,13,12,12,13,13,13,13,12,13,12,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,5,7,8,5,8,7,5,7,7,7,7,9,7,9,9,5,7,7,8,9,9,7,9,7,6,8,8,8,9,10,8,9,9,8,9,10,9,9,11,10,11,11,8,9,9,10,11,11,9,11,10,6,8,8,8,9,9,8,10,9,8,9,9,9,10,11,10,11,10,8,10,9,10,11,11,9,11,9,6,8,8,7,9,9,8,10,9,7,9,9,9,9,10,9,10,10,8,9,9,9,10,10,9,11,10,7,9,9,8,10,10,9,10,10,9,9,10,10,10,11,10,11,11,9,10,10,10,11,11,10,11,10,7,9,9,9,9,10,9,10,9,8,10,9,9,9,11,10,11,11,9,10,10,10,11,11,9,11,9,6,8,8,8,9,10,7,9,9,8,9,9,9,10,10,9,10,10,7,9,9,9,10,10,9,10,9,7,9,9,9,9,10,9,10,9,9,10,10,9,9,11,10,11,11,8,9,10,10,11,11,9,11,9,7,9,9,9,10,10,8,10,10,9,10,10,10,10,11,10,11,11,9,10,9,10,11,11,10,11,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,7,7,6,7,7,6,7,7,6,7,7,7,8,8,7,8,8,6,7,7,7,8,8,7,8,8,7,7,8,7,8,8,7,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,7,7,8,8,7,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,6,8,8,7,8,8,7,8,8,7,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,9,8,9,9,8,8,9,8,9,9,9,9,9,8,9,9,9,9,9,9,9,9,7,8,8,8,9,9,8,9,8,8,8,8,8,9,9,9,9,9,8,9,8,9,9,9,9,9,9,6,8,8,7,8,8,7,8,8,8,8,8,8,8,9,8,9,9,7,8,8,8,9,9,8,9,8,7,8,8,8,8,9,8,9,8,8,8,9,9,9,9,9,9,9,8,8,8,9,9,9,8,9,9,7,8,8,8,9,9,8,9,8,8,9,9,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,5,5,7,8,5,8,7,5,7,8,8,8,10,8,10,10,5,8,7,8,10,10,8,10,8,6,8,9,8,10,12,9,11,11,9,10,11,11,11,13,12,13,13,9,11,11,11,13,13,11,13,12,6,9,8,9,11,11,8,12,10,9,11,11,11,12,13,11,13,13,9,11,10,11,13,13,11,13,11,5,9,9,8,11,11,9,12,11,8,10,11,10,11,13,11,13,13,9,11,11,11,13,13,11,13,12,8,10,11,10,12,13,10,13,12,10,10,13,11,11,14,12,13,14,11,13,12,13,14,14,12,14,12,8,11,10,11,12,13,11,14,12,10,13,12,12,12,13,13,15,14,11,12,13,13,14,15,12,14,12,5,9,9,9,11,12,8,11,11,9,11,11,11,12,13,11,13,13,8,11,10,11,13,13,10,13,11,8,10,11,11,12,14,11,13,12,11,13,12,12,12,14,13,15,14,10,12,13,13,14,15,12,13,12,8,11,10,10,12,13,10,13,12,11,12,13,12,12,14,13,14,14,10,13,10,12,14,13,11,14,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,9,9,6,7,8,10,10,6,8,7,10,10,8,10,10,12,13,8,10,10,13,12,6,8,8,10,10,7,8,9,10,11,8,9,9,11,11,10,10,11,12,13,10,11,11,14,13,6,8,8,10,10,8,9,9,11,11,7,9,8,11,10,10,11,11,13,14,10,11,10,13,12,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13,14,13,15,14,9,10,10,13,12,10,11,11,13,13,10,11,10,13,12,13,13,14,14,15,12,13,12,15,12,6,8,8,10,11,8,9,10,11,12,8,9,9,11,11,10,11,12,13,14,10,11,11,14,13,8,9,9,11,12,9,10,11,12,13,9,10,11,12,13,11,11,13,13,15,11,12,12,14,14,8,9,9,12,12,9,10,11,12,13,9,10,10,13,12,11,12,13,14,15,11,12,12,14,14,11,11,12,13,14,11,12,13,13,15,12,13,13,14,15,13,13,14,14,16,14,15,15,16,16,11,12,11,14,13,12,13,13,14,14,11,13,12,14,13,14,15,15,16,16,13,14,14,16,14,6,8,8,11,10,8,9,9,12,11,8,10,9,12,11,10,11,11,13,13,10,12,11,14,13,8,9,9,12,12,9,10,10,12,13,9,11,10,13,12,11,12,12,14,14,11,13,12,15,14,8,9,9,12,11,9,10,10,13,12,9,11,10,13,12,12,12,12,14,14,11,13,12,15,13,11,11,12,13,14,11,12,13,13,14,12,13,13,14,15,13,13,14,14,16,14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15,16,16,13,15,13,16,14,9,10,11,12,13,11,11,12,13,14,11,12,12,13,14,13,13,14,14,16,13,14,14,15,16,11,11,12,13,14,12,12,13,14,15,12,13,13,14,15,14,14,15,15,17,14,15,15,16,17,11,12,12,14,14,12,13,13,14,15,12,13,12,15,15,14,15,15,16,17,14,15,15,16,16,13,14,14,15,16,14,14,15,15,17,15,15,15,16,17,16,16,17,16,18,16,17,17,18,18,13,14,14,16,15,14,15,15,17,16,14,15,15,16,16,16,17,17,18,18,16,16,16,17,16,9,11,10,13,12,11,12,12,14,13,11,12,11,15,13,13,14,14,16,15,13,14,13,17,14,11,12,12,14,14,12,12,13,15,15,12,13,13,15,14,14,14,15,16,16,14,15,15,17,16,11,12,11,14,13,12,13,13,15,14,12,13,12,15,13,14,15,15,16,16,14,15,14,17,15,13,14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16,16,17,17,16,17,17,18,18,13,15,14,16,15,15,15,15,17,16,14,15,14,17,15,16,17,17,18,18,16,17,16,18,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,11,13,14,10,12,11,14,13,7,9,9,11,12,9,10,10,12,13,9,10,10,13,12,11,11,12,13,15,11,12,12,15,14,8,9,9,12,11,9,10,10,13,13,9,11,10,13,12,12,12,12,14,15,11,13,12,15,13,10,11,11,13,14,11,12,12,13,15,11,12,12,14,14,13,13,14,14,16,14,15,14,16,16,11,12,11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15,16,16,13,14,14,16,14,8,9,9,11,12,9,10,11,12,13,9,10,10,13,12,11,12,13,14,15,11,12,12,15,14,9,9,11,11,13,10,10,12,12,14,10,10,11,13,14,12,12,13,14,16,12,13,13,15,15,9,11,10,13,12,10,11,11,13,14,10,12,11,14,13,12,13,13,15,16,12,13,13,15,15,11,11,13,13,15,12,12,14,13,15,13,13,14,14,15,14,14,15,14,17,15,15,15,16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,15,14,15,15,15,17,17,14,15,14,17,15,7,9,9,12,11,9,10,10,12,12,9,11,10,13,12,11,12,12,14,14,11,13,12,15,14,9,10,10,12,12,10,10,11,12,13,10,11,11,14,13,12,12,13,14,15,12,13,13,16,15,9,10,10,13,12,10,11,11,13,13,10,11,10,14,12,13,13,13,15,15,12,13,12,15,14,11,12,12,14,14,12,12,13,14,15,13,14,13,15,15,14,13,15,14,16,15,16,15,17,16,12,12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15,16,16,17,14,15,14,17,14,10,11,12,13,14,11,12,13,14,15,11,12,13,14,15,13,14,15,15,17,14,15,15,16,16,11,12,13,12,15,12,12,14,13,16,13,13,14,13,16,14,14,16,14,18,15,15,16,16,17,12,13,12,15,15,13,14,14,15,16,13,14,13,16,15,15,15,16,17,18,15,15,15,17,16,14,14,15,14,17,15,14,16,14,17,15,15,16,15,18,16,16,17,16,19,17,17,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16,15,18,16,17,17,18,18,18,16,17,16,18,17,10,11,11,14,13,11,12,12,15,14,11,13,12,15,14,14,15,15,16,16,14,15,15,17,16,11,12,12,15,14,12,13,13,15,14,13,14,13,16,14,14,15,15,16,16,15,16,15,18,16,11,13,12,15,15,13,14,14,15,15,12,14,13,16,15,15,16,16,17,17,15,16,15,17,16,14,15,14,16,16,14,15,15,16,16,15,16,15,17,16,16,16,17,16,17,17,18,17,19,18,14,15,15,17,16,15,16,16,17,17,15,15,15,18,16,17,18,18,18,18,16,17,16,19,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,12,13,14,10,11,11,14,13,8,9,9,11,12,9,10,11,12,13,9,10,10,13,13,11,12,13,13,15,11,12,12,15,14,7,9,9,12,11,9,10,10,12,13,9,10,10,13,12,11,12,12,14,15,11,12,11,14,13,11,11,12,13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14,16,14,15,15,16,16,10,11,11,14,13,11,12,12,14,14,11,12,12,15,13,14,14,14,16,16,13,14,13,16,14,7,9,9,11,12,9,10,10,12,13,9,10,10,12,12,11,12,13,14,15,11,12,12,14,14,9,10,10,12,13,10,10,11,12,14,10,11,11,13,13,12,12,13,14,15,13,13,13,15,15,9,10,10,12,12,10,11,11,13,14,10,11,10,13,12,12,13,13,15,16,12,13,12,15,14,11,12,13,14,14,12,12,13,14,15,13,14,13,15,15,14,14,15,14,17,15,16,15,17,16,11,12,12,14,14,13,13,13,15,15,12,13,12,15,14,15,15,15,16,17,14,15,14,16,14,8,9,9,12,11,9,10,10,12,13,9,11,10,13,12,11,12,12,14,15,11,12,12,15,14,9,10,11,13,13,10,11,12,13,14,10,11,11,14,13,12,13,13,15,15,12,13,13,16,15,9,11,9,13,11,10,11,10,14,13,10,12,10,14,12,12,13,13,15,15,12,13,12,16,14,12,12,13,14,15,12,13,14,14,16,13,14,14,15,15,14,14,15,15,17,15,16,15,17,16,11,13,11,15,13,13,14,13,15,14,12,14,12,16,13,15,15,15,16,16,14,15,14,17,14,10,11,11,13,14,11,12,13,14,15,11,12,12,14,15,14,14,15,16,17,14,15,15,16,16,11,12,13,14,15,12,13,14,15,16,13,14,14,15,16,15,15,16,16,18,15,16,16,17,17,11,12,12,14,15,13,13,14,14,16,12,13,13,15,15,15,15,16,16,18,14,15,15,16,16,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,16,19,17,18,17,18,18,14,14,15,16,16,15,15,16,16,17,14,15,15,16,16,17,17,18,18,19,16,17,16,17,16,10,12,11,14,13,11,13,12,15,14,11,13,12,15,14,14,15,15,16,16,13,15,14,17,15,12,13,13,15,15,13,13,14,15,16,13,14,14,16,16,14,15,15,17,17,15,16,16,17,17,11,13,12,15,12,13,14,13,16,13,12,14,12,16,13,15,16,15,17,16,14,16,14,18,14,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,17,18,17,18,17,18,18,14,15,14,17,14,15,16,15,18,15,15,16,15,18,14,17,17,17,18,17,16,17,16,19,16,9,11,11,13,13,10,12,12,14,14,11,12,12,15,14,13,14,14,16,16,13,14,14,16,16,10,11,12,14,14,11,12,13,14,15,12,13,13,15,15,13,14,15,16,16,14,15,15,17,16,11,12,12,15,14,12,13,13,15,15,12,13,12,15,15,14,15,15,16,17,14,15,14,17,16,12,13,14,15,16,13,13,14,15,16,13,14,15,16,16,14,15,16,16,18,15,16,16,18,18,13,14,14,16,15,14,15,15,17,16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17,10,12,12,14,14,11,12,13,15,15,12,13,13,15,15,13,14,15,16,17,14,15,15,17,16,11,11,13,14,15,12,12,14,15,16,13,13,14,15,16,14,14,15,16,17,15,15,16,17,17,12,13,12,15,15,13,14,14,16,16,13,14,13,16,15,15,16,15,17,17,15,16,15,18,16,13,12,15,14,17,14,13,16,14,17,14,14,16,15,18,15,14,17,16,18,16,16,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16,15,18,16,17,17,17,18,18,16,17,16,19,17,10,11,11,14,14,11,12,12,15,15,11,13,12,15,15,14,15,14,16,16,14,15,15,17,16,11,12,12,15,14,12,12,13,15,15,13,14,13,16,15,14,15,15,16,16,15,16,15,18,17,11,13,12,15,15,13,14,13,15,15,12,14,13,16,15,15,16,15,17,17,15,16,15,18,16,13,14,13,16,16,14,15,14,16,16,14,15,15,17,16,16,16,16,16,18,16,18,17,19,18,14,15,15,17,16,15,16,16,17,17,15,15,15,17,16,17,17,18,18,19,16,17,16,18,16,12,13,13,15,16,13,14,14,16,17,13,14,14,16,16,15,15,16,17,18,15,16,16,18,17,13,13,14,14,17,14,14,15,15,17,14,14,15,16,17,15,15,17,16,18,16,17,17,18,18,13,14,14,17,16,14,15,15,17,17,14,15,14,17,16,16,17,17,18,18,16,17,16,18,17,15,14,16,13,18,16,15,17,14,19,16,16,17,15,18,17,16,18,15,19,18,18,18,17,19,15,16,16,18,17,16,17,17,18,18,16,17,16,19,17,18,19,18,19,19,17,18,17,20,18,11,12,12,15,15,13,13,14,15,16,13,14,13,16,15,15,16,16,17,17,15,16,16,18,17,12,14,13,16,15,13,13,14,15,16,14,15,14,17,16,16,16,16,16,17,16,17,17,19,17,12,13,14,16,16,14,15,15,16,17,13,15,13,17,15,16,17,17,18,18,16,17,16,18,16,15,16,15,17,16,15,15,15,17,17,16,17,16,18,17,17,16,17,16,18,18,19,18,20,18,15,16,16,17,17,16,17,17,18,18,15,16,15,18,17,18,18,19,19,19,17,18,16,19,16,9,11,11,13,13,11,12,12,14,15,10,12,12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14,14,12,12,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,16,16,10,12,11,14,14,12,13,13,15,15,11,13,12,15,14,14,15,15,16,17,13,15,14,17,16,13,14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16,17,17,18,16,17,17,18,18,12,14,13,16,15,13,15,14,17,16,13,14,13,17,15,15,16,16,18,18,15,16,15,18,16,10,11,11,14,14,11,12,13,14,15,11,12,12,15,15,14,15,15,16,17,14,15,15,16,16,11,12,13,15,15,12,13,14,15,16,13,14,14,15,16,15,15,16,16,18,15,15,16,17,17,11,12,12,14,15,13,13,14,15,16,12,13,13,15,15,15,15,16,17,18,14,15,15,17,16,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,16,19,17,17,18,19,18,13,13,14,16,16,14,15,16,17,17,14,14,15,16,16,16,16,17,18,18,16,16,16,18,16,10,12,12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15,16,17,13,15,14,17,16,12,13,13,15,15,13,13,14,15,16,13,14,14,16,16,15,15,16,17,18,15,15,16,17,17,11,13,12,15,14,13,14,13,16,15,12,14,12,16,14,15,16,15,17,17,14,16,14,17,16,14,15,15,16,17,15,15,16,16,18,15,16,16,17,17,16,17,17,17,19,17,17,17,18,18,13,15,12,17,14,14,16,14,17,15,14,15,13,17,14,16,17,16,18,17,15,17,14,19,15,11,12,12,15,15,13,13,14,15,16,13,14,13,16,15,15,16,16,17,18,15,16,16,17,17,12,14,13,16,16,13,13,15,15,17,14,15,15,17,16,16,16,17,16,19,16,17,17,18,18,12,13,14,15,16,14,14,15,16,17,13,14,13,16,15,16,17,17,18,19,15,16,16,17,16,15,16,16,18,17,15,15,16,17,18,16,17,17,18,18,16,16,18,16,19,18,19,19,20,19,15,15,16,16,17,16,16,17,17,18,15,15,15,17,16,18,18,19,18,20,17,17,16,18,16,12,13,13,16,15,13,14,14,16,16,13,14,14,16,16,15,16,16,17,18,15,16,15,18,17,13,14,14,16,16,14,15,15,16,17,14,15,15,17,17,16,17,17,18,18,16,17,17,18,18,13,14,13,17,14,14,15,14,17,16,14,15,14,17,15,16,17,17,18,18,15,17,15,19,15,16,16,16,17,18,16,16,17,17,19,16,17,17,18,19,17,17,18,18,20,18,18,18,19,19,15,16,14,18,13,16,17,16,19,15,16,17,15,19,14,18,18,18,19,17,17,18,16,20,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,5,7,7,5,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,5,7,8,8,9,10,8,9,9,8,9,10,9,10,12,10,11,11,8,9,10,10,11,11,9,11,11,5,8,7,8,9,9,8,10,9,8,10,9,9,11,11,10,11,11,8,10,9,10,11,11,9,12,10,5,8,8,7,9,10,8,10,9,7,9,9,9,10,11,9,11,11,8,10,10,10,11,11,10,12,11,7,9,9,9,10,11,9,11,11,9,9,11,10,10,13,11,11,12,9,11,11,11,12,13,11,13,12,7,9,9,9,11,11,9,12,10,9,11,10,10,11,12,11,13,12,9,11,11,11,13,13,11,13,11,5,8,8,8,9,10,7,10,9,8,10,10,10,11,11,10,11,11,7,9,9,9,11,11,9,11,10,7,9,9,9,10,12,9,11,11,9,11,11,11,11,13,11,13,13,9,10,11,11,12,13,10,12,11,7,9,9,9,11,11,9,11,10,9,11,11,11,12,13,11,13,12,9,11,9,11,12,11,10,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,8,13,15,16,18,21,22,5,4,6,8,10,12,17,21,9,5,5,6,8,11,15,19,11,6,5,5,6,7,12,14,14,8,7,5,4,4,9,11,16,11,9,7,4,3,7,10,22,15,14,12,8,7,9,11,21,16,15,12,9,5,6,8,2,0,0,0,64,0,0,0,8,198,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,150,6,0,0,0,0,0,0,0,0,0,248,150,6,0,0,0,0,0,0,0,0,0,32,151,6,0,72,151,6,0,0,0,0,0,0,0,0,0,112,151,6,0,152,151,6,0,0,0,0,0,0,0,0,0,192,151,6,0,232,151,6,0,0,0,0,0,0,0,0,0,16,152,6,0,56,152,6,0,232,151,6,0,0,0,0,0,96,152,6,0,136,152,6,0,232,147,6,0,16,148,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,144,150,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,136,150,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,147,6,0,152,147,6,0,0,0,0,0,0,0,0,0,192,147,6,0,232,147,6,0,16,148,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,160,149,6,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,80,150,6,0,0,0,0,0,2,0,0,0,25,0,0,0,104,149,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,149,6,0,0,0,0,0,2,0,0,0,9,0,0,0,72,149,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2],"i8",O3,_.GLOBAL_BASE+420817),C3([0,0,0,0,0,0,0,88,149,6,0,0,0,0,0,1,0,0,0,25,0,0,0,192,148,6,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,224,148,6,0,0,0,0,0,1,0,0,0,25,0,0,0,56,148,6,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,88,148,6,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,2,3,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,14,14,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,4,4,5,5,4,5,5,5,5,4,5,4,4,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,8,8,10,10,10,10,9,8,11,11,4,6,5,8,6,10,10,10,10,10,9,10,9,4,5,6,6,9,10,10,10,10,9,10,9,10,8,9,8,9,8,9,9,10,9,11,10,12,10,8,8,9,8,9,9,9,9,10,10,11,10,12,9,10,10,11,10,11,10,12,11,12,11,13,11,9,10,10,10,11,10,11,11,12,11,12,11,12,11,12,12,12,12,13,12,13,12,13,12,13,13,11,12,12,12,12,12,12,12,13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,12,13,13,13,14,14,13,13,13,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,3,7,12,14,14,16,18,19,6,2,4,6,8,9,12,14,12,3,3,5,7,8,11,13,13,6,4,5,7,8,10,11,14,8,7,7,7,7,9,10,15,9,8,7,7,6,8,9,17,11,11,10,9,8,9,9,19,14,13,11,10,9,9,9,5,0,0,0,243,0,0,0,0,197,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,248,197,6,0,0,0,0,0,5,0,0,0,53,12,0,0,176,184,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,196,6,0,0,0,0,0,5,0,0,0,243,0,0,0,168,183,6,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,160,184,6,0,0,0,0,0,5,0,0,0,243,0,0,0,160,182,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,152,183,6,0,0,0,0,0,5,0,0,0,243,0,0,0,152,181,6,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,144,182,6,0,0,0,0,0,5,0,0,0,53,12,0,0,72,169,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,128,181,6,0,0,0,0,0,5,0,0,0,53,12,0,0,248,156,6,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,48,169,6,0,0,0,0,0,1,0,0,0,7,0,0,0,208,156,6,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,216,156,6,0,0,0,0,0,5,0,0,0,243,0,0,0,200,155,6,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,192,156,6,0,0,0,0,0,5,0,0,0,243,0,0,0,192,154,6,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,184,155,6,0,0,0,0,0,5,0,0,0,243,0,0,0,184,153,6,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,176,154,6,0,0,0,0,0,5,0,0,0,243,0,0,0,176,152,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,168,153,6,0,0,0,0,0,1,7,7,6,9,9,7,9,9,6,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,5,7,8,5,8,7,6,7,7,7,7,8,8,8,8,6,7,7,7,8,8,7,8,7,6,8,8,8,9,10,8,9,9,8,9,9,9,9,10,10,10,10,8,9,9,10,10,10,9,10,10,6,8,8,8,9,9,8,10,9,9,9,9,9,9,10,10,10,10,8,9,9,10,10,10,9,10,9,6,8,9,8,9,9,8,9,9,8,9,9,9,9,10,9,10,10,8,9,9,9,10,10,9,10,9,7,8,9,8,9,9,9,9,9,8,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,7,9,9,9,10,10,9,10,10,9,10,9,9,9,10,10,10,10,9,10,9,10,10,10,9,10,9,6,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,10,10,8,9,9,9,10,10,9,10,9,7,9,9,9,10,10,9,10,9,9,9,10,10,9,10,10,10,10,9,9,9,10,10,10,9,10,9,7,9,8,8,9,9,8,9,9,9,9,9,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,5,5,7,9,5,9,7,5,7,8,7,7,10,9,9,10,5,8,7,9,10,9,7,10,7,6,9,9,9,10,12,10,12,11,9,10,11,11,10,13,12,12,13,10,11,11,12,13,13,11,13,11,6,9,9,10,11,12,9,12,11,10,11,11,11,11,13,12,13,13,9,11,10,12,13,13,11,13,10,6,9,10,9,11,12,10,12,11,9,10,11,10,10,13,11,13,13,10,11,11,12,13,12,11,13,11,7,9,10,9,10,12,10,11,11,10,10,11,10,10,12,12,11,12,10,11,10,12,12,12,10,12,10,7,10,10,11,11,13,11,13,11,10,12,11,11,10,13,13,14,13,10,11,12,13,13,14,11,13,10,6,10,9,10,11,12,9,12,11,9,11,11,11,11,13,12,12,13,9,11,10,12,13,13,10,13,10,7,10,10,11,11,14,11,13,11,10,12,11,11,10,14,13,14,13,10,11,12,13,13,14,11,13,10,7,10,9,10,10,12,9,12,10,10,11,11,10,10,12,12,12,12,9,11,10,11,12,12,10,12,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,1,6,6,10,10,6,7,9,11,13,5,9,7,13,11,8,11,12,13,15,8,12,11,15,13,6,7,8,11,11,7,8,10,11,13,9,10,10,13,13,11,11,13,12,16,12,13,13,16,15,6,8,7,11,11,9,10,10,13,13,7,10,7,13,11,12,13,13,15,16,11,13,11,16,12,10,11,11,11,13,11,11,13,12,15,13,13,13,14,15,13,12,15,12,17,15,16,16,16,16,10,11,11,14,11,13,13,13,15,14,11,13,11,15,12,15,15,16,16,16,13,15,12,17,12,6,8,9,12,12,9,10,12,13,15,9,11,11,15,14,12,13,15,16,18,13,14,14,17,16,9,10,11,13,14,11,10,13,14,16,11,12,12,15,15,14,13,16,15,18,14,15,15,17,17,9,11,11,14,14,11,12,13,15,16,11,13,11,15,14,15,15,15,17,18,14,15,14,17,15,13,14,14,15,16,14,14,15,15,17,15,16,15,17,17,16,16,17,15,19,17,18,18,19,18,13,14,14,16,15,15,15,16,17,17,14,15,14,18,15,17,17,17,19,19,16,17,15,19,16,6,9,8,13,12,9,11,11,14,15,9,12,10,15,13,13,14,14,16,17,12,15,13,18,16,9,11,11,14,14,11,11,13,14,15,11,13,12,16,15,14,14,15,15,18,14,15,15,18,17,9,11,10,14,13,11,12,12,15,15,11,13,10,16,14,14,15,15,16,18,14,16,13,18,15,13,14,14,16,16,14,14,15,15,17,15,16,15,17,17,16,16,17,16,19,17,18,17,18,19,13,14,14,16,15,15,15,15,17,17,14,15,14,17,15,17,17,17,18,19,16,17,15,19,15,11,13,13,15,16,13,14,15,16,18,14,15,15,17,17,16,16,18,18,20,17,18,17,19,20,13,14,14,16,17,15,15,16,17,18,15,16,16,17,17,18,17,19,18,19,18,18,18,19,21,14,14,15,16,17,15,15,16,18,18,15,16,16,17,18,18,18,19,19,21,18,19,19,22,20,16,16,17,17,19,17,17,17,18,20,17,18,18,20,19,19,19,20,19,0,19,19,20,20,21,17,17,17,19,18,18,18,20,19,19,18,18,18,20,20,19,19,20,20,20,20,21,20,21,19,11,13,13,16,15,14,15,15,17,17,14,15,14,18,16,16,18,18,20,19,16,19,17,21,18,13,14,15,16,17,15,15,16,18,18,15,16,15,19,18,18,18,18,19,19,18,18,18,22,20,13,14,14,16,16,15,16,16,18,17,15,16,15,18,17,18,18,18,19,19,17,18,17,21,18,16,17,17,18,18,17,18,19,19,19,18,20,18,19,19,19,20,21,19,21,20,20,20,0,21,16,17,17,19,19,18,18,18,19,21,17,18,18,19,18,20,19,21,20,21,19,20,20,22,19,7,9,9,13,13,8,10,11,14,15,9,12,11,15,14,11,13,14,16,17,13,15,14,17,16,8,10,11,14,14,10,10,12,14,16,11,12,12,16,15,13,12,15,15,18,14,15,15,19,17,9,11,11,14,14,11,12,12,15,15,11,13,11,16,14,14,15,14,17,17,14,16,14,18,15,12,13,14,15,16,13,13,15,14,17,15,15,15,17,17,15,14,17,14,19,17,18,18,19,18,13,14,14,16,16,15,15,15,17,17,14,15,14,18,15,17,18,17,18,17,16,18,16,19,15,7,10,10,13,13,9,10,12,14,15,10,12,11,15,14,12,13,14,16,17,13,15,14,18,16,10,10,12,13,14,10,10,13,13,16,12,12,13,15,15,13,12,15,15,18,15,15,16,18,17,10,11,11,14,14,12,13,13,15,16,10,13,10,16,14,14,15,15,17,17,14,15,13,17,15,13,13,14,15,16,14,13,15,14,18,15,15,16,16,17,16,15,18,15,18,17,18,18,18,18,13,15,14,17,16,15,16,16,17,17,14,15,13,17,15,17,17,18,18,18,16,17,14,20,14,8,10,10,14,14,11,11,13,14,16,11,13,11,16,14,14,15,16,16,18,14,16,15,18,16,10,12,11,15,14,11,11,13,14,16,13,14,13,16,15,15,14,16,15,19,16,17,16,20,18,10,11,12,14,15,13,13,14,16,16,11,14,11,16,14,16,16,17,18,19,15,17,14,20,15,14,15,14,17,16,13,14,15,15,18,16,17,16,19,18,16,15,18,15,19,18,19,18,21,21,14,14,15,16,17,16,16,17,18,18,13,15,14,17,15,18,18,19,18,22,16,18,15,21,15,12,13,14,16,16,14,14,16,16,18,14,15,15,17,18,16,16,18,18,20,18,18,17,20,20,13,14,15,15,17,15,14,16,16,18,16,16,16,17,19,17,15,18,17,21,18,18,18,19,19,14,15,15,18,17,15,16,16,18,19,15,16,15,18,18,17,18,18,20,21,17,19,17,20,19,16,16,17,16,19,17,17,18,17,20,18,18,18,18,19,19,18,20,17,22,20,20,19,20,20,17,17,18,18,19,18,18,20,21,20,17,18,17,20,20,21,21,21,21,21,19,21,18,22,20,11,13,13,17,16,14,14,16,16,18,14,16,14,18,16,17,18,19,19,20,18,19,18,21,19,14,15,14,17,16,14,14,16,18,18,16,17,16,18,17,18,17,19,18,20,19,19,18,20,20,13,14,15,16,17,16,16,17,18,19,14,16,14,19,17,18,19,18,20,20,18,20,17,21,18,17,17,17,19,18,16,17,18,18,19,18,19,18,21,21,18,18,20,17,21,19,20,20,22,21,16,17,18,18,19,18,18,19,21,20,16,17,17,20,18,21,21,22,21,22,18,21,18,0,18,7,9,9,13,13,9,11,12,14,15,8,11,10,15,14,13,14,15,16,18,11,14,13,17,15,9,11,11,14,14,11,11,13,14,16,11,12,12,15,15,14,14,16,15,18,14,14,15,17,17,8,11,10,14,14,11,12,12,15,15,10,12,10,16,14,14,15,15,17,18,13,15,12,18,15,13,14,14,16,16,14,14,15,15,17,15,15,15,16,17,16,15,17,15,19,17,17,17,18,18,12,14,13,16,15,15,15,15,17,17,13,15,13,17,14,17,18,18,18,19,15,17,14,19,14,8,10,10,14,14,11,11,13,14,16,11,13,11,16,14,14,15,16,17,19,14,16,15,18,17,10,12,11,15,14,11,11,14,14,17,13,14,13,17,15,15,14,17,15,19,16,17,16,19,17,10,11,12,14,15,13,13,14,15,17,11,13,11,17,14,16,16,17,18,19,15,16,14,18,15,14,15,14,16,16,13,14,15,15,18,16,16,16,18,18,16,15,18,15,20,18,19,18,21,18,14,14,15,16,17,16,16,17,17,18,13,15,14,17,16,19,19,19,19,19,15,18,15,20,15,7,10,10,13,13,10,11,12,14,15,9,12,10,15,14,13,14,15,16,17,12,15,13,17,16,10,11,11,14,14,10,10,13,14,16,12,13,13,16,15,14,13,16,15,18,15,15,16,17,17,10,12,10,14,13,12,13,12,15,15,10,13,10,16,13,15,16,15,17,18,13,16,12,18,15,13,14,14,16,17,14,13,15,15,18,15,16,15,17,17,16,14,17,15,19,17,18,18,19,19,13,15,13,17,14,15,15,15,18,17,14,15,13,17,14,18,17,18,18,19,15,17,15,19,15,11,13,13,16,17,14,14,16,16,18,14,16,15,18,17,17,18,19,18,21,18,18,17,20,18,13,15,14,17,16,14,14,16,17,18,16,17,16,19,17,18,17,19,18,22,18,19,19,21,21,13,14,15,16,18,16,16,17,17,20,14,16,14,18,17,18,18,19,19,21,17,18,17,21,18,17,18,17,19,18,16,17,17,18,19,18,18,18,22,22,18,17,19,17,0,20,21,19,21,20,17,17,18,18,21,18,18,18,19,21,17,17,17,19,19,20,20,22,21,21,19,20,18,20,17,12,14,13,17,16,14,15,15,17,18,14,16,14,18,16,17,18,18,21,20,16,18,16,21,18,14,15,15,17,17,15,15,16,18,18,15,17,16,18,18,17,17,19,19,20,18,19,18,20,19,14,15,14,17,15,15,16,16,18,17,15,16,14,19,15,18,18,18,19,20,17,20,15,21,17,16,17,18,18,19,17,17,18,18,20,18,19,18,19,21,19,18,19,19,21,20,0,19,21,20,16,17,16,19,16,18,18,18,19,19,17,18,17,20,17,19,20,20,22,0,19,20,17,21,17,11,13,14,16,17,14,15,15,17,18,14,15,15,18,18,16,17,17,19,20,16,18,17,19,21,13,14,15,17,17,14,15,16,17,19,15,16,16,18,19,16,17,18,19,21,17,18,20,21,21,13,15,15,17,17,15,16,16,18,19,15,16,16,18,19,17,17,18,19,22,17,19,18,22,19,15,16,17,19,19,16,17,18,18,20,17,18,18,19,20,19,18,20,18,22,20,19,19,22,21,16,17,17,18,19,18,18,18,19,20,17,18,18,20,19,20,19,20,22,20,19,20,21,21,20,12,14,14,16,16,13,14,16,17,18,14,16,15,18,18,15,17,17,19,19,17,18,18,19,19,13,14,15,16,17,14,14,16,16,20,15,16,16,17,19,16,15,18,17,20,18,17,19,19,19,14,15,15,17,17,16,16,16,18,18,15,16,15,19,18,17,18,18,20,21,17,18,17,21,18,16,15,17,17,19,17,15,18,17,20,19,17,18,19,20,18,16,19,17,22,20,19,20,19,20,17,17,18,19,19,18,18,19,20,20,17,18,17,18,18,21,21,20,20,21,18,20,17,21,19,11,14,14,16,17,15,14,16,17,19,14,16,14,18,17,18,18,19,19,21,17,19,18,20,20,13,15,14,17,17,14,14,16,17,18,16,17,16,19,18,18,17,19,18,20,18,21,18,20,20,13,15,15,16,17,16,16,17,18,19,14,16,15,19,18,19,19,19,21,20,18,19,17,20,18,16,17,16,19,18,16,17,17,19,20,17,19,18,20,19,18,17,21,18,0,21,20,20,0,20,17,17,18,18,19,18,19,19,20,22,16,17,17,20,18,21,22,20,20,22,18,22,18,22,18,12,14,14,17,17,14,15,16,17,19,14,16,15,17,17,17,17,18,18,21,17,19,17,20,19,14,15,15,16,18,15,14,16,16,19,16,17,16,19,18,17,16,20,17,20,18,20,19,19,20,14,15,15,18,17,16,16,17,18,19,14,16,15,19,17,18,21,18,19,21,17,18,17,19,18,17,17,18,17,20,17,16,18,17,21,18,19,19,19,19,18,17,19,17,20,20,21,20,21,20,17,17,17,19,19,19,18,18,20,21,16,18,16,19,18,20,20,21,21,20,18,19,16,0,17,12,14,14,17,17,15,15,18,17,19,15,18,15,20,16,20,19,21,18,22,20,20,20,22,19,14,16,14,20,17,14,15,17,17,20,18,18,17,20,18,18,17,19,17,21,20,21,20,0,21,14,15,16,17,19,18,17,19,18,21,14,18,15,21,17,21,20,21,20,0,18,21,17,21,17,18,19,17,20,18,16,17,17,19,19,19,21,20,0,20,18,17,21,17,0,22,0,21,0,22,17,17,19,18,20,20,20,21,19,22,16,17,18,20,18,22,22,0,22,0,17,21,17,22,17,11,14,13,16,16,14,15,15,17,18,14,15,14,18,17,17,18,18,19,20,16,17,17,21,19,13,14,15,17,17,15,16,16,18,18,15,16,16,19,18,18,18,18,19,20,17,18,18,20,19,13,15,14,17,17,15,16,16,17,18,14,16,15,19,17,17,18,19,21,21,17,18,17,20,18,16,17,17,19,19,17,18,19,19,20,18,19,18,21,21,21,20,19,21,22,20,20,19,21,20,15,17,16,19,19,17,18,18,20,21,16,18,17,20,18,19,19,21,21,21,19,19,19,20,18,11,14,13,17,16,14,14,16,16,19,14,16,15,19,16,18,18,18,19,22,17,18,17,20,19,13,15,14,17,17,15,15,16,17,19,16,17,16,20,18,18,17,19,18,21,19,19,18,22,0,13,14,15,17,18,16,16,17,17,19,14,16,15,19,18,18,19,19,20,21,18,18,17,20,18,17,18,17,20,18,16,17,17,18,20,18,19,18,20,20,18,18,21,17,21,20,21,21,0,19,16,16,18,18,19,19,18,20,19,20,16,17,17,20,18,21,20,21,22,22,18,20,17,21,17,12,14,14,17,16,14,15,16,18,18,13,15,14,18,17,17,18,18,19,19,15,17,16,19,19,14,15,15,17,17,15,15,16,18,19,15,16,16,19,18,17,17,18,18,20,18,18,18,21,20,13,15,14,17,16,15,16,15,18,18,14,16,14,18,17,18,18,18,19,21,16,18,16,20,17,17,18,17,18,19,17,17,18,18,19,18,19,19,21,19,19,18,20,18,21,21,20,20,21,20,16,17,15,20,17,17,19,17,19,19,17,18,15,20,17,19,20,19,21,22,17,20,16,0,17,12,14,14,17,18,16,15,18,16,20,16,18,15,21,17,20,18,21,19,22,19,21,19,0,19,14,16,15,19,17,14,15,17,16,21,18,19,18,21,17,19,17,21,17,22,20,21,21,0,21,14,15,16,17,19,18,17,19,18,21,14,17,15,20,17,21,22,21,20,22,18,21,17,21,17,17,19,17,21,18,16,17,17,19,20,19,21,20,21,20,17,18,20,17,21,0,22,20,21,22,17,17,20,18,21,21,20,22,20,21,16,17,17,21,19,0,22,0,21,21,18,22,17,21,17,12,14,14,17,16,14,15,16,17,18,14,16,15,18,17,17,17,20,19,20,16,18,17,21,18,14,15,15,17,17,14,15,16,17,19,16,17,16,18,18,17,16,19,18,19,18,19,18,21,20,14,15,15,18,17,16,16,16,19,18,15,16,14,20,16,18,18,19,19,20,16,19,16,21,17,17,17,18,19,19,16,16,18,18,19,19,19,18,20,20,18,16,19,18,20,22,21,20,19,20,16,18,17,20,16,18,19,18,19,18,16,18,16,20,17,21,20,21,20,20,18,19,17,21,16,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,5,7,7,10,10,7,8,9,10,11,7,9,8,11,10,9,10,10,11,11,9,10,10,11,11,7,9,9,10,10,8,9,10,10,11,9,10,10,11,11,10,10,11,11,11,10,11,11,12,12,7,9,9,10,10,9,10,10,11,11,8,10,9,11,10,10,11,11,11,11,10,11,10,11,11,10,10,10,11,11,10,10,11,11,11,11,11,11,11,11,11,11,12,11,12,11,12,11,12,12,10,10,10,11,11,10,11,11,11,11,10,11,10,11,11,11,12,11,12,12,11,12,11,12,11,8,9,9,11,11,9,10,10,11,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,9,10,10,11,11,10,10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,8,9,9,11,11,9,10,10,11,11,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,9,10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,10,12,11,11,12,12,12,12,11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,13,12,12,12,12,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,9,9,11,11,9,10,10,11,11,9,10,10,12,11,10,11,11,12,12,10,11,11,12,12,9,10,10,11,11,10,10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,10,11,11,12,11,11,12,12,12,11,11,12,12,12,11,11,12,12,13,12,12,12,12,12,10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,8,10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11,12,12,12,12,10,11,10,12,12,10,10,11,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,10,11,11,12,12,11,12,12,12,12,10,12,11,12,12,12,12,12,13,13,12,13,12,13,12,11,12,12,12,12,11,12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,13,11,12,12,12,12,12,12,12,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13,11,12,12,12,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,12,12,13,12,12,13,12,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,9,9,11,11,9,10,10,11,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,9,10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,8,10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,12,12,10,11,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,10,10,11,12,12,11,12,12,12,12,10,11,10,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,11,12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,11,12,12,13,12,12,13,13,13,13,12,13,12,13,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,13,12,12,12,13,12,10,11,10,12,11,11,12,11,12,12,11,12,11,12,12,12,12,12,12,12,12,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13,11,12,11,12,12,12,12,12,13,12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,12,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,12,13,13,13,12,13,13,13,13,11,12,12,12,13,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,11,12,12,12,12,12,12,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,13,13,13,12,13,12,13,13,11,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,13,12,13,13,12,12,12,13,12,13,13,13,13,13,12,13,12,13,13,12,12,12,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,11,12,12,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,13,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,13,13,13,13,12,13,12,13,13,11,12,12,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,11,12,12,13,12,12,13,12,13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,13,12,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13,13,13,13,13,13,13,11,12,12,12,12,12,13,12,13,13,12,13,12,13,13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,11,12,12,12,12,12,13,13,11,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,12,13,13,13,12,13,13,13,13,11,12,12,13,13,12,12,13,13,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,11,12,12,13,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13,13,13,13,13,13,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,12,11,12,12,11,12,12,12,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,13,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13,13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,13,13,13,12,13,13,13,13,12,12,13,13,13,13,13,13,13,13,11,12,12,12,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,13,13,13,13,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13,13,13,13,13,12,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,5,7,9,5,9,7,5,7,8,7,7,10,9,10,10,5,8,7,9,10,10,7,10,7,6,8,9,9,10,12,9,11,11,9,10,11,11,11,13,12,13,13,9,11,11,11,12,13,11,13,11,6,9,8,9,11,11,9,12,10,9,11,11,11,11,13,11,13,12,9,11,10,12,13,13,11,13,11,6,9,9,8,10,11,9,12,11,9,10,11,10,10,12,11,13,13,9,11,11,11,13,12,11,13,11,8,10,10,9,10,12,10,12,11,10,10,12,10,10,13,12,13,13,10,12,11,12,13,13,10,13,10,7,10,10,11,11,13,11,14,11,10,12,11,11,11,13,13,14,13,10,12,12,14,14,14,11,14,11,6,9,9,9,11,12,8,11,10,9,11,11,11,11,13,11,12,13,8,11,10,11,13,13,10,12,10,7,10,10,11,11,14,11,13,11,10,12,12,11,11,14,14,14,14,10,11,12,13,13,14,11,13,11,8,10,10,10,11,12,9,12,10,10,11,12,11,10,13,12,13,13,10,12,10,12,13,13,11,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,6,6,6,7,7,6,7,7,6,7,7,7,7,8,7,8,8,6,7,7,7,8,8,7,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,9,7,8,7,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,8,6,8,8,7,8,8,7,8,8,7,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,9,9,8,9,9,8,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,7,8,8,8,8,9,8,9,8,8,8,8,8,9,9,9,9,9,8,9,8,9,9,9,8,9,9,6,8,8,7,8,8,7,8,8,8,8,8,8,8,9,8,9,9,7,8,8,8,9,9,8,9,8,7,8,8,8,8,9,8,9,8,8,8,9,8,9,9,9,9,9,8,8,8,9,9,9,8,9,9,7,8,8,8,9,9,8,9,9,8,9,9,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,6,5,7,8,5,8,7,5,7,8,7,8,10,8,10,10,5,8,7,8,10,10,7,10,8,6,8,9,8,10,11,9,10,10,9,10,11,10,11,12,11,12,12,9,11,10,11,12,12,10,12,11,6,9,8,9,10,10,8,11,10,9,10,11,10,11,12,11,12,12,9,11,10,11,12,12,10,12,11,6,9,9,8,10,11,9,11,10,8,10,10,10,10,12,11,12,12,9,11,10,11,12,12,10,12,11,8,10,10,10,11,12,10,12,11,10,10,12,11,11,13,12,13,13,10,12,11,12,13,13,11,13,11,7,10,10,10,11,12,10,12,11,10,12,11,11,11,12,12,14,13,10,12,12,12,14,14,11,13,11,6,9,9,9,10,11,8,11,10,9,10,11,10,11,12,11,12,12,8,11,10,11,12,12,10,12,10,7,10,10,10,11,12,10,12,11,10,12,12,11,11,13,12,13,13,10,11,12,12,13,14,11,12,11,8,10,10,10,11,12,10,12,11,10,11,12,11,11,13,12,13,13,10,12,10,12,13,13,11,13,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,9,9,6,7,8,10,10,6,8,7,10,10,8,10,10,12,13,8,10,10,13,12,6,7,8,10,10,7,8,9,10,11,8,9,9,11,11,10,10,11,12,14,10,11,11,14,13,6,8,7,10,10,8,9,9,11,11,7,9,8,11,10,10,11,11,13,14,10,11,10,14,12,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13,14,13,15,14,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,13,13,14,14,15,12,13,12,15,12,6,7,8,10,11,8,9,10,11,12,8,9,9,11,12,10,11,12,13,14,10,11,11,14,13,8,9,10,11,12,9,10,11,12,13,9,10,11,12,13,11,12,13,13,15,12,12,13,15,14,8,9,9,12,12,9,10,11,12,13,9,10,10,13,12,12,12,13,14,15,11,12,12,14,14,11,11,12,13,14,11,12,13,13,15,12,13,13,14,15,14,13,15,14,16,14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11,13,12,14,13,14,15,15,15,16,13,14,14,16,14,6,8,7,11,10,8,9,9,11,12,8,10,9,12,11,10,11,11,13,14,10,12,11,14,13,8,9,9,12,12,9,10,10,12,13,9,11,10,13,12,11,12,12,13,14,12,13,12,15,14,8,10,9,12,11,9,11,10,13,12,9,11,10,13,12,12,13,12,14,15,11,13,12,15,13,11,11,12,13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14,16,14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15,16,16,13,15,13,16,14,9,10,11,12,14,11,11,12,13,15,11,12,12,13,14,13,14,15,15,17,13,14,14,15,16,11,11,12,13,15,12,12,13,14,16,12,13,13,14,15,14,14,16,15,17,15,15,15,16,17,11,12,12,14,14,12,13,13,15,16,12,13,13,15,15,15,15,15,16,17,14,15,15,16,16,14,14,15,15,17,14,15,15,15,17,15,15,16,16,17,16,16,17,16,18,17,17,17,18,18,14,15,14,16,16,15,15,16,17,17,14,15,15,17,16,17,17,17,18,18,16,16,16,17,17,9,11,10,14,12,11,12,12,14,13,11,12,11,15,13,13,14,14,16,15,13,15,14,17,15,11,12,12,15,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,15,15,15,17,16,11,12,11,15,13,12,13,13,15,14,12,13,12,16,14,15,15,15,17,16,14,15,14,17,15,14,14,15,16,16,14,15,15,16,16,15,16,15,17,17,16,16,16,17,17,17,17,17,18,17,14,15,14,16,15,15,15,15,17,16,15,15,15,17,15,17,17,17,18,18,16,17,16,18,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,11,13,14,10,12,11,14,13,7,9,9,11,12,9,10,10,12,13,9,10,10,13,13,11,11,12,13,15,11,12,12,15,14,8,9,9,12,11,9,11,10,13,13,9,11,10,13,12,12,13,12,14,15,11,13,12,15,13,10,11,12,13,14,11,12,12,13,15,12,12,13,14,15,13,13,14,14,16,14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15,15,16,13,14,14,16,14,7,9,9,11,12,9,10,11,12,13,9,10,10,13,12,11,12,12,14,15,11,12,12,15,14,9,9,11,11,13,10,10,12,12,14,10,11,12,13,14,12,12,13,14,16,12,13,13,15,15,9,11,10,13,13,10,12,12,13],"i8",O3,_.GLOBAL_BASE+431057),C3([14,10,12,11,14,13,12,13,13,15,16,12,13,13,15,14,11,11,13,13,15,12,12,14,13,16,13,13,13,14,15,14,14,15,14,17,15,15,15,16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,16,14,15,15,16,16,17,14,15,14,17,15,7,9,9,12,11,9,10,10,12,13,9,11,10,13,12,11,12,12,14,14,11,13,12,15,14,9,10,10,13,12,10,10,11,12,13,10,12,11,14,13,12,12,13,13,15,12,14,13,16,15,9,10,10,13,12,11,11,12,13,13,10,12,10,14,12,13,13,13,15,15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15,13,14,13,15,15,14,13,15,13,16,15,16,15,17,16,12,13,12,14,14,13,14,14,15,15,12,13,12,15,14,15,15,16,16,17,14,15,13,16,13,10,11,12,13,14,11,12,13,14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16,16,12,12,13,12,15,12,12,14,13,16,13,13,14,14,16,14,14,16,15,17,15,15,16,16,17,12,13,13,15,15,13,14,14,16,16,13,14,13,16,15,15,16,16,17,17,14,15,15,17,16,14,14,15,14,17,15,15,16,15,17,15,15,16,15,17,16,16,17,16,18,17,17,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16,18,17,10,12,11,14,14,12,13,13,15,15,12,13,12,15,14,14,15,15,16,16,14,15,15,17,16,11,13,12,15,14,12,13,13,15,15,13,14,13,16,14,15,15,15,16,16,15,16,15,17,16,12,13,13,15,15,13,14,14,16,16,12,14,13,16,15,15,16,16,17,17,15,16,15,17,16,14,15,15,16,16,14,15,15,16,16,15,16,16,17,16,16,16,16,16,17,17,18,17,18,17,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,17,17,18,18,18,16,17,16,18,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,12,13,14,10,11,11,14,13,8,9,9,11,12,9,10,11,12,13,9,10,11,13,13,11,12,13,13,15,12,12,12,15,14,7,9,9,12,11,9,10,10,13,13,9,10,10,13,12,11,12,12,14,15,11,12,11,15,13,11,11,12,13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14,16,14,15,15,16,16,10,12,11,14,13,12,13,12,14,14,11,12,12,15,13,14,15,15,16,16,13,14,13,16,14,7,9,9,11,12,9,10,11,12,13,9,10,10,13,12,11,12,13,14,15,11,12,12,14,14,9,10,10,12,13,10,10,12,12,14,11,12,11,13,13,12,12,14,13,15,13,13,13,15,15,9,10,10,12,13,10,11,12,13,14,10,11,10,13,12,13,13,14,15,16,12,13,12,15,13,12,13,13,14,14,12,12,13,14,15,13,14,14,15,15,14,13,15,13,16,15,16,15,17,16,11,12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15,16,16,17,14,14,13,16,13,7,9,9,12,11,9,10,10,12,13,9,11,10,13,12,11,12,12,14,15,11,12,12,15,14,9,10,11,13,13,10,11,12,13,14,10,12,12,14,13,12,13,13,14,16,12,13,13,16,15,9,11,9,13,11,10,12,11,13,13,10,12,10,14,12,12,13,13,15,15,12,13,12,16,14,12,12,13,14,15,12,13,14,14,15,13,14,14,15,15,14,14,15,15,17,15,16,15,17,16,11,13,11,15,13,13,14,13,15,14,12,14,12,16,13,15,15,15,16,16,14,15,14,17,14,10,11,12,14,14,12,12,13,14,15,12,13,13,15,15,14,15,15,16,17,14,15,15,16,16,12,12,13,15,15,13,13,14,15,16,13,14,14,16,16,15,15,16,16,17,15,16,16,17,17,11,12,13,14,15,13,13,14,15,16,12,13,13,15,15,15,15,16,16,17,15,15,15,16,16,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,16,18,17,17,17,18,18,14,15,15,16,16,15,16,16,16,17,15,15,15,16,16,17,17,17,18,18,16,16,16,17,16,10,12,11,14,13,12,13,13,15,15,11,13,12,15,14,14,15,15,16,16,14,15,14,17,15,12,13,13,15,15,13,13,14,16,16,13,14,14,16,16,15,15,15,16,17,15,16,16,17,17,12,13,12,15,12,13,14,13,16,14,12,14,12,16,13,15,16,15,17,16,14,16,14,17,15,14,15,15,16,17,15,15,16,17,17,15,16,16,17,17,16,16,17,17,18,17,18,17,18,18,14,15,14,17,14,15,16,15,17,15,15,16,15,17,15,17,17,17,18,17,16,17,16,18,16,9,11,11,14,14,11,12,12,14,14,11,12,12,15,14,13,14,14,16,16,13,15,14,16,16,10,11,12,14,14,11,12,13,15,15,12,13,13,15,15,13,14,15,16,17,14,15,15,17,16,11,12,12,15,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,15,17,16,12,13,14,15,16,13,14,14,15,16,13,14,15,16,16,15,15,16,16,18,16,16,16,18,17,14,14,14,16,15,15,15,15,17,16,14,15,15,17,16,16,17,17,18,17,16,16,16,18,16,10,12,12,14,14,11,12,13,15,15,12,13,13,15,15,13,14,15,16,17,14,15,15,17,16,11,12,13,14,15,12,12,14,15,16,13,13,14,15,16,14,14,15,16,17,15,15,16,17,17,12,13,13,15,15,13,14,14,16,16,13,14,13,16,15,15,16,15,17,17,15,16,15,17,16,13,13,15,14,17,14,13,16,15,17,15,14,16,15,17,15,15,17,16,18,16,16,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16,18,17,10,12,11,14,14,11,12,13,15,15,12,13,12,15,15,14,15,15,16,16,14,15,15,17,16,11,12,12,15,15,12,13,13,15,15,13,14,13,16,15,14,15,15,16,16,15,16,15,17,16,11,13,13,15,15,13,14,14,15,15,12,14,13,16,15,15,16,15,17,17,15,16,15,17,16,13,15,14,16,16,14,15,14,16,16,15,16,15,17,16,15,16,16,16,17,16,17,16,18,17,14,15,15,16,16,15,16,16,17,17,15,15,15,17,16,17,17,17,18,18,16,16,16,18,16,12,13,13,15,16,13,14,14,15,16,13,14,14,16,16,15,15,16,16,18,15,16,16,17,17,13,13,14,15,16,14,14,15,15,17,14,15,15,16,17,15,15,17,16,18,16,16,17,17,17,13,14,14,16,16,14,15,15,17,17,14,15,14,17,16,16,17,16,17,18,16,17,16,18,17,15,15,16,14,17,16,15,17,14,18,16,16,16,15,18,16,16,18,15,19,18,18,18,17,19,15,16,16,18,17,16,17,17,18,17,16,17,16,18,17,18,18,18,19,19,17,18,16,18,17,11,12,12,15,15,13,13,14,15,16,13,14,13,16,15,15,16,16,16,17,15,16,16,17,16,12,14,13,16,15,13,13,14,15,16,14,15,14,17,15,15,15,16,16,17,16,17,16,18,17,12,13,14,15,16,14,15,15,16,16,13,14,13,16,15,16,16,16,17,17,15,16,15,17,15,15,16,15,17,16,15,15,15,16,16,16,17,16,18,16,16,15,16,15,17,17,18,17,18,17,15,15,16,17,17,16,16,17,17,17,15,16,15,17,16,18,18,18,18,18,16,17,16,18,15,9,11,11,14,14,11,12,12,14,15,10,12,12,15,14,13,14,15,16,16,13,14,14,16,16,11,12,12,14,15,12,12,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,16,16,10,12,12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15,16,17,13,15,14,16,16,14,14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16,17,16,18,16,17,17,17,17,12,14,13,16,15,13,15,14,16,16,13,14,14,16,15,16,16,16,17,17,15,16,15,17,16,10,11,11,14,14,12,12,13,14,15,11,13,12,15,14,14,15,15,16,17,14,15,15,16,16,12,13,13,15,15,12,13,14,15,16,13,14,14,15,15,15,15,16,16,17,15,15,16,17,17,11,12,12,15,15,13,13,14,15,16,12,13,13,15,15,15,15,16,16,17,14,15,15,16,16,14,15,15,16,16,15,15,15,16,17,15,16,16,17,17,16,16,17,16,18,17,17,17,17,18,13,14,15,16,16,15,15,16,16,17,14,14,14,16,16,16,16,17,17,18,16,16,16,17,16,10,12,12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15,16,17,13,15,14,17,16,12,13,13,15,15,13,13,14,15,16,13,14,14,16,16,15,15,16,16,17,15,15,16,17,17,11,13,12,15,14,13,14,13,16,15,12,14,12,16,15,15,16,15,17,17,14,15,14,17,16,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,17,18,17,17,17,18,18,13,15,13,17,14,14,16,14,17,16,14,15,13,17,15,16,17,16,18,17,15,17,15,18,16,11,12,12,15,15,13,13,14,15,16,13,14,13,16,15,15,16,16,16,17,15,16,16,17,16,12,14,13,16,15,13,13,14,15,16,14,15,15,16,16,16,15,16,16,17,16,16,16,17,17,12,13,14,15,16,14,14,15,15,17,13,14,13,16,15,16,16,17,17,18,15,16,15,17,15,15,16,15,17,17,15,15,16,16,17,16,17,16,17,17,16,15,17,15,18,17,18,17,18,18,15,15,16,16,17,16,16,17,16,18,15,15,15,16,16,17,17,18,17,18,16,16,15,17,15,12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,15,16,16,17,18,15,16,15,18,16,13,14,14,16,16,14,14,15,16,17,14,15,15,17,17,16,16,17,17,18,16,16,17,18,17,13,14,13,16,14,14,15,15,17,16,14,15,14,17,15,16,17,17,18,17,15,17,15,18,16,15,16,16,17,17,16,16,17,17,18,16,17,17,18,18,17,16,18,17,19,18,18,18,18,18,15,16,15,17,14,16,16,16,18,15,16,17,15,18,14,18,18,18,18,17,17,18,16,19,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,5,7,7,5,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,5,7,8,8,9,10,8,9,10,8,9,10,9,10,12,10,11,11,8,10,10,10,11,11,9,11,11,5,8,7,8,9,9,8,10,9,8,10,10,9,11,11,10,11,11,8,10,9,10,11,11,9,12,10,5,8,8,7,9,10,8,10,9,7,9,9,9,10,11,9,11,11,8,10,9,10,11,11,10,11,11,7,9,9,9,10,11,9,11,11,9,9,11,10,10,13,11,11,12,9,11,11,11,12,13,11,13,12,7,9,9,9,11,11,9,11,10,9,11,10,10,11,12,11,13,12,9,11,11,11,12,13,11,13,11,5,8,8,8,9,10,7,10,9,8,9,10,10,11,11,10,11,11,7,9,9,9,11,11,9,11,10,7,9,9,9,10,11,9,11,11,9,11,11,11,11,13,11,13,12,9,10,11,11,12,13,10,12,11,7,9,9,9,11,11,9,11,10,9,11,11,11,12,13,11,13,12,9,11,9,11,12,11,10,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,12,14,15,18,20,20,5,3,4,6,9,11,15,19,9,4,3,4,7,9,13,18,11,6,3,3,5,8,13,19,14,9,6,5,7,10,16,20,16,11,9,8,10,10,14,16,21,14,13,11,8,7,11,14,21,14,13,9,6,5,10,12,0,0,0,0,255,255,255,255,255,255,255,255,8,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+441297),C3([1,0,0,0,1,0,0,0,2,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,240,5,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,214,6,0,0,0,0,0,0,0,0,0,224,214,6,0,0,0,0,0,0,0,0,0,8,215,6,0,48,215,6,0,0,0,0,0,0,0,0,0,88,215,6,0,128,215,6,0,0,0,0,0,0,0,0,0,168,215,6,0,208,215,6,0,0,0,0,0,0,0,0,0,248,215,6,0,32,216,6,0,208,215,6,0,0,0,0,0,72,216,6,0,112,216,6,0,208,211,6,0,248,211,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,120,214,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,112,214,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,211,6,0,128,211,6,0,0,0,0,0,0,0,0,0,168,211,6,0,208,211,6,0,248,211,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,136,213,6,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,56,214,6,0,0,0,0,0,2,0,0,0,25,0,0,0,80,213,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,112,213,6,0,0,0,0,0,2,0,0,0,9,0,0,0,48,213,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,64,213,6,0,0,0,0,0,1,0,0,0,25,0,0,0,168,212,6,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,200,212,6,0,0,0,0,0,1,0,0,0,25,0,0,0,32,212,6,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,64,212,6,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,4,4,5,5,5,4,5,4,5,5,5,5,6,5,6,5,6,5,6,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,8,8,9,8,9,9,10,10,10,10,4,6,5,8,7,9,9,9,9,10,9,10,10,4,5,6,7,8,9,9,9,9,9,10,9,10,8,9,8,9,8,10,9,11,9,12,10,11,10,8,8,9,8,9,9,10,9,11,10,11,10,12,9,10,10,11,10,11,11,12,11,12,12,12,12,9,10,10,11,11,11,11,11,12,12,12,12,12,10,11,11,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,13,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,11,13,12,12,12,13,12,12,12,12,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,3,5,13,9,9,12,16,18,4,2,20,6,7,10,15,20,10,7,5,5,6,8,10,13,8,5,5,3,5,7,10,11,9,7,6,5,5,7,9,9,11,10,8,7,6,6,8,8,15,15,10,10,9,7,8,9,17,19,13,12,10,8,9,9,5,0,0,0,243,0,0,0,232,4,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,224,5,7,0,0,0,0,0,5,0,0,0,53,12,0,0,152,248,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,208,4,7,0,0,0,0,0,5,0,0,0,243,0,0,0,144,247,6,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,136,248,6,0,0,0,0,0,5,0,0,0,243,0,0,0,136,246,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,128,247,6,0,0,0,0,0,5,0,0,0,243,0,0,0,128,245,6,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,120,246,6,0,0,0,0,0,5,0,0,0,53,12,0,0,48,233,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,104,245,6,0,0,0,0,0,5,0,0,0,53,12,0,0,224,220,6,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,24,233,6,0,0,0,0,0,1,0,0,0,7,0,0,0,184,220,6,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,192,220,6,0,0,0,0,0,5,0,0,0,243,0,0,0,176,219,6,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,168,220,6,0,0,0,0,0,5,0,0,0,243,0,0,0,168,218,6,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,160,219,6,0,0,0,0,0,5,0,0,0,243,0,0,0,160,217,6,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,152,218,6,0,0,0,0,0,5,0,0,0,243,0,0,0,152,216,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,144,217,6,0,0,0,0,0,1,9,9,7,9,9,8,8,9,9,9,9,9,9,9,8,9,9,7,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,6,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,5,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,5,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,8,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,6,7,7,7,7,7,7,8,8,9,9,9,9,7,7,8,8,8,9,9,9,9,8,8,6,7,7,8,8,8,8,8,8,9,8,8,9,8,9,9,8,8,10,8,8,10,9,9,10,8,8,6,6,6,8,6,6,8,7,7,8,7,7,10,8,8,9,7,7,9,7,7,10,8,8,9,7,7,7,7,7,10,8,8,11,9,9,10,9,9,11,9,9,11,8,8,11,9,9,12,9,9,12,8,8,7,7,7,10,9,9,10,9,9,10,9,9,11,10,10,10,9,9,11,9,10,11,10,11,10,9,9,9,8,8,10,9,9,10,9,9,11,9,9,11,10,10,11,9,9,11,9,9,11,10,10,11,9,9,8,8,8,11,9,9,11,9,9,11,9,9,12,9,9,12,8,8,11,9,9,12,9,9,12,8,8,8,7,7,10,9,9,10,9,9,10,9,9,11,11,11,11,9,9,11,10,10,11,11,11,11,9,9,10,9,9,11,9,9,11,9,10,11,10,10,11,10,10,11,9,9,11,10,10,11,10,10,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,7,7,7,8,8,7,8,8,7,9,9,11,11,11,9,8,8,8,9,9,12,11,12,9,8,8,6,7,7,10,11,11,10,10,10,11,11,11,14,14,14,12,11,12,11,11,11,15,15,14,13,12,12,5,6,6,8,5,5,8,7,7,8,7,7,12,10,10,10,7,6,9,8,8,12,10,10,10,6,6,7,8,8,12,10,10,12,10,10,11,10,10,16,14,14,13,10,10,12,10,10,15,14,14,14,10,10,7,7,7,13,11,11,13,11,11,12,11,11,16,14,14,14,12,12,12,11,11,18,15,15,14,12,12,10,9,10,14,11,11,13,11,11,12,11,11,17,14,14,14,11,11,13,11,11,16,15,15,14,11,11,7,8,8,13,11,11,12,10,10,12,10,10,16,14,13,13,10,10,12,10,10,17,14,14,14,10,10,8,7,7,12,11,11,13,11,11,12,11,11,16,15,14,14,12,12,12,11,11,16,15,15,14,12,12,11,10,10,14,11,11,13,11,11,13,11,11,17,14,14,14,11,11,13,11,11,18,14,15,15,11,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,1,7,6,15,15,7,8,8,15,15,8,8,8,15,15,0,13,13,16,16,0,14,14,16,16,7,9,9,16,16,10,11,11,17,17,10,8,8,15,16,0,14,14,18,18,0,14,14,16,16,9,9,9,16,16,12,11,11,17,17,10,9,9,15,15,0,14,14,19,19,0,14,14,16,16,0,15,15,18,17,0,0,0,20,20,0,13,13,16,16,0,17,17,22,20,0,15,15,17,17,0,15,15,18,18,0,22,21,20,21,0,13,13,16,16,0,18,18,0,22,0,15,15,17,17,6,7,7,13,13,9,10,10,15,15,11,10,10,15,15,0,21,22,18,18,0,0,0,18,18,10,10,10,15,15,12,13,13,17,17,12,11,11,15,15,0,22,22,18,18,0,0,21,18,18,12,11,11,15,15,15,14,14,18,18,13,11,11,15,15,0,0,21,18,19,0,21,22,18,19,0,22,0,18,19,0,0,0,0,0,0,21,21,18,18,0,22,0,0,21,0,0,0,19,18,0,0,0,18,19,0,0,0,0,0,0,20,20,18,17,0,0,22,0,21,0,0,0,19,19,6,6,6,13,13,8,6,6,11,11,9,7,7,13,13,0,10,10,11,11,0,12,12,14,14,9,8,8,14,14,12,10,10,13,13,10,7,7,13,13,0,11,11,15,15,0,11,11,13,13,9,8,8,14,14,13,10,10,13,14,11,7,7,13,13,0,11,11,15,15,0,11,11,13,13,0,12,12,15,15,0,21,21,17,17,0,10,10,13,13,0,14,14,20,20,0,12,12,13,13,0,12,12,15,15,0,21,22,17,18,0,10,10,13,13,0,16,16,20,21,0,12,12,13,13,0,11,11,13,13,0,12,12,16,16,0,12,12,16,16,0,16,16,0,21,0,17,18,0,0,0,12,12,15,15,0,15,15,18,18,0,12,12,16,16,0,16,16,21,22,0,17,17,22,21,0,12,12,16,16,0,15,15,19,19,0,12,12,16,16,0,16,16,22,22,0,17,16,22,0,0,17,18,0,0,0,0,0,0,0,0,15,15,21,20,0,19,20,0,22,0,18,18,0,0,0,18,17,0,0,0,0,0,0,0,0,16,16,22,21,0,20,20,0,22,0,20,19,0,0,0,11,11,12,12,0,10,10,11,11,0,11,11,12,12,0,12,12,10,10,0,13,13,12,12,0,11,11,13,13,0,13,13,12,12,0,10,10,12,12,0,13,13,14,13,0,12,12,12,12,0,12,12,13,13,0,14,14,13,13,0,10,10,12,12,0,13,13,14,14,0,13,12,12,12,0,14,14,14,14,0,21,21,16,16,0,12,12,12,12,0,16,16,20,21,0,13,13,11,11,0,14,14,14,14,0,20,20,16,15,0,12,12,12,12,0,17,17,20,20,0,13,13,11,11,7,8,8,16,16,11,10,10,15,15,12,10,10,17,17,0,14,14,16,15,0,15,15,17,17,11,9,9,16,16,14,12,12,17,17,13,9,9,16,15,0,14,14,19,18,0,14,14,16,16,12,10,10,17,18,16,13,13,17,18,14,10,10,16,16,0,14,14,19,19,0,14,15,17,17,0,15,15,18,19,0,0,0,20,20,0,13,13,17,17,0,17,18,0,22,0,15,15,16,17,0,15,15,18,18,0,0,0,20,21,0,14,14,17,17,0,19,18,0,0,0,16,16,17,17,8,7,7,14,14,12,11,11,15,15,13,11,11,15,15,0,0,0,18,19,0,21,20,18,18,12,10,11,15,16,14,13,13,18,18,14,11,11,15,15,0,20,20,19,18,0,20,0,18,18,13,11,11,16,16,17,15,15,19,19,14,12,12,15,15,0,21,0,18,20,0,22,22,18,19,0,22,22,19,19,0,0,0,0,0,0,21,22,19,18,0,0,0,0,21,0,0,0,19,19,0,0,22,20,20,0,0,0,0,0,0,22,0,18,18,0,0,0,0,22,0,0,0,19,20,11,10,10,14,14,14,11,11,13,13,14,11,11,15,15,0,14,13,12,12,0,15,15,16,16,13,11,11,15,15,16,13,13,15,15,15,10,10,14,15,0,14,14,16,16,0,14,14,15,15,13,11,11,15,15,18,14,14,15,15,15,10,10,15,14,0,14,14,16,16,0,14,14,15,15,0,15,15,17,16,0,21,22,18,18,0,13,13,14,14,0,18,17,20,21,0,15,15,14,14,0,15,16,16,17,0,0,0,19,18,0,13,13,15,14,0,19,19,0,0,0,15,15,14,14,0,12,12,14,13,0,13,13,16,16,0,12,12,16,16,0,16,16,22,0,0,17,18,0,22,0,13,13,16,16,0,15,15,18,18,0,12,12,16,16,0,16,16,22,22,0,17,17,0,0,0,13,13,17,17,0,16,16,19,20,0,12,12,17,17,0,17,17,22,0,0,17,17,22,21,0,18,18,0,0,0,0,0,0,0,0,16,16,21,21,0,19,19,0,0,0,18,18,0,22,0,18,18,0,22,0,0,0,0,0,0,16,16,22,0,0,20,20,0,0,0,19,18,0,0,0,12,12,15,15,0,12,12,15,14,0,13,13,15,15,0,14,14,14,14,0,15,15,16,16,0,13,13,15,16,0,15,15,16,16,0,12,12,15,15,0,14,14,16,16,0,14,14,15,15,0,13,13,15,16,0,15,15,16,16,0,12,12,15,15,0,15,15,17,17,0,14,14,15,15,0,15,15,17,17,0,21,21,19,19,0,13,13,14,14,0,17,17,22,0,0,14,14,15,15,0,15,15,17,17,0,22,0,18,20,0,13,13,15,15,0,18,18,0,22,0,15,15,14,15,8,8,8,17,16,12,10,10,16,16,13,10,10,17,16,0,15,15,17,17,0,15,15,17,17,12,11,11,18,18,15,12,12,18,18,15,10,10,16,17,0,14,14,18,18,0,14,14,17,17,13,10,10,16,16,17,14,14,17,17,15,10,10,16,15,0,15,15,19,20,0,14,14,15,16,0,16,16,19,19,0,0,0,21,22,0,13,13,17,17,0,18,17,0,21,0,15,15,17,17,0,15,15,18,19,0,0,22,0,21,0,13,13,16,17,0,19,19,0,22,0,16,15,16,16,9,8,8,14,14,12,11,11,15,15,13,11,11,15,15,0,21,20,19,18,0,0,0,19,18,12,11,11,16,15,15,13,13,17,18,14,11,11,15,15,0,22,22,19,18,0,22,21,18,18,14,11,11,15,15,17,14,14,18,18,15,12,12,15,15,0,22,22,20,19,0,0,21,18,18,0,0,22,20,20,0,0,0,0,0,0,20,21,18,18,0,0,0,21,21,0,0,0,20,19,0,22,21,19,19,0,0,0,0,0,0,0,22,17,18,0,0,22,0,22,0,22,0,19,19,0,11,11,15,15,0,11,11,14,14,0,12,12,15,15,0,15,15,14,14,0,16,16,16,16,0,12,12,16,16,0,14,14,16,16,0,11,11,15,15,0,15,15,17,17,0,15,15,15,15,0,12,12,16,16,0,14,14,15,15,0,11,11,15,15,0,15,15,17,17,0,15,15,14,15,0,16,16,17,17,0,0,0,19,19,0,14,14,15,15,0,18,18,21,0,0,15,15,14,15,0,16,16,17,17,0,21,0,19,19,0,14,14,15,15,0,20,20,22,0,0,16,15,14,14,0,12,12,13,13,0,12,12,16,16,0,12,12,16,16,0,16,16,22,21,0,18,17,21,0,0,13,13,16,16,0,15,15,18,19,0,12,12,16,16,0,16,17,22,0,0,17,17,0,22,0,13,13,17,16,0,15,15,19,19,0,12,12,16,16,0,16,16,21,20,0,17,16,22,0,0,18,18,22,21,0,0,0,0,0,0,15,16,21,21,0,19,19,0,0,0,18,17,0,0,0,18,18,21,0,0,0,0,0,0,0,16,16,22,22,0,20,21,0,0,0,18,19,0,22,0,13,13,16,16,0,12,12,15,15,0,13,13,16,16,0,14,14,15,15,0,15,15,17,17,0,13,13,17,16,0,15,15,17,17,0,12,12,16,16,0,15,15,17,17,0,14,14,16,16,0,13,13,16,17,0,15,15,17,17,0,12,12,16,16,0,14,14,17,17,0,14,14,16,16,0,16,16,17,17,0,21,0,21,19,0,13,13,16,16,0,17,17,0,0,0,15,15,16,16,0,16,15,18,18,0,22,0,20,20,0,13,13,15,15,0,18,18,0,0,0,15,15,15,15,0,12,12,17,17,0,14,14,17,17,0,14,14,17,17,0,17,17,18,17,0,17,17,19,18,0,13,13,17,17,0,16,16,18,18,0,13,13,16,16,0,17,17,19,19,0,16,16,17,17,0,13,13,18,18,0,17,17,18,18,0,13,13,17,17,0,17,17,19,19,0,16,17,17,17,0,17,17,19,19,0,21,0,21,19,0,14,14,16,16,0,20,19,0,21,0,16,16,16,16,0,17,18,19,19,0,0,0,0,21,0,15,15,16,17,0,21,20,0,0,0,17,18,16,17,0,9,9,14,14,0,14,14,15,16,0,14,14,15,15,0,0,0,18,18,0,21,0,18,19,0,12,12,15,15,0,16,16,17,17,0,14,14,14,14,0,22,0,19,18,0,22,0,17,18,0,14,14,16,15,0,18,18,19,18,0,14,15,15,15,0,0,21,20,20,0,0,0,18,18,0,21,21,19,19,0,0,0,0,0,0,21,21,18,18,0,22,0,20,20,0,22,0,19,19,0,22,0,19,20,0,0,0,0,0,0,0,21,17,18,0,0,0,22,22,0,0,0,19,18,0,18,20,16,16,0,21,20,17,17,0,0,21,18,18,0,22,21,18,18,0,0,22,19,19,0,20,20,17,17,0,0,0,18,18,0,19,20,17,17,0,22,0,19,21,0,22,21,18,18,0,20,19,17,18,0,0,0,19,19,0,20,20,17,17,0,22,22,21,21,0,20,0,18,18,0,22,22,18,18,0,0,0,20,22,0,20,20,16,16,0,0,0,21,0,0,21,20,16,17,0,22,0,19,20,0,0,0,21,20,0,19,21,17,17,0,0,0,0,0,0,21,21,17,17,0,12,12,13,13,0,14,14,16,16,0,14,14,16,16,0,18,18,0,0,0,19,18,22,0,0,13,13,16,16,0,16,16,18,18,0,13,13,16,16,0,17,18,21,0,0,18,18,21,0,0,13,13,16,16,0,17,17,19,20,0,13,13,16,17,0,18,18,21,0,0,18,18,21,0,0,18,19,0,21,0,0,0,0,0,0,16,16,21,20,0,20,20,0,0,0,18,19,0,0,0,18,18,0,0,0,0,0,0,0,0,16,16,0,21,0,22,22,0,0,0,19,19,0,0,0,16,16,19,20,0,17,16,22,21,0,17,17,21,20,0,19,18,0,22,0,19,19,22,22,0,16,15,22,22,0,19,19,0,21,0,15,15,20,20,0,18,19,0,21,0,18,18,22,22,0,16,16,21,20,0,20,19,21,22,0,16,15,20,20,0,19,19,0,22,0,18,18,21,0,0,19,18,21,22,0,0,0,0,0,0,16,16,19,21,0,20,22,0,22,0,18,18,20,21,0,19,18,0,22,0,0,0,22,0,0,16,16,20,20,0,21,21,0,0,0,18,18,21,0,0,12,12,17,17,0,15,14,17,17,0,14,14,18,18,0,17,17,17,18,0,18,18,18,18,0,13,13,18,18,0,16,17,19,18,0,13,13,16,17,0,17,17,18,19,0,17,17,17,17,0,13,13,17,17,0,17,18,18,18,0,13,13,16,16,0,18,18,19,20,0,16,17,17,16,0,17,18,19,18,0,0,0,22,21,0,15,15,16,16,0,20,20,21,22,0,17,17,16,16,0,16,17,18,18,0,0,0,21,21,0,15,15,16,16,0,21,20,0,0,0,17,17,16,16,0,10,10,14,14,0,14,14,15,15,0,14,14,15,15,0,22,0,18,18,0,0,0,19,19,0,13,13,15,16,0,17,16,18,18,0,14,14,15,15,0,21,21,19,18,0,22,21,18,17,0,14,14,15,15,0,18,18,19,18,0,15,15,14,14,0,22,21,19,19,0,22,21,17,18,0,0,0,19,19,0,0,0,0,0,0,20,22,17,17,0,0,22,22,20,0,0,0,19,18,0,21,22,19,18,0,0,0,0,0,0,22,22,17,18,0,0,0,21,22,0,0,0,19,18,0,20,20,17,17,0,21,21,17,18,0,21,22,18,18,0,21,0,18,18,0,22,0,19,19,0,19,21,18,18,0,0,22,18,18,0,22,21,17,17,0,22,0,20,20,0,0,0,18,18,0,22,21,18,18,0,21,0,19,19,0,20,21,17,17,0,0,22,22,20,0,21,22,17,17,0,0,21,19,18,0,0,0,21,21,0,21,20,16,17,0,0,0,0,0,0,21,0,17,17,0,21,0,19,20,0,0,0,20,22,0,20,20,17,17,0,0,0,0,0,0,21,21,17,17,0,12,12,13,13,0,14,14,16,16,0,14,14,16,16,0,18,18,21,0,0,19,19,22,0,0,13,13,16,16,0,16,16,18,18,0,13,13,16,16,0,18,18,21,22,0,18,18,0,22,0,13,13,16,16,0,17,17,20,18,0,13,13,16,16,0,19,18,0,22,0,18,18,22,21,0,18,19,0,0,0,0,0,0,0,0,16,16,21,21,0,21,21,0,0,0,18,19,0,0,0,19,19,21,0,0,0,0,0,0,0,16,16,0,21,0,20,20,0,0,0,20,20,0,0,0,16,16,21,20,0,18,17,21,22,0,17,18,0,21,0,18,19,22,22,0,19,19,0,22,0,16,17,21,22,0,20,19,0,0,0,16,16,20,21,0,19,19,0,0,0,19,19,0,22,0,17,17,21,21,0,19,20,0,0,0,16,16,0,20,0,19,20,0,21,0,18,18,0,22,0,19,20,22,22,0,0,0,0,22,0,17,17,0,21,0,21,21,0,0,0,18,19,23,21,0,20,19,0,0,0,0,0,0,0,0,17,17,0,20,0,0,0,0,0,0,19,19,23,22,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,5,5,9,9,12,9,9,12,12,12,10,10,13,13,13,11,11,12,12,13,13,13,12,12,13,10,10,13,13,13,13,13,13,13,13,10,10,13,12,13,11,11,13,13,13,14,14,13,12,13,10,10,13,13,12,13,13,13,13,13,10,10,12,12,13,11,11,13,13,13,14,14,12,12,13,12,12,13,13,13,13,13,13,13,13,11,11,12,12,13,11,11,13,13,13,14,14,12,12,13,14,14,13,13,14,13,13,14,14,14,14,14,12,12,13,14,14,13,13,14,14,14,12,12,12,8,8,12,12,13,12,12,11,11,13,11,11,11,11,14,12,12,11,11,14,12,12,10,11,14,12,12,12,12,14,12,12,12,12,13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14,12,12,12,12,14,12,12,12,12,14,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14,13,13,12,12,14,12,12,12,12,14,13,13,11,11,14,12,12,11,11,14,13,13,11,11,15,13,13,12,12,14,12,12,12,12,15,13,13,12,12,14,12,12,11,11,15,13,13,11,11,12,9,9,11,11,13,7,7,11,11,13,8,8,12,12,14,10,10,10,10,14,14,14,11,11,14,8,8,12,12,14,14,14,12,12,14,7,7,11,11,14,9,9,12,12,14,14,14,11,11,14,8,8,12,12,14,14,14,12,12,14,7,7,11,11,14,9,9,12,12,14,14,14,11,11,14,10,10,12,12,14,14,14,13,13,14,9,9,11,11,14,10,10,12,11,15,14,14,11,11,14,15,15,12,12,15,14,14,14,14,15,14,14,11,11,15,14,14,12,12,15,14,14,11,11,14,11,11,10,10,15,10,10,10,10,15,10,10,10,10,15,11,11,9,9,15,12,13,9,9,15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13,11,11,15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13,10,11,15,12,12,11,11,15,13,13,11,10,15,11,11,10,10,15,11,12,10,9,15,13,13,10,10,15,14,14,11,11,15,13,13,11,11,15,14,14,10,10,15,13,13,10,10,15,14,14,10,10,14,13,13,10,10,15,13,13,10,10,15,13,13,10,10,14,14,14,8,9,15,14,14,9,9,15,14,14,11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,10,10,15,14,14,9,9,15,14,14,11,11,15,14,14,11,11,15,14,14,10,10,15,14,14,10,10,14,14,14,9,9,15,15,15,11,11,15,14,14,12,12,15,15,15,10,10,15,14,15,10,10,15,15,15,9,9,15,10,10,13,13,17,8,8,12,12,17,10,9,13,13,18,11,11,12,12,18,14,14,12,12,17,9,9,13,13,17,13,13,12,12,18,8,8,12,12,18,10,10,12,12,18,14,14,12,12,18,10,10,13,13,18,13,13,13,13,18,9,9,12,12,18,10,10,13,13,18,14,14,12,12,18,11,11,13,13,18,14,14,13,13,18,10,10,12,12,17,11,11,12,12,18,14,14,12,12,18,14,14,13,13,18,14,14,13,13,19,14,15,12,12,18,14,14,12,12,18,15,15,12,12,13,7,7,11,11,14,15,15,11,11,14,16,15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15,11,12,14,15,15,12,12,13,15,15,11,11,14,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14,16,16,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,15,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14,15,15,11,11,15,14,15,12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12,12,14,15,15,12,12,15,15,15,12,12,13,13,13,11,11,14,14,15,11,11,14,14,14,12,12,14,15,15,10,10,15,15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15,15,11,11,14,15,15,12,12,15,15,15,11,11,14,15,15,12,12,14,14,15,11,11,14,15,15,11,11,14,15,15,12,12,15,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14,15,15,10,10,14,15,15,11,11,15,15,15,10,10,15,15,15,12,12,15,15,15,14,14,15,15,15,11,11,15,15,15,11,11,15,15,15,11,11,14,10,10,10,10,15,9,9,12,11,15,10,10,12,12,15,11,11,11,11,15,13,13,12,12,16,10,10,12,12,15,13,13,12,12,15,9,9,11,11,15,10,10,13,12,15,13,13,11,11,15,10,10,12,12,15,13,13,12,12,15,9,9,11,11,15,10,10,12,12,15,13,13,11,11,15,11,11,12,12,15,13,13,13,13,15,10,10,11,11,15,11,11,12,12,15,13,14,11,11,15,14,14,13,13,16,14,14,20,19,15,14,14,11,11,15,13,14,12,12,15,14,14,11,11,14,13,13,10,10,14,14,13,11,11,15,13,14,12,12,15,14,14,12,12,15,14,14,11,11,15,14,14,12,12,15,15,14,13,13,15,14,14,11,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13,13,15,14,14,11,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15,14,14,11,11,15,15,15,12,12,15,15,15,13,13,16,14,14,12,12,15,15,15,13,13,15,15,15,12,12,15,15,15,12,12,14,10,10,13,13,17,9,9,12,12,17,9,9,13,13,17,11,11,12,12,18,14,14,12,12,18,10,10,13,13,18,14,13,12,12,18,9,9,12,12,18,10,10,12,13,18,14,14,12,12,17,9,9,12,12,17,13,14,12,12,17,9,9,12,12,17,10,10,12,12,17,14,14,11,11,18,11,11,12,12,18,14,14,12,13,18,10,10,12,12,18,11,11,12,12,18,14,14,11,11,18,15,15,12,12,18,14,14,13,13,18,14,15,12,12,17,14,14,12,12,17,15,15,12,12,13,7,7,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,14,15,15,11,11,14,15,15,12,12,14,15,15,11,11,15,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14,15,16,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12,12,15,15,15,12,12,15,15,15,12,12,13,13,13,12,12,14,14,14,11,11,14,14,14,12,12,14,14,14,10,10,15,15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14,12,12,15,15,14,11,11,14,15,15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14,11,11,15,14,14,10,10,14,15,15,12,12,14,14,14,12,12,14,15,15,10,10,14,15,15,11,11,15,15,15,10,10,15,15,15,12,12,15,14,14,13,13,15,15,15,10,10,15,14,14,11,11,15,15,15,10,10,14,10,10,10,10,14,9,9,12,12,15,10,10,12,12,14,11,11,11,11,15,13,14,12,12,15,10,10,13,13,15,13,13,12,12,15,9,9,12,12,15,10,10,13,13,15,13,14,11,11,15,10,10,12,12,15,13,13,12,12,15,9,9,11,11,15,10,10,12,12,15,13,13,11,11,15,11,11,12,12,15,13,13,13,13,15,10,10,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14,13,13,15,14,14,20,19,15,14,14,11,11,15,14,14,12,12,15,14,14,11,11,14,13,13,11,11,15,13,13,11,11,15,14,13,12,12,15,14,14,11,12,15,14,14,11,11,15,14,14,12,12,14,14,14,13,13,15,14,14,11,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13,13,14,14,14,11,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15,14,14,11,11,14,14,14,12,12,15,15,15,13,13,16,14,14,12,12,15,15,15,13,13,15,14,14,12,12,15,15,15,12,12,15,11,11,13,13,18,10,10,12,12,17,11,11,12,12,18,12,12,11,11,18,14,14,12,12,18,10,10,13,13,18,14,14,12,12,18,10,10,12,12,18,11,11,12,12,18,14,14,12,12,18,11,11,12,13,18,14,14,12,12,18,10,10,12,12,18,11,11,12,12,18,14,14,11,11,18,11,11,12,12,18,14,14,12,12,17,10,10,11,11,17,12,12,11,11,17,14,14,11,11,18,15,15,12,12,18,14,14,13,13,18,15,15,11,11,18,15,14,12,12,18,15,15,11,11,14,8,8,11,11,14,15,15,10,10,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,15,15,15,11,11,15,15,15,12,12,14,15,15,10,10,15,15,15,11,11,15,15,15,12,12,15,15,15,11,11,15,15,15,13,13,14,15,15,10,10,15,15,15,11,11,15,15,15,12,12,15,15,15,12,12,15,16,16,12,12,15,14,14,11,11,15,15,15,11,11,15,15,15,12,12,16,15,15,13,13,15,16,16,13,13,16,15,15,12,12,15,15,15,12,12,15,15,15,12,12,14,13,13,11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11,11,15,15,14,11,11,15,14,14,12,12,15,14,14,12,12,14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15,14,15,12,12,15,14,14,12,12,14,15,15,11,11,15,14,14,11,11,15,14,14,11,11,15,15,14,12,12,15,14,14,12,12,15,15,15,10,11,15,14,14,11,11,15,15,15,10,10,15,15,15,12,12,16,14,14,13,13,15,15,15,11,11,15,14,14,11,11,15,15,15,11,11,14,11,11,9,9,14,10,10,12,12,15,11,11,12,12,15,12,12,12,12,15,14,14,13,13,15,11,11,12,12,15,14,14,13,13,14,10,10,12,12,15,11,11,13,13,15,14,14,12,12,15,10,10,12,12,14,14,14,13,13,14,10,10,11,11,15,11,11,12,12,15,14,14,12,12,15,12,12,13,13,15,14,14,14,14,15,11,11,11,11,15,12,11,12,12,15,14,14,11,11,15,15,15,13,14,15,14,14,20,19,15,14,14,12,12,15,14,14,13,13,15,14,14,12,12,14,13,13,10,10,14,13,13,11,11,14,13,13,11,11,15,14,14,12,12,15,14,14,12,12,15,14,14,12,11,14,14,14,13,13,15,14,14,11,11,15,14,14,11,11,15,14,14,14,14,15,14,14,11,12,15,14,14,13,13,14,14,14,11,11,15,14,14,11,11,15,14,14,14,14,15,14,14,12,12,15,14,14,13,13,15,14,14,11,11,14,14,14,12,12,15,14,14,13,13,15,15,15,13,13,15,14,14,13,13,15,15,15,13,13,15,14,14,13,13,15,15,15,13,13,15,14,14,13,13,18,15,15,12,12,18,15,15,12,12,18,16,16,11,11,18,17,17,12,12,18,15,15,13,13,18,17,17,12,12,18,15,15,12,12,18,15,16,12,12,18,17,17,12,12,18,15,15,13,12,17,16,17,12,12,17,15,15,11,12,18,15,15,12,12,18,17,17,11,11,18,16,16,12,12,18,17,16,12,12,18,15,15,11,11,18,15,15,12,12,18,17,17,11,11,18,17,17,12,12,18,16,16,13,13,18,17,17,11,11,17,16,16,11,11,18,17,17,11,11,15,15,15,11,11,16,15,15,11,11,16,15,15,11,11,16,15,15,12,12,17,15,15,14,14,16,15,15,11,11,17,15,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15,15,13,13,16,15,15,11,11,17,15,15,14,14,16,15,15,11,11,16,15,15,12,12,17,15,15,13,13,16,15,15,12,12,17,16,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,18,14,15,13,13,18,15,15,14,14,18,15,15,13,13,15,13,13,12,12,15,14,14,12,12,16,14,14,12,12,16,14,14,12,12,17,14,15,12,12,16,14,14,12,12,17,14,14,13,13,16,15,15,12,12,16,14,14,12,12,17,14,14,12,12,16,14,14,12,12,17,14,14,13,13,15,15,15,11,11,16,14,14,12,12,17,14,14,12,12,16,15,15,12,12,17,14,14,13,12,16,15,15,11,11,16,14,14,12,12,17,15,15,11,11,17,15,15,13,13,17,14,14,13,13,18,15,15,12,12,17,14,14,12,12,17,15,15,12,12,14,15,15,9,9,14,15,15,12,12,15,16,15,13,13,15,15,15,14,14,15,15,15,21,19,15,15,15,13,13,15,15,15,19,19,15,15,15,12,12,15,16,16,14,14,15,15,15,19,19,15,16,15,13,13,15,16,16,19,20,15,15,15,12,13,15,16,16,14,14,15,15,15,20,19,15,15,15,14,14,15,16,16,19,19,15,15,15,14,13,15,15,15,14,14,15,15,15,19,19,15,16,16,20,19,15,17,16,21,20,15,15,15,20,19,15,16,16,20,20,15,15,15,19,20,14,13,13,10,10,14,14,14,11,11,14,14,14,12,12,15,14,14,13,13,15,15,14,20,20,15,14,14,12,12,14,14,14,19,19,15,14,14,11,11,15,14,14,12,12,15,14,14,20,19,15,14,14,12,12,14,14,14,20,20,14,14,14,11,11,15,14,14,12,12,15,14,14,20,21,15,14,14,13,13,15,14,14,20,20,15,14,14,12,12,15,14,14,13,13,14,15,15,20,20,15,15,15,20,19,15,14,14,20,19,15,15,15,20,20,15,14,14,21,20,15,15,15,20,20,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,6,7,7,7,8,8,7,8,8,10,11,11,9,8,8,8,8,8,11,11,12,9,8,8,5,7,7,9,11,11,10,11,11,10,11,11,12,14,14,11,12,12,10,12,12,13,14,14,12,12,12,5,6,6,7,6,6,8,7,7,8,7,7,11,10,10,10,7,7,9,8,8,12,11,11,10,7,7,7,7,7,11,10,10,12,10,10,11,10,10,15,13,13,13,10,10,12,11,11,15,13,13,14,11,11,7,7,7,11,11,11,12,11,11,12,11,11,14,14,14,13,12,12,12,12,12,16,15,15,14,12,12,0,10,10,0,11,11,0,12,12,0,11,11,0,14,14,0,11,11,0,12,12,0,15,15,0,11,11,7,8,8,12,11,10,12,10,10,12,11,11,15,13,13,14,11,11,12,10,10,16,14,14,14,10,10,8,7,7,12,11,11,12,11,11,12,11,11,15,14,14,14,12,12,13,12,12,15,14,14,15,13,13,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,13,13,0,15,14,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,5,5,0,8,8,0,8,8,0,9,9,0,10,10,0,8,8,0,8,8,0,10,10,0,8,8,0,7,7,0,8,8,0,7,7,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,7,7,0,6,6,0,7,7,0,7,7,0,10,10,0,6,6,0,7,7,0,10,10,0,5,5,0,8,8,0,7,7,0,8,8,0,8,8,0,9,9,0,7,7,0,8,8,0,9,9,0,7,7,0,6,6,0,9,10,0,10,10,0,10,10,0,11,11,0,9,9,0,10,10,0,11,11,0,9,9,0,8,8,0,8,8,0,8,8,0,9,9,0,9,9,0,7,7,0,8,8,0,9,9,0,7,7,0,8,8,0,7,7,0,7,7,0,8,8,0,9,9,0,7,7,0,7,7,0,8,8,0,6,6,0,6,6,0,10,10,0,10,10,0,10,10,0,12,12,0,9,9,0,10,10,0,12,12,0,9,9,0,8,8],"i8",O3,_.GLOBAL_BASE+446300),C3([7,7,0,7,7,0,8,8,0,9,9,0,7,7,0,8,8,0,9,9,0,6,6,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,6,6,5,7,8,0,8,8,6,9,9,7,10,10,0,8,8,0,9,9,0,12,12,0,8,8,4,7,7,6,10,10,0,12,12,7,11,11,8,12,12,0,12,12,0,13,12,0,15,15,0,12,12,0,7,7,0,7,7,0,7,7,0,8,8,0,10,10,0,7,7,0,8,8,0,11,11,0,7,7,5,7,7,8,9,9,0,10,10,8,9,9,11,11,11,0,10,9,0,11,11,0,13,13,0,10,10,6,7,7,8,10,10,0,12,12,9,10,10,10,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,10,10,0,11,11,0,11,11,0,11,11,0,13,13,0,11,11,0,11,11,0,15,15,0,10,10,0,8,8,0,10,10,0,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,11,11,0,7,7,0,10,10,0,12,12,0,10,10,0,12,12,0,12,12,0,13,13,0,14,14,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,3,9,9,0,0,0,8,8,0,0,0,9,9,0,0,0,12,12,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,5,5,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,5,5,0,0,0,7,7,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,5,5,0,0,0,7,7,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,0,0,0,9,9,0,0,0,10,10,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,7,7,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,8,8,0,0,0,10,11,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,7,7,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,7,8,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,9,9,0,0,0,10,10,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,9,9,0,0,0,10,10,0,0,0,12,12,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,3,5,16,9,9,13,18,21,4,2,21,6,6,10,15,21,16,19,6,5,7,10,13,16,8,6,5,4,4,8,13,16,8,5,6,4,4,7,12,15,13,10,9,7,7,9,13,16,18,15,13,12,9,7,10,14,21,18,13,13,7,5,8,12,2,0,0,0,64,0,0,0,192,58,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,11,7,0,0,0,0,0,0,0,0,0,176,11,7,0,0,0,0,0,0,0,0,0,216,11,7,0,0,12,7,0,0,0,0,0,0,0,0,0,40,12,7,0,80,12,7,0,0,0,0,0,0,0,0,0,120,12,7,0,160,12,7,0,0,0,0,0,0,0,0,0,200,12,7,0,240,12,7,0,160,12,7,0,0,0,0,0,24,13,7,0,64,13,7,0,160,8,7,0,200,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,72,11,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,64,11,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,8,7,0,80,8,7,0,0,0,0,0,0,0,0,0,120,8,7,0,160,8,7,0,200,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,88,10,7,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,8,11,7,0,0,0,0,0,2,0,0,0,25,0,0,0,32,10,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,10,7,0,0,0,0,0,2,0,0,0,9,0,0,0,0,10,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,16,10,7,0,0,0,0,0,1,0,0,0,25,0,0,0,120,9,7,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,152,9,7,0,0,0,0,0,1,0,0,0,25,0,0,0,240,8,7,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,16,9,7,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,4,4,5,5,5,4,5,4,5,5,5,5,6,5,6,5,6,5,6,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,8,8,8,8,9,9,10,10,10,10,4,6,5,8,7,9,9,9,9,10,9,11,9,4,5,6,7,8,9,9,9,9,9,10,9,10,8,9,8,9,8,10,9,11,9,12,10,12,10,8,8,9,8,9,9,10,9,11,10,12,10,12,9,10,10,11,10,12,11,12,11,12,12,12,12,9,10,10,11,11,11,11,11,12,12,12,12,12,10,11,11,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,13,12,13,12,13,12,12,11,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,12,13,12,12,12,13,12,13,12,13,12,13,12,13,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,3,4,13,9,9,12,15,17,4,2,18,5,7,10,14,18,11,8,6,5,6,8,11,14,8,5,5,3,5,8,11,13,9,6,7,5,5,7,9,10,11,10,9,8,6,6,8,10,14,14,11,11,9,8,9,10,17,17,14,13,10,9,10,10,5,0,0,0,243,0,0,0,184,57,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,176,58,7,0,0,0,0,0,5,0,0,0,53,12,0,0,104,45,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,57,7,0,0,0,0,0,5,0,0,0,243,0,0,0,96,44,7,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,88,45,7,0,0,0,0,0,5,0,0,0,243,0,0,0,88,43,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,80,44,7,0,0,0,0,0,5,0,0,0,243,0,0,0,80,42,7,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,72,43,7,0,0,0,0,0,5,0,0,0,53,12,0,0,0,30,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,56,42,7,0,0,0,0,0,5,0,0,0,53,12,0,0,176,17,7,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,232,29,7,0,0,0,0,0,1,0,0,0,7,0,0,0,136,17,7,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,144,17,7,0,0,0,0,0,5,0,0,0,243,0,0,0,128,16,7,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,120,17,7,0,0,0,0,0,5,0,0,0,243,0,0,0,120,15,7,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,112,16,7,0,0,0,0,0,5,0,0,0,243,0,0,0,112,14,7,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,104,15,7,0,0,0,0,0,5,0,0,0,243,0,0,0,104,13,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,96,14,7,0,0,0,0,0,1,9,9,6,9,9,5,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,7,7,7,7,7,7,7,8,8,9,9,9,9,7,7,8,8,8,9,9,9,9,7,8,6,7,7,8,8,8,8,8,8,9,8,8,10,9,9,10,8,8,10,8,8,10,9,9,10,8,8,6,6,6,8,6,6,8,7,7,8,7,7,10,8,8,9,7,7,9,7,7,10,8,9,9,7,7,7,7,7,10,8,8,11,8,8,10,8,8,12,9,9,12,8,8,11,9,9,12,9,9,11,8,8,7,7,7,10,9,9,10,9,9,10,9,9,11,10,10,10,9,9,11,9,9,11,10,10,11,9,9,9,8,8,10,9,9,10,9,9,11,9,9,11,10,10,11,9,9,11,9,9,11,10,10,11,9,9,8,8,8,11,9,9,11,9,9,11,9,9,12,9,9,12,8,8,12,9,9,12,9,9,12,8,8,8,7,7,10,9,9,10,9,9,11,9,9,11,11,11,11,9,9,11,10,10,11,11,11,11,9,9,10,9,9,11,9,9,11,9,10,11,10,9,11,10,10,11,9,9,11,9,10,11,10,10,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,6,6,7,7,7,7,8,8,7,9,9,11,11,11,9,8,8,8,9,9,12,11,11,9,8,8,6,7,7,10,11,10,10,10,10,11,11,10,14,13,14,12,11,11,11,11,11,15,14,14,13,12,12,5,6,6,8,5,5,8,7,7,8,8,8,12,10,10,9,7,7,9,7,8,12,10,10,10,7,7,7,8,8,12,10,10,12,10,10,11,10,10,15,13,13,13,10,10,11,10,10,16,13,14,14,10,10,7,7,7,12,11,11,12,11,11,11,11,11,16,15,15,14,12,12,12,11,11,16,15,16,14,12,12,10,9,9,14,11,11,13,11,11,12,11,11,16,14,14,14,11,11,12,11,11,17,15,15,14,11,11,7,8,8,12,11,11,12,10,10,12,10,10,16,14,13,14,10,10,12,10,10,17,14,14,14,10,10,8,7,7,13,11,11,12,11,11,12,11,11,16,15,14,14,12,12,12,11,11,16,15,14,15,12,12,11,10,10,13,11,11,13,12,11,13,11,11,17,14,14,14,11,11,13,11,11,17,14,15,14,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,14,14,6,7,7,14,14,7,7,7,15,15,0,12,12,15,15,0,13,13,15,15,7,8,8,15,15,10,10,10,16,16,9,8,8,15,15,0,13,13,18,17,0,13,13,16,16,8,8,8,15,15,12,11,11,16,16,9,8,8,15,15,0,13,13,18,18,0,13,13,16,16,0,14,14,17,17,0,20,0,19,20,0,12,12,16,16,0,16,16,20,22,0,14,14,16,16,0,14,14,17,17,0,20,22,20,19,0,13,13,15,16,0,17,18,0,21,0,15,15,16,16,5,7,7,13,13,8,9,9,14,14,10,10,10,14,14,0,20,22,18,18,0,22,21,18,17,9,10,10,14,14,12,12,12,17,17,12,10,10,14,14,0,0,20,17,17,0,22,21,17,18,11,10,10,14,14,14,13,13,18,18,12,11,11,14,14,0,22,21,18,19,0,20,0,17,17,0,22,0,18,18,0,0,0,0,0,0,20,20,17,17,0,22,0,22,21,0,21,0,19,18,0,22,22,18,18,0,0,0,0,0,0,21,0,17,17,0,22,0,20,20,0,0,0,19,18,6,6,6,12,12,8,6,6,10,10,8,6,6,13,12,0,10,10,11,11,0,11,11,13,13,8,7,7,13,13,11,9,9,13,13,10,6,6,12,12,0,10,10,14,14,0,10,10,13,13,9,7,7,13,13,12,10,10,13,13,10,6,6,12,12,0,11,11,15,15,0,10,10,13,13,0,12,12,15,14,0,19,20,16,17,0,9,9,13,13,0,14,14,20,21,0,12,11,13,12,0,12,12,15,14,0,20,19,17,17,0,10,10,12,13,0,15,15,22,21,0,12,12,12,13,0,10,10,12,12,0,11,11,15,15,0,11,11,15,15,0,15,15,22,22,0,16,17,0,0,0,11,11,15,15,0,14,14,18,18,0,11,11,16,16,0,16,15,0,21,0,16,16,0,0,0,12,12,15,15,0,14,14,19,19,0,11,11,15,15,0,15,15,22,0,0,16,16,22,0,0,16,16,0,21,0,0,0,0,0,0,15,15,19,20,0,18,18,0,0,0,17,17,0,0,0,17,17,0,0,0,0,0,0,0,0,16,15,22,21,0,20,20,0,0,0,18,18,0,0,0,10,10,12,12,0,10,10,11,11,0,11,11,12,12,0,11,11,9,9,0,13,12,12,12,0,11,11,13,13,0,13,13,12,12,0,10,10,12,12,0,13,12,13,13,0,12,12,12,12,0,11,11,13,13,0,13,13,12,12,0,10,10,12,12,0,13,13,14,13,0,12,12,12,12,0,14,13,13,14,0,20,21,15,15,0,11,11,12,12,0,15,16,20,20,0,12,13,10,10,0,13,13,14,13,0,20,20,15,15,0,11,11,12,12,0,16,17,21,21,0,13,13,11,11,6,7,7,16,15,11,9,9,14,15,12,9,9,16,16,0,13,13,15,15,0,14,14,17,17,10,9,9,16,16,14,12,12,16,16,12,9,9,15,15,0,13,13,17,18,0,13,13,15,15,12,10,10,17,17,15,12,12,17,17,13,9,9,16,16,0,13,13,18,19,0,14,14,16,16,0,15,15,18,18,0,0,0,20,19,0,12,12,17,16,0,16,17,0,21,0,14,15,16,16,0,15,15,18,18,0,0,22,19,21,0,13,13,16,16,0,18,17,22,22,0,15,15,16,16,7,7,7,13,13,11,10,10,15,15,12,10,10,14,14,0,21,0,18,17,0,21,22,18,18,11,10,10,15,15,14,12,12,17,17,14,11,11,14,14,0,21,20,18,18,0,22,21,18,17,12,11,10,16,16,16,14,14,17,19,14,11,11,15,15,0,0,22,19,19,0,21,22,18,18,0,21,0,18,19,0,0,0,22,0,0,22,21,17,17,0,0,0,20,22,0,0,21,18,18,0,0,0,19,20,0,0,0,0,0,0,0,21,17,17,0,0,0,22,21,0,0,0,19,19,10,9,9,14,13,13,10,10,12,12,13,10,10,14,14,0,13,13,12,12,0,15,14,16,15,13,10,10,14,14,15,12,12,14,14,15,10,10,14,14,0,14,14,15,15,0,14,13,14,14,13,10,10,15,15,17,13,13,15,15,14,10,10,14,14,0,14,14,15,16,0,14,14,15,15,0,15,15,16,16,0,21,22,17,18,0,12,12,14,14,0,17,17,20,21,0,14,14,14,14,0,15,15,16,16,0,21,22,18,18,0,13,13,14,14,0,18,18,22,0,0,15,15,14,14,0,11,11,13,13,0,12,12,16,15,0,12,12,16,16,0,16,16,0,0,0,16,17,0,22,0,12,12,16,16,0,14,14,17,18,0,11,11,16,16,0,15,15,0,21,0,16,16,21,22,0,12,12,16,16,0,15,15,19,19,0,12,12,17,16,0,16,16,21,22,0,16,16,0,0,0,17,17,0,22,0,0,0,0,0,0,15,15,19,20,0,17,19,0,0,0,17,17,22,0,0,17,17,0,22,0,0,0,0,0,0,15,15,21,0,0,19,20,0,0,0,19,18,22,0,0,11,12,14,14,0,11,11,14,14,0,12,12,15,15,0,13,13,13,13,0,14,14,16,16,0,12,12,15,15,0,14,14,16,15,0,11,11,15,15,0,13,13,16,16,0,13,13,15,15,0,12,12,15,15,0,15,14,16,16,0,11,11,15,15,0,14,14,17,17,0,13,13,15,15,0,15,15,16,16,0,0,0,18,18,0,12,12,14,14,0,16,16,22,0,0,14,14,15,15,0,15,15,16,17,0,21,22,18,18,0,13,13,15,14,0,18,17,22,0,0,14,14,15,15,8,8,8,16,15,12,10,10,16,15,12,10,10,16,16,0,14,14,16,17,0,14,14,17,16,12,10,10,17,18,14,12,12,18,18,14,10,10,16,16,0,14,14,18,18,0,14,14,16,16,12,9,9,16,16,17,13,13,16,17,14,9,9,15,15,0,14,14,18,19,0,13,13,15,15,0,15,15,18,19,0,0,0,22,21,0,13,13,16,16,0,16,16,22,0,0,15,15,16,16,0,14,14,18,17,0,0,0,20,0,0,13,13,16,16,0,18,18,0,0,0,15,15,16,16,8,7,7,13,13,12,10,10,15,15,12,10,10,14,14,0,22,22,19,18,0,0,0,18,18,12,10,10,15,15,14,13,13,17,17,14,11,11,15,15,0,19,20,18,18,0,22,21,17,18,13,11,11,15,15,16,13,13,18,18,14,11,11,14,15,0,22,21,20,19,0,22,21,17,17,0,0,22,19,18,0,0,0,0,0,0,22,20,17,17,0,0,0,21,20,0,0,0,19,17,0,0,22,19,19,0,0,0,0,0,0,22,20,18,17,0,0,0,0,0,0,0,0,18,18,0,10,10,14,14,0,11,11,14,14,0,11,11,15,15,0,14,14,14,14,0,15,15,16,16,0,11,11,16,16,0,13,13,16,16,0,11,11,15,15,0,14,14,16,16,0,14,14,15,15,0,11,11,15,15,0,13,13,15,15,0,10,10,15,15,0,15,15,17,17,0,14,14,14,14,0,16,16,16,16,0,0,22,19,19,0,13,13,14,14,0,17,17,0,0,0,15,15,14,14,0,16,16,17,17,0,0,22,18,18,0,13,13,14,14,0,21,18,0,0,0,15,15,14,14,0,11,11,13,13,0,12,12,15,15,0,12,12,16,15,0,16,16,0,0,0,17,17,22,22,0,12,12,16,16,0,14,14,18,18,0,11,12,16,16,0,15,16,0,21,0,16,16,22,21,0,12,12,16,16,0,15,15,19,20,0,11,12,16,16,0,15,15,20,22,0,16,16,0,22,0,17,17,22,0,0,0,0,0,0,0,15,15,21,22,0,19,18,0,0,0,17,17,0,0,0,17,17,0,22,0,0,0,0,0,0,16,15,22,0,0,19,19,0,0,0,17,18,0,0,0,12,12,15,15,0,12,12,15,15,0,12,12,15,15,0,13,13,14,14,0,15,15,16,17,0,12,12,16,16,0,14,14,16,16,0,12,11,15,16,0,14,14,16,17,0,14,14,16,16,0,13,12,16,16,0,15,15,16,16,0,11,11,15,15,0,14,14,16,16,0,14,14,15,15,0,15,15,18,17,0,0,22,0,20,0,13,13,15,15,0,16,17,22,22,0,14,14,15,15,0,15,15,17,18,0,20,0,19,19,0,13,13,15,15,0,18,18,22,0,0,14,14,15,15,0,11,11,16,16,0,14,14,17,16,0,13,13,17,17,0,16,16,17,17,0,17,17,18,19,0,12,12,16,17,0,15,15,18,18,0,12,12,16,16,0,16,16,19,18,0,16,16,17,16,0,12,13,17,17,0,17,16,18,17,0,13,12,16,16,0,16,16,18,19,0,16,16,16,17,0,16,16,18,18,0,22,0,22,22,0,13,13,16,16,0,19,18,22,20,0,16,15,16,16,0,16,17,18,18,0,0,0,22,20,0,14,14,16,16,0,19,19,0,0,0,16,16,16,16,0,9,9,13,13,0,13,13,15,15,0,14,14,15,15,0,0,22,17,18,0,22,0,18,19,0,12,12,15,15,0,15,16,17,17,0,14,14,14,14,0,22,0,18,18,0,21,22,17,17,0,13,13,15,15,0,17,17,17,18,0,14,14,15,15,0,22,21,21,19,0,20,21,17,17,0,21,21,19,18,0,0,0,0,0,0,21,21,17,17,0,0,0,22,22,0,0,22,19,18,0,0,21,19,18,0,0,0,0,22,0,19,20,17,17,0,0,0,0,22,0,0,0,19,18,0,19,19,15,16,0,21,19,16,17,0,0,21,17,17,0,0,22,17,17,0,22,22,18,19,0,20,20,16,16,0,0,22,18,18,0,20,19,16,17,0,22,21,20,19,0,0,21,17,17,0,21,20,17,17,0,0,0,18,18,0,19,19,17,16,0,22,0,19,19,0,21,22,17,18,0,0,22,19,18,0,0,0,19,20,0,19,19,16,16,0,22,22,22,0,0,20,22,16,16,0,22,20,18,19,0,0,0,20,19,0,20,20,16,16,0,0,0,0,0,0,22,20,17,16,0,11,11,13,13,0,14,13,15,15,0,13,13,16,15,0,18,17,21,0,0,18,18,21,0,0,12,12,15,15,0,15,16,17,18,0,12,12,15,15,0,17,17,22,20,0,17,18,22,0,0,12,12,17,16,0,16,17,19,19,0,13,13,16,16,0,17,17,0,22,0,17,17,0,21,0,18,18,20,22,0,0,0,0,0,0,15,15,21,20,0,20,19,0,0,0,18,18,22,0,0,17,17,22,0,0,0,0,0,0,0,15,16,20,22,0,20,21,0,0,0,19,18,0,0,0,15,15,19,19,0,17,16,20,20,0,16,17,20,21,0,18,17,0,0,0,19,19,0,0,0,15,15,21,19,0,19,19,0,0,0,15,15,22,22,0,18,18,0,22,0,17,18,22,21,0,15,15,20,19,0,19,19,0,0,0,15,15,20,22,0,18,19,20,0,0,18,17,21,21,0,18,18,19,22,0,0,0,0,0,0,15,15,20,19,0,19,19,0,0,0,18,18,21,22,0,18,18,22,0,0,0,0,0,0,0,15,15,19,20,0,21,21,0,0,0,17,17,20,20,0,12,12,17,17,0,14,14,16,17,0,13,14,17,17,0,16,16,17,17,0,17,17,17,19,0,13,13,17,17,0,16,16,18,18,0,13,13,16,16,0,16,16,18,18,0,16,16,17,17,0,13,13,17,17,0,17,17,18,17,0,12,12,15,16,0,17,18,19,20,0,16,16,16,16,0,17,16,18,19,0,0,22,21,22,0,14,14,16,16,0,19,19,0,0,0,16,16,16,16,0,16,16,18,17,0,0,22,21,21,0,14,14,16,16,0,22,20,22,0,0,16,16,15,15,0,9,9,13,13,0,14,14,15,15,0,14,14,14,14,0,22,22,18,18,0,0,22,18,18,0,12,12,15,15,0,16,16,18,17,0,14,14,14,14,0,20,21,18,18,0,22,21,17,17,0,13,13,15,15,0,17,17,18,18,0,14,14,14,14,0,0,21,18,19,0,0,22,17,17,0,22,22,19,18,0,0,0,0,0,0,19,21,17,17,0,0,0,22,20,0,0,21,18,19,0,0,22,18,18,0,0,0,0,22,0,20,22,17,17,0,0,0,20,22,0,0,0,18,18,0,19,21,16,16,0,20,22,16,17,0,20,0,17,17,0,22,0,18,17,0,21,0,18,19,0,20,20,17,17,0,22,0,18,18,0,21,20,17,17,0,0,20,20,19,0,0,21,18,17,0,21,21,17,17,0,22,0,18,17,0,19,19,17,17,0,0,22,20,21,0,0,21,17,17,0,22,0,18,18,0,0,0,20,22,0,20,19,16,16,0,0,0,0,0,0,22,22,17,17,0,22,0,18,19,0,0,0,21,20,0,19,21,16,17,0,0,0,0,0,0,22,22,17,16,0,11,11,13,13,0,13,13,15,15,0,13,13,15,15,0,17,17,22,21,0,18,18,22,0,0,12,13,16,15,0,15,16,18,18,0,13,13,16,16,0,17,17,0,22,0,17,17,22,22,0,13,13,16,16,0,16,16,19,18,0,13,13,16,16,0,18,17,0,20,0,18,17,20,0,0,17,17,21,0,0,0,0,0,0,0,15,15,21,22,0,19,20,0,0,0,18,18,0,0,0,18,17,0,0,0,0,0,0,0,0,16,16,22,22,0,20,20,0,0,0,21,19,0,0,0,15,15,20,19,0,16,16,22,20,0,17,17,0,22,0,18,18,0,22,0,19,17,0,0,0,15,16,22,20,0,18,19,0,0,0,16,16,22,20,0,18,18,0,22,0,18,18,22,0,0,16,16,21,20,0,19,20,0,22,0,16,16,0,22,0,18,18,0,22,0,18,18,0,21,0,19,18,0,22,0,0,0,0,0,0,16,16,21,20,0,20,0,0,0,0,18,18,21,0,0,18,18,0,0,0,0,0,0,0,0,16,16,21,19,0,0,0,0,0,0,18,18,0,21,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,5,8,8,12,10,10,12,12,12,10,10,12,12,13,11,11,12,12,13,12,12,12,12,13,10,10,13,13,13,13,13,13,13,13,10,10,13,13,13,11,11,13,13,14,13,13,12,12,13,10,10,13,13,13,13,13,13,13,13,10,10,12,12,13,11,11,13,13,13,13,13,12,12,13,12,12,13,13,13,13,13,13,13,14,11,11,12,12,14,12,12,13,12,14,14,14,12,12,13,14,14,13,13,14,13,13,13,13,14,14,14,12,12,14,13,13,13,13,14,14,14,12,12,12,8,8,11,11,12,12,12,11,11,12,11,11,10,10,13,12,12,10,10,13,12,12,10,10,13,12,12,12,12,14,12,12,12,12,13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14,12,12,12,12,13,12,12,12,12,13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14,13,13,12,12,14,12,12,12,11,14,13,13,11,11,14,13,12,11,11,14,13,13,11,11,14,13,13,12,12,14,12,12,12,12,15,13,13,12,12,14,12,12,11,11,14,13,13,11,11,12,9,9,10,10,12,7,7,11,11,12,9,9,12,12,13,10,10,10,10,14,14,14,11,11,13,9,9,12,12,14,14,14,12,12,13,8,8,11,11,14,9,9,12,12,14,14,14,11,11,13,9,9,12,12,14,14,14,12,12,14,8,8,11,11,14,9,9,12,12,14,14,14,11,11,14,10,10,12,12,14,14,14,13,13,14,9,9,11,11,14,10,10,12,12,14,14,14,11,11,14,14,15,12,12,15],"i8",O3,_.GLOBAL_BASE+456540),C3([14,14,14,14,15,14,14,11,11,14,14,14,12,12,14,14,14,11,11,14,11,11,10,10,14,10,10,10,10,14,10,10,10,10,15,11,11,9,9,14,12,12,9,9,15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13,11,11,15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13,11,11,15,12,12,11,11,15,13,13,11,11,15,11,11,10,10,15,12,12,10,10,15,13,13,10,10,15,14,14,11,11,15,13,13,11,11,15,14,14,10,11,15,13,13,10,10,15,13,14,10,10,14,13,13,10,10,14,13,13,10,10,14,13,13,10,10,14,13,13,9,9,14,14,14,9,9,15,14,14,11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10,14,14,14,10,10,15,14,14,10,10,14,14,14,10,10,15,14,14,11,11,15,14,14,11,11,14,14,14,10,10,15,14,14,10,10,14,14,14,9,9,15,15,15,11,11,15,14,14,12,12,15,15,14,10,10,15,14,14,10,10,14,15,15,9,9,14,10,10,12,12,17,9,9,12,12,17,10,10,13,13,17,11,11,12,12,18,14,14,12,12,17,10,10,13,13,17,14,14,12,12,17,9,9,12,12,17,11,11,12,12,17,14,14,12,12,18,10,10,13,13,18,14,14,13,13,18,9,9,12,12,18,10,10,13,13,18,14,14,12,12,18,11,11,13,13,18,14,14,13,13,18,10,10,12,12,17,11,11,12,12,17,14,14,12,12,18,15,15,13,13,18,14,14,14,14,18,15,15,12,12,18,14,14,12,12,18,15,15,12,12,13,7,7,11,11,14,15,15,11,11,14,15,15,12,12,14,15,15,11,11,15,15,15,11,11,14,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,15,15,15,12,12,14,15,15,12,12,14,15,14,12,12,14,15,15,11,11,15,14,14,12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12,12,15,15,15,12,12,15,15,15,12,12,13,13,13,11,10,14,14,15,11,11,14,14,14,12,12,15,14,14,10,10,15,15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15,15,11,11,14,15,15,12,12,15,15,15,11,11,14,15,15,12,12,14,14,14,12,12,14,15,15,11,11,14,15,15,12,12,15,15,15,11,11,15,15,15,12,12,15,14,14,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,10,10,15,15,16,12,12,15,15,15,14,14,15,15,15,11,11,15,15,15,12,12,15,15,15,11,11,14,11,11,10,10,15,9,9,12,12,15,10,10,12,12,15,11,11,11,11,15,14,14,12,12,15,10,10,13,13,15,14,14,12,12,15,9,9,12,12,15,10,10,13,13,15,13,13,12,11,15,10,10,12,12,15,14,14,12,12,15,9,9,11,11,15,11,11,12,12,15,13,13,11,11,15,11,11,13,13,15,13,14,13,14,15,11,11,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14,13,13,15,14,14,20,20,15,14,14,12,12,15,14,14,12,12,15,14,14,11,11,14,13,13,10,10,14,13,13,12,12,14,14,13,12,12,15,14,14,12,12,15,14,14,11,11,15,14,14,12,12,15,14,14,13,13,15,14,14,12,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13,13,15,14,14,12,11,15,14,14,12,12,15,14,14,13,13,15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15,15,15,13,13,15,15,15,13,13,15,14,14,13,13,15,15,15,13,13,15,14,15,12,12,15,15,15,13,13,14,10,10,12,13,17,9,9,12,12,17,10,10,13,13,17,11,11,12,12,18,14,14,12,12,18,10,10,13,13,18,14,14,12,12,17,9,9,12,12,18,10,11,13,13,18,14,14,12,12,17,10,10,12,12,17,14,14,12,12,17,9,9,12,12,17,11,11,12,12,17,14,14,12,12,18,11,11,12,12,18,14,14,13,13,18,11,11,12,12,18,11,11,12,12,18,14,14,12,12,18,15,15,12,12,18,14,14,13,13,18,15,15,12,12,17,14,14,12,12,17,15,15,12,12,13,7,7,11,11,14,15,15,11,11,14,15,15,11,11,14,15,14,12,12,15,15,15,12,11,14,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,13,13,14,15,15,11,11,14,15,15,13,12,14,15,15,11,11,14,15,15,11,11,15,15,15,13,13,14,15,15,12,12,15,15,15,12,12,15,15,15,11,11,15,15,15,11,11,15,15,15,12,12,15,15,15,13,13,15,16,16,12,12,15,15,15,12,13,15,15,15,12,12,15,15,15,12,12,13,13,13,11,11,14,14,14,11,11,14,14,14,12,12,14,14,14,10,10,15,14,14,11,11,14,15,15,12,12,14,14,14,12,12,14,15,15,11,11,14,15,14,12,12,15,14,14,11,11,14,15,15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14,12,12,15,15,14,11,11,15,15,15,12,12,15,14,14,12,12,14,15,15,11,11,14,15,14,11,11,15,15,15,10,10,15,15,15,12,12,15,14,14,14,13,15,15,15,11,11,15,15,15,11,11,15,15,15,10,10,14,11,11,10,10,15,9,9,12,12,15,10,10,12,12,15,11,11,11,11,15,14,14,12,12,15,10,10,13,13,15,13,13,12,12,15,9,9,12,12,15,11,11,13,13,15,14,14,12,12,15,10,10,13,13,15,13,14,12,12,15,9,9,12,12,15,10,10,13,13,15,13,13,11,11,15,11,11,13,13,15,14,14,13,13,15,10,10,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14,13,13,15,14,14,21,20,15,14,14,11,11,15,14,14,12,12,15,14,14,11,11,14,13,13,10,10,14,13,13,11,11,15,14,14,12,12,15,14,14,12,12,14,14,14,12,12,15,14,14,12,12,15,14,14,13,13,14,14,14,11,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13,13,14,14,14,11,11,15,14,14,11,11,14,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,14,14,14,13,13,15,15,15,13,13,16,14,14,12,13,15,15,15,13,13,15,14,14,12,12,15,15,15,13,13,15,11,11,13,12,18,10,10,12,12,17,11,11,12,12,18,12,12,11,11,18,14,14,12,12,18,11,11,13,13,17,14,14,12,12,18,10,10,12,12,18,12,12,12,12,18,14,15,12,12,18,11,11,13,13,18,14,14,12,12,17,10,10,12,12,18,11,11,12,12,18,15,14,12,12,17,12,12,12,12,17,14,14,12,12,17,11,11,11,11,17,12,12,12,11,17,15,15,11,11,18,15,15,12,12,18,14,15,13,13,18,15,15,11,11,17,15,15,12,12,18,15,15,11,11,14,9,9,11,11,14,15,15,11,11,15,15,15,11,11,15,15,15,12,11,15,15,15,12,12,15,15,15,11,11,15,15,15,13,13,14,15,15,11,11,15,15,15,11,11,15,15,15,13,13,15,15,15,11,11,15,15,15,13,13,15,15,15,11,11,15,15,15,11,11,15,15,15,13,13,15,15,15,12,12,15,15,15,13,13,15,15,14,11,11,15,15,15,12,12,15,15,15,12,12,16,15,15,13,13,15,16,16,13,13,16,15,15,12,12,15,15,15,13,12,15,15,15,12,12,13,12,12,11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11,11,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15,14,14,12,12,15,14,14,12,12,14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15,15,15,12,12,15,14,14,12,12,15,15,15,11,11,15,14,14,11,11,15,14,15,11,11,15,15,15,12,12,15,14,14,13,13,16,15,15,11,11,15,14,14,12,12,15,15,15,11,11,14,11,11,9,9,15,10,10,12,12,14,11,11,12,12,15,12,12,12,12,15,14,14,13,13,15,11,11,13,13,15,14,14,13,13,15,10,10,12,12,15,12,12,13,13,15,14,14,13,13,15,11,11,12,12,15,14,14,13,13,14,10,10,12,12,15,12,12,13,13,15,14,14,12,12,15,12,12,13,13,15,14,14,15,15,15,11,11,12,12,15,12,12,12,13,15,14,14,12,12,15,15,15,14,14,15,14,14,20,20,15,14,14,12,12,15,14,14,13,13,15,14,14,12,12,14,13,13,10,10,14,13,13,11,11,14,13,13,12,12,14,14,14,12,12,15,14,14,13,13,15,14,14,12,12,14,14,14,14,14,14,14,14,11,11,15,14,14,12,12,15,14,14,14,14,15,14,14,12,12,14,14,14,14,14,14,14,14,11,11,15,14,14,12,12,14,14,14,14,14,15,14,14,12,12,15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,14,14,14,14,13,15,15,15,14,14,15,14,14,13,13,15,15,15,14,14,15,14,14,13,13,15,15,15,13,13,14,13,13,13,13,18,15,15,12,12,18,15,15,13,12,18,15,16,11,11,18,16,17,12,12,18,15,15,13,13,18,17,17,12,12,18,15,15,12,12,17,15,15,12,12,18,17,17,12,12,18,15,15,13,13,18,16,17,12,12,17,15,15,12,12,18,15,15,12,12,18,16,17,11,12,18,16,16,12,12,17,16,17,12,12,18,15,15,11,11,18,15,15,12,12,18,17,17,11,11,17,17,17,12,12,18,16,16,13,13,18,17,17,11,11,18,16,16,12,12,18,17,17,11,11,15,14,14,11,11,16,15,15,11,11,16,15,15,12,12,16,15,15,12,12,17,15,15,14,13,16,15,15,12,12,17,15,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15,15,13,13,16,15,15,11,11,17,15,15,14,14,16,15,15,11,11,16,15,15,12,12,17,15,15,13,13,16,15,15,12,12,17,16,15,14,14,16,14,15,12,12,16,15,15,12,12,18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,13,15,12,13,11,11,15,14,14,12,12,16,14,14,12,12,16,14,14,12,12,16,14,14,12,12,16,14,14,13,12,17,14,14,13,13,16,15,15,12,12,16,14,14,12,12,17,14,14,12,12,16,14,14,12,12,17,14,14,13,13,15,15,15,12,12,16,14,14,12,12,17,14,14,12,12,17,15,15,12,12,17,14,14,13,13,16,15,15,12,12,16,14,14,12,12,17,15,15,12,12,18,15,15,13,13,17,14,14,13,13,17,15,15,12,12,17,14,14,12,12,17,15,15,12,12,14,15,15,9,9,15,15,15,12,12,15,15,15,13,13,15,15,15,14,14,15,15,15,19,19,15,15,16,13,13,15,15,16,19,20,15,15,15,13,12,15,16,16,14,14,15,15,15,19,19,15,15,15,13,13,15,16,15,20,19,14,15,15,13,13,15,15,15,14,14,15,15,15,19,19,15,15,15,14,14,15,16,16,19,20,15,15,15,14,14,15,15,15,14,14,15,15,15,19,19,15,15,15,20,19,15,16,16,20,19,15,15,15,19,19,15,16,16,20,20,15,15,15,19,20,14,13,13,10,10,14,14,14,11,11,14,14,14,12,12,15,14,14,13,13,15,14,14,19,20,15,14,14,12,12,14,14,14,20,19,14,14,14,11,11,15,14,14,12,12,15,14,14,20,20,15,14,14,12,12,14,14,14,20,19,14,14,14,11,11,15,14,14,12,12,15,14,14,19,20,15,14,14,13,13,15,14,14,22,19,15,15,14,12,12,15,14,14,13,13,14,15,15,22,20,15,15,15,20,20,15,14,14,21,20,15,15,15,20,21,15,14,14,20,20,14,15,15,20,20,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,7,7,7,7,7,7,7,8,8,10,11,11,9,8,8,8,8,8,11,11,11,10,8,8,5,7,7,9,11,11,10,11,11,10,11,11,12,13,14,11,12,12,10,11,11,13,14,14,12,12,12,5,6,6,8,6,6,8,7,7,8,7,7,11,10,10,10,7,7,9,7,7,12,11,11,11,7,7,7,7,7,11,10,10,12,10,10,11,10,10,15,13,13,13,10,10,12,11,11,15,13,13,14,11,11,7,7,7,11,11,11,12,11,11,12,11,11,14,14,14,14,12,12,12,12,12,16,15,15,14,12,12,0,10,10,0,11,11,0,11,12,0,11,11,0,14,14,0,11,11,0,12,12,0,15,15,0,11,11,8,8,8,12,10,10,12,10,10,13,11,11,15,13,13,14,11,11,12,10,10,16,14,14,14,10,10,8,7,7,12,11,11,13,11,11,12,11,11,15,14,14,14,12,12,13,12,12,15,14,14,15,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,13,13,0,14,15,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,0,8,8,0,8,8,0,9,9,0,10,10,0,8,8,0,9,9,0,10,10,0,8,8,0,7,7,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,7,7,0,6,6,0,7,7,0,7,7,0,10,10,0,6,6,0,7,7,0,10,10,0,6,5,0,8,8,0,7,7,0,8,8,0,8,8,0,9,9,0,7,7,0,8,8,0,9,9,0,7,7,0,6,6,0,9,10,0,10,10,0,10,10,0,11,11,0,9,9,0,10,10,0,11,11,0,9,9,0,8,8,0,8,8,0,8,8,0,9,9,0,9,9,0,8,8,0,8,8,0,9,9,0,7,7,0,8,8,0,7,7,0,7,7,0,8,8,0,9,9,0,7,7,0,7,7,0,9,9,0,6,6,0,6,6,0,10,10,0,10,10,0,10,10,0,12,12,0,9,9,0,10,10,0,12,12,0,9,9,0,8,8,0,7,7,0,8,8,0,8,8,0,9,9,0,7,7,0,8,8,0,9,9,0,7,7,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,5,5,8,8,0,8,8,6,9,9,8,10,10,0,8,8,0,9,9,0,12,12,0,8,8,4,7,7,6,10,10,0,12,12,7,11,11,9,12,12,0,12,12,0,13,13,0,15,15,0,12,12,0,7,7,0,7,7,0,8,8,0,8,8,0,10,10,0,7,7,0,8,8,0,11,11,0,7,7,5,7,7,9,9,9,0,11,10,9,9,9,11,12,12,0,10,10,0,11,11,0,13,13,0,11,11,6,7,7,9,10,10,0,12,12,10,11,11,11,12,12,0,12,12,0,13,13,0,15,15,0,12,12,0,10,10,0,11,11,0,11,11,0,12,12,0,13,13,0,11,11,0,12,12,0,15,15,0,11,11,0,8,8,0,10,10,0,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,11,11,0,7,7,0,10,10,0,12,12,0,10,10,0,12,13,0,12,12,0,13,13,0,14,14,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,3,7,7,0,0,0,8,8,0,0,0,8,8,0,0,0,11,11,0,0,0,0,0,0,0,0,10,9,0,0,0,0,0,0,0,0,9,9,0,0,0,10,11,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,5,5,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,5,5,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,5,6,0,0,0,7,7,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,0,0,0,9,9,0,0,0,10,10,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,11,12,0,0,0,0,0,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,7,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,9,9,0,0,0,10,10,0,0,0,11,12,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,8,8,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,9,9,0,0,0,10,10,0,0,0,12,12,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,10,10,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,4,5,16,9,9,12,17,18,4,2,18,6,5,9,13,15,10,7,7,6,7,9,13,13,8,5,6,5,5,7,11,12,8,4,7,4,3,6,10,12,11,8,9,7,6,8,11,12,15,13,13,11,9,7,10,12,16,12,16,12,6,5,8,11,2,0,0,0,64,0,0,0,144,111,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,7,0,0,0,0,0,0,0,0,0,128,64,7,0,0,0,0,0,0,0,0,0,168,64,7,0,208,64,7,0,0,0,0,0,0,0,0,0,248,64,7,0,32,65,7,0,0,0,0,0,0,0,0,0,72,65,7,0,112,65,7,0,0,0,0,0,0,0,0,0,152,65,7,0,192,65,7,0,112,65,7,0,0,0,0,0,232,65,7,0,16,66,7,0,112,61,7,0,152,61,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,24,64,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,16,64,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,60,7,0,32,61,7,0,0,0,0,0,0,0,0,0,72,61,7,0,112,61,7,0,152,61,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,40,63,7,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,216,63,7,0,0,0,0,0,2,0,0,0,25,0,0,0,240,62,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,16,63,7,0,0,0,0,0,2,0,0,0,9,0,0,0,208,62,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,224,62,7,0,0,0,0,0,1,0,0,0,25,0,0,0,72,62,7,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,104,62,7,0,0,0,0,0,1,0,0,0,25,0,0,0,192,61,7,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,224,61,7,0,0,0,0,0,3,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,6,5,4,5,5,5,6,5,5,6,6,6,5,6,5,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,8,8,9,9,10,10,11,11,4,6,5,8,7,9,8,10,9,11,10,11,11,4,5,6,7,8,8,9,9,10,10,10,10,11,8,9,8,10,8,10,9,11,10,11,11,11,11,8,8,9,8,10,9,10,10,11,11,11,11,11,9,10,10,11,11,11,11,11,11,12,11,12,11,9,10,10,10,11,11,11,11,11,11,12,11,12,10,11,11,12,11,12,12,12,12,12,12,12,12,10,11,11,11,11,12,12,12,13,12,12,12,12,11,12,12,12,12,13,13,12,12,12,12,12,12,11,12,12,12,12,13,13,12,13,12,12,12,12,12,13,13,13,13,13,13,12,13,12,13,12,12,12,13,13,13,13,13,13,13,12,13,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,3,4,9,8,8,10,13,16,4,2,9,5,7,10,14,18,9,7,6,5,7,9,12,16,7,5,5,3,5,8,11,13,8,7,7,5,5,7,9,11,10,10,9,8,6,6,8,10,13,14,13,11,9,8,9,10,17,18,16,14,11,10,10,10,5,0,0,0,243,0,0,0,136,110,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,128,111,7,0,0,0,0,0,5,0,0,0,53,12,0,0,56,98,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,112,110,7,0,0,0,0,0,5,0,0,0,243,0,0,0,48,97,7,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,40,98,7,0,0,0,0,0,5,0,0,0,243,0,0,0,40,96,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,32,97,7,0,0,0,0,0,5,0,0,0,243,0,0,0,32,95,7,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,24,96,7,0,0,0,0,0,5,0,0,0,53,12,0,0,208,82,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,8,95,7,0,0,0,0,0,5,0,0,0,53,12,0,0,128,70,7,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,184,82,7,0,0,0,0,0,1,0,0,0,7,0,0,0,88,70,7,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,96,70,7,0,0,0,0,0,5,0,0,0,243,0,0,0,80,69,7,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,72,70,7,0,0,0,0,0,5,0,0,0,243,0,0,0,72,68,7,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,64,69,7,0,0,0,0,0,5,0,0,0,243,0,0,0,64,67,7,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,56,68,7,0,0,0,0,0,5,0,0,0,243,0,0,0,56,66,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,48,67,7,0,0,0,0,0,1,9,9,6,9,9,5,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,7,7,7,7,7,7,7,8,8,9,9,9,8,7,7,8,8,8,9,9,9,9,8,8,6,7,7,9,8,8,9,7,7,9,8,8,10,8,8,10,8,8,10,8,8,10,8,9,10,8,8,7,6,6,8,6,6,9,6,6,9,7,7,10,8,8,9,6,6,9,7,7,10,9,8,9,7,7,7,7,7,11,8,8,11,9,9,10,9,9,12,9,9,12,8,8,11,9,9,12,9,9,12,8,8,8,7,7,10,9,9,10,9,9,10,9,9,11,10,11,11,9,9,11,9,9,11,11,11,11,9,9,10,8,8,11,9,9,10,9,9,11,9,9,11,10,10,11,9,9,11,9,9,12,10,10,11,9,9,8,8,8,11,9,9,12,9,9,11,9,9,12,9,9,12,8,8,12,9,9,12,9,10,12,8,8,9,7,7,11,9,9,11,10,10,11,9,9,11,11,11,11,9,9,11,10,10,12,11,11,11,9,10,10,9,9,11,9,9,11,10,10,11,10,10,11,11,11,11,9,9,11,9,10,11,11,11,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,7,7,7,8,8,7,8,8,7,9,9,10,11,11,9,8,8,7,8,9,11,11,11,9,8,8,6,7,7,10,10,10,10,10,10,10,10,10,14,14,14,12,11,11,10,11,11,15,14,14,13,11,11,6,6,6,8,5,5,8,7,7,8,7,7,11,10,10,9,7,7,9,7,7,12,10,10,10,7,7,6,8,7,12,10,10,12,10,10,11,10,10,15,14,13,13,10,10,11,10,10,16,14,14,14,10,10,7,7,7,12,11,11,12,11,11,11,11,11,16,14,14,13,12,12,11,11,11,17,15,15,14,12,12,10,9,9,13,11,11,13,11,11,12,11,11,16,14,13,14,11,11,12,11,11,17,15,14,14,11,11,7,8,8,12,11,11,12,10,10,12,10,10,16,13,14,13,10,10,11,10,10,17,14,14,14,10,10,7,7,7,12,11,11,12,11,11,12,11,11,15,14,15,14,12,12,12,11,11,17,15,15,14,12,12,10,10,9,13,11,11,13,11,11,13,11,11,16,14,14,14,11,11,13,11,11,16,15,15,15,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,14,14,6,7,7,14,14,7,7,7,15,15,0,13,13,16,16,0,13,13,15,15,7,8,8,15,15,9,10,10,17,16,9,8,8,15,15,0,13,13,18,17,0,13,13,16,16,8,8,8,15,15,12,11,11,16,17,9,8,8,14,14,0,13,13,18,17,0,13,13,16,15,0,14,14,18,17,0,20,22,18,20,0,12,12,16,16,0,16,16,22,20,0,14,14,16,16,0,14,14,17,17,0,22,22,22,19,0,12,13,16,16,0,17,17,0,0,0,15,15,16,16,5,7,7,13,13,9,9,9,15,14,10,10,10,14,14,0,21,21,18,17,0,21,22,18,17,9,10,10,14,14,12,12,12,17,17,12,10,10,14,14,0,19,21,18,17,0,20,22,18,18,11,10,10,14,14,14,13,13,18,17,12,11,11,14,14,0,22,19,17,18,0,20,0,18,17,0,22,21,17,17,0,0,0,0,0,0,20,22,17,17,0,22,0,21,19,0,22,0,18,18,0,0,22],"i8",O3,_.GLOBAL_BASE+466780),C3([18,19,0,0,0,0,0,0,19,21,17,17,0,0,0,20,20,0,0,0,18,18,6,6,6,13,12,8,6,6,11,11,8,6,6,13,13,0,9,9,11,11,0,11,11,14,14,9,7,7,13,13,11,9,9,13,13,10,6,6,13,13,0,10,10,14,14,0,10,10,13,13,9,7,7,13,14,13,9,9,13,13,10,6,6,13,12,0,11,11,15,15,0,10,10,13,13,0,12,12,15,15,0,19,0,17,17,0,9,9,13,13,0,13,14,19,20,0,11,11,13,13,0,11,11,14,14,0,19,20,17,18,0,10,10,13,13,0,15,15,21,19,0,12,12,13,13,0,10,10,12,13,0,11,11,15,15,0,11,11,15,15,0,15,15,22,0,0,16,17,22,0,0,11,11,15,15,0,14,14,18,17,0,11,11,15,16,0,15,15,22,21,0,16,16,0,20,0,12,12,16,15,0,15,14,19,19,0,11,11,16,16,0,15,15,21,0,0,16,15,0,0,0,16,16,22,21,0,0,0,0,0,0,15,15,20,20,0,18,18,0,0,0,16,17,0,0,0,17,17,0,22,0,0,0,0,0,0,15,15,21,22,0,20,18,0,0,0,18,17,22,0,0,10,10,12,11,0,10,10,10,10,0,11,11,12,12,0,11,11,9,9,0,13,13,12,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,13,12,13,13,0,12,12,12,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,13,13,13,14,0,12,12,12,12,0,13,14,14,14,0,20,21,15,15,0,12,11,12,12,0,15,16,20,22,0,13,12,11,11,0,13,13,14,13,0,20,0,16,15,0,12,12,12,12,0,16,16,22,21,0,13,13,12,12,6,7,7,16,16,11,9,9,15,15,12,9,9,16,16,0,13,13,14,14,0,14,14,16,17,10,9,9,16,16,14,12,12,16,16,12,9,9,15,15,0,13,13,18,18,0,13,13,15,16,12,10,10,17,18,15,12,12,17,17,13,9,9,16,16,0,13,13,17,18,0,14,14,16,16,0,15,15,18,18,0,22,0,20,20,0,12,12,16,16,0,16,16,20,22,0,14,14,16,16,0,15,14,18,18,0,0,22,19,21,0,13,13,16,17,0,17,17,22,22,0,15,15,16,16,7,7,7,14,14,11,10,10,15,15,12,10,10,15,14,0,22,0,18,18,0,0,21,17,18,11,10,10,15,15,14,12,12,17,17,14,11,11,15,15,0,22,20,18,18,0,0,20,18,17,12,10,10,16,16,17,14,14,19,18,14,11,11,15,15,0,21,22,19,19,0,21,22,18,18,0,22,0,19,21,0,0,0,0,0,0,22,22,18,17,0,0,0,21,20,0,22,22,20,19,0,0,22,20,20,0,0,0,0,0,0,20,21,17,17,0,0,22,21,21,0,0,0,18,18,10,9,9,14,14,13,10,10,13,13,13,10,11,14,14,0,13,13,12,12,0,15,15,16,16,13,10,10,15,15,15,12,12,14,14,15,10,10,14,15,0,14,14,16,15,0,14,14,15,15,13,10,10,15,15,18,13,13,15,15,15,10,10,14,15,0,14,14,16,16,0,14,14,15,15,0,15,15,16,16,0,22,0,18,18,0,12,13,14,14,0,17,17,22,0,0,14,14,14,14,0,15,15,16,16,0,22,0,18,17,0,13,13,14,14,0,19,18,21,22,0,15,15,14,14,0,11,11,13,13,0,12,12,16,16,0,12,12,16,16,0,15,16,21,0,0,16,17,0,22,0,12,12,16,16,0,14,14,17,18,0,11,11,16,16,0,15,15,21,22,0,16,16,0,0,0,12,12,16,16,0,15,15,0,19,0,12,12,16,17,0,16,16,22,0,0,16,16,0,22,0,17,17,0,22,0,0,0,0,0,0,15,15,20,19,0,18,18,0,0,0,17,18,0,0,0,17,17,0,0,0,0,0,0,0,0,15,15,0,22,0,20,18,0,0,0,18,18,22,22,0,11,11,14,14,0,12,12,14,14,0,12,12,15,15,0,13,13,14,14,0,14,14,17,16,0,12,12,16,16,0,14,14,16,16,0,11,11,15,15,0,13,13,16,16,0,13,13,15,15,0,12,12,15,15,0,15,14,16,16,0,11,11,15,15,0,14,14,17,17,0,13,13,15,15,0,15,15,17,17,0,0,0,19,18,0,13,12,15,15,0,16,16,0,0,0,14,14,15,15,0,14,14,16,17,0,22,0,18,18,0,13,13,15,15,0,17,17,0,0,0,14,14,15,15,8,8,8,16,16,12,10,10,16,16,13,9,9,16,16,0,14,14,17,17,0,14,14,17,16,12,10,10,18,17,14,11,11,18,18,14,9,10,16,16,0,13,13,18,19,0,14,13,16,16,12,9,9,16,16,17,13,13,17,17,14,9,9,15,15,0,14,14,19,20,0,13,13,15,15,0,15,15,18,19,0,0,22,22,22,0,13,13,17,17,0,16,16,19,21,0,14,14,16,16,0,14,14,18,18,0,0,0,0,0,0,13,13,16,16,0,18,18,0,0,0,15,15,16,16,8,7,7,14,14,12,10,10,15,15,13,10,10,15,14,0,22,0,18,18,0,22,0,18,18,12,10,10,16,15,15,12,12,17,17,14,11,11,15,15,0,20,21,19,18,0,0,0,17,18,13,11,11,15,15,16,13,13,18,18,15,11,11,14,14,0,22,21,19,19,0,21,22,18,18,0,22,22,20,18,0,0,0,0,0,0,22,19,17,17,0,0,0,22,21,0,0,22,19,17,0,0,22,19,19,0,0,0,0,0,0,22,21,18,17,0,0,0,22,0,0,0,0,19,19,0,10,10,14,14,0,11,11,15,14,0,11,11,15,15,0,14,14,15,14,0,15,15,16,16,0,11,11,16,16,0,13,13,16,16,0,11,11,15,15,0,14,14,17,16,0,14,14,15,15,0,11,11,16,16,0,14,13,15,15,0,11,11,15,15,0,15,15,17,17,0,14,14,15,14,0,16,16,17,17,0,0,22,18,18,0,13,13,15,15,0,17,17,22,0,0,15,15,15,14,0,15,16,16,17,0,0,22,18,19,0,13,13,15,15,0,20,18,21,0,0,15,15,14,14,0,11,11,13,13,0,12,12,16,16,0,12,12,16,15,0,15,16,22,22,0,17,17,0,0,0,12,12,16,16,0,14,14,18,18,0,11,11,16,16,0,15,16,22,20,0,16,16,0,22,0,12,12,16,16,0,15,15,18,20,0,11,11,16,16,0,15,15,0,0,0,16,16,0,0,0,17,17,22,0,0,0,0,0,0,0,15,15,0,21,0,18,18,0,0,0,17,16,0,0,0,17,17,22,22,0,0,0,0,0,0,15,15,21,0,0,20,22,0,0,0,18,18,0,0,0,12,12,15,15,0,12,12,15,15,0,12,12,16,16,0,13,13,15,15,0,15,15,17,17,0,13,12,16,16,0,14,14,16,16,0,12,11,16,16,0,14,14,17,17,0,14,14,16,16,0,12,12,16,16,0,15,15,17,16,0,11,11,15,16,0,14,14,17,17,0,14,14,16,16,0,15,15,18,18,0,0,0,22,19,0,13,13,15,16,0,16,17,0,0,0,14,14,16,16,0,15,15,18,17,0,0,0,20,20,0,13,13,16,15,0,17,17,22,22,0,14,14,15,15,0,11,11,16,16,0,13,13,16,17,0,13,13,17,18,0,16,16,17,17,0,17,17,18,18,0,12,12,17,17,0,16,15,18,18,0,12,12,16,16,0,16,16,18,18,0,15,15,17,17,0,12,12,17,17,0,16,16,19,18,0,12,12,16,17,0,16,16,19,19,0,15,16,16,17,0,16,16,19,17,0,0,0,20,22,0,13,13,16,16,0,19,18,21,0,0,15,15,16,16,0,16,16,18,18,0,0,0,22,21,0,14,14,16,16,0,21,19,21,22,0,16,16,16,16,0,9,9,14,14,0,13,13,15,15,0,14,14,15,15,0,0,20,18,19,0,0,22,18,18,0,12,12,15,15,0,15,15,17,18,0,14,13,14,14,0,20,0,18,18,0,21,0,18,17,0,13,13,15,16,0,17,17,18,18,0,14,14,15,15,0,22,22,20,19,0,20,21,18,18,0,20,22,19,19,0,0,0,0,0,0,20,20,17,17,0,0,22,22,21,0,22,0,18,18,0,20,22,19,19,0,0,0,0,0,0,21,21,17,18,0,0,0,21,20,0,0,22,19,18,0,18,18,15,15,0,22,21,17,16,0,0,22,17,17,0,20,22,18,18,0,0,22,20,20,0,21,19,16,16,0,21,21,18,18,0,19,19,17,17,0,0,22,19,19,0,22,20,17,17,0,21,19,16,16,0,22,22,19,18,0,19,20,16,16,0,22,21,19,21,0,21,22,17,18,0,21,20,18,18,0,0,0,19,20,0,20,19,16,16,0,22,22,0,0,0,21,21,17,16,0,22,20,19,18,0,0,0,20,20,0,20,19,16,16,0,0,0,0,0,0,21,22,17,17,0,11,11,13,13,0,13,13,15,16,0,13,13,16,16,0,17,18,21,0,0,17,18,0,0,0,12,12,15,16,0,15,15,19,18,0,12,12,16,16,0,17,17,22,0,0,17,17,0,22,0,12,12,17,16,0,16,16,19,20,0,12,12,16,16,0,17,17,0,0,0,17,17,0,21,0,17,16,22,0,0,0,0,0,0,0,15,15,20,22,0,20,18,0,0,0,18,18,0,0,0,17,17,21,0,0,0,0,0,0,0,15,15,21,22,0,19,20,22,0,0,19,18,0,0,0,14,14,18,18,0,16,16,22,20,0,16,16,22,19,0,17,17,20,22,0,19,19,0,0,0,15,15,20,0,0,18,21,0,20,0,15,15,21,20,0,18,17,0,0,0,17,17,0,22,0,15,15,19,19,0,19,18,0,0,0,15,15,20,0,0,18,18,22,22,0,17,17,0,20,0,18,18,0,0,0,0,22,0,0,0,15,15,19,20,0,20,19,0,0,0,17,17,20,21,0,17,18,20,22,0,0,0,0,22,0,15,15,20,20,0,22,20,0,0,0,17,18,20,0,0,12,12,17,16,0,14,14,17,17,0,13,13,17,17,0,16,16,18,18,0,17,16,17,17,0,13,13,17,17,0,15,16,18,18,0,13,13,16,16,0,16,16,18,18,0,16,16,17,16,0,13,13,16,16,0,17,17,18,17,0,12,12,15,16,0,17,17,19,19,0,16,16,16,16,0,16,17,19,18,0,0,0,21,22,0,14,14,16,16,0,18,18,0,22,0,16,16,16,16,0,16,16,18,17,0,0,0,21,20,0,14,14,16,16,0,21,22,22,0,0,16,16,16,16,0,9,9,14,13,0,13,14,15,16,0,14,13,15,14,0,22,0,18,18,0,21,0,17,18,0,13,13,15,15,0,15,16,18,17,0,14,14,15,14,0,20,22,18,18,0,22,21,17,17,0,13,13,15,15,0,17,17,19,19,0,14,14,14,14,0,0,22,18,18,0,0,22,17,17,0,0,22,19,20,0,0,0,0,0,0,21,20,17,16,0,0,0,21,22,0,0,0,18,19,0,0,0,18,18,0,0,0,0,0,0,22,0,17,17,0,0,0,20,22,0,0,0,18,19,0,18,19,16,16,0,22,20,17,17,0,22,22,17,18,0,22,22,18,17,0,0,22,18,19,0,20,20,17,18,0,0,22,19,18,0,22,22,17,17,0,22,0,19,19,0,0,22,18,18,0,20,22,17,17,0,0,22,18,18,0,19,20,17,17,0,22,0,20,19,0,22,21,17,17,0,0,0,18,18,0,0,0,22,19,0,20,0,17,17,0,22,0,0,22,0,0,20,17,18,0,22,0,19,19,0,0,0,0,19,0,19,21,17,17,0,0,0,0,0,0,20,21,17,16,0,11,11,13,13,0,13,13,16,16,0,13,13,15,16,0,17,17,21,22,0,17,18,0,0,0,12,12,16,16,0,15,15,18,18,0,13,13,16,16,0,17,16,21,21,0,17,17,0,0,0,13,13,16,16,0,16,16,19,18,0,13,13,16,16,0,17,17,0,22,0,17,18,20,22,0,17,18,0,0,0,0,0,0,0,0,15,15,20,0,0,18,19,0,0,0,17,17,0,0,0,18,17,22,0,0,0,0,0,0,0,15,16,21,20,0,20,20,0,0,0,18,19,0,0,0,15,15,22,22,0,17,16,20,22,0,17,17,20,22,0,18,18,0,21,0,19,18,0,0,0,16,16,20,20,0,19,19,22,0,0,15,16,21,22,0,18,19,22,0,0,17,18,0,0,0,16,16,22,0,0,19,19,0,21,0,15,16,20,0,0,18,18,0,22,0,18,17,0,0,0,18,18,0,0,0,0,0,0,0,0,16,16,22,21,0,20,21,0,0,0,17,18,22,0,0,18,18,0,0,0,0,0,0,0,0,16,16,20,19,0,22,21,0,0,0,18,18,22,22,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,4,8,8,11,9,9,12,12,11,10,10,12,12,12,10,10,11,11,12,12,12,12,12,12,11,11,13,13,12,12,12,13,13,12,10,10,12,12,12,11,11,13,13,12,13,13,13,13,12,11,11,13,13,12,12,12,13,13,12,10,10,12,12,12,11,11,13,13,12,13,13,12,12,12,11,11,13,13,12,13,13,13,13,12,11,11,12,12,12,11,11,12,12,12,13,13,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,12,12,12,13,13,13,13,12,13,13,12,12,11,8,8,10,10,12,11,11,11,11,12,10,10,10,10,13,11,11,10,10,13,11,11,10,10,13,12,12,12,12,13,11,11,11,11,13,12,12,11,11,13,12,12,11,11,13,12,12,12,11,13,12,12,12,12,13,11,11,11,11,13,12,12,11,11,13,11,12,11,11,13,12,12,11,11,14,12,12,11,11,13,11,11,11,11,14,12,12,11,11,13,11,12,10,10,14,12,12,11,11,14,12,12,11,11,14,11,11,11,11,14,12,12,11,11,13,12,12,11,11,14,12,12,11,11,11,8,8,10,10,12,7,7,10,10,12,9,9,11,11,13,9,9,9,9,13,13,13,10,10,13,9,9,12,12,13,13,13,12,12,13,9,8,11,11,13,10,10,12,12,14,13,13,11,11,13,9,9,11,11,13,13,13,12,12,13,9,9,10,10,13,10,10,11,11,13,13,13,10,10,14,10,10,11,11,14,14,14,12,12,13,9,9,10,10,13,10,10,11,11,14,13,14,10,10,14,14,14,11,12,14,14,14,14,14,14,13,13,10,10,13,14,14,11,11,14,14,14,10,10,14,9,9,9,9,14,9,9,9,9,14,10,10,9,9,14,10,10,8,8,14,11,11,8,8,15,11,11,10,10,15,12,12,10,10,15,10,10,10,10,15,11,11,10,10,15,13,13,10,10,15,11,11,10,10,15,12,12,10,10,15,10,10,10,10,15,11,11,10,10,15,13,13,10,10,15,11,11,10,10,15,12,12,10,10,15,11,11,9,9,15,11,11,9,9,15,13,13,9,9,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,13,12,9,9,15,13,13,9,9,14,12,12,9,9,14,13,13,9,9,14,13,13,9,9,14,13,13,7,7,14,13,13,8,8,15,14,14,10,10,15,14,14,10,10,15,14,14,10,10,15,14,14,10,10,15,14,14,9,9,15,14,14,10,10,15,14,14,10,10,14,14,14,9,9,15,14,14,10,10,14,14,14,9,9,15,14,14,10,10,15,14,14,10,10,14,14,14,9,9,14,14,14,9,9,14,14,14,8,8,15,14,14,10,10,15,14,14,11,11,15,14,14,9,9,15,14,14,9,9,14,14,14,8,8,13,9,9,12,12,17,11,11,12,12,17,12,12,12,12,17,12,12,11,11,18,15,15,12,12,17,12,12,12,12,17,14,15,13,13,17,12,12,12,12,17,13,13,12,13,17,15,15,12,12,18,13,13,13,13,18,15,15,13,13,18,12,12,12,12,18,13,13,13,13,18,15,15,12,12,18,13,13,12,12,18,15,15,13,13,18,13,13,12,12,17,13,13,12,12,17,15,15,12,12,18,15,15,13,13,18,15,15,13,14,18,15,16,12,12,18,15,15,12,12,18,16,16,12,12,13,8,8,10,10,14,15,14,11,11,14,15,15,12,12,15,14,14,12,11,15,15,15,12,12,15,15,15,12,12,15,15,15,13,13,15,15,15,12,12,15,15,15,13,13,15,15,15,13,13,15,15,15,13,13,15,15,16,13,13,15,15,15,12,12,15,15,15,13,13,15,15,15,13,13,15,15,15,13,13,15,15,15,13,13,15,15,14,12,12,15,15,15,12,12,16,15,14,12,12,16,15,15,13,13,16,16,16,13,13,16,15,15,12,12,15,15,15,13,13,15,15,15,12,12,13,12,12,10,10,14,14,14,11,11,15,14,14,12,12,15,14,14,11,11,15,14,14,11,11,15,15,15,13,13,15,14,14,13,13,15,15,15,12,12,15,14,15,13,13,16,15,15,12,12,15,15,15,13,13,16,14,14,13,13,15,15,15,12,12,15,15,15,13,13,16,15,15,12,12,16,15,15,12,12,16,14,14,13,13,15,15,15,11,11,15,15,15,12,12,16,15,15,11,11,16,15,15,13,13,16,14,15,14,14,16,15,15,12,12,16,15,14,12,12,16,15,15,12,12,14,10,10,9,9,14,11,11,12,12,14,12,12,13,13,14,12,12,12,12,15,14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,12,12,13,13,15,13,13,14,14,15,14,14,13,13,15,13,13,13,14,15,14,14,15,15,15,12,12,13,13,15,13,13,14,14,15,14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,13,13,12,12,15,13,13,13,13,15,14,14,13,12,15,15,15,14,15,15,15,14,20,20,15,14,14,13,13,15,14,14,13,13,15,14,14,13,13,14,12,12,9,9,14,14,14,12,12,14,13,13,12,13,14,14,14,12,12,15,14,14,12,12,15,14,14,14,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,15,15,15,14,14,15,14,14,13,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,15,15,15,15,14,15,15,15,13,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,14,15,15,14,14,15,15,15,14,14,15,14,14,14,14,15,15,15,14,14,15,14,14,13,14,15,15,15,14,14,13,10,10,12,12,17,11,11,12,12,17,12,12,12,12,17,12,12,11,11,17,15,15,12,11,18,13,13,13,13,18,15,15,13,13,17,12,12,12,12,18,13,13,13,13,17,15,15,12,12,17,12,12,12,12,17,15,15,13,13,17,12,12,12,12,17,13,13,12,12,17,15,15,12,12,18,14,13,12,12,18,15,15,13,13,18,13,13,12,12,18,13,13,12,12,18,16,16,12,12,18,16,16,12,12,18,15,15,13,13,18,16,16,12,12,17,15,15,12,12,17,16,16,12,12,13,8,8,10,10,14,14,15,12,12,14,15,15,12,12,15,14,14,12,12,15,15,14,12,12,15,15,15,13,13,15,15,15,13,13,15,15,15,12,12,16,15,15,13,13,16,15,15,13,13,15,15,15,12,12,15,15,15,14,14,15,15,15,12,12,15,15,15,13,13,16,15,15,13,13,15,15,15,13,13,16,15,15,13,13,15,15,14,12,12,15,15,15,12,12,16,14,15,13,13,16,15,15,13,13,15,16,15,13,13,16,15,14,13,13,16,15,15,13,13,16,15,15,13,13,13,12,12,11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11,11,16,14,14,11,11,15,15,15,12,13,16,14,14,13,13,15,15,15,12,12,15,14,14,13,13,16,15,15,12,12,15,15,15,12,12,15,14,14,13,13,15,15,15,12,12,15,14,14,12,12,16,15,15,12,12,16,15,15,12,12,16,14,14,13,13,15,15,15,11,11,15,15,14,12,12,16,15,15,11,11,16,15,15,12,12,16,14,14,13,13,16,15,15,11,11,16,14,14,12,12,16,15,15,11,11,14,10,10,9,9,14,11,11,12,12,14,12,12,13,14,14,12,12,12,12,14,14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,12,12,13,13,15,13,13,14,14,15,15,15,14,14,15,13,13,14,14,15,15,15,15,15,15,12,12,13,13,15,13,13,14,14,15,14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,12,12,13,13,15,13,13,13,13,14,14,14,13,13,15,15,15,14,15,15,15,15,21,19,15,14,14,13,13,15,14,14,14,14,14,14,14,13,13,14,12,12,9,9,14,14,14,12,12,14,14,13,13,13,14,14,14,12,12,14,14,14,12,12,15,14,14,13,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,15,15,15,15,15,15,14,14,13,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,14,15,15,15,15,15,14,15,13,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,14,15,15,14,14,15,15,15,14,14,15,14,14,14,14,15,15,15,15,15,15,14,14,14,13,14,15,15,14,14,13,10,10,12,12,18,12,12,12,12,17,12,12,12,12,18,13,13,11,11,18,15,14,11,11,17,13,13,13,13,18,15,15,12,12,18,12,12,12,12,17,13,13,12,12,18,15,15,12,12,18,13,13,13,12,18,15,15,13,13,18,13,13,12,12,18,13,13,12,12,18,15,15,12,12,17,13,13,12,12,17,15,15,12,12,17,12,12,11,11,17,13,13,11,11,17,15,15,11,11,18,16,16,12,12,18,15,15,13,13,18,15,15,11,11,17,15,15,12,12,18,15,15,11,11,13,8,8,10,10,14,14,14,11,11,15,15,15,12,12,15,14,14,11,11,16,14,14,12,12,15,15,15,12,12,15,15,15,13,13,15,15,15,12,12,15,15,15,12,12,16,15,15,13,13,15,15,15,12,12,15,15,15,13,13,16,15,15,12,12,15,15,15,12,12,16,15,15,13,13,16,15,15,12,12,15,15,15,13,13,15,14,14,12,12,15,15,15,12,12,16,15,14,12,12,16,15,15,13,13,16,16,16,13,13,16,14,15,13,13,15,15,15,13,13,16,15,15,12,12,13,12,12,10,10,14,14,14,11,11,15,14,14,12,12,15,14,14,11,11,16,14,14,11,11,15,14,15,12,12,15,14,14,13,13,15,15,15,12,12,15,14,14,12,12,15,14,15,12,12,15,15,15,12,12,16,14,14,13,13,15,15,15,11,12,16,14,14,12,12,16,15,15,12,12,15,15,15,12,12,16,14,14,12,12,15,15,15,11,11,15,14,14,11,12,15,15,14,11,11,16,15,15,12,12,16,14,14,13,13,16,15,15,11,11,16,14,14,12,12,16,15,15,11,11,13,10,10,8,8,14,12,12,12,12,14,12,12,13,13,14,12,12,12,12,14,14,14,13,13,15,13,13,14,14,15,15,14,15,15,15,13,13,13,13,15,13,13,14,14,15,14,15,14,14,15,13,13,13,13,15,15,15,15,15,15,12,12,13,12,15,13,13,14,14,15,14,14,13,13,15,13,13,14,13,15,15,15,16,16,15,13,13,12,12,15,13,13,13,13,14,14,14,12,12,15,15,15,14,14,15,15,15,20,20,15,14,14,13,13,15,15,14,14,14,15,14,14,13,13,13,12,12,9,9,14,13,13,12,12,14,13,13,12,12,14,14,14,12,12,14,14,14,13,13,15,14,14,13,13,15,14,14,14,14,15,15,14,12,12,15,14,14,13,13,15,14,15,14,15,15,14,14,13,13,15,14,14,14,14,15,14,14,12,12,15,14,14,13,13,14,15,14,15,14,15,14,14,13,13,15,14,14,14,14,15,14,14,12,12,15,14,14,13,13,15,15,15,14,14,15,15,15,14,14,16,14,14,14,14,15,15,15,14,14,15,14,14,14,14,14,15,15,14,14,13,13,13,12,13,17,15,15,12,12,17,15,15,12,12,18,15,15,11,11,17,16,16,11,11,18,16,16,13,13,18,17,16,13,13,18,16,16,12,12,18,16,16,12,12,18,17,17,12,12,17,16,16,12,13,17,16,16,12,13,17,16,16,12,12,17,16,16,12,12,18,17,16,12,12,18,16,16,12,12,17,16,17,12,12,18,15,15,11,11,18,15,15,12,12,17,17,17,11,11,17,17,17,12,12,17,16,16,13,13,18,16,16,11,11,18,16,16,12,12,18,17,16,11,11,14,14,14,10,10,16,15,14,11,11,16,15,15,12,12,16,14,14,12,12,17,14,14,13,13,17,15,15,13,13,17,15,15,14,14,16,15,15,12,12,16,15,15,13,13,18,15,15,14,14,16,15,15,12,12,16,15,15,14,14,16,15,15,12,12,16,15,15,13,13,17,15,15,13,13,17,15,15,13,13,17,15,15,14,14,16,14,14,12,12,17,15,15,12,12,18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17,15,14,13,13,17,15,15,14,14,17,15,15,13,13,14,12,12,11,11,15,14,14,12,12,16,14,14,12,12,16,14,14,11,11,17,14,14,12,12,16,15,14,13,13,16,14,14,13,13,16,15,15,12,12,16,14,14,13,13,17,15,15,13,13,16,15,15,13,13,17,14,14,13,13,16,15,15,12,12,16,14,14,12,12,16,15,15,12,12,17,15,15,12,12,17,14,14,13,13,16,15,15,12,12,16,14,14,12,12,16,15,15,12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12,17,14,14,12,12,17,15,15,12,12,14,14,14,8,8,14,14,14,13,13,14,15,15,14,14,14,14,14,14,14,15,15,15,19,19,15,15,15,14,14,15,15,16,20,19,15,15,15,14,14,15,16,16,15,15,15,15,15,19,19,15,15,15,14,14,15,16,16,19,20,15,15,15,14,14,15,15,15,15,15,15,15,15,19,19,15,15,15,15,15,15,15,16,19,20,15,14,15,14,14,15,15,15,15,15,15,15,15,20,19,15,15,15,21,19,15,16,16,20,20,15,15,14,19,19,15,15,16,20,21,15,15,15,20,19,13,12,12,9,9,14,14,14,12,12,14,13,13,13,13,14,14,14,13,13,15,14,14,20,19,15,14,14,14,13,15,14,14,19,19,15,15,14,13,13,15,14,14,14,14,15,15,15,19,20,15,14,14,13,13,15,14,14,20,19,14,15,14,13,13,15,14,14,14,13,15,15,15,19,20,15,15,14,14,14,15,14,14,21,19,15,15,15,13,13,15,14,14,14,14,14,15,15,20,20,15,15,15,21,20,15,14,14,19,20,15,15,15,20,20,15,14,14,19,20,15,15,15,21,19,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,6,7,7,7,8,8,7,8,8,10,11,11,9,8,8,7,8,8,11,11,11,9,8,8,6,7,7,9,11,11,9,11,11,10,11,11,12,13,13,11,12,12,10,11,11,13,14,14,12,12,12,6,6,6,8,6,6,8,7,7,9,7,7,11,10,10,10,6,6,9,7,7,12,10,10,11,6,7,7,7,7,11,10,10,12,10,10,11,10,10,14,13,13,13,10,10,12,11,11,15,13,13,14,10,10,8,7,7,12,11,11,12,11,11,11,11,11,14,14,14,13,12,12,12,11,11,15,15,15,13,12,12,0,10,10,0,11,11,0,11,11,0,11,11,0,14,14,0,11,11,0,11,11,0,15,15,0,11,11,7,8,8,12,10,10,12,10,10,12,11,11,15,13,13,14,11,11,12,10,10,16,14,14,14,10,10,8,7,7,12,11,11,12,11,11,12,11,11,16,14,14,14,12,12,13,12,12,15,14,14,15,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,12,12,0,14,14,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,0,8,8,0,8,8,0,9,9,0,9,9,0,9,9,0,9,9,0,9,9,0,8,8,0,6,6,0,7,7,0,7,7,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,6,6,0,6,6,0,6,6,0,8,8,0,9,9,0,7,7,0,8,8,0,9,9,0,6,6,0,8,8,0,9,9,0,9,9,0,10,10,0,10,10,0,10,10,0,10,10,0,11,11,0,9,9,0,7,7,0,10,10,0,10,10,0,12,11,0,12,12,0,11,11,0,11,11,0,12,12,0,10,10,0,7,7,0,10,10,0,10,10,0,12,12,0,11,12,0,11,11,0,11,11,0,11,11,0,10,10,0,8,8,0,9,9,0,9,9,0,10,10,0,10,10,0,10,9,0,10,10,0,10,10,0,9,9,0,6,6,0,10,10,0,10,10,0,11,11,0,12,12,0,11,11,0,11,11,0,12,12,0,11,11,0,7,7,0,9,9,0,9,9,0,11,11,0,11,11,0,10,10,0,10,10,0,11,11,0,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,5,6,7,7,0,8,8,6,9,9,8,11,11,0,8,8,0,9,9,0,12,12,0,8,8,5,7,7,7,10,10,0,12,12,8,11,11,9,12,12,0,11,12,0,12,12,0,15,15,0,12,12,0,6,6,0,6,6,0,7,7,0,7,7,0,10,10,0,7,7,0,8,8,0,11,11,0,7,7,6,7,7,10,9,9,0,11,10,10,9,9,12,12,12,0,10,10,0,11,11,0,13,13,0,11,11,7,6,6,10,10,10,0,11,11,11,11,11,12,12,12,0,11,11,0,12,12,0,15,15,0,11,11,0,11,11,0,11,11,0,12,12,0,12,12,0,14,14,0,12,12,0,12,12,0,15,15,0,11,11,0,8,8,0,10,10,0,11,11,0,11,11,0,12,12,0,12,12,0,11,11,0,15,15,0,11,11,0,6,6,0,10,10,0,12,12,0,10,10,0,13,13,0,12,12,0,13,13,0,14,14,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,4,4,0,0,0,8,8,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,6,6,0,0,0,7,7,0,0,0,8,8,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,0,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,0,0,0,8,8,0,0,0,10,10,0,0,0,9,9,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,10,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,10,10,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,13,13,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,12,12,0,0,0,12,12,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,11,0,0,0,12,12,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,10,10,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,13,13,0,0,0,0,0,0,0,0,14,13,0,0,0,0,0,0,0,0,13,12,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,12,12,0,0,0,12,12,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,12,12,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,12,12,0,0,0,12,12,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,14,14,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,12,13,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,14,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,12,12,0,0,0,14,14,0,0,0,0,0,0,0,0,14,14,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,2,2],"i8",O3,_.GLOBAL_BASE+477020),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,4,12,9,8,12,15,17,4,2,11,6,5,9,13,15,11,7,8,7,7,10,14,13,8,5,7,5,5,8,12,12,8,4,7,4,3,6,11,12,11,8,9,7,6,8,11,12,15,13,14,12,9,7,10,13,16,12,17,12,7,5,8,11,0,0,0,0,255,255,255,255,255,255,255,255,7,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+487288),C3([1,0,0,0,2,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,49,0,0,0,200,161,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,128,7,0,0,0,0,0,0,0,0,0,96,128,7,0,136,128,7,0,0,0,0,0,0,0,0,0,176,128,7,0,216,128,7,0,0,0,0,0,0,0,0,0,0,129,7,0,40,129,7,0,0,0,0,0,0,0,0,0,80,129,7,0,120,129,7,0,40,129,7,0,0,0,0,0,160,129,7,0,88,125,7,0,128,125,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,49,0,0,0,0,128,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,248,127,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,124,7,0,8,125,7,0,0,0,0,0,0,0,0,0,48,125,7,0,88,125,7,0,128,125,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,16,127,7,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,192,127,7,0,0,0,0,0,2,0,0,0,25,0,0,0,216,126,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,248,126,7,0,0,0,0,0,2,0,0,0,9,0,0,0,184,126,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,200,126,7,0,0,0,0,0,1,0,0,0,25,0,0,0,48,126,7,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,80,126,7,0,0,0,0,0,1,0,0,0,25,0,0,0,168,125,7,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,200,125,7,0,0,0,0,0,3,4,4,5,4,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,13,14,16,16,16,16,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,6,6,5,5,5,6,6,5,6,5,6,6,6,6,7,7,7,6,7,6,7,7,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,8,8,9,9,10,10,11,11,4,6,5,8,6,9,8,10,9,10,10,11,10,5,5,6,6,8,8,9,9,10,10,10,10,11,7,8,8,9,8,10,9,10,9,11,10,11,10,7,8,8,8,10,9,10,10,10,10,11,10,11,9,10,10,11,11,11,11,12,11,12,11,12,11,9,10,10,11,11,11,11,11,11,11,12,11,12,11,11,11,12,12,12,12,12,12,12,12,12,11,11,12,11,12,12,12,12,12,12,12,12,11,12,12,12,12,12,13,12,13,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13,12,12,12,12,12,13,13,12,13,12,13,12,13,12,12,12,12,13,13,13,13,13,13,12,12,12,12,12,11,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,3,3,7,7,9,13,16,3,2,4,6,10,13,17,7,4,4,6,9,12,14,7,6,6,5,7,9,12,10,10,9,6,6,9,12,14,14,13,9,8,10,11,18,18,15,13,11,10,11,0,0,0,0,0,0,0,5,0,0,0,243,0,0,0,192,160,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,184,161,7,0,0,0,0,0,5,0,0,0,243,0,0,0,184,159,7,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,176,160,7,0,0,0,0,0,5,0,0,0,243,0,0,0,176,158,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,168,159,7,0,0,0,0,0,5,0,0,0,243,0,0,0,168,157,7,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,160,158,7,0,0,0,0,0,5,0,0,0,53,12,0,0,88,145,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,144,157,7,0,0,0,0,0,5,0,0,0,53,12,0,0,8,133,7,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,64,145,7,0,0,0,0,0,1,0,0,0,7,0,0,0,224,132,7,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,232,132,7,0,0,0,0,0,5,0,0,0,243,0,0,0,216,131,7,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,208,132,7,0,0,0,0,0,5,0,0,0,243,0,0,0,208,130,7,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,200,131,7,0,0,0,0,0,5,0,0,0,243,0,0,0,200,129,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,192,130,7,0,0,0,0,0,1,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,7,7,7,7,7,7,7,7,7,8,8,9,8,8,8,7,7,8,8,8,9,8,8,9,7,7,6,6,6,9,8,7,9,7,7,9,8,8,10,8,8,10,8,8,10,8,8,10,8,8,10,8,8,7,6,6,9,6,6,9,7,7,9,7,7,10,8,8,9,6,6,9,7,7,10,8,8,9,7,7,7,8,8,11,9,9,11,9,9,11,8,9,12,9,9,12,8,8,11,9,9,12,9,9,12,8,8,8,7,7,10,9,9,10,10,9,10,9,9,11,10,10,11,9,9,11,9,9,11,10,11,11,9,9,10,8,8,11,9,9,10,9,9,11,9,9,11,10,10,11,9,9,11,9,9,11,10,10,11,9,9,9,8,8,11,9,9,12,9,9,11,9,9,12,9,9,12,8,8,12,9,9,12,9,9,12,8,8,9,7,7,11,9,9,11,10,10,11,9,9,11,11,11,11,9,9,11,10,10,11,11,11,11,9,9,10,9,9,11,9,9,11,10,10,11,9,9,11,10,10,11,9,9,11,9,10,11,10,10,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,6,6,7,8,8,7,8,8,7,9,8,10,11,11,9,8,8,7,8,8,11,11,11,9,8,8,6,7,7,10,10,10,10,10,10,10,10,10,14,13,13,12,11,11,10,10,10,14,14,13,12,11,11,6,6,6,8,5,5,8,7,7,9,7,7,11,10,10,9,7,7,9,7,7,12,10,10,10,7,7,7,8,8,12,11,10,12,10,10,11,10,10,15,13,13,13,10,10,11,10,10,17,14,13,13,10,10,7,7,7,12,11,12,12,11,11,12,11,11,16,14,14,13,12,12,12,11,11,17,15,14,14,12,12,10,9,9,13,11,11,13,11,11,13,11,11,17,14,13,14,11,11,12,11,11,16,15,14,14,11,11,7,8,8,12,11,11,12,10,10,12,10,10,15,13,13,14,11,10,12,10,10,16,14,14,14,10,10,8,7,7,12,11,11,12,11,11,12,11,11,17,14,14,14,12,12,12,11,11,16,15,15,14,12,12,10,10,10,13,11,11,13,11,11,13,11,12,16,14,14,14,11,11,13,12,11,16,15,15,14,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,14,14,6,7,7,14,14,7,7,7,14,14,0,13,13,16,16,0,13,13,15,14,7,8,8,15,15,9,10,10,16,16,9,8,8,15,15,0,13,13,17,16,0,13,13,15,16,8,8,8,15,15,12,11,11,16,16,9,8,8,14,14,0,13,13,17,18,0,13,13,15,15,0,14,14,16,16,0,0,0,19,18,0,12,12,16,15,0,15,16,0,20,0,14,14,16,16,0,14,14,17,17,0,0,0,19,18,0,12,12,15,15,0,17,17,0,20,0,14,14,16,16,5,6,7,12,12,9,9,9,14,14,10,10,10,14,14,0,21,21,18,17,0,20,20,18,17,9,10,10,14,14,12,12,12,16,16,12,10,10,14,14,0,20,19,18,17,0,0,20,17,18,11,10,10,14,14,14,13,13,18,18,13,11,11,14,14,0,20,20,17,18,0,21,21,17,17,0,21,0,18,18,0,0,0,0,0,0,20,19,16,17,0,0,0,19,19,0,0,0,18,18,0,21,21,18,18,0,0,0,0,0,0,20,20,16,17,0,0,0,21,21,0,0,0,18,19,6,6,6,13,12,8,6,6,11,11,8,6,6,13,13,0,9,9,11,11,0,11,10,14,14,9,7,7,13,13,11,9,9,13,13,10,6,6,13,13,0,10,10,14,15,0,10,10,13,13,9,7,7,13,13,13,10,9,13,13,10,6,6,13,13,0,10,10,15,14,0,10,10,13,13,0,11,11,15,15,0,19,20,17,17,0,9,9,13,13,0,13,13,20,20,0,11,11,13,13,0,11,11,15,15,0,19,19,17,17,0,10,10,13,13,0,15,15,20,20,0,12,12,13,13,0,10,10,12,12,0,11,11,15,15,0,11,11,15,15,0,15,15,20,0,0,16,16,0,21,0,11,11,15,15,0,14,14,18,17,0,11,11,15,15,0,15,16,19,20,0,16,16,21,21,0,12,12,15,15,0,15,14,18,18,0,11,11,16,16,0,15,15,21,21,0,16,15,0,0,0,16,16,21,0,0,0,0,0,0,0,14,14,20,20,0,18,18,0,0,0,16,17,21,0,0,16,16,21,21,0,0,0,0,0,0,15,15,21,21,0,20,19,0,21,0,17,17,0,0,0,10,10,12,11,0,10,10,10,11,0,11,11,12,12,0,11,11,9,9,0,13,13,11,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,12,12,13,13,0,12,12,12,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,13,13,14,14,0,12,12,12,12,0,14,14,14,13,0,19,20,15,15,0,12,11,12,12,0,15,15,21,20,0,13,13,11,11,0,13,13,13,13,0,19,0,15,15,0,12,12,12,12,0,17,16,19,0,0,13,13,12,12,7,7,7,16,16,11,9,9,15,15,12,9,9,16,16,0,13,13,15,14,0,14,14,17,16,10,9,9,16,16,14,11,11,17,16,12,9,8,15,15,0,13,13,18,18,0,13,13,15,15,12,10,10,18,17,15,12,12,17,17,14,9,9,16,16,0,13,13,18,19,0,14,13,17,16,0,14,14,18,18,0,0,0,20,21,0,12,12,16,16,0,16,16,20,21,0,14,14,17,16,0,14,14,18,19,0,0,0,19,21,0,13,13,17,17,0,17,17,0,21,0,15,15,16,16,8,7,7,14,14,11,10,10,15,15,12,10,10,15,15,0,20,20,18,18,0,0,0,17,17,11,10,10,16,16,14,12,12,18,17,14,11,11,15,15,0,20,21,18,18,0,0,19,18,17,12,10,10,16,16,17,14,14,19,19,14,11,11,15,15,0,21,21,19,19,0,21,20,19,18,0,21,0,18,19,0,0,0,0,0,0,20,20,18,17,0,21,0,0,0,0,0,0,19,18,0,0,0,18,19,0,0,0,0,0,0,0,21,17,18,0,0,0,0,21,0,0,21,18,19,11,9,9,14,14,13,10,10,13,13,13,11,11,15,15,0,13,13,12,12,0,15,15,16,16,13,10,10,15,15,16,12,12,15,15,15,10,10,15,15,0,14,13,16,15,0,14,13,15,15,13,10,10,15,15,18,14,14,15,15,15,10,10,14,15,0,14,14,16,16,0,14,14,16,15,0,15,15,17,16,0,21,0,18,18,0,12,13,15,15,0,16,16,0,0,0,14,14,15,15,0,15,15,16,16,0,21,20,18,18,0,13,13,15,15,0,19,18,0,0,0,15,15,15,15,0,11,11,13,13,0,12,12,16,16,0,12,12,16,16,0,15,16,20,0,0,16,17,0,0,0,12,12,16,16,0,14,14,18,18,0,11,11,16,17,0,15,15,20,0,0,16,16,0,0,0,12,12,16,16,0,15,15,19,19,0,11,11,17,17,0,16,16,21,0,0,16,16,0,0,0,17,17,20,20,0,0,0,0,0,0,15,15,20,0,0,17,18,0,0,0,17,17,0,0,0,16,16,0,21,0,0,0,0,0,0,15,15,21,0,0,19,18,0,0,0,18,17,0,0,0,11,11,14,14,0,11,11,15,15,0,12,12,16,16,0,13,13,14,14,0,14,14,17,17,0,12,12,16,16,0,14,14,16,16,0,11,11,16,15,0,13,13,16,17,0,13,13,16,16,0,12,12,15,16,0,15,14,16,16,0,11,11,15,15,0,14,14,17,17,0,13,13,16,16,0,15,14,18,18,0,21,0,19,19,0,13,13,15,15,0,16,16,20,20,0,14,14,16,15,0,14,14,17,17,0,21,0,20,18,0,13,13,15,15,0,17,17,0,0,0,14,14,16,15,8,8,8,16,16,12,9,9,16,16,13,9,9,16,16,0,14,14,18,17,0,14,14,16,17,12,10,10,18,17,14,11,11,18,18,14,9,9,16,16,0,13,13,18,18,0,13,13,17,16,12,9,9,16,17,17,13,13,16,16,14,9,9,15,15,0,14,14,20,20,0,13,13,15,15,0,15,14,18,18,0,0,0,20,21,0,12,13,16,17,0,16,16,20,21,0,14,14,16,17,0,14,14,18,17,0,0,0,20,21,0,13,13,16,16,0,19,17,0,21,0,14,15,16,16,8,7,7,14,13,12,10,10,15,15,13,10,10,15,15,0,21,21,18,19,0,20,21,18,18,12,10,10,16,15,15,12,12,17,17,14,11,11,15,15,0,21,21,19,18,0,0,21,17,18,13,11,11,15,15,16,13,13,18,19,15,11,11,15,14,0,21,0,19,19,0,0,21,18,18,0,0,21,19,19,0,0,0,0,0,0,20,19,17,17,0,0,0,21,0,0,21,0,18,19,0,0,20,20,19,0,0,0,0,0,0,21,20,18,17,0,0,0,0,20,0,0,0,18,19,0,10,10,15,14,0,11,11,14,14,0,11,11,15,16,0,14,14,15,15,0,15,15,16,16,0,11,11,16,16,0,14,13,16,16,0,11,11,15,15,0,14,14,16,16,0,14,14,15,15,0,11,11,15,15,0,13,13,15,15,0,11,11,15,15,0,15,15,18,17,0,14,14,15,15,0,15,16,18,18,0,0,0,20,20,0,14,13,16,15,0,17,17,21,0,0,15,15,15,15,0,16,15,17,17,0,0,0,19,19,0,13,13,15,15,0,20,19,0,0,0,15,15,15,15,0,11,11,13,13,0,12,12,16,16,0,12,12,16,16,0,15,15,21,21,0,17,16,0,0,0,12,12,16,16,0,14,14,17,17,0,11,11,16,16,0,15,15,0,0,0,16,16,21,0,0,12,12,17,16,0,14,15,20,20,0,11,11,16,16,0,15,15,0,20,0,16,16,0,21,0,16,17,21,0,0,0,0,0,0,0,15,15,0,21,0,18,18,0,0,0,17,16,0,0,0,17,17,21,0,0,0,0,0,0,0,15,15,0,20,0,19,20,21,0,0,17,18,0,0,0,12,12,15,15,0,12,12,15,15,0,12,12,16,16,0,13,13,15,15,0,15,15,17,17,0,13,12,17,16,0,14,14,17,16,0,11,11,16,16,0,14,14,17,17,0,14,14,17,17,0,12,12,16,16,0,15,15,17,17,0,11,11,16,16,0,14,14,17,17,0,14,14,16,16,0,15,15,18,17,0,0,0,19,0,0,13,13,16,16,0,16,16,0,21,0,14,14,16,16,0,15,15,18,17,0,0,0,19,19,0,13,13,16,16,0,18,17,0,21,0,14,15,16,16,0,11,11,16,16,0,13,13,17,17,0,13,13,17,17,0,16,16,16,17,0,16,16,18,18,0,12,12,17,17,0,16,15,18,17,0,12,12,16,16,0,16,15,19,19,0,16,15,17,17,0,12,12,17,18,0,16,16,18,18,0,12,12,16,16,0,16,16,19,19,0,15,16,17,17,0,15,16,18,18,0,0,0,20,20,0,13,13,16,16,0,18,18,21,20,0,15,15,16,16,0,16,16,19,18,0,0,0,19,20,0,14,14,17,17,0,19,19,0,21,0,15,16,16,16,0,9,9,14,14,0,13,13,15,15,0,14,14,15,15,0,0,21,19,19,0,0,21,18,18,0,12,12,15,15,0,15,15,18,18,0,14,13,15,15,0,21,21,18,19,0,21,20,18,18,0,13,13,16,16,0,17,17,18,19,0,14,14,15,15,0,0,21,19,19,0,21,20,18,19,0,20,20,19,19,0,0,0,0,0,0,19,20,17,17,0,0,0,21,21,0,21,0,18,20,0,21,0,18,21,0,0,0,0,0,0,21,21,19,18,0,0,0,0,0,0,0,0,19,19,0,18,18,15,15,0,18,20,17,16,0,20,0,17,17,0,21,0,17,17,0,21,20,19,20,0,19,19,16,16,0,21,21,17,18,0,19,19,17,17,0,20,21,21,21,0,20,20,18,18,0,19,19,16,16,0,0,21,18,19,0,18,19,16,17,0,21,21,19,20,0,21,19,18,18,0,21,20,19,21,0,0,0,20,21,0,19,19,17,16,0,0,0,0,0,0,21,20,17,17,0,20,21,19,18,0,0,0,0,21,0,19,18,16,17,0,0,0,0,0,0,20,20,17,17,0,11,11,14,14,0,13,13,16,16,0,13,13,16,16,0,17,17,21,0,0,17,18,0,0,0,12,12,16,16,0,15,15,17,18,0,12,12,16,16,0,16,16,0,20,0,17,17,0,21,0,12,12,17,17,0,16,16,19,20,0,12,12,17,17,0,17,17,0,20,0,17,17,0,0,0,17,17,21,0,0,0,0,0,0,0,15,15,0,20,0,19,19,0,0,0,18,18,0,0,0,17,17,0,0,0,0,0,0,0,0,15,15,0,0,0,20,19,0,0,0,19,18,0,0,0,14,14,21,19,0,16,16,20,21,0,16,16,20,20,0,17,17,20,0,0,17,17,20,20,0,15,15,20,20,0,19,18,20,0,0,15,15,20,20,0,17,18,21,20,0,17,17,20,21,0,15,15,19,19,0,19,18,21,21,0,15,15,19,20,0,17,18,0,0,0,17,17,20,20,0,17,18,20,21,0,0,0,0,0,0,15,15,20,20,0,19,19,0,0,0,17,17,19,21,0,17,17,0,21,0,0,0,0,21,0,15,15,20,19,0,0,20,0,0,0,17,17,21,20,0,12,12,16,16,0,14,14,17,17,0,13,13,17,17,0,16,16,17,18,0,17,16,18,18,0,13,13,18,17,0,15,16,19,18,0,13,13,16,16,0,16,16,19,19,0,16,16,17,17,0,13,12,17,17,0,16,16,18,17,0,12,12,16,16,0,17,17,19,18,0,16,15,16,16,0,16,17,18,19,0,0,0,20,20,0,14,14,17,16,0,18,18,21,0,0,16,16,16,16,0,16,16,18,17,0,0,21,21,21,0,14,14,16,16,0,21,20,21,0,0,16,16,16,16,0,10,10,14,14,0,14,14,15,16,0,14,14,15,15,0,0,21,18,18,0,0,21,18,19,0,13,13,16,16,0,16,16,18,17,0,14,14,15,15,0,20,0,18,18,0,21,0,18,17,0,13,13,16,15,0,17,17,19,19,0,14,14,15,15,0,20,20,18,19,0,0,0,18,17,0,0,21,18,18,0,0,0,0,0,0,20,21,18,17,0,0,0,0,0,0,0,0,19,19,0,0,21,18,18,0,0,0,0,0,0,21,0,18,17,0,0,0,0,21,0,0,0,19,20,0,19,19,16,16,0,0,21,18,17,0,21,0,18,18,0,20,0,19,18,0,21,20,19,19,0,21,19,17,18,0,0,21,19,19,0,21,19,18,18,0,21,0,20,18,0,0,21,18,18,0,20,21,17,17,0,21,0,18,18,0,21,19,17,17,0,21,0,0,20,0,0,20,17,18,0,0,0,19,20,0,0,0,20,19,0,19,21,17,18,0,21,0,0,0,0,21,21,18,17,0,0,21,18,18,0,0,0,0,21,0,20,19,16,17,0,0,0,0,0,0,21,20,17,17,0,11,11,13,13,0,13,13,16,16,0,13,13,16,16,0,17,17,0,21,0,18,19,21,0,0,12,12,16,16,0,15,15,19,18,0,13,13,16,16,0,16,17,21,19,0,17,17,21,21,0,13,13,16,16,0,16,16,20,18,0,13,13,16,16,0,17,17,0,0,0,18,18,0,0,0,18,17,0,20,0,0,0,0,0,0,15,15,21,21,0,19,18,0,0,0,17,17,21,21,0,17,17,0,0,0,0,0,0,0,0,15,15,20,21,0,20,20,0,0,0,19,19,0,0,0,14,15,21,19,0,16,16,0,21,0,17,16,21,21,0,17,18,21,20,0,18,18,0,21,0,16,16,0,20,0,19,19,0,0,0,16,15,0,20,0,18,18,0,0,0,17,17,0,21,0,16,16,20,20,0,20,19,0,0,0,15,16,21,22,0,18,18,0,0,0,18,17,0,0,0,18,18,0,0,0,0,0,0,0,0,16,16,21,20,0,19,20,0,0,0,18,17,21,0,0,17,18,0,0,0,0,0,0,0,0,16,16,0,20,0,0,20,0,0,0,18,18,22,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,3,4,7,7,10,12,12,12,12,10,11,11,13,13,11,12,12,11,11,12,12,12,12,12,11,13,13,13,13,12,12,12,13,14,12,13,13,13,13,12,13,13,13,13,12,13,13,13,13,11,13,13,13,13,12,12,12,14,14,12,13,13,12,12,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,14,14,12,13,13,12,12,12,13,13,13,13,12,13,13,12,12,12,13,13,13,13,12,12,12,14,14,12,13,13,12,12,12,13,13,13,13,12,13,13,12,12,10,10,11,10,10,11,11,11,11,11,11,9,9,10,10,12,11,11,10,10,12,10,10,10,10,13,12,12,12,12,13,11,11,11,11,13,12,12,12,12,13,11,11,11,11,13,12,12,12,12,13,12,12,12,12,13,11,11,11,11,13,12,12,12,12,13,11,11,11,11,13,12,12,11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11,11,11,11,10,10,11,11,11,9,9,11,12,12,11,11,12,12,12,9,9,13,13,13,10,10,13,13,13,11,11,13,13,13,14,14,13,13,13,11,10,13,13,14,12,12,13,13,13,11,11,13,13,13,11,11,13,13,13,14,14,13,13,13,10,10,13,13,13,11,11,13,13,13,10,10,13,14,13,11,11,13,14,14,14,14,13,13,13,10,10,13,14,14,11,11,13,13,13,10,10,13,14,14,11,11,13,13,13,14,14,14,13,13,10,10,13,14,14,11,11,13,13,13,10,10,14,12,12,9,9,14,12,12,9,9,14,11,11,9,9,14,12,12,8,8,14,11,11,7,7,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,9,9,15,12,12,9,9,14,13,13,9,9,15,13,13,10,10,15,12,12,10,10,15,13,13,9,9,15,12,12,9,9,15,13,13,9,9,13,12,12,9,9,13,13,13,8,8,13,13,13,9,9,13,13,13,7,7,14,13,13,8,8,14,14,14,10,10,15,14,14,11,11,14,14,14,9,9,15,14,14,10,10,15,14,14,9,9,14,14,14,10,10,15,14,14,11,11,15,14,14,9,9,14,14,14,10,10,14,14,14,9,9,15,14,15,10,10,15,14,14,11,11,14,14,14,9,9,14,14,14,9,9,14,14,14,8,8,15,14,14,10,10,15,14,14,11,11,14,14,14,9,9,15,14,14,9,9,14,14,14,8,8,12,12,12,13,13,16,16,16,11,11,17,16,16,12,12,17,16,16,11,11,17,16,16,11,11,17,17,16,13,13,17,16,16,13,13,18,17,16,12,12,17,16,16,13,13,17,16,17,12,12,18,17,17,13,13,17,16,16,14,14,18,17,17,12,12,18,16,16,13,13,17,17,17,13,12,17,17,17,13,13,17,16,16,13,13,18,17,17,12,12,17,16,16,13,12,17,17,17,12,12,18,17,17,13,13,18,16,16,14,14,18,17,17,12,12,17,17,17,13,13,18,17,18,12,12,13,14,14,10,10,16,14,14,13,13,17,15,15,14,14,17,14,14,12,13,16,14,14,13,13,17,15,15,14,14,16,16,16,15,15,17,15,15,14,14,17,16,16,14,15,17,15,15,14,14,17,15,16,14,14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,14,17,15,15,14,14,16,16,16,15,15,17,15,15,13,13,17,15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,16,16,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,13,13,11,11,10,10,16,14,14,13,12,16,14,14,13,13,16,15,14,12,12,16,14,14,12,12,16,15,15,14,14,16,14,14,14,14,17,15,15,13,13,16,15,15,14,14,17,15,15,13,14,17,15,15,14,14,17,15,14,14,14,17,15,15,13,13,17,15,15,14,14,17,15,15,13,13,17,15,15,14,14,17,14,14,14,14,17,15,15,13,13,17,15,15,13,13,17,15,15,13,13,17,15,15,14,14,17,15,15,14,14,17,15,15,13,13,17,15,15,13,13,17,15,15,13,13,14,14,15,8,8,14,14,14,19,19,14,15,15,18,19,14,14,14,19,18,14,14,14,19,19,15,15,15,19,18,15,16,16,19,19,15,15,15,19,19,15,16,16,20,19,15,15,15,19,19,15,15,15,19,19,16,16,16,20,19,15,15,15,19,18,15,16,16,20,19,15,15,15,18,18,15,15,15,19,20,15,16,16,19,19,15,15,15,20,19,15,15,15,20,19,15,15,15,19,18,15,15,15,19,19,15,16,16,19,20,15,15,15,19,19,15,15,15,19,20,15,15,15,19,19,14,12,12,9,9,14,14,14,19,19,14,14,14,19,19,14,14,15,20,19,15,14,14,18,19,15,15,15,19,19,15,15,14,20,19,15,15,15,20,19,15,15,14,20,19,15,15,15,20,19,15,15,15,19,20,15,14,14,19,20,15,15,15,20,20,15,14,14,20,19,15,15,15,19,19,15,15,15,19,19,15,14,14,19,19,15,15,15,19,20,15,15,15,20,20,15,15,15,19,19,15,15,15,20,19,16,14,14,19,19,15,15,15,20,19,15,14,15,20,19,14,15,15,20,19,12,12,12,13,13,16,16,16,11,11,16,16,16,12,12,17,16,16,11,11,17,15,16,11,11,17,17,17,13,13,18,16,17,13,13,18,17,17,13,12,17,16,17,13,13,17,17,17,13,13,16,16,16,12,12,17,16,16,13,13,17,16,16,12,12,17,16,16,12,13,17,17,17,12,12,17,17,17,13,13,18,16,16,13,13,18,17,17,12,12,18,17,17,12,12,17,17,17,12,12,17,17,17,12,12,17,16,16,13,13,17,17,17,12,12,17,16,16,12,12,17,17,17,12,12,13,14,14,9,9,16,14,14,13,13,16,15,15,14,14,17,14,14,13,13,16,14,14,13,13,17,15,15,15,15,16,16,16,15,15,17,15,15,14,14,17,15,15,15,15,17,15,15,14,14,17,15,15,14,14,16,16,16,15,15,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,16,16,16,15,15,18,15,15,14,13,17,15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,16,16,15,15,17,15,15,14,13,17,15,15,14,14,17,15,15,13,13,13,11,11,11,11,16,14,14,12,12,16,14,14,13,13,16,15,14,12,12,17,14,14,12,12,17,15,15,13,13,17,14,14,14,14,17,15,15,13,13,17,14,15,14,13,17,15,15,13,13,16,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16,14,14,13,13,16,15,15,13,13,17,15,15,13,13,17,14,14,14,14,17,15,15,12,12,17,15,15,13,13,17,15,15,12,12,16,15,15,13,13,17,14,14,13,14,17,15,15,12,12,17,14,14,13,13,17,15,15,12,12,14,14,14,8,8,14,14,14,18,18,14,15,15,19,19,14,14,14,19,19,14,15,14,18,19,15,15,15,18,19,15,16,16,20,20,15,15,15,19,20,15,16,16,19,20,15,15,15,19,20,15,15,16,19,19,15,16,16,20,20,15,15,15,20,19,15,16,16,20,19,15,15,15,19,20,15,15,15,19,19,15,16,16,20,19,15,15,15,19,19,15,16,15,20,19,15,15,15,19,19,15,15,15,19,20,15,16,16,20,20,15,15,15,19,19,15,15,15,20,20,15,15,15,19,19,14,12,12,9,9,14,14,14,18,18,14,14,14,19,20,14,14,14,18,18,14,14,14,18,19,15,15,15,19,20,15,14,14,19,19,15,15,15,19,19,15,14,15,19,19,15,15,15,18,20,15,15,15,19,19,15,14,14,19,19,15,15,15,20,19,15,15,14,20,20,15,15,15,19,19,15,15,15,19,19,15,14,14,19,19,15,15,15,19,19,15,14,14,19,20,14,15,15,19,19,15,15,15,19,19,15,14,14,20,19,15,15,15,19,19,15,14,14,20,19,15,15,15,19,19,13,12,12,13,13,17,17,16,11,11,16,16,16,12,12,17,17,16,11,11,17,16,16,11,11,17,17,17,13,13,17,16,16,13,13,18,17,17,12,12,17,16,16,13,13,18,17,17,12,12,18,17,17,13,13,18,16,17,13,13,17,17,17,12,12,18,17,17,13,13,18,17,17,12,12,17,16,17,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16,12,12,17,17,17,11,11,17,17,17,12,12,18,16,16,13,13,18,17,17,12,11,17,16,16,12,12,18,17,17,11,11,13,14,14,9,9,16,14,14,13,13,16,15,15,14,14,17,14,14,12,12,16,14,14,13,13,17,15,15,14,14,17,16,16,15,16,18,15,15,14,14,17,15,15,14,14,17,15,15,14,14,18,15,15,14,14,16,16,16,15,16,18,15,15,14,14,17,16,15,14,14,18,15,15,14,14,17,15,15,14,14,17,16,16,15,15,18,14,15,13,13,17,15,15,14,14,18,15,15,13,13,17,15,15,14,14,17,16,15,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,13,13,11,11,10,10,16,14,14,12,12,16,14,14,12,12,17,14,15,11,11,17,14,14,11,11,17,15,15,13,13,17,14,14,14,13,17,15,15,13,13,16,15,15,13,13,17,15,15,13,13,17,15,15,13,13,17,14,14,14,14,17,15,15,13,13,17,14,15,13,13,16,15,15,13,13,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12,16,14,14,12,12,17,15,15,12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12,17,14,14,12,12,17,15,15,12,12,13,15,14,8,8,14,14,14,19,19,14,15,15,18,19,14,14,14,18,19,14,15,14,19,19,15,16,15,19,19,15,16,16,19,20,15,15,15,19,19,15,16,16,19,19,15,16,16,19,19,15,15,15,19,19,15,16,16,20,20,15,15,15,19,19,15,15,15,19,19,15,15,15,19,19,15,15,15,19,19,15,16,16,20,19,15,15,15,19,19,15,15,15,19,19,15,15,15,19,19,15,16,15,19,19,15,16,16,21,19,15,15,15,20,20,15,15,15,20,21,15,15,15,19,20,14,12,12,8,8,14,14,14,19,19,14,13,13,19,19,14,14,14,19,19,14,13,14,19,19,15,15,15,20,20,15,14,14,20,19,15,15,15,19,20,15,14,14,19,20,15,15,15,20,19,15,15,15,19,20,15,14,14,20,20,15,15,15,20,19,15,14,14,19,19,15,15,15,19,19,15,15,15,20,19,15,14,14,21,19,15,15,15,20,21,15,14,14,21,19,15,15,15,19,19,15,15,15,20,20,15,14,14,19,21,15,15,15,19,19,15,14,14,19,20,15,15,15,19,19,13,12,12,13,13,17,16,16,11,11,17,16,15,12,12,18,16,16,11,11,17,16,16,11,11,18,17,17,13,13,18,16,16,13,13,17,17,17,12,13,18,17,16,13,13,18,17,17,13,13,17,17,17,13,13,17,16,16,13,13,18,16,17,12,12,17,16,16,13,12,17,17,17,12,12,18,17,17,13,12,18,16,16,13,13,18,17,17,12,12,17,16,16,12,12,17,17,17,11,11,17,16,16,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16,12,12,17,17,17,11,11,13,14,14,9,9,16,14,14,13,13,16,15,15,14,14,17,14,14,12,12,16,14,14,13,13,17,15,15,14,14,17,15,16,15,15,17,15,15,14,14,17,15,16,14,15,18,15,15,14,14,17,15,15,14,14,16,16,16,15,15,18,15,15,13,14,17,15,15,14,14,18,15,15,14,14,17,15,15,14,14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,13,13,11,11,10,10,16,14,14,12,12,16,14,14,13,13,17,14,14,11,11,17,14,14,12,12,17,15,15,14,14,17,14,14,14,14,17,15,15,13,13,17,15,14,13,13,16,15,15,13,13,16,15,15,13,13,17,14,14,14,14,17,15,15,13,13,17,14,14,13,13,16,15,15,13,13,16,15,15,13,13,17,14,14,13,13,17,15,15,12,12,17,14,14,12,12,16,15,15,12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12,17,14,14,12,12,16,15,15,12,12,14,14,14,8,8,14,14,14,18,18,14,15,15,19,18,14,14,14,18,18,14,14,14,18,19,15,16,15,19,19,15,17,16,20,20,15,15,15,19,19,15,16,16,19,19,15,15,15,19,19,15,16,15,18,19,15,16,16,20,20,15,15,15,19,19,15,16,16,19,20,15,15,15,19,19,15,15,16,19,19,15,16,16,20,20,15,15,15,19,19,15,15,15,19,20,15,15,15,19,19,15,15,15,19,19,15,16,16,20,20,15,15,15,19,20,15,16,16,20,20,15,15,15,19,19,13,12,12,8,8,14,14,14,19,20,14,14,14,19,19,14,14,14,18,19,14,14,14,19,20,15,15,15,19,20,15,14,14,21,20,15,15,15,20,20,15,15,14,19,19,15,15,15,19,19,15,15,15,19,19,15,14,14,19,20,15,15,15,19,20,15,14,14,19,19,15,15,15,19,19,15,15,15,19,19,16,14,14,19,19,15,15,15,20,20,15,14,14,21,19,15,15,15,19,19,15,15,15,19,20,16,14,14,19,20,15,15,15,19,19,15,14,14,19,19,15,15,15,20,19,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,6,7,7,7,8,8,7,8,8,10,11,11,9,8,8,7,9,9,11,12,12,9,8,8,6,7,7,9,11,11,10,11,11,10,11,11,13,13,13,11,12,12,10,11,11,13,14,14,12,12,12,6,6,6,8,6,6,8,6,6,9,7,7,12,10,10,10,6,6,9,7,7,12,10,10,11,7,6,7,8,8,12,10,10,12,10,10,11,10,10,15,13,13,13,10,10,12,11,11,15,13,13,14,11,11,8,7,7,12,11,11,12,11,11,11,11,11,14,14,14,13,12,12,12,11,11,16,15,15,14,12,12,0,10,10,0,11,11,0,12,12,0,11,11,0,14,14,0,11,11,0,11,11,0,15,15,0,11,11,7,8,8,13,10,10,12,10,10,12,11,11,15,13,13,14,11,11,12,10,10,16,14,14,14,10,10,8,7,7,12,11,11,13,11,11,12,11,11,15,14,14,14,12,12,13,12,12,15,14,14,15,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,12,12,0,15,14,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,0,8,8,0,8,8,0,10,10,0,9,9,0,10,10,0,10,10,0,9,9,0,10,10,0,7,7,0,7,7,0,7,7,0,8,8,0,8,8,0,8,8,0,9,9,0,8,8,0,8,8,0,7,7,0,8,8,0,8,8,0,10,10,0,9,9,0,9,9,0,10,10,0,9,9,0,10,10,0,8,8,0,11,11,0,11,11,0,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,12,12,0,8,8,0,11,11,0,11,11,0,13,12,0,12,12,0,13,12,0,13,13,0,12,12,0,13,13,0,7,7,0,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,0,11,11,0,11,11,0,13,12,0,12,12,0,12,12,0,12,12,0,11,11,0,12,12,0,8,8,0,12,12,0,12,12,0,13,13,0,12,12,0,13,13,0,13,13,0,12,13,0,13,13,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,4,4,0,7,7,0,8,8,0,9,9,0,12,12,0,8,8,0,9,9,0,12,12,0,8,8,0,6,6,0,11,11,0,11,11,0,12,12,0,14,14,0,11,11,0,12,12,0,14,14,0,11,11,0,6,6,0,6,5,0,7,6,0,7,7,0,10,10,0,6,6,0,7,7,0,10,10,0,7,7,0,7,7,0,10,10,0,11,11,0,11,11,0,14,14,0,10,10,0,12,12,0,14,14,0,12,12,0,6,6,0,11,11,0,11,11,0,12,12,0,14,14,0,11,11,0,12,12,0,15,15,0,11,11,0,0,0,0,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,0,11,11,0,11,11,0,12,12,0,15,15,0,12,12,0,11,11,0,15,15,0,11,11,0,6,6,0,11,11,0,12,12,0,12,12,0,15,15,0,11,11,0,12,12,0,14,14,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,2,2],"i8",O3,_.GLOBAL_BASE+489700),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,5,7,8,10,13,14,4,2,4,6,8,11,12,7,4,3,5,8,12,14,8,5,4,4,8,12,12,9,7,7,7,9,10,11,13,11,11,9,7,8,10,13,11,10,6,5,7,9,0,0,0,0,0,0,0,2,0,0,0,49,0,0,0,224,200,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,167,7,0,0,0,0,0,0,0,0,0,120,167,7,0,160,167,7,0,0,0,0,0,0,0,0,0,200,167,7,0,240,167,7,0,0,0,0,0,0,0,0,0,24,168,7,0,64,168,7,0,0,0,0,0,0,0,0,0,104,168,7,0,144,168,7,0,64,168,7,0,0,0,0,0,184,168,7,0,112,164,7,0,152,164,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,49,0,0,0,24,167,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,16,167,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,163,7,0,32,164,7,0,0,0,0,0,0,0,0,0,72,164,7,0,112,164,7,0,152,164,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,40,166,7,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,216,166,7,0,0,0,0,0,2,0,0,0,25,0,0,0,240,165,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,16,166,7,0,0,0,0,0,2,0,0,0,9,0,0,0,208,165,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,224,165,7,0,0,0,0,0,1,0,0,0,25,0,0,0,72,165,7,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,104,165,7,0,0,0,0,0,1,0,0,0,25,0,0,0,192,164,7,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,224,164,7,0,0,0,0,0,3,4,4,5,4,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,12,14,14,14,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,6,6,5,5,5,7,5,5,5,5,6,7,7,6,7,7,7,6,7,7,7,7,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,3,4,7,7,8,8,9,9,9,10,10,10,5,6,5,8,7,9,8,9,9,10,9,11,10,5,5,7,7,8,8,9,9,9,9,10,10,11,8,9,8,10,9,10,9,10,9,11,10,11,10,8,8,9,9,10,9,10,9,11,10,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,12,11,11,11,11,11,11,10,12,12,12,12,12,12,12,11,12,12,12,11,11,11,12,12,12,12,12,12,12,11,12,11,12,11,11,13,12,12,12,13,12,12,12,12,11,12,11,11,13,13,13,12,12,12,12,12,12,11,11,11,10,13,13,13,12,13,12,13,11,13,10,12,11,11,13,13,12,13,12,12,12,12,11,12,11,11,11,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,2,3,6,7,10,14,16,3,2,5,7,11,14,17,6,5,5,7,10,12,14,7,7,6,6,7,9,13,10,11,9,6,6,9,11,15,15,13,10,9,10,12,18,18,16,14,12,13,16,0,0,0,0,0,0,0,5,0,0,0,243,0,0,0,216,199,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,208,200,7,0,0,0,0,0,5,0,0,0,243,0,0,0,208,198,7,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,200,199,7,0,0,0,0,0,5,0,0,0,243,0,0,0,200,197,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,192,198,7,0,0,0,0,0,5,0,0,0,243,0,0,0,192,196,7,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,184,197,7,0,0,0,0,0,5,0,0,0,53,12,0,0,112,184,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,168,196,7,0,0,0,0,0,5,0,0,0,53,12,0,0,32,172,7,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,88,184,7,0,0,0,0,0,1,0,0,0,7,0,0,0,248,171,7,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,0,172,7,0,0,0,0,0,5,0,0,0,243,0,0,0,240,170,7,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,232,171,7,0,0,0,0,0,5,0,0,0,243,0,0,0,232,169,7,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,224,170,7,0,0,0,0,0,5,0,0,0,243,0,0,0,224,168,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,216,169,7,0,0,0,0,0,1,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,7,7,7,8,8,7,7,7,7,8,8,8,8,9,8,7,7,8,8,8,9,9,9,9,7,7,6,6,6,9,7,7,9,7,7,9,8,8,10,8,8,10,8,8,10,8,8,10,8,8,10,8,8,7,6,6,9,6,6,9,6,6,9,7,7,10,8,8,9,6,6,9,7,7,10,8,8,9,7,7,7,8,8,11,9,9,11,9,9,11,9,9,12,9,9,12,8,8,12,9,9,12,10,9,12,8,8,8,7,7,10,9,9,11,9,9,11,9,9,11,11,10,11,9,9,11,10,9,11,10,11,11,9,9,10,8,8,11,9,9,11,9,9,11,9,9,11,10,10,11,9,9,11,9,9,11,10,10,11,9,9,9,8,8,12,9,9,12,9,9,11,9,9,12,9,9,12,8,8,12,9,9,12,9,9,12,8,8,9,7,7,11,9,10,11,10,9,11,9,9,11,11,11,11,9,9,11,10,10,11,11,11,11,9,9,10,9,9,11,9,9,11,10,10,11,10,9,11,10,10,11,9,9,11,10,10,11,10,11,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,6,6,6,8,8,7,8,8,7,9,8,10,11,11,9,8,8,7,8,8,11,11,11,9,8,8,6,7,7,10,10,10,10,10,10,10,10,10,14,13,13,12,11,11,10,10,10,14,14,13,13,11,11,6,6,6,8,5,5,8,7,7,8,7,7,11,9,9,9,7,7,8,7,7,12,10,10,10,7,7,7,8,8,12,11,11,12,10,10,11,10,10,14,13,13,13,10,10,11,10,11,16,14,14,13,10,10,7,8,7,12,12,12,12,11,11,12,11,11,16,14,15,13,12,12,11,11,11,17,15,14,14,13,13,10,9,9,13,11,11,13,11,11,12,11,11,16,14,13,14,11,11,12,11,11,16,15,14,14,11,11,7,8,8,12,11,11,12,10,10,12,10,10,16,14,13,13,11,11,12,10,10,16,14,14,13,10,10,8,8,8,12,12,12,12,11,11,12,11,11,16,14,15,14,12,12,12,11,11,16,15,15,14,12,12,10,10,10,13,11,11,13,11,11,12,12,12,16,14,14,14,11,11,12,11,11,17,14,15,14,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,14,14,6,8,8,14,14,7,7,7,14,14,0,13,13,15,16,0,13,13,15,15,7,8,8,15,15,9,10,10,16,16,9,8,8,14,15,0,13,13,17,17,0,13,13,16,16,8,8,8,15,15,12,11,11,16,16,9,8,8,14,14,0,13,13,17,17,0,13,13,15,15,0,14,14,16,16,0,0,0,18,19,0,12,12,16,15,0,16,16,0,20,0,14,14,16,16,0,14,14,17,17,0,0,0,19,19,0,12,12,15,15,0,18,17,21,21,0,14,14,16,16,5,7,7,12,13,9,10,9,14,14,11,10,10,14,14,0,0,0,18,17,0,20,21,18,18,9,10,10,14,14,12,12,12,17,16,12,10,10,14,14,0,20,20,18,17,0,21,21,17,17,11,10,10,14,14,15,13,13,18,18,13,11,11,14,14,0,20,0,18,18,0,20,21,18,17,0,21,0,18,19,0,0,0,0,21,0,21,20,16,17,0,0,0,21,21,0,0,0,20,18,0,20,0,17,18,0,0,0,0,0,0,0,20,16,17,0,0,0,20,0,0,0,0,18,18,6,6,6,13,13,8,5,5,11,11,9,6,6,13,13,0,9,9,12,12,0,10,10,14,14,9,7,7,13,13,12,9,9,13,13,10,6,6,13,13,0,10,10,14,14,0,10,10,13,13,9,7,7,13,13,13,10,10,13,13,11,6,6,13,13,0,10,10,15,15,0,10,10,13,13,0,12,11,15,15,0,20,19,17,16,0,9,9,13,13,0,13,13,20,19,0,11,11,13,13,0,11,11,15,15,0,20,19,17,17,0,10,10,13,13,0,14,15,0,21,0,12,12,13,13,0,10,10,12,12,0,11,11,15,15,0,11,11,15,15,0,15,15,20,20,0,16,16,0,0,0,11,11,15,15,0,14,14,17,17,0,11,11,15,15,0,15,15,20,21,0,16,16,21,21,0,12,12,15,15,0,15,15,18,20,0,11,11,16,15,0,15,15,21,21,0,16,16,0,21,0,16,16,0,0,0,0,0,0,0,0,14,14,21,21,0,17,18,0,0,0,16,17,20,0,0,16,16,0,0,0,0,0,0,0,0,15,15,20,20,0,19,18,0,21,0,18,17,0,0,0,10,10,11,11,0,10,10,10,10,0,11,11,12,12,0,11,11,9,9,0,13,13,12,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,12,12,13,13,0,12,12,12,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,13,13,13,13,0,12,12,12,12,0,14,13,13,13,0,19,21,15,15,0,12,11,12,12,0,16,15,19,19,0,13,13,11,11,0,13,13,13,13,0,0,21,15,16,0,12,12,12,12,0,16,16,19,21,0,13,13,12,12,7,7,7,16,16,11,9,9,16,16,12,9,9,16,16,0,13,13,16,16,0,14,14,17,16,11,9,9,16,16,14,12,11,17,17,13,8,9,15,15,0,13,13,19,19,0,13,13,16,15,12,10,10,17,17,15,12,12,19,18,14,9,9,17,16,0,14,14,18,0,0,14,13,16,16,0,14,15,18,17,0,21,0,19,21,0,12,12,16,16,0,16,16,0,0,0,14,14,16,16,0,14,14,18,18,0,0,21,20,0,0,13,13,16,17,0,18,18,0,0,0,15,14,17,16,8,7,7,14,14,11,10,10,15,15,13,10,10,15,15,0,21,20,19,19,0,21,0,17,18,11,10,10,15,16,14,12,12,18,18,14,11,11,15,14,0,21,20,18,19,0,0,21,18,18,12,11,11,16,16,16,14,14,18,20,14,11,11,16,15,0,20,20,19,19,0,0,20,18,18,0,21,0,18,19,0,0,0,0,0,0,20,20,17,18,0,0,0,20,20,0,0,0,19,19,0,0,0,20,18,0,0,0,0,0,0,0,21,18,18,0,21,21,0,21,0,0,0,19,20,11,9,9,14,14,13,10,10,14,14,13,11,11,15,15,0,13,13,13,13,0,14,14,16,16,13,11,11,15,15,16,12,12,15,15,14,10,10,14,14,0,14,14,16,16,0,14,14,15,15,13,10,10,15,15,17,13,14,15,16,15,10,10,15,15,0,14,14,17,16,0,14,14,15,15,0,15,15,17,17,0,0,21,18,18,0,13,13,15,15,0,16,16,21,20,0,14,14,15,14,0,15,14,16,17,0,0,20,20,19,0,13,13,15,15,0,19,18,0,0,0,15,15,15,15,0,11,11,14,14,0,12,12,16,16,0,12,12,16,16,0,15,16,21,21,0,16,17,21,0,0,12,12,17,16,0,14,14,18,19,0,11,11,16,16,0,15,15,20,21,0,16,16,21,0,0,12,12,17,16,0,15,15,19,19,0,12,12,16,17,0,16,15,0,0,0,16,16,0,0,0,17,17,0,21,0,0,0,0,0,0,14,15,20,0,0,17,17,0,0,0,17,17,0,0,0,17,16,0,0,0,0,0,0,0,0,15,15,0,0,0,18,18,0,0,0,18,17,0,0,0,11,11,14,14,0,12,12,15,15,0,12,12,15,15,0,13,13,14,14,0,14,14,17,17,0,12,12,16,16,0,14,14,16,16,0,11,11,15,15,0,13,13,16,17,0,13,13,16,16,0,12,12,15,15,0,14,14,17,16,0,11,11,15,15,0,14,14,17,17,0,13,13,16,16,0,15,15,17,18,0,21,20,20,21,0,12,12,15,15,0,16,16,20,21,0,14,14,15,15,0,14,14,17,17,0,0,0,18,19,0,12,13,15,15,0,18,17,21,0,0,14,15,15,15,8,8,8,16,16,12,10,10,16,16,13,9,9,16,16,0,14,14,18,17,0,14,14,16,17,12,10,10,18,17,14,12,11,18,18,14,9,9,16,16,0,13,13,18,18,0,13,13,17,16,12,9,9,16,17,17,13,13,17,17,14,9,9,15,15,0,14,14,20,19,0,13,13,16,16,0,15,15,19,18,0,0,0,20,19,0,12,13,17,17,0,16,16,20,0,0,14,14,16,17,0,14,14,19,18,0,0,0,20,20,0,13,13,16,16,0,18,17,0,0,0,15,15,16,16,9,7,7,14,14,12,10,10,15,15,13,10,10,15,15,0,21,0,18,19,0,20,21,19,18,12,10,10,16,15,15,13,13,18,18,14,11,11,15,15,0,0,0,19,18,0,0,21,18,18,13,11,11,15,15,16,14,14,17,19,15,11,11,15,15,0,21,21,20,18,0,0,21,18,18,0,0,21,21,19,0,0,0,0,0,0,19,20,18,17,0,0,0,21,21,0,21,0,20,18,0,0,21,19,19,0,0,0,0,0,0,20,21,17,17,0,0,0,0,0,0,21,0,18,20,0,10,10,14,14,0,11,11,15,15,0,11,11,15,15,0,14,14,15,15,0,15,15,16,16,0,11,12,16,16,0,13,13,16,16,0,11,11,15,15,0,14,14,17,17,0,14,14,15,15,0,11,11,16,15,0,14,14,15,15,0,11,11,15,15,0,15,15,17,17,0,14,14,15,15,0,16,16,18,18,0,0,0,20,19,0,14,13,16,15,0,17,17,21,0,0,15,15,15,15,0,16,15,17,16,0,20,0,20,18,0,13,14,15,15,0,19,18,0,21,0,15,15,15,15,0,11,11,14,14,0,12,12,16,16,0,12,12,16,16,0,16,15,20,21,0,17,16,0,0,0,12,12,16,16,0,14,14,18,18,0,11,11,16,16,0,15,15,21,20,0,16,16,0,0,0,12,12,16,17,0,15,14,19,19,0,11,12,16,16,0,15,15,21,0,0,16,16,0,0,0,16,17,0,0,0,0,0,0,0,0,15,15,21,0,0,17,17,0,0,0,17,17,0,0,0,17,16,0,0,0,0,0,0,0,0,15,15,0,20,0,19,20,0,0,0,17,17,0,0,0,12,12,15,15,0,12,12,15,15,0,12,12,16,16,0,13,13,15,15,0,15,15,17,17,0,13,13,17,16,0,14,14,17,17,0,11,11,16,16,0,14,14,17,17,0,13,13,16,16,0,12,12,16,16,0,15,15,16,17,0,11,11,15,16,0,14,14,17,17,0,13,14,16,16,0,15,15,18,18,0,21,20,20,19,0,13,13,16,17,0,16,16,0,0,0,14,14,16,16,0,15,15,18,18,0,0,0,20,19,0,13,13,16,16,0,17,17,0,0,0,14,14,16,16,0,11,11,16,16,0,13,13,18,17,0,13,13,17,17,0,16,16,17,17,0,16,16,17,18,0,12,12,17,17,0,15,15,18,18,0,12,12,16,16,0,16,16,19,19,0,15,15,16,17,0,12,12,17,17,0,17,17,18,18,0,12,12,17,17,0,16,16,19,19,0,15,16,17,17,0,16,16,18,17,0,0,0,21,21,0,13,13,16,16,0,17,17,0,20,0,15,15,16,17,0,16,16,19,18,0,0,21,20,21,0,14,14,17,16,0,20,0,0,0,0,15,16,16,17,0,9,9,14,14,0,13,13,16,16,0,14,14,15,15,0,0,20,19,19,0,0,0,19,19,0,12,12,15,15,0,15,16,19,18,0,14,14,15,15,0,21,0,18,18,0,20,0,17,18,0,13,13,16,16,0,17,17,17,19,0,14,14,16,15,0,21,20,20,19,0,0,0,19,19,0,0,0,19,18,0,0,0,0,0,0,20,20,17,18,0,0,0,21,21,0,0,0,18,18,0,21,0,18,19,0,0,0,0,0,0,20,21,18,18,0,0,0,20,21,0,0,0,19,19,0,18,18,15,15,0,20,21,17,17,0,19,21,17,17,0,0,0,17,18,0,0,0,20,19,0,19,19,17,17,0,0,0,18,18,0,19,20,16,17,0,0,21,20,20,0,19,20,19,18,0,19,20,16,16,0,0,0,18,19,0,19,20,17,17,0,0,21,0,20,0,21,21,17,19,0,20,0,19,20,0,0,0,20,0,0,19,18,17,16,0,0,0,0,0,0,0,20,17,17,0,20,21,18,20,0,0,0,0,21,0,19,20,17,17,0,0,0,0,0,0,20,21,17,17,0,11,11,14,14,0,13,13,16,17,0,13,13,16,16,0,17,17,0,21,0,18,17,21,0,0,13,13,16,16,0,15,15,18,18,0,12,12,16,16,0,17,16,21,0,0,17,17,0,0,0,12,12,17,17,0,17,17,19,21,0,13,12,16,16,0,17,17,0,0,0,17,17,0,0,0,18,17,0,21,0,0,0,0,0,0,15,15,20,0,0,20,18,0,0,0,17,18,0,0,0,16,17,0,0,0,0,0,0,0,0,15,15,0,0,0,19,19,0,0,0,18,18,0,0,0,14,14,18,18,0,16,16,0,21,0,16,16,21,21,0,17,17,0,20,0,17,17,20,0,0,16,15,0,0,0,20,20,0,0,0,15,15,20,20,0,17,17,21,0,0,17,18,20,20,0,15,15,20,20,0,18,18,0,0,0,15,15,19,20,0,17,18,0,0,0,17,17,20,20,0,18,17,21,0,0,0,0,0,21,0,15,15,20,20,0,19,19,0,0,0,17,17,21,0,0,17,17,0,0,0,0,0,21,0,0,15,15,19,19,0,20,21,0,0,0,18,17,21,21,0,12,12,16,16,0,14,14,17,17,0,13,13,17,18,0,16,16,18,17,0,16,16,18,18,0,13,13,18,18,0,15,16,19,18,0,13,13,16,16,0,16,16,20,18,0,16,16,17,17,0,12,13,17,17,0,17,16,18,18,0,12,12,16,16,0,17,16,20,19,0,16,16,16,16,0,16,17,18,20,0,0,0,21,20,0,14,14,17,16,0,19,18,0,20,0,16,16,17,16,0,16,16,17,18,0,0,21,21,21,0,14,14,16,16,0,20,20,21,0,0,16,16,16,16,0,10,10,14,14,0,14,14,15,16,0,14,14,15,15,0,0,21,18,18,0,0,21,18,19,0,13,13,16,16,0,16,16,18,18,0,14,14,15,15,0,21,0,18,18,0,21,0,18,18,0,13,13,16,16,0,17,17,19,20,0,14,14,15,15,0,0,0,18,20,0,0,21,18,18,0,0,21,19,18,0,0,0,0,0,0,20,21,18,17,0,0,0,21,21,0,0,0,19,19,0,21,0,18,19,0,0,0,0,0,0,21,20,17,17,0,0,21,20,0,0,0,0,19,19,0,19,20,15,16,0,0,20,18,17,0,20,21,17,18,0,21,0,18,18,0,0,0,19,19,0,20,20,17,18,0,0,0,18,19,0,20,20,18,17,0,0,0,0,20,0,0,21,17,18,0,20,21,17,17,0,0,0,18,18,0,19,19,17,17,0,0,0,21,21,0,20,20,17,17,0,0,0,21,19,0,0,0,20,19,0,21,20,17,18,0,0,0,0,0,0,0,20,18,17,0,21,20,18,18,0,0,0,20,21,0,20,20,17,17,0,0,0,0,0,0,20,0,17,17,0,11,11,13,14,0,13,13,16,16,0,13,13,16,16,0,17,17,0,0,0,17,18,0,0,0,13,13,16,16,0,15,16,18,18,0,13,13,16,17,0,16,17,20,0,0,17,18,20,0,0,13,13,17,17,0,16,16,20,21,0,13,13,16,16,0,17,17,21,0,0,17,18,0,0,0,17,18,0,21,0,0,0,0,0,0,15,15,20,0,0,19,19,0,0,0,17,17,0,0,0,18,17,21,20,0,0,0,0,0,0,16,16,20,21,0,21,20,0,21,0,19,21,0,0,0,15,15,0,0,0,16,17,0,19,0,16,16,0,0,0,17,17,0,0,0,19,18,0,0,0,16,16,20,20,0,20,18,21,0,0,15,15,21,21,0,18,18,0,0,0,18,19,0,0,0,16,15,0,21,0,20,19,0,0,0,16,16,0,0,0,20,18,0,21,0,17,18,21,0,0,18,19,0,0,0,0,0,0,0,0,16,16,20,20,0,19,20,0,0,0,17,17,0,0,0,18,17,20,21,0,0,0,0,0,0,16,16,0,20,0,20,22,0,0,0,18,18,0,22,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,8,8,10,12,12,11,11,9,11,11,12,13,11,12,12,11,11,11,12,12,12,12,10,13,12,13,13,11,12,12,13,13,11,12,12,13,13,11,12,13,13,13,11,13,13,13,13,10,13,13,12,13,11,12,12,14,14,11,13,12,12,12,11,12,12,13,13,11,13,13,12,12,11,13,13,13,13,11,12,12,13,13,11,13,13,12,12,11,12,12,13,13,11,13,13,12,12,11,13,13,13,13,11,12,12,14,14,11,13,13,12,12,11,12,12,13,13,11,13,13,12,12,11,10,10,10,10,12,10,10,11,11,11,8,8,11,11,13,10,10,10,10,12,10,10,10,10,13,11,11,11,11,13,10,10,11,11,13,11,11,12,12,13,11,11,11,11,13,11,11,12,12,13,11,11,12,12,13,10,10,11,11,13,11,11,11,11,13,11,10,11,11,13,11,11,11,11,13,11,11,11,11,13,10,10,11,11,13,11,11,11,11,12,10,11,11,11,13,11,11,11,11,13,11,11,11,11,13,10,10,11,11,13,11,11,11,11,13,11,11,11,11,13,11,11,11,11,11,10,10,10,10,12,10,10,9,9,12,12,12,11,11,13,12,12,9,9,13,12,12,10,10,12,12,12,12,12,13,13,13,14,14,13,12,12,11,11,13,13,13,12,12,13,12,12,11,11,13,12,13,11,11,13,13,13,14,14,13,12,12,10,10,13,13,13,11,11,13,12,12,10,10,13,13,13,11,11,13,13,13,14,14,13,12,12,10,10,13,13,13,11,11,13,12,13,10,10,13,13,13,11,11,13,13,13,14,14,13,12,12,10,10,13,13,13,11,11,13,13,12,10,10,14,12,12,8,8,14,12,12,9,9,14,11,11,9,9,14,12,12,8,8,14,11,11,7,7,14,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,12,12,9,9,15,13,13,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,14,12,12,9,9,14,13,13,9,9,14,13,13,9,9,15,12,12,9,9,15,13,13,9,9,14,12,12,9,9,14,13,13,9,9,14,13,13,9,9,15,12,12,9,9,14,13,13,9,9,14,12,12,9,9,14,13,13,9,9,13,12,12,8,8,13,13,13,8,8,14,13,13,9,9,13,13,13,7,7,14,13,13,8,8,14,14,14,10,10,14,14,14,11,11,14,14,14,9,9,14,14,14,10,10,14,14,14,9,9,14,14,14,10,9,15,14,14,11,11,14,14,14,9,9,14,14,14,10,10,14,14,14,9,9,14,14,14,9,9,15,14,14,11,11,14,14,14,8,8,14,14,14,9,9,14,14,14,8,8,14,14,14,9,9,15,14,14,11,11,14,14,14,8,8,14,14,14,9,9,14,14,14,8,8,12,12,12,13,13,16,15,15,11,11,16,15,16,12,12,17,16,16,11,11,17,15,15,12,11,16,16,16,12,13,16,15,15,13,13,16,16,16,12,12,16,16,15,13,13,16,16,16,12,12,16,16,16,13,13,17,16,16,14,14,17,17,16,12,12,17,16,16,13,13,17,17,16,12,13,16,16,17,13,12,17,16,16,14,13,17,16,16,12,12,17,16,16,12,12,17,16,17,12,12,17,17,17,13,13,16,16,16,13,14,17,17,16,12,12,16,16,16,13,13,17,17,17,12,12,13,14,14,10,10,16,14,14,12,12,16,15,15,14,14,16,14,14,12,12,15,14,14,13,13,17,15,15,14,13,16,16,15,15,15,16,15,15,14,14,16,15,15,14,14,17,15,15,14,14,16,15,15,14,14,16,16,15,15,15,17,15,15,13,13,16,15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,15,15,15,15,16,14,14,13,13,16,15,15,14,14,16,14,14,13,13,17,15,15,14,14,16,16,15,15,15,17,14,14,13,13,16,15,15,14,14,17,14,14,13,13,13,11,11,10,10,16,14,14,13,13,15,14,14,13,13,16,14,14,12,12,16,14,14,12,12,15,15,15,14,14,16,14,14,14,14,16,15,14,14,14,16,14,14,14,14,16,15,15,14,13,16,15,15,14,14,16,14,14,14,14,17,15,15,14,14,16,14,14,14,14,16,15,15,13,14,16,15,15,14,14,16,14,14,14,14,16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16,15,15,14,14,16,14,14,14,14,17,15,15,13,13,16,15,14,13,13,17,15,15,13,13,14,14,14,9,9,14,14,14,17,17,14,15,15,18,18,14,14,14,18,19,14,14,14,18,18,15,15,15,19,18,15,16,15,18,20,15,15,15,18,19,15,15,15,19,19,15,15,15,18,20,15,15,15,18,19,15,15,16,20,18,15,15,15,18,18,15,15,15,19,19,15,15,15,18,19,15,15,15,18,19,15,15,15,19,19,14,15,14,19,19,15,15,15,20,19,15,14,14,19,18,14,15,15,18,19,15,15,16,20,20,14,14,14,18,19,15,15,15,19,18,14,14,14,18,18,14,12,12,9,9,13,14,14,18,18,14,13,13,18,19,14,14,14,18,18,14,14,14,18,18,15,15,15,19,19,15,14,14,19,18,14,15,15,19,18,15,14,14,18,18,15,15,15,19,18,14,15,15,19,19,15,14,14,19,18,14,15,15,19,18,15,14,14,19,18,14,15,15,19,18,15,15,15,21,18,15,14,14,19,18,14,15,15,18,19,14,15,14,20,19,14,15,15,18,19,14,15,15,19,19,15,14,14,19,20,14,15,15,18,18,14,14,14,19,19,14,15,15,19,18,12,12,12,13,13,16,15,15,11,11,16,15,15,12,12,16,16,16,11,11,16,15,15,11,11,16,16,16,13,13,17,16,16,13,13,17,17,17,12,12,16,16,16,13,13,17,16,17,13,12,15,16,16,12,12,16,15,15,13,13,17,16,16,12,12,16,16,15,12,12,16,16,16,12,12,17,17,16,13,12,16,16,16,13,13,17,16,16,12,12,17,16,16,12,12,17,17,16,12,12,16,17,16,12,12,17,15,15,13,13,17,16,16,12,12,16,16,16,12,12,16,16,16,12,12,13,13,13,9,9,15,14,14,13,13,16,15,14,14,14,16,14,14,13,13,15,14,14,13,13,17,15,15,14,14,16,15,15,15,15,16,15,15,14,14,16,15,15,15,15,17,15,15,14,14,16,15,15,14,14,16,15,15,15,15,17,14,15,14,14,16,15,15,14,14,17,15,15,13,14,17,15,15,14,14,16,15,15,15,15,17,14,14,13,13,16,15,15,14,14,17,14,14,13,13,17,15,15,14,14,16,15,16,15,15,17,14,14,13,13,16,15,15,14,14,18,14,14,13,13,13,11,11,11,11,15,14,14,12,12,15,14,14,13,13,16,14,14,12,12,16,13,14,12,12,16,15,15,13,13,16,14,14,14,14,16,15,15,13,13,16,14,14,13,13,16,14,15,13,13,15,15,15,13,13,16,14,14,14,13,16,14,14,13,13,16,14,14,13,13,16,15,15,13,13,16,15,15,13,13,16,14,14,14,14,16,15,15,12,12,16,14,14,13,13,16,15,15,12,12,16,15,15,13,13,16,14,14,14,14,17,15,14,12,12,16,14,14,13,13,16,15,15,12,12,14,14,14,8,8,14,14,14,17,18,14,15,15,17,18,14,14,14,17,18,14,14,14,18,18,14,15,15,18,18,14,16,15,19,19,15,15,15,18,19,15,16,15,20,19,15,15,15,18,18,14,15,15,18,19,15,16,16,20,19,15,15,15,19,17,14,15,15,20,18,14,15,15,18,18,14,15,15,18,19,14,15,15,19,20,14,14,14,18,18,14,15,15,18,19,14,14,14,18,19,14,15,15,19,18,15,16,16,20,21,14,14,15,19,19,14,15,15,19,19,14,14,14,19,18,13,12,12,9,9,13,14,14,18,19,14,14,14,18,19,14,14,14,18,18,14,14,14,18,18,14,15,15,19,19,15,14,14,19,18,15,15,15,19,19,15,14,14,19,20,14,15,15,18,19,14,15,15,20,18,15,14,14,18,18,14,15,15,18,18,14,14,14,19,19,14,15,15,18,18,14,15,15,19,18,15,14,14,19,19,14,15,15,19,18,15,14,14,19,18,14,14,15,18,19,14,15,15,19,18,15,14,14,18,19,14,15,14,19,20,14,14,14,19,19,14,15,15,19,19,12,12,12,13,13,16,16,16,11,11,16,16,16,12,12,17,16,16,11,11,17,15,15,11,11,16,16,16,13,13,17,15,16,13,13,16,16,16,12,12,17,16,16,13,13,17,17,16,12,12,17,17,16,13,13,17,16,16,13,13,17,17,17,12,12,17,16,16,13,13,17,17,17,12,12,16,16,16,12,12,17,15,15,13,13,17,16,16,11,11,17,16,16,12,12,16,16,16,11,11,16,17,16,12,12,17,16,16,13,13,17,17,16,12,12,17,17,16,12,12,17,16,16,11,11,13,14,14,9,9,16,14,14,13,13,16,14,15,14,14,16,14,14,12,12,16,14,14,13,13,17,15,15,14,14,16,15,15,15,15,17,15,15,14,14,16,15,15,14,14,17,15,15,14,14,16,15,15,14,14,16,15,15,15,16,17,14,15,14,14,16,15,15,14,14,17,15,15,14,14,16,15,15,14,14,16,15,15,15,15,17,14,14,13,13,16,15,15,14,14,16,14,14,13,13,17,15,15,14,14,16,16,15,15,15,17,14,14,13,13,16,15,15,14,14,17,14,14,13,13,13,11,11,10,10,16,14,14,12,12,15,13,13,13,12,16,14,14,11,11,16,14,14,11,11,16,14,15,13,14,16,14,14,13,13,16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16,15,15,13,13,17,14,14,14,14,17,15,15,13,13,16,14,15,13,13,16,15,15,13,13,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12,12,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12,17,14,14,12,12,16,15,15,12,12,13,14,14,8,8,13,14,14,18,18,13,15,15,17,18,14,14,14,18,19,14,14,14,19,18,14,15,15,19,18,15,15,16,21,18,15,15,15,19,19,14,16,16,19,19,14,15,15,18,19,14,15,15,19,20,14,16,16,19,18,15,15,15,18,19,14,15,15,19,18,15,15,15,18,18,15,15,15,20,18,15,16,16,20,19,14,15,14,18,19,14,15,16,19,20,14,15,15,19,18,15,15,15,19,18,15,16,16,20,19,15,14,14,18,18,14,15,15,19,19,14,15,15,18,18,13,12,12,8,8,13,14,14,19,18,14,13,13,20,18,14,14,14,19,18,14,13,13,18,19,14,15,15,20,19,15,14,14,19,19,14,15,15,19,18,15,14,14,20,20,15,15,15,19,18,14,15,15,19,18,15,14,14,19,18,14,15,15,20,19,14,14,14,20,19,14,15,15,19,18,15,15,15,18,18,15,14,14,18,18,14,15,15,19,19,14,14,14,19,19,14,15,15,19,19,15,15,15,19,18,15,14,14,20,19,15,15,15,19,19,14,14,14,20,19,14,15,15,20,20,12,12,12,13,13,17,16,16,11,11,16,16,15,12,12,17,16,16,11,11,17,15,15,11,11,17,17,17,13,13,17,16,16,13,13,17,17,17,12,12,17,16,16,13,13,17,17,16,12,13,16,17,16,13,13,17,16,15,13,13,17,16,16,12,12,17,16,16,12,13,17,16,17,12,12,17,17,17,12,12,17,16,15,13,13,17,16,16,12,12,17,16,16,12,12,17,16,16,11,11,16,16,16,12,12,17,15,15,13,13,17,16,15,11,11,16,16,16,12,12,17,16,16,11,11,13,14,14,9,9,16,14,14,13,13,16,14,15,14,14,16,14,14,12,12,16,14,14,13,13,17,15,15,14,15,16,15,15,15,15,17,15,15,14,14,16,15,15,15,14,16,15,15,14,14,16,15,15,14,14,16,15,16,15,15,17,15,14,14,14,16,15,15,14,14,17,15,15,13,13,16,15,15,14,14,16,16,16,15,15,17,14,14,13,13,16,15,15,14,14,18,14,15,13,13,16,15,15,14,14,16,16,15,15,15,16,14,14,13,13,16,15,15,14,14,17,14,15,13,13,13,11,11,10,10,15,14,14,12,12,15,14,14,13,13,16,14,14,12,12,16,13,14,12,12,16,14,15,14,13,16,14,14,14,14,16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,15,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12,16,14,14,12,12,16,14,15,12,12,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12,12,14,14,14,8,8,14,14,14,17,17,14,15,15,18,18,14,14,14,18,17,14,14,14,18,18,14,15,15,18,20,15,16,15,19,18,15,15,15,19,18,15,15,16,19,18,15,15,15,18,18,14,15,15,18,18,15,16,16,18,19,15,15,15,18,18,15,15,15,19,20,15,15,15,18,18,15,15,15,18,18,15,16,16,19,19,15,14,15,19,19,15,15,15,19,20,14,14,15,18,18,15,15,15,19,19,15,16,16,19,19,15,15,14,18,19,15,15,15,20,20,15,15,14,18,18,13,12,12,8,8,13,14,14,18,18,14,14,14,18,18,14,14,14,18,20,14,14,14,18,18,14,15,15,19,18,15,14,14,18,19,15,15,15,18,19,15,14,14,18,19,15,15,15,18,18,14,15,14,18,19,15,14,14,21,19,15,15,15,19,18,14,14,14,19,18,14,15,15,19,18,15,15,15,20,19,15,14,14,20,18,14,15,15,18,19,14,14,14,19,18,14,15,15,18,19,15,15,15,18,19,15,14,14,19,19,15,15,15,19,19,14,14,14,19,20,14,15,15,18,19,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,7,8,8,7,8,8,7,9,9,10,12,11,9,8,8,7,9,9,11,12,12,9,9,9,6,7,7,10,11,11,10,11,11,10,11,11,13,13,14,12,12,12,11,11,11,14,14,14,12,12,12,6,5,5,9,6,5,9,6,6,9,7,7,12,10,10,11,6,6,10,7,7,13,10,10,12,7,7,7,8,8,12,10,10,12,10,10,11,10,10,15,13,13,13,9,9,12,11,11,16,13,13,15,11,11,8,7,7,12,12,12,12,11,11,12,11,11,14,14,14,14,12,12,12,12,12,16,15,15,14,12,12,0,10,10,0,12,12,0,12,12,0,11,11,0,14,14,0,11,11,0,12,12,0,15,15,0,11,11,8,8,8,13,11,11,13,10,10,13,11,11,15,13,13,14,11,11,12,10,10,16,14,14,14,10,10,9,7,7,13,11,11,13,11,11,12,11,11,16,14,14,14,12,12,13,12,12,15,14,14,15,13,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,13,12,0,14,15,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,0,9,9,0,9,9,0,10,10,0,9,9,0,10,10,0,10,10,0,9,9,0,10,10,0,7,7,0,7,7,0,6,6,0,8,8,0,7,7,0,8,8,0,8,9,0,8,8,0,8,8,0,7,7,0,9,9,0,8,8,0,10,10,0,9,9,0,10,10,0,10,10,0,9,9,0,10,10,0,9,9,0,11,11,0,11,11,0,12,12,0,11,11,0,12,12,0,13,13,0,12,12,0,13,12,0,8,8,0,12,12,0,12,12,0,13,13,0,12,12,0,13,13,0,13,13,0,13,13,0,13,13,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,11,11,0,12,12,0,13,13,0,12,12,0,13,13,0,13,13,0,12,12,0,12,12,0,8,8,0,12,12,0,12,12,0,13,13,0,13,13,0,13,14,0,14,13,0,13,13,0,13,13,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,5,5,0,7,7,0,8,8,0,9,9,0,12,12,0,8,8,0,9,9,0,12,12,0,8,8,0,6,6,0,11,11,0,12,12,0,12,12,0,15,15,0,11,11,0,12,12,0,15,15,0,12,12,0,5,5,0,5,5,0,6,6,0,7,7,0,11,11,0,6,6,0,7,7,0,10,11,0,6,6,0,7,7,0,11,11,0,12,12,0,11,11,0,15,15,0,10,10,0,12,12,0,15,15,0,12,12,0,6,6,0,12,12,0,12,12,0,12,12,0,15,15,0,11,11,0,12,12,0,15,15,0,12,12,0,0,0,0,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,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,11,12,0,15,16,0,11,11,0,6,6,0,11,12,0,12,12,0,12,12,0,16,15,0,12,12,0,13,12,0,15,14,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,3,3,7,8,10,13,16,3,2,5,7,9,13,16,6,4,4,6,10,14,15,7,5,5,7,10,13,14,9,8,9,9,9,11,13,12,11,12,9,7,8,11,14,12,10,6,5,7,10,0,0,0,0,0,0,0,2,0,0,0,49,0,0,0,248,239,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,206,7,0,0,0,0,0,0,0,0,0,144,206,7,0,184,206,7,0,0,0,0,0,0,0,0,0,224,206,7,0,8,207,7,0,0,0,0,0,0,0,0,0,48,207,7,0,88,207,7,0,0,0,0,0,0,0,0,0,128,207,7,0,168,207,7,0,88,207,7,0,0,0,0,0,208,207,7,0,136,203,7,0,176,203,7],"i8",O3,_.GLOBAL_BASE+500144),C3([2,0,0,0,49,0,0,0,48,206,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,40,206,7,0,0,0,0,0,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,203,7,0,56,203,7,0,0,0,0,0,0,0,0,0,96,203,7,0,136,203,7,0,176,203,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,64,205,7,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,240,205,7,0,0,0,0,0,2,0,0,0,25,0,0,0,8,205,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,40,205,7,0,0,0,0,0,2,0,0,0,9,0,0,0,232,204,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,248,204,7,0,0,0,0,0,1,0,0,0,25,0,0,0,96,204,7,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,128,204,7,0,0,0,0,0,1,0,0,0,25,0,0,0,216,203,7,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,248,203,7,0,0,0,0,0,3,5,4,5,4,5,4,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,7,7,4,5,6,7,7,4,6,5,7,7,7,6,7,6,7,7,7,6,7,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,3,3,8,8,10,10,10,10,10,10,10,10,5,7,5,9,8,10,10,10,10,11,10,11,10,5,5,7,8,9,10,10,11,10,10,11,10,11,10,10,10,11,11,11,11,11,11,11,10,11,11,10,10,10,10,11,11,11,11,11,10,11,11,11,11,11,11,11,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,12,11,11,11,11,11,11,12,11,11,11,10,11,11,11,11,11,11,11,11,10,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,10,11,11,11,11,11,11,11,12,11,13,11,11,11,11,11,11,11,11,11,11,11,12,11,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,2,3,6,7,9,13,17,3,2,5,7,9,13,17,6,5,5,6,9,12,16,7,7,6,6,7,10,13,10,10,9,7,6,10,13,13,13,12,10,10,11,15,17,17,17,14,14,15,17,0,0,0,0,0,0,0,5,0,0,0,243,0,0,0,240,238,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,232,239,7,0,0,0,0,0,5,0,0,0,243,0,0,0,232,237,7,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,224,238,7,0,0,0,0,0,5,0,0,0,243,0,0,0,224,236,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,216,237,7,0,0,0,0,0,5,0,0,0,243,0,0,0,216,235,7,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,208,236,7,0,0,0,0,0,5,0,0,0,53,12,0,0,136,223,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,235,7,0,0,0,0,0,5,0,0,0,53,12,0,0,56,211,7,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,112,223,7,0,0,0,0,0,1,0,0,0,7,0,0,0,16,211,7,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,24,211,7,0,0,0,0,0,5,0,0,0,243,0,0,0,8,210,7,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,0,211,7,0,0,0,0,0,5,0,0,0,243,0,0,0,0,209,7,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,248,209,7,0,0,0,0,0,5,0,0,0,243,0,0,0,248,207,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,240,208,7,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,7,6,8,8,7,7,8,7,8,8,9,9,9,8,7,7,8,8,8,9,9,9,9,8,8,6,6,6,9,7,7,9,7,7,9,8,8,10,8,8,10,8,8,10,8,8,10,9,8,10,8,8,7,6,6,9,6,6,9,6,6,9,7,7,10,8,8,10,6,6,9,7,7,10,8,8,10,6,6,7,7,7,11,9,9,11,9,9,10,9,9,12,10,10,12,8,8,11,9,9,13,9,10,12,8,8,8,7,7,11,9,10,11,10,10,10,9,9,11,11,11,11,9,9,11,10,9,12,11,11,11,9,10,10,8,8,11,9,10,11,9,9,11,9,9,12,10,10,11,9,9,11,9,9,12,10,11,11,9,9,8,8,8,12,9,9,12,9,9,11,9,9,13,9,9,13,8,8,12,9,9,13,10,10,12,8,8,9,7,7,11,10,10,11,10,10,11,10,10,12,11,11,11,10,9,11,10,10,11,11,11,11,9,9,11,9,9,12,10,10,11,10,10,12,10,10,11,11,11,11,9,9,11,10,10,12,11,11,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,7,7,6,8,8,7,8,8,7,9,9,11,11,11,9,8,8,7,9,9,11,12,11,9,9,9,6,7,7,10,11,11,10,10,10,10,11,11,15,14,14,12,12,12,11,11,11,14,14,14,12,12,12,5,6,6,8,5,5,8,7,7,8,8,8,12,10,10,10,7,7,8,7,7,12,10,10,10,7,7,6,7,7,12,11,11,12,10,10,11,10,10,14,14,13,13,10,10,11,10,10,16,14,14,14,11,10,7,7,7,13,12,12,12,12,11,11,11,11,15,14,17,13,12,12,12,11,11,15,15,15,14,13,13,10,9,9,14,12,11,13,11,11,12,11,11,16,15,14,14,11,11,12,11,11,17,14,14,15,11,11,7,8,8,12,11,11,13,10,10,11,10,10,17,14,13,14,10,10,12,10,10,18,15,15,14,10,10,8,7,7,13,12,12,13,11,11,12,11,11,16,14,15,14,12,12,12,11,11,18,16,16,14,12,12,11,10,10,13,12,11,13,11,11,13,12,12,0,15,14,14,11,11,13,11,11,16,15,15,15,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,1,7,7,14,14,6,8,8,15,16,7,8,8,16,15,0,14,14,17,17,0,14,14,16,16,7,9,9,16,16,10,11,11,17,18,9,8,8,16,16,0,14,14,19,19,0,14,14,17,16,8,9,9,16,16,12,12,12,17,17,10,9,9,16,16,0,15,14,18,20,0,14,14,17,17,0,15,15,18,17,0,21,0,0,21,0,13,13,17,17,0,17,17,0,0,0,15,15,17,17,0,15,15,17,18,0,0,0,0,21,0,13,13,17,17,0,18,18,0,21,0,16,15,17,18,6,7,7,14,14,9,10,10,16,16,11,10,10,15,15,0,21,0,20,21,0,0,0,18,20,10,10,10,15,16,12,13,13,18,18,12,11,11,15,15,0,0,0,20,20,0,0,21,19,19,12,11,11,15,15,15,14,14,18,18,13,11,11,15,16,0,0,0,20,19,0,0,0,20,21,0,0,20,19,19,0,0,0,0,0,0,20,0,17,18,0,0,21,0,0,0,0,0,21,0,0,21,0,20,19,0,0,0,0,0,0,21,0,18,18,0,0,0,21,0,0,0,0,0,20,7,6,6,13,13,9,6,6,12,12,9,7,7,14,14,0,10,10,12,12,0,11,11,15,15,9,7,7,14,14,12,9,9,14,14,10,7,7,14,13,0,11,11,16,15,0,11,11,14,14,9,7,7,14,14,13,10,10,14,14,11,7,7,14,13,0,11,11,16,16,0,11,11,14,14,0,12,12,16,16,0,19,0,17,18,0,10,10,14,14,0,15,14,0,0,0,12,12,14,14,0,12,12,15,15,0,20,0,18,19,0,10,10,14,14,0,16,15,0,20,0,13,13,14,14,0,11,11,13,13,0,12,13,16,16,0,12,12,16,16,0,16,16,0,21,0,17,18,0,0,0,12,12,16,16,0,15,15,18,0,0,12,12,16,16,0,17,16,21,21,0,16,17,0,0,0,13,13,17,16,0,16,16,20,21,0,12,12,17,16,0,17,17,0,21,0,17,17,21,21,0,17,18,0,0,0,0,0,0,0,0,15,15,0,0,0,18,21,0,0,0,18,19,0,0,0,18,17,21,21,0,0,0,0,0,0,16,16,0,0,0,0,0,0,0,0,19,19,0,0,0,11,11,12,12,0,11,11,10,10,0,12,12,13,13,0,12,12,9,9,0,14,14,13,13,0,12,12,13,13,0,14,14,12,13,0,11,11,12,12,0,13,13,13,13,0,13,13,13,13,0,12,12,13,13,0,14,14,12,12,0,11,11,12,12,0,14,13,14,14,0,13,13,13,13,0,15,15,14,15,0,0,0,16,16,0,12,12,13,13,0,16,17,20,21,0,14,13,12,12,0,14,14,14,14,0,21,0,16,16,0,12,12,13,13,0,18,17,21,0,0,14,14,13,13,7,8,8,17,17,11,10,10,18,18,12,10,10,17,17,0,15,15,20,18,0,15,15,17,17,11,9,9,17,17,14,12,12,19,19,13,9,9,16,16,0,15,14,0,19,0,14,14,16,16,12,10,10,20,18,16,13,13,21,20,14,10,10,17,17,0,15,15,21,20,0,15,14,17,17,0,15,15,21,21,0,0,21,0,0,0,13,13,18,18,0,19,16,0,0,0,15,15,17,16,0,16,16,0,21,0,0,0,0,21,0,13,14,18,17,0,20,19,0,0,0,15,15,18,18,8,7,7,15,15,12,11,11,17,16,13,11,11,16,16,0,0,0,21,20,0,0,0,0,20,11,10,10,17,17,14,13,13,19,18,14,11,11,16,16,0,20,0,21,19,0,0,21,0,20,12,11,11,17,17,16,15,15,0,19,14,11,11,17,16,0,21,0,0,19,0,0,0,21,20,0,0,21,20,0,0,0,0,0,0,0,0,0,19,21,0,0,0,0,0,0,0,0,19,20,0,0,0,20,21,0,0,0,0,0,0,20,0,19,21,0,0,0,0,0,0,0,0,21,20,11,10,9,15,15,14,11,11,15,15,14,11,11,16,16,0,14,14,14,14,0,16,15,17,16,13,11,11,16,16,16,13,13,16,16,15,10,10,15,15,0,14,15,17,17,0,14,14,16,15,13,11,11,16,16,17,15,14,16,16,15,10,10,15,15,0,15,15,17,18,0,15,15,16,16,0,16,16,17,17,0,21,0,21,20,0,13,13,15,15,0,18,18,0,21,0,15,15,15,15,0,16,16,17,17,0,0,0,0,18,0,13,13,15,15,0,19,18,0,0,0,15,15,16,16,0,12,12,15,15,0,13,13,17,17,0,13,13,17,18,0,16,17,21,0,0,20,18,0,0,0,13,13,17,17,0,15,15,0,18,0,12,12,17,18,0,16,16,0,0,0,17,17,21,0,0,13,13,18,18,0,16,16,21,21,0,12,12,17,18,0,16,17,21,0,0,17,17,0,21,0,17,18,0,0,0,0,0,0,0,0,16,15,0,21,0,21,19,0,0,0,18,18,0,0,0,18,19,0,0,0,0,0,0,0,0,16,16,21,21,0,20,19,0,0,0,19,21,0,21,0,12,12,15,15,0,12,12,15,16,0,13,13,16,16,0,14,14,15,15,0,16,15,17,17,0,13,13,17,17,0,15,15,16,18,0,12,12,16,16,0,14,14,17,17,0,15,14,16,16,0,13,13,16,16,0,16,15,17,17,0,12,12,16,16,0,15,15,18,18,0,14,14,17,16,0,16,16,17,18,0,0,0,20,21,0,13,13,16,17,0,17,17,0,0,0,15,15,16,16,0,15,16,17,17,0,0,0,19,0,0,13,13,15,16,0,19,18,0,0,0,16,15,16,17,8,8,8,17,17,13,11,10,17,18,13,10,10,17,17,0,15,15,20,19,0,15,15,17,17,12,10,10,19,18,15,12,12,20,18,14,10,10,17,16,0,15,15,20,20,0,14,15,16,16,13,10,10,17,17,17,14,14,0,18,15,10,10,17,17,0,16,15,20,20,0,14,14,17,17,0,15,16,20,20,0,0,21,0,0,0,13,13,17,17,0,18,17,0,0,0,15,16,17,18,0,15,15,18,21,0,0,0,21,0,0,13,13,18,18,0,19,19,0,0,0,16,16,18,17,9,8,8,15,15,12,11,11,16,16,13,11,11,16,15,0,0,0,0,21,0,21,0,19,19,12,11,11,17,18,15,13,13,18,19,14,11,11,16,16,0,0,21,21,19,0,0,0,21,20,13,11,11,18,17,17,14,15,20,21,15,11,12,16,16,0,0,0,20,0,0,0,21,0,19,0,0,0,0,19,0,0,0,0,0,0,21,21,19,19,0,0,0,21,0,0,0,0,19,21,0,0,0,19,20,0,0,0,21,0,0,0,21,19,19,0,0,0,0,0,0,0,0,21,20,0,11,11,15,15,0,12,12,15,16,0,12,12,16,16,0,15,15,16,15,0,16,16,17,17,0,12,12,17,17,0,14,14,17,17,0,11,11,16,16,0,15,15,19,18,0,15,15,16,16,0,12,12,17,16,0,14,15,16,16,0,11,11,15,15,0,16,16,18,19,0,15,15,15,16,0,17,17,18,20,0,21,0,21,19,0,14,14,16,16,0,18,18,0,0,0,16,16,15,15,0,16,16,18,17,0,0,0,19,20,0,14,14,16,16,0,19,19,0,0,0,16,17,15,15,0,12,12,14,15,0,13,13,16,17,0,12,12,17,17,0,17,16,0,0,0,18,17,21,0,0,13,13,19,17,0,15,15,20,21,0,12,12,17,17,0,17,17,0,0,0,17,17,0,0,0,13,13,17,18,0,16,16,21,0,0,12,12,17,17,0,17,17,0,0,0,17,17,0,0,0,18,21,0,0,0,0,0,0,0,0,15,15,21,0,0,20,21,0,0,0,18,19,0,0,0,18,17,0,0,0,0,0,0,0,0,16,16,21,0,0,21,21,0,0,0,18,19,0,0,0,12,12,16,16,0,13,13,16,17,0,13,13,17,16,0,14,14,16,16,0,16,15,19,18,0,13,13,17,17,0,15,15,18,18,0,12,12,16,16,0,15,15,18,19,0,15,15,17,16,0,13,13,17,17,0,16,16,18,17,0,12,12,17,16,0,15,15,18,18,0,15,15,17,17,0,16,16,0,19,0,0,0,0,0,0,14,14,16,17,0,18,18,0,0,0,15,15,17,17,0,16,16,21,19,0,21,0,21,21,0,13,14,16,16,0,19,19,0,0,0,15,16,16,16,0,11,11,17,16,0,15,14,19,18,0,14,14,19,19,0,18,17,18,20,0,17,17,18,19,0,13,13,17,17,0,16,17,21,18,0,13,13,17,16,0,18,17,19,0,0,16,17,18,18,0,12,12,19,18,0,18,18,20,20,0,13,13,17,17,0,17,17,21,0,0,16,17,17,18,0,18,17,19,18,0,0,0,0,0,0,14,14,17,17,0,19,19,21,0,0,16,16,16,17,0,17,17,19,20,0,0,0,0,21,0,15,15,17,18,0,21,21,0,0,0,17,17,17,18,0,10,10,15,15,0,15,14,17,18,0,14,14,16,16,0,0,0,18,0,0,21,0,19,0,0,13,13,17,16,0,17,17,18,0,0,14,14,16,15,0,0,0,21,0,0,21,0,19,18,0,13,13,17,17,0,18,18,20,20,0,15,15,16,16,0,0,0,21,21,0,0,0,20,20,0,0,0,19,0,0,0,0,0,0,0,21,20,18,18,0,0,0,0,0,0,0,0,0,20,0,0,0,0,20,0,0,0,0,0,0,0,0,19,18,0,0,0,0,21,0,0,0,18,20,0,18,19,16,17,0,21,19,17,17,0,0,21,18,18,0,0,21,20,19,0,0,0,20,20,0,0,21,17,17,0,0,0,19,19,0,20,20,17,17,0,0,0,0,20,0,0,20,18,18,0,21,20,17,17,0,0,0,20,21,0,19,0,17,17,0,0,21,0,0,0,20,0,18,19,0,0,0,21,21,0,0,0,0,21,0,20,20,17,17,0,0,0,0,0,0,21,0,18,17,0,0,0,20,19,0,0,0,0,21,0,20,20,17,17,0,0,0,0,0,0,21,21,18,18,0,12,12,15,14,0,14,14,17,17,0,14,14,17,16,0,18,18,21,0,0,19,20,0,0,0,13,13,18,17,0,16,16,19,18,0,13,13,17,17,0,17,17,0,0,0,17,17,21,0,0,13,13,17,17,0,17,17,21,20,0,13,13,18,17,0,18,19,21,21,0,19,18,0,0,0,18,17,0,0,0,0,0,0,0,0,15,16,0,0,0,21,21,0,0,0,20,18,21,0,0,17,18,0,0,0,0,0,0,0,0,15,16,0,0,0,0,20,0,0,0,0,19,0,0,0,15,15,18,19,0,18,17,21,0,0,16,18,0,20,0,17,18,21,0,0,18,20,0,0,0,16,16,21,21,0,19,20,21,0,0,16,15,0,21,0,18,20,0,0,0,18,19,0,0,0,16,15,21,21,0,21,0,0,0,0,16,15,21,0,0,20,19,0,0,0,18,21,21,0,0,20,18,0,0,0,0,0,0,0,0,16,16,0,20,0,21,0,0,0,0,17,18,20,21,0,18,18,21,21,0,0,0,0,0,0,16,16,20,0,0,0,21,0,0,0,21,18,0,0,0,12,12,20,17,0,15,15,19,18,0,14,14,19,18,0,18,17,21,19,0,17,17,21,17,0,13,13,21,19,0,16,17,20,19,0,13,13,16,16,0,17,17,20,21,0,16,16,19,17,0,13,13,18,18,0,17,19,19,19,0,13,13,17,17,0,18,18,0,19,0,16,17,18,18,0,16,17,19,21,0,0,0,0,0,0,15,15,16,17,0,20,19,21,0,0,17,17,17,17,0,17,17,21,19,0,0,0,0,0,0,15,15,17,17,0,21,0,0,0,0,18,18,17,17,0,10,10,15,15,0,15,15,17,17,0,15,14,16,16,0,0,0,21,19,0,21,21,19,21,0,13,13,17,16,0,17,17,18,19,0,14,15,16,15,0,0,0,21,19,0,21,21,18,19,0,14,14,16,17,0,18,18,18,19,0,15,15,15,16,0,0,21,0,21,0,0,0,19,20,0,0,0,21,19,0,0,0,0,0,0,21,21,19,17,0,0,0,0,0,0,0,0,21,21,0,21,0,0,21,0,0,0,0,0,0,21,21,19,18,0,0,0,0,0,0,0,0,0,19,0,21,18,18,17,0,21,0,20,20,0,0,0,18,20,0,0,21,18,21,0,0,0,21,18,0,0,0,0,19,0,0,0,21,21,0,20,21,17,19,0,21,0,21,0,0,21,0,18,18,0,20,21,17,18,0,0,0,21,19,0,20,21,17,18,0,0,0,21,21,0,0,0,20,19,0,0,0,21,21,0,0,0,0,0,0,21,21,19,18,0,0,0,0,0,0,0,21,19,18,0,21,21,19,0,0,0,0,21,0,0,21,21,18,17,0,0,0,0,0,0,21,0,21,18,0,12,12,14,14,0,15,14,17,17,0,14,14,17,16,0,19,17,0,0,0,19,19,0,0,0,13,13,17,17,0,17,17,20,20,0,13,13,18,18,0,18,17,0,0,0,18,21,0,0,0,13,13,17,17,0,18,18,21,20,0,14,14,18,19,0,19,18,21,0,0,19,19,0,0,0,20,18,20,0,0,0,0,0,0,0,15,16,0,0,0,21,21,0,0,0,19,19,0,0,0,18,18,0,0,0,0,0,0,0,0,16,16,0,21,0,0,0,0,0,0,19,20,0,0,0,15,15,20,21,0,17,17,21,21,0,17,17,0,0,0,19,18,0,0,0,18,19,0,0,0,17,16,0,21,0,0,20,0,0,0,16,16,0,20,0,19,19,0,21,0,19,18,0,21,0,16,16,0,0,0,21,21,0,0,0,16,16,0,0,0,21,21,0,0,0,19,19,0,0,0,20,0,0,0,0,0,0,0,0,0,17,17,0,21,0,0,20,0,0,0,20,18,21,21,0,19,18,0,20,0,0,0,0,0,0,16,17,21,0,0,0,21,0,0,0,19,20,21,20,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,3,4,9,9,10,12,12,12,11,10,12,12,13,12,11,13,12,11,11,11,12,12,12,11,11,13,13,13,13,11,12,12,14,14,12,13,13,13,13,11,13,13,13,13,11,13,13,13,13,11,13,13,13,13,11,12,12,14,14,12,13,13,12,12,11,13,13,13,13,11,13,13,12,12,11,13,13,13,13,12,12,13,14,14,12,13,13,12,12,11,13,13,13,13,11,13,13,12,12,11,13,13,13,13,12,13,13,14,14,12,13,13,12,12,11,13,13,13,13,11,13,13,12,12,11,10,10,10,10,12,10,10,11,11,12,9,9,11,11,13,11,11,10,10,13,10,10,10,10,13,11,11,12,12,13,10,10,12,12,14,12,11,12,12,13,11,11,11,12,13,12,12,12,12,13,11,11,12,12,13,10,10,12,12,14,11,11,12,12,13,11,11,12,12,13,11,11,12,12,14,12,12,12,12,14,10,10,11,11,14,12,11,11,11,13,11,11,11,11,13,12,12,11,11,14,12,12,12,11,14,10,10,11,11,14,12,11,11,11,13,11,11,11,11,13,12,12,11,11,11,11,11,10,10,12,10,11,9,9,12,12,12,11,11,13,12,12,9,9,13,13,13,10,10,13,13,13,12,12,13,13,13,14,14,13,12,12,11,11,14,13,13,12,12,14,13,13,11,11,13,13,13,12,11,13,13,13,14,14,13,12,12,10,10,14,13,13,11,11,13,13,13,10,10,13,13,13,11,11,14,13,13,14,14,14,12,12,10,10,13,13,13,11,11,13,13,13,10,10,13,13,13,11,11,14,13,13,14,14,14,13,13,10,10,13,13,13,11,11,13,13,13,10,10,14,12,12,8,8,14,12,12,9,9,14,11,11,9,9,14,12,12,8,8,14,12,12,7,7,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,12,13,9,9,15,13,13,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,13,13,9,9,15,13,13,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,9,9,14,13,12,9,9,14,13,13,9,9,15,13,13,10,10,15,12,12,10,10,15,13,13,9,9,15,13,13,9,9,14,13,13,9,9,14,12,12,8,8,13,13,13,8,8,14,14,13,9,9,14,14,13,7,7,14,14,14,8,8,14,14,14,10,10,15,14,14,12,12,14,14,14,9,9,15,14,14,10,10,14,14,14,9,9,14,14,14,10,9,15,14,14,12,12,14,14,14,9,9,15,14,14,10,10,14,14,14,9,9,15,14,15,9,9,15,14,14,11,11,14,14,14,8,8,14,14,14,9,9,14,14,14,8,8,14,15,14,10,10,15,14,14,11,11,14,14,14,8,8,15,14,14,9,9,14,14,14,8,8,12,12,12,13,13,16,16,15,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16,12,12,17,16,17,13,13,17,16,16,14,14,17,17,16,12,12,18,16,16,13,13,17,16,17,12,12,17,17,17,13,13,18,16,16,14,14,18,17,17,12,12,17,17,17,13,13,18,17,17,13,13,17,17,17,13,13,17,16,16,14,14,17,17,17,12,12,16,16,17,13,13,17,17,16,12,12,18,17,17,13,13,18,16,16,14,14,18,17,17,12,12,19,16,17,13,13,17,16,17,12,12,13,14,14,10,10,16,14,14,13,13,17,15,15,14,14,17,14,14,13,13,16,14,14,13,13,17,16,15,14,14,16,16,16,15,15,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,17,16,15,14,14,16,16,16,15,15,18,15,15,13,13,16,16,15,14,14,17,15,15,14,13,17,15,15,14,14,16,16,16,15,15,18,15,14,13,13,17,15,15,14,14,18,14,15,13,13,18,15,15,14,14,16,16,16,15,15,17,15,15,13,13,17,15,15,14,14,17,15,15,13,13,13,11,11,10,10,16,14,14,13,13,17,14,15,14,14,17,15,15,12,12,17,14,14,12,12,16,15,15,14,14,16,14,14,14,14,16,15,15,14,14,16,15,15,14,14,16,15,15,14,14,16,15,15,14,14,16,15,14,15,15,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,17,15,16,14,14,16,14,14,14,14,17,15,15,13,13,17,15,15,13,13,16,15,15,13,13,17,16,16,14,14,17,15,14,15,14,17,15,15,13,13,17,15,15,13,13,17,15,15,13,13,14,14,14,9,9,14,14,14,18,19,14,15,15,19,18,14,14,14,19,19,15,14,14,19,19,15,16,16,19,19,15,16,16,19,19,15,15,15,19,19,15,16,16,19,20,15,15,15,19,19,15,15,15,19,19,15,16,16,20,20,15,15,15,18,19,15,15,16,19,20,15,15,15,19,18,15,15,15,18,18,15,16,16,21,20,15,15,15,19,19,15,15,15,19,19,15,15,14,19,20,15,15,15,20,19,15,16,16,19,20,15,15,15,19,19,15,15,15,20,21,15,14,15,19,19,14,12,12,9,9,14,14,15,21,19,14,14,14,18,19,14,15,15,19,20,14,14,14,19,19,15,15,15,19,20,15,15,14,21,19,15,15,15,20,19,15,14,15,20,21,15,15,15,18,18,15,15,15,20,21,16,14,14,18,19,15,15,15,20,19,15,15,15,18,21,15,15,15,19,19,15,15,15,19,20,16,15,14,20,19,15,16,15,19,19,15,15,15,19,0,14,15,15,19,19,15,15,15,19,19,15,15,14,20,19,15,15,15,20,19,15,15,15,19,19,15,15,15,20,19,12,12,12,13,13,16,15,16,11,11,16,16,16,12,12,17,16,16,11,11,17,16,16,12,11,17,17,17,13,13,18,16,16,14,14,18,18,17,13,13,17,16,16,13,13,17,17,17,13,13,17,16,17,12,12,17,15,16,13,13,17,16,17,12,12,17,16,16,13,12,17,16,16,12,12,18,17,17,13,13,18,16,16,13,14,18,17,17,12,12,17,16,16,12,12,17,17,17,12,12,18,17,17,13,13,17,16,16,14,14,17,17,17,12,12,17,16,16,12,12,18,17,17,12,12,13,14,14,9,9,16,14,14,13,13,16,15,15,14,14,16,14,14,13,13,16,14,14,13,13,17,16,15,15,15,16,15,16,16,15,17,15,15,14,14,17,15,15,15,15,17,15,15,14,14,17,15,15,14,14,16,15,16,16,16,17,15,15,14,14,16,15,15,14,15,16,15,15,14,14,17,15,15,15,15,16,16,16,15,16,18,15,14,13,14,17,15,15,14,14,17,14,14,13,13,17,15,15,14,14,16,15,15,15,15,17,15,14,14,14,17,15,15,14,14,17,14,14,13,13,13,11,11,11,11,16,14,14,12,12,16,14,14,13,13,16,14,14,12,12,16,14,14,12,12,16,15,15,13,13,17,14,14,14,14,17,15,15,13,13,16,15,15,14,13,16,15,15,13,13,16,15,15,13,13,16,14,14,14,14,16,15,15,13,13,16,14,15,13,13,17,15,15,13,13,17,15,15,13,13,16,14,14,14,14,17,15,15,12,12,17,14,15,13,13,17,15,15,12,12,16,15,15,13,13,17,14,14,14,14,17,15,15,12,12,17,15,15,13,13,16,15,15,12,12,14,15,15,8,8,14,14,14,19,18,14,15,15,19,20,14,14,14,19,19,14,14,15,19,20,15,16,15,19,21,15,16,16,21,19,15,15,15,20,19,15,16,16,19,20,15,15,15,19,18,15,16,15,20,19,15,16,16,19,20,15,15,15,19,19,15,16,15,20,20,14,15,15,19,19,15,15,15,21,19,15,17,16,19,20,15,14,15,0,21,15,15,15,19,20,14,14,14,19,19,15,15,15,20,19,15,16,16,19,19,15,15,15,19,18,15,15,15,20,19,14,14,15,18,18,14,12,12,9,9,14,14,14,18,18,14,14,14,18,18,14,15,14,19,18,14,14,14,19,18,15,15,15,19,20,15,14,14,18,18,15,15,15,20,19,15,15,15,18,20,15,15,15,19,18,15,15,15,19,19,15,14,14,19,21,15,15,15,20,20,15,15,15,18,19,14,15,15,19,20,15,15,15,20,19,15,14,14,19,21,15,15,15,18,19,15,14,15,20,19,14,15,15,21,21,14,15,15,19,20,15,14,14,19,20,15,15,15,19,20,15,15,14,20,20,14,15,15,20,19,13,12,12,13,13,17,16,16,11,11,17,16,16,12,12,18,17,16,11,11,18,16,16,11,11,17,17,17,13,13,18,16,16,13,13,18,17,17,12,12,18,16,16,13,13,18,17,17,12,12,18,17,17,13,13,18,16,16,14,14,18,16,17,12,12,18,17,17,13,13,17,17,17,12,12,17,17,17,12,12,17,16,15,13,13,18,16,16,11,11,17,16,16,12,12,17,16,17,11,11,18,17,17,13,12,17,16,16,13,13,17,17,17,12,12,17,16,17,12,12,18,17,17,11,11,14,14,14,9,9,16,14,14,13,13,17,15,15,14,14,17,14,14,13,13,16,14,14,13,13,17,15,15,14,14,16,16,16,16,15,18,15,15,14,14,17,16,15,15,15,17,15,15,14,14,17,15,15,14,15,16,16,16,15,16,18,15,15,14,14,17,15,15,14,15,17,15,15,14,14,17,15,15,14,14,16,16,16,15,16,17,14,14,13,13,17,15,15,14,14,18,15,15,13,13,17,15,15,14,14,16,16,16,15,15,17,14,14,13,13,17,15,15,14,14,17,14,14,13,13,13,11,11,11,11,16,14,14,12,12,16,14,14,12,13,17,15,14,11,11,17,14,14,11,11,17,15,15,13,14,17,14,14,14,14,17,15,15,13,13,17,14,14,13,13,17,15,15,13,13,17,15,15,13,13,17,14,14,14,14,17,15,15,13,13,18,14,15,13,13,17,15,15,13,13,16,15,15,13,13,17,14,14,13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12,12,17,16,15,13,13,17,14,14,13,13,17,15,15,12,12,16,15,15,12,12,16,15,15,12,12,13,15,15,8,8,14,14,14,18,19,14,15,15,19,20,14,14,14,18,18,14,15,15,18,18,15,16,16,19,19,15,16,17,20,20,15,15,15,19,19,15,16,16,18,20,15,15,15,19,19,15,15,16,18,18,15,17,16,19,19,15,15,15,18,21,15,16,16,21,20,15,15,15,19,21,15,16,15,20,19,15,16,17,20,20,15,15,15,19,19,15,16,16,21,20,15,15,15,19,20,15,15,15,19,19,15,16,16,20,19,15,15,15,19,19,15,16,15,20,21,15,15,15,21,19,14,12,12,8,8,14,14,14,20,18,14,13,13,19,19,14,14,14,19,18,15,14,14,19,20,14,15,15,20,20,15,14,14,21,20,15,15,15,20,20,15,15,14,21,19,15,15,15,19,19,15,15,15,19,20,15,14,14,20,20,15,15,15,19,20,15,14,14,19,20,15,15,15,20,20,15,15,15,20,19,15,14,14,20,21,15,15,15,20,21,15,14,14,20,0,15,16,15,20,21,15,15,15,19,20,15,14,14,19,19,15,15,15,19,20,15,15,15,19,19,15,15,15,18,20,13,12,12,13,13,18,16,17,12,12,17,16,16,12,12,17,17,16,11,11,18,16,16,11,11,17,17,18,13,13,18,16,16,14,14,18,17,17,13,13,18,16,16,13,13,18,17,17,12,12,17,17,16,13,13,17,16,16,13,14,18,17,17,12,12,18,16,16,12,13,17,16,17,12,12,17,18,17,13,13,18,16,16,13,13,18,17,17,12,12,17,16,16,12,12,17,17,17,11,11,17,16,17,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16,12,12,18,16,17,11,11,14,14,14,9,9,16,14,15,13,13,17,15,15,14,14,17,14,14,12,12,16,14,14,13,13,18,15,15,15,15,17,15,16,15,16,18,15,15,14,14,17,15,16,15,15,17,15,15,14,14,18,15,15,14,14,16,16,16,16,15,17,15,15,14,14,16,15,15,14,14,17,15,15,14,14,17,15,15,14,14,17,16,16,15,15,17,15,14,13,13,17,15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,16,16,15,15,18,15,14,14,14,17,15,15,14,14,18,15,15,13,13,13,12,12,11,11,16,14,14,12,12,16,14,14,13,13,17,15,15,12,12,17,14,14,12,12,17,15,15,14,14,17,14,14,14,14,17,15,15,13,13,17,15,14,13,13,17,15,15,13,13,17,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16,14,14,13,13,16,15,15,13,13,17,15,16,13,13,17,14,14,14,13,17,15,15,12,12,16,15,14,12,12,17,15,15,12,12,16,15,16,13,13,16,14,14,14,13,17,15,15,12,12,16,14,14,12,12,17,15,15,12,12,14,15,15,8,8,14,14,14,18,18,14,15,15,19,18,14,14,14,18,18,14,15,15,19,20,15,16,15,21,18,15,16,16,18,0,15,15,15,19,20,15,16,16,20,0,15,16,15,19,18,15,15,15,19,19,15,16,16,21,19,15,15,15,19,19,15,16,16,20,20,15,15,15,19,19,15,15,15,19,18,15,16,16,20,20,15,14,15,20,19,15,15,15,19,20,15,15,15,19,19,15,16,15,19,20,15,16,16,19,20,15,15,15,19,19,15,16,15,20,20,15,15,15,20,18,13,12,12,8,8,14,14,14,19,20,14,14,14,19,19,14,15,15,20,20,14,14,14,18,19,15,15,15,20,0,15,14,14,18,20,15,15,15,19,19,15,15,15,21,19,15,15,15,19,20,15,15,15,20,21,15,14,14,20,19,15,15,15,20,19,15,15,14,21,19,15,15,15,19,18,15,15,15,20,19,15,14,14,19,19,15,15,16,20,19,15,15,15,20,0,15,15,15,19,21,15,15,15,22,20,15,14,14,22,19,15,15,15,19,20,15,14,14,20,19,14,15,15,19,21,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,6,8,8,6,8,8,7,9,9,10,11,11,8,8,8,7,9,9,11,12,12,9,9,9,6,7,7,10,11,11,10,11,11,10,11,11,13,13,13,12,12,12,10,12,11,14,14,14,12,12,12,6,5,5,9,6,6,9,6,6,9,7,7,12,10,10,11,7,6,9,7,7,13,11,11,12,7,7,7,8,8,12,10,10,12,10,10,11,10,10,15,13,13,13,9,9,12,11,11,15,14,14,15,11,11,8,7,7,12,11,11,12,11,11,11,11,11,14,13,14,14,12,12,12,11,11,16,15,15,14,12,12,0,10,10,0,12,12,0,12,12,0,11,11,0,14,14,0,11,11,0,11,11,0,15,15,0,11,11,7,8,8,13,11,11,12,10,10,12,11,11,15,13,13,14,11,11,12,10,10,16,14,14,15,10,10,9,7,7,13,11,12,13,12,11,12,11,11,15,14,14,14,12,12,13,12,12,16,15,15,15,12,12,0,11,11,0,12,12,0,12,13,0,12,12,0,15,15,0,12,12,0,12,12,0,16,15,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,0,9,9,0,9,9,0,10,10,0,9,9,0,10,10,0,10,10,0,10,10,0,10,10,0,7,7,0,7,7,0,6,6,0,8,8,0,7,7,0,8,8,0,8,8,0,7,7,0,8,8,0,7,7,0,9,9,0,8,9,0,10,10,0,9,9,0,10,10,0,10,11,0,9,9,0,10,10,0,9,9,0,11,11,0,12,12,0,12,12,0,11,11,0,12,12,0,13,13,0,12,12,0,13,13,0,8,8,0,12,12,0,12,12,0,13,13,0,13,13,0,13,13,0,13,13,0,13,13,0,13,13,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,11,11,0,12,12,0,13,13,0,12,12,0,13,13,0,13,13,0,12,12,0,12,12,0,9,9,0,12,12,0,13,13,0,14,14,0,13,13,0,14,14,0,14,14,0,13,13,0,14,14,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,5,5,0,7,7,0,8,8,0,9,9,0,12,12,0,8,8,0,9,9,0,13,13,0,8,8,0,6,6,0,11,11,0,12,12,0,12,12,0,14,14,0,11,12,0,12,12,0,15,15,0,12,12,0,5,5,0,5,5,0,6,6,0,7,7,0,10,10,0,6,6,0,7,7,0,11,11,0,6,6,0,7,7,0,11,11,0,12,11,0,11,11,0,14,14,0,10,10,0,12,12,0,15,15,0,12,12,0,6,6,0,12,12,0,12,12,0,12,12,0,14,14,0,11,11,0,12,12,0,16,16,0,12,12,0,0,0,0,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,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,11,11,0,16,16,0,11,11,0,6,6,0,12,12,0,12,12,0,13,13,0,15,15,0,12,12,0,13,13,0,15,15,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,4,3,7,9,12,16,16,3,2,5,7,11,14,15,7,4,5,6,9,12,15,8,5,5,5,8,10,14,9,7,6,6,8,10,12,12,10,10,7,6,8,10,15,12,10,6,4,7,9,0,0,0,0,0,0,0,0,0,0,0,0,249,213,64,0,0,0,0,0,64,223,64,0,0,0,0,0,136,227,64,0,0,0,0,0,112,231,64,0,0,0,0,0,88,235,64,0,0,0,0,0,64,239,64,0,0,0,0,0,136,243,64,0,0,0,0,0,112,247,64,0,0,0,0,0,88,251,64,0,0,0,0,0,64,255,64,0,0,0,0,0,136,3,65,0,0,0,0,136,132,14,65,176,240,7,0,48,241,7,0,48,242,7,0,48,244,7,0,48,248,7,0,48,0,8,0,48,16,8,0,48,48,8,0,24,0,120,58,76,70,11,60,242,204,192,60,116,252,59,61,86,73,154,61,241,93,228,61,248,163,29,62,180,231,78,62,54,157,130,62,78,220,159,62,193,174,190,62,65,132,222,62,173,194,254,62,186,101,15,63,248,0,31,63,29,233,45,63,249,219,59,63,45,162,72,63,160,17,84,63,38,15,94,63,46,143,102,63,112,149,109,63,174,51,115,63,159,135,119,63,66,184,122,63,196,242,124,63,75,103,126,63,196,69,127,63,241,186,127,63,217,237,127,63,162,253,127,63,248,255,127,63,168,9,120,57,17,119,11,59,135,139,193,59,74,113,61,60,148,82,156,60,94,8,233,60,42,83,34,61,74,118,87,61,138,227,137,61,7,140,171,61,34,154,208,61,108,239,248,61,164,52,18,62,100,112,41,62,65,21,66,62,67,11,92,62,47,56,119,62,197,191,137,62,92,97,152,62,135,112,167,62,4,220,182,62,188,145,198,62,231,126,214,62,48,144,230,62,227,177,246,62,13,104,3,63,121,107,11,63,98,89,19,63,42,40,27,63,137,206,34,63,166,67,42,63,49,127,49,63,126,121,56,63,153,43,63,63,92,143,69,63,127,159,75,63,165,87,81,63,104,180,86,63,89,179,91,63,8,83,96,63,252,146,100,63,177,115,104,63,138,246,107,63,198,29,111,63,109,236,113,63,62,102,116,63,154,143,118,63,104,109,120,63,3,5,122,63,26,92,123,63,153,120,124,63,143,96,125,63],"i8",O3,_.GLOBAL_BASE+510456),C3([17,26,126,63,39,171,126,63,176,25,127,63,74,107,127,63,68,165,127,63,132,204,127,63,123,229,127,63,17,244,127,63,158,251,127,63,219,254,127,63,218,255,127,63,0,0,128,63,5,12,120,56,50,131,11,58,118,186,193,58,226,203,61,59,38,207,156,59,139,32,234,59,245,102,35,60,63,100,89,60,184,127,139,60,59,23,174,60,239,114,212,60,96,140,254,60,45,46,22,61,114,237,46,61,155,127,73,61,220,223,101,61,123,4,130,61,159,250,145,61,71,207,162,61,38,127,180,61,173,6,199,61,16,98,218,61,63,141,238,61,244,193,1,62,185,160,12,62,128,224,23,62,182,126,35,62,166,120,47,62,116,203,59,62,34,116,72,62,141,111,85,62,107,186,98,62,83,81,112,62,180,48,126,62,110,42,134,62,252,92,141,62,9,174,148,62,138,27,156,62,100,163,163,62,112,67,171,62,119,249,178,62,54,195,186,62,93,158,194,62,147,136,202,62,118,127,210,62,154,128,218,62,142,137,226,62,217,151,234,62,2,169,242,62,139,186,250,62,251,100,1,63,99,106,5,63,65,108,9,63,89,105,13,63,116,96,17,63,94,80,21,63,231,55,25,63,231,21,29,63,58,233,32,63,197,176,36,63,116,107,40,63,62,24,44,63,35,182,47,63,43,68,51,63,109,193,54,63,10,45,58,63,48,134,61,63,26,204,64,63,17,254,67,63,107,27,71,63,142,35,74,63,238,21,77,63,15,242,79,63,132,183,82,63,239,101,85,63,3,253,87,63,129,124,90,63,60,228,92,63,21,52,95,63,254,107,97,63,246,139,99,63,14,148,101,63,98,132,103,63,33,93,105,63,133,30,107,63,213,200,108,63,103,92,110,63,155,217,111,63,224,64,113,63,172,146,114,63,131,207,115,63,241,247,116,63,139,12,118,63,239,13,119,63,193,252,119,63,172,217,120,63,99,165,121,63,155,96,122,63,15,12,123,63,124,168,123,63,163,54,124,63,71,183,124,63,41,43,125,63,13,147,125,63,183,239,125,63,229,65,126,63,89,138,126,63,205,201,126,63,251,0,127,63,150,48,127,63,78,89,127,63,205,123,127,63,182,152,127,63,167,176,127,63,53,196,127,63,239,211,127,63,91,224,127,63,245,233,127,63,51,241,127,63,127,246,127,63,59,250,127,63,190,252,127,63,84,254,127,63,64,255,127,63,186,255,127,63,238,255,127,63,254,255,127,63,0,0,128,63,169,12,120,55,54,134,11,57,38,198,193,57,94,226,61,58,234,237,156,58,85,101,234,58,56,170,35,59,207,219,89,59,169,226,139,59,42,178,174,59,13,91,213,59,204,219,255,59,91,25,23,60,250,46,48,60,194,45,75,60,156,20,104,60,46,113,131,60,225,202,147,60,185,22,165,60,1,84,183,60,245,129,202,60,198,159,222,60,155,172,243,60,199,211,4,61,213,71,16,61,250,49,28,61,174,145,40,61,101,102,53,61,141,175,66,61,140,108,80,61,193,156,94,61,133,63,109,61,41,84,124,61,252,236,133,61,26,232,141,61,13,27,150,61,110,133,158,61,212,38,167,61,210,254,175,61,245,12,185,61,200,80,194,61,209,201,203,61,146,119,213,61,139,89,223,61,51,111,233,61,2,184,243,61,105,51,254,61,106,112,4,62,214,223,9,62,171,103,15,62,153,7,21,62,77,191,26,62,116,142,32,62,181,116,38,62,184,113,44,62,34,133,50,62,149,174,56,62,178,237,62,62,21,66,69,62,92,171,75,62,30,41,82,62,243,186,88,62,112,96,95,62,40,25,102,62,170,228,108,62,132,194,115,62,68,178,122,62,185,217,128,62,203,98,132,62,26,244,135,62,105,141,139,62,120,46,143,62,6,215,146,62,211,134,150,62,156,61,154,62,29,251,157,62,19,191,161,62,57,137,165,62,71,89,169,62,249,46,173,62,5,10,177,62,36,234,180,62,13,207,184,62,117,184,188,62,18,166,192,62,153,151,196,62,190,140,200,62,52,133,204,62,175,128,208,62,225,126,212,62,125,127,216,62,52,130,220,62,184,134,224,62,185,140,228,62,233,147,232,62,248,155,236,62,150,164,240,62,117,173,244,62,67,182,248,62,178,190,252,62,57,99,0,63,153,102,2,63,82,105,4,63,60,107,6,63,48,108,8,63,6,108,10,63,151,106,12,63,188,103,14,63,78,99,16,63,39,93,18,63,33,85,20,63,21,75,22,63,222,62,24,63,87,48,26,63,92,31,28,63,199,11,30,63,117,245,31,63,66,220,33,63,12,192,35,63,176,160,37,63,12,126,39,63,254,87,41,63,104,46,43,63,39,1,45,63,29,208,46,63,43,155,48,63,51,98,50,63,23,37,52,63,188,227,53,63,4,158,55,63,214,83,57,63,23,5,59,63,173,177,60,63,128,89,62,63,120,252,63,63,126,154,65,63,124,51,67,63,93,199,68,63,12,86,70,63,119,223,71,63,138,99,73,63,54,226,74,63,104,91,76,63,17,207,77,63,35,61,79,63,145,165,80,63,76,8,82,63,75,101,83,63,130,188,84,63,231,13,86,63,114,89,87,63,26,159,88,63,218,222,89,63,172,24,91,63,138,76,92,63,113,122,93,63,93,162,94,63,78,196,95,63,67,224,96,63,58,246,97,63,54,6,99,63,56,16,100,63,67,20,101,63,92,18,102,63,133,10,103,63,198,252,103,63,37,233,104,63,168,207,105,63,89,176,106,63,64,139,107,63,102,96,108,63,216,47,109,63,159,249,109,63,201,189,110,63,97,124,111,63,118,53,112,63,23,233,112,63,81,151,113,63,53,64,114,63,212,227,114,63,61,130,115,63,131,27,116,63,184,175,116,63,238,62,117,63,56,201,117,63,171,78,118,63,90,207,118,63,90,75,119,63,192,194,119,63,162,53,120,63,21,164,120,63,48,14,121,63,8,116,121,63,182,213,121,63,79,51,122,63,235,140,122,63,162,226,122,63,139,52,123,63,191,130,123,63,85,205,123,63,102,20,124,63,9,88,124,63,88,152,124,63,106,213,124,63,88,15,125,63,58,70,125,63,41,122,125,63,62,171,125,63,143,217,125,63,54,5,126,63,75,46,126,63,228,84,126,63,27,121,126,63,7,155,126,63,190,186,126,63,88,216,126,63,236,243,126,63,144,13,127,63,91,37,127,63,99,59,127,63,188,79,127,63,125,98,127,63,185,115,127,63,135,131,127,63,249,145,127,63,36,159,127,63,26,171,127,63,238,181,127,63,179,191,127,63,122,200,127,63,85,208,127,63,84,215,127,63,136,221,127,63,0,227,127,63,204,231,127,63,249,235,127,63,150,239,127,63,177,242,127,63,85,245,127,63,144,247,127,63,109,249,127,63,246,250,127,63,54,252,127,63,55,253,127,63,1,254,127,63,156,254,127,63,18,255,127,63,103,255,127,63,163,255,127,63,204,255,127,63,229,255,127,63,244,255,127,63,252,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,60,12,120,54,253,134,11,56,19,201,193,56,248,231,61,57,148,245,156,57,115,118,234,57,238,186,35,58,113,249,89,58,32,251,139,58,96,216,174,58,34,148,213,58,3,23,0,59,209,82,23,59,65,125,48,59,21,150,75,59,8,157,104,59,233,200,131,59,20,58,148,59,218,161,165,59,16,0,184,59,136,84,203,59,16,159,223,59,118,223,244,59,194,138,5,60,128,32,17,60,217,48,29,60,172,187,41,60,219,192,54,60,67,64,68,60,194,57,82,60,52,173,96,60,115,154,111,60,88,1,127,60,222,112,135,60,186,157,143,60,42,7,152,60,25,173,160,60,112,143,169,60,23,174,178,60,246,8,188,60,243,159,197,60,245,114,207,60,225,129,217,60,156,204,227,60,10,83,238,60,14,21,249,60,70,9,2,61,177,165,7,61,187,95,13,61,81,55,19,61,102,44,25,61,230,62,31,61,195,110,37,61,233,187,43,61,71,38,50,61,202,173,56,61,97,82,63,61,247,19,70,61,121,242,76,61,210,237,83,61,240,5,91,61,187,58,98,61,32,140,105,61,8,250,112,61,93,132,120,61,132,21,128,61,249,246,131,61,130,230,135,61,19,228,139,61,159,239,143,61,26,9,148,61,119,48,152,61,169,101,156,61,163,168,160,61,88,249,164,61,186,87,169,61,186,195,173,61,76,61,178,61,95,196,182,61,230,88,187,61,209,250,191,61,18,170,196,61,152,102,201,61,85,48,206,61,56,7,211,61,48,235,215,61,47,220,220,61,34,218,225,61,248,228,230,61,161,252,235,61,11,33,241,61,35,82,246,61,217,143,251,61,13,109,0,62,105,24,3,62,247,201,5,62,174,129,8,62,133,63,11,62,113,3,14,62,104,205,16,62,96,157,19,62,79,115,22,62,42,79,25,62,232,48,28,62,124,24,31,62,221,5,34,62,255,248,36,62,215,241,39,62,90,240,42,62,125,244,45,62,51,254,48,62,114,13,52,62,45,34,55,62,88,60,58,62,232,91,61,62,208,128,64,62,3,171,67,62,118,218,70,62,26,15,74,62,229,72,77,62,199,135,80,62,181,203,83,62,162,20,87,62,127,98,90,62,63,181,93,62,213,12,97,62,50,105,100,62,73,202,103,62,12,48,107,62,108,154,110,62,92,9,114,62,203,124,117,62,173,244,120,62,241,112,124,62,138,241,127,62,52,187,129,62,190,127,131,62,91,70,133,62,4,15,135,62,176,217,136,62,89,166,138,62,245,116,140,62,126,69,142,62,234,23,144,62,50,236,145,62,78,194,147,62,54,154,149,62,224,115,151,62,70,79,153,62,93,44,155,62,31,11,157,62,130,235,158,62,127,205,160,62,11,177,162,62,31,150,164,62,177,124,166,62,186,100,168,62,47,78,170,62,9,57,172,62,62,37,174,62,198,18,176,62,150,1,178,62,167,241,179,62,238,226,181,62,100,213,183,62,254,200,185,62,179,189,187,62,122,179,189,62,74,170,191,62,25,162,193,62,221,154,195,62,142,148,197,62,34,143,199,62,142,138,201,62,203,134,203,62,205,131,205,62,140,129,207,62,253,127,209,62,24,127,211,62,210,126,213,62,33,127,215,62,252,127,217,62,88,129,219,62,45,131,221,62,112,133,223,62,23,136,225,62,25,139,227,62,108,142,229,62,5,146,231,62,219,149,233,62,228,153,235,62,21,158,237,62,102,162,239,62,203,166,241,62,59,171,243,62,173,175,245,62,21,180,247,62,107,184,249,62,164,188,251,62,181,192,253,62,150,196,255,62,30,228,0,63,207,229,1,63,88,231,2,63,182,232,3,63,226,233,4,63,215,234,5,63,146,235,6,63,12,236,7,63,66,236,8,63,45,236,9,63,202,235,10,63,19,235,11,63,4,234,12,63,151,232,13,63,200,230,14,63,145,228,15,63,239,225,16,63,220,222,17,63,84,219,18,63,81,215,19,63,208,210,20,63,202,205,21,63,61,200,22,63,34,194,23,63,117,187,24,63,50,180,25,63,85,172,26,63,215,163,27,63,182,154,28,63,236,144,29,63,117,134,30,63,77,123,31,63,110,111,32,63,214,98,33,63,126,85,34,63,100,71,35,63,130,56,36,63,212,40,37,63,87,24,38,63,5,7,39,63,219,244,39,63,213,225,40,63,239,205,41,63,36,185,42,63,113,163,43,63,209,140,44,63,64,117,45,63,188,92,46,63,63,67,47,63,199,40,48,63,78,13,49,63,211,240,49,63,80,211,50,63,195,180,51,63,39,149,52,63,122,116,53,63,184,82,54,63,220,47,55,63,229,11,56,63,206,230,56,63,149,192,57,63,54,153,58,63,174,112,59,63,249,70,60,63,21,28,61,63,255,239,61,63,179,194,62,63,48,148,63,63,113,100,64,63,116,51,65,63,55,1,66,63,182,205,66,63,239,152,67,63,224,98,68,63,134,43,69,63,222,242,69,63,230,184,70,63,156,125,71,63,253,64,72,63,7,3,73,63,184,195,73,63,14,131,74,63,6,65,75,63,159,253,75,63,215,184,76,63,172,114,77,63,28,43,78,63,38,226,78,63,199,151,79,63,253,75,80,63,201,254,80,63,39,176,81,63,22,96,82,63,150,14,83,63,164,187,83,63,63,103,84,63,103,17,85,63,26,186,85,63,86,97,86,63,28,7,87,63,105,171,87,63,62,78,88,63,152,239,88,63,120,143,89,63,221,45,90,63,198,202,90,63,50,102,91,63,33,0,92,63,147,152,92,63,134,47,93,63,251,196,93,63,242,88,94,63,105,235,94,63,98,124,95,63,219,11,96,63,213,153,96,63,80,38,97,63,76,177,97,63,201,58,98,63,199,194,98,63,70,73,99,63,71,206,99,63,202,81,100,63,208,211,100,63,88,84,101,63,100,211,101,63,244,80,102,63,9,205,102,63,163,71,103,63,195,192,103,63,107,56,104,63,154,174,104,63,82,35,105,63,147,150,105,63,96,8,106,63,184,120,106,63,157,231,106,63,16,85,107,63,19,193,107,63,166,43,108,63,203,148,108,63,132,252,108,63,209,98,109,63,180,199,109,63,48,43,110,63,68,141,110,63,244,237,110,63,64,77,111,63,42,171,111,63,181,7,112,63,225,98,112,63,177,188,112,63,38,21,113,63,67,108,113,63,10,194,113,63,123,22,114,63,155,105,114,63,106,187,114,63,234,11,115,63,31,91,115,63,9,169,115,63,172,245,115,63,9,65,116,63,35,139,116,63,252,211,116,63,151,27,117,63,245,97,117,63,26,167,117,63,8,235,117,63,193,45,118,63,72,111,118,63,159,175,118,63,202,238,118,63,201,44,119,63,161,105,119,63,84,165,119,63,228,223,119,63,85,25,120,63,168,81,120,63,226,136,120,63,3,191,120,63,16,244,120,63,11,40,121,63,247,90,121,63,215,140,121,63,173,189,121,63,125,237,121,63,73,28,122,63,20,74,122,63,226,118,122,63,181,162,122,63,144,205,122,63,118,247,122,63,107,32,123,63,112,72,123,63,138,111,123,63,186,149,123,63,5,187,123,63,109,223,123,63,245,2,124,63,160,37,124,63,113,71,124,63,108,104,124,63,147,136,124,63,233,167,124,63,114,198,124,63,48,228,124,63,38,1,125,63,89,29,125,63,201,56,125,63,124,83,125,63,115,109,125,63,178,134,125,63,60,159,125,63,19,183,125,63,60,206,125,63,184,228,125,63,139,250,125,63,184,15,126,63,66,36,126,63,44,56,126,63,120,75,126,63,43,94,126,63,70,112,126,63,204,129,126,63,194,146,126,63,41,163,126,63,4,179,126,63,86,194,126,63,35,209,126,63,109,223,126,63,55,237,126,63,131,250,126,63,85,7,127,63,175,19,127,63,148,31,127,63,7,43,127,63,10,54,127,63,160,64,127,63,205,74,127,63,146,84,127,63,242,93,127,63,239,102,127,63,141,111,127,63,206,119,127,63,181,127,127,63,67,135,127,63,124,142,127,63,98,149,127,63,247,155,127,63,61,162,127,63,56,168,127,63,233,173,127,63,83,179,127,63,120,184,127,63,90,189,127,63,252,193,127,63,95,198,127,63,134,202,127,63,116,206,127,63,41,210,127,63,168,213,127,63,244,216,127,63,13,220,127,63,247,222,127,63,179,225,127,63,67,228,127,63,168,230,127,63,229,232,127,63,252,234,127,63,237,236,127,63,188,238,127,63,105,240,127,63,246,241,127,63,101,243,127,63,183,244,127,63,238,245,127,63,11,247,127,63,16,248,127,63,254,248,127,63,214,249,127,63,155,250,127,63,76,251,127,63,236,251,127,63,124,252,127,63,252,252,127,63,110,253,127,63,211,253,127,63,44,254,127,63,121,254,127,63,189,254,127,63,247,254,127,63,42,255,127,63,84,255,127,63,120,255,127,63,150,255,127,63,175,255,127,63,195,255,127,63,211,255,127,63,224,255,127,63,234,255,127,63,241,255,127,63,246,255,127,63,250,255,127,63,253,255,127,63,254,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,171,15,120,53,24,135,11,55,225,201,193,55,107,233,61,56,128,247,156,56,187,122,234,56,24,191,35,57,213,0,90,57,56,1,140,57,229,225,174,57,88,162,213,57,60,33,0,58,24,97,23,58,175,144,48,58,243,175,75,58,212,190,104,58,159,222,131,58,143,85,148,58,48,196,165,58,119,42,184,58,90,136,203,58,204,221,223,58,191,42,245,58,148,183,5,59,124,85,17,59,16,111,29,59,73,4,42,59,31,21,55,59,138,161,68,59,129,169,82,59,252,44,97,59,241,43,112,59,88,166,127,59,19,206,135,59,169,6,144,59,233,124,152,59,204,48,161,59,79,34,170,59,106,81,179,59,26,190,188,59,86,104,198,59,26,80,208,59,95,117,218,59,31,216,228,59,83,120,239,59,244,85,250,59,126,184,2,60,177,100,8,60,145,47,14,60,25,25,20,60,70,33,26,60,19,72,32,60,126,141,38,60,129,241,44,60,25,116,51,60,65,21,58,60,246,212,64,60,50,179,71,60,243,175,78,60,50,203,85,60,235,4,93,60,26,93,100,60,186,211,107,60,198,104,115,60,58,28,123,60,7,119,129,60,33,111,133,60,102,118,137,60,212,140,141,60,105,178,145,60,33,231,149,60,251,42,154,60,243,125,158,60,6,224,162,60,50,81,167,60,115,209,171,60,199,96,176,60,43,255,180,60,154,172,185,60,19,105,190,60,146,52,195,60,20,15,200,60,149,248,204,60,19,241,209,60,137,248,214,60,245,14,220,60,83,52,225,60,160,104,230,60,215,171,235,60,246,253,240,60,249,94,246,60,220,206,251,60,205,166,0,61,153,109,3,61,207,59,6,61,109,17,9,61,114,238,11,61,220,210,14,61,167,190,17,61,211,177,20,61,94,172,23,61,68,174,26,61,133,183,29,61,30,200,32,61,12,224,35,61,78,255,38,61,225,37,42,61,196,83,45,61,243,136,48,61,109,197,51,61,47,9,55,61,55,84,58,61,130,166,61,61,15,0,65,61,218,96,68,61,226,200,71,61,35,56,75,61,156,174,78,61,73,44,82,61,40,177,85,61,55,61,89,61,115,208,92,61,217,106,96,61,103,12,100,61,25,181,103,61,238,100,107,61,227,27,111,61,244,217,114,61,30,159,118,61,96,107,122,61,182,62,126,61,143,12,129,61,73,253,130,61,138,241,132,61,79,233,134,61,150,228,136,61,94,227,138,61,167,229,140,61,109,235,142,61,175,244,144,61,109,1,147,61,164,17,149,61,83,37,151,61,120,60,153,61,17,87,155,61,30,117,157,61,155,150,159,61,136,187,161,61,226,227,163,61,169,15,166,61,218,62,168,61,116,113,170,61,116,167,172,61,218,224,174,61,162,29,177,61,205,93,179,61,87,161,181,61,62,232,183,61,130,50,186,61,32,128,188,61,22,209,190,61,98,37,193,61,2,125,195,61,245,215,197,61,57,54,200,61,203,151,202,61,169,252,204,61,211,100,207,61,68,208,209,61,252,62,212,61,249,176,214,61,56,38,217,61,184,158,219,61,117,26,222,61,111,153,224,61,163,27,227,61,14,161,229,61,175,41,232,61,132,181,234,61,138,68,237,61,191,214,239,61,33,108,242,61,174,4,245,61,99,160,247,61,62,63,250,61,61,225,252,61,93,134,255,61,78,23,1,62,252,108,2,62,56,196,3,62,255,28,5,62,81,119,6,62,45,211,7,62,145,48,9,62,125,143,10,62,238,239,11,62,228,81,13,62,94,181,14,62,89,26,16,62,214,128,17,62,210,232,18,62,77,82,20,62,69,189,21,62,184,41,23,62,166,151,24,62,13,7,26,62,236,119,27,62,65,234,28,62,11,94,30,62,73,211,31,62,250,73,33,62,28,194,34,62,173,59,36,62,172,182,37,62,24,51,39,62,240,176,40,62,50,48,42,62,220,176,43,62,238,50,45,62,101,182,46,62,64,59,48,62,126,193,49,62,30,73,51,62,29,210,52,62,123,92,54,62,54,232,55,62,76,117,57,62,187,3,59,62,131,147,60,62,162,36,62,62,22,183,63,62,222,74,65,62,248,223,66,62,98,118,68,62,28,14,70,62,35,167,71,62,117,65,73,62,18,221,74,62,247,121,76,62,35,24,78,62,149,183,79,62,74,88,81,62,66,250,82,62,121,157,84,62,240,65,86,62,163,231,87,62,146,142,89,62,186,54,91,62,26,224,92,62,177,138,94,62,124,54,96,62,122,227,97,62,169,145,99,62,7,65,101,62,147,241,102,62,75,163,104,62,44,86,106,62,54,10,108,62,102,191,109,62,187,117,111,62,51,45,113,62,204,229,114,62,132,159,116,62,90,90,118,62,75,22,120,62,85,211,121,62,120,145,123,62,176,80,125,62,253,16,127,62,46,105,128,62,101,74,129,62,36,44,130,62,105,14,131,62,52,241,131,62,130,212,132,62,84,184,133,62,169,156,134,62,127,129,135,62,213,102,136,62,171,76,137,62,255,50,138,62,209,25,139,62,32,1,140,62,233,232,140,62,46,209,141,62,236,185,142,62,34,163,143,62,208,140,144,62,244,118,145,62,142,97,146,62,156,76,147,62,29,56,148,62,17,36,149,62,118,16,150,62,76,253,150,62,144,234,151,62,67,216,152,62,99,198,153,62,239,180,154,62,230,163,155,62,71,147,156,62,17,131,157,62,67,115,158,62,219,99,159,62,218,84,160,62,60,70,161,62,3,56,162,62,43,42,163,62,181,28,164,62,160,15,165,62,233,2,166,62,145,246,166,62,149,234,167,62,245,222,168,62,176,211,169,62,197,200,170,62,50,190,171,62,246,179,172,62,17,170,173,62,129,160,174,62,69,151,175,62,91,142,176,62,196,133,177,62,125,125,178,62,133,117,179,62,220,109,180,62,128,102,181,62,112,95,182,62,171,88,183,62,47,82,184,62,252,75,185,62,17,70,186,62,108,64,187,62,11,59,188,62,239,53,189,62,22,49,190,62,126,44,191,62,38,40,192,62,13,36,193,62,51,32,194,62,150,28,195,62,52,25,196,62,12,22,197,62,30,19,198,62,104,16,199,62,233,13,200,62,159,11,201,62,138,9,202,62,169,7,203,62,249,5,204,62,123,4,205,62,44,3,206,62,11,2,207,62,24,1,208,62,81,0,209,62,181,255,209,62,66,255,210,62,248,254,211,62,213,254,212,62,216,254,213,62,255,254,214,62,75,255,215,62,184,255,216,62,71,0,218,62,245,0,219,62,195,1,220,62,173,2,221,62,180,3,222,62,214,4,223,62,17,6,224,62,101,7,225,62,208,8,226,62,81,10,227,62,231,11,228,62,144,13,229,62,76,15,230,62,25,17,231,62,245,18,232,62,224,20,233,62,217,22,234,62,221,24,235,62,236,26,236,62,5,29,237,62,39,31,238,62,79,33,239,62,125,35,240,62,176,37,241,62,230,39,242,62,31,42,243,62,88,44,244,62,145,46,245,62,200,48,246,62,253,50,247,62,45,53,248,62,88,55,249,62,124,57,250,62,153,59,251,62,172,61,252,62,181,63,253,62,179,65,254,62,163,67,255,62,195,34,0,63,173,163,0,63,142,36,1,63,102,165,1,63,53,38,2,63,250,166,2,63,180,39,3,63,99,168,3,63,5,41,4,63,155,169,4,63,36,42,5,63,159,170,5,63,12,43,6,63,105,171,6,63,183,43,7,63,244,171,7,63,32,44,8,63,59,172,8,63,68,44,9,63,58,172,9,63,28,44,10,63,235,171,10,63,164,43,11,63,73,171,11,63,216,42,12,63,80,170,12,63,177,41,13,63,251,168,13,63,44,40,14,63,69,167,14,63,68,38,15,63,41,165,15,63,243,35,16,63,162,162,16,63,53,33,17,63,172,159,17,63,5,30,18,63,65,156,18,63,95,26,19,63,94,152,19,63,61,22,20,63,252,147,20,63,155,17,21,63,24,143,21,63,116,12,22,63,173,137,22,63,195,6,23,63,182,131,23,63,133,0,24,63,46,125,24,63,179,249,24,63,18,118,25,63,74,242,25,63,91,110,26,63,69,234,26,63,6,102,27,63,159,225,27,63,14,93,28,63,84,216,28,63,111,83,29,63,95,206,29,63,36,73,30,63,188,195,30,63,40,62,31,63,102,184,31,63,119,50,32,63,90,172,32,63,14,38,33,63,146,159,33,63,230,24,34,63,10,146,34,63,253,10,35,63,190,131,35,63,77,252,35,63,169,116,36,63,211,236,36,63,200,100,37,63,138,220,37,63,22,84,38,63,110,203,38,63,143,66,39,63,122,185,39,63,47,48,40,63,172,166,40,63,241,28,41,63,254,146,41,63,210,8,42,63,108,126,42,63,205,243,42,63,243,104,43,63,223,221,43,63,143,82,44,63,3,199,44,63,59,59,45,63,54,175,45,63,244,34,46,63,116,150,46,63,182,9,47,63,185,124,47,63,125,239,47,63,1,98,48,63,69,212,48,63,72,70,49,63,10,184,49,63,139,41,50,63,202,154,50,63,198,11,51,63,127,124,51,63,246,236,51,63,40,93,52,63,22,205,52,63,191,60,53,63,36,172,53,63,66,27,54,63,27,138,54,63,174,248,54,63,249,102,55,63,254,212,55,63,187,66,56,63,47,176,56,63,91,29,57,63,63,138,57,63,217,246,57,63,41,99,58,63,48,207,58,63,236,58,59,63,93,166,59,63,130,17,60,63,93,124,60,63,235,230,60,63,44,81,61,63,33,187,61,63,201,36,62,63,35,142,62,63,48,247,62,63,238,95,63,63,94,200,63,63,126,48,64,63,80,152,64,63,209,255,64,63,3,103,65,63,228,205,65,63,117,52,66,63,181,154,66,63,163,0,67,63,64,102,67,63,139,203,67,63,131,48,68,63,41,149,68,63,124,249,68,63,123,93,69,63,39,193,69,63,127,36,70,63,132,135,70,63,51,234,70,63,142,76,71,63,148,174,71,63,68,16,72,63,159,113,72,63,164,210,72,63,83,51,73,63,172,147,73,63,174,243,73,63,89,83,74,63,173,178,74,63,169,17,75,63,77,112,75,63,154,206,75,63,143,44,76,63,43,138,76,63,110,231,76,63,89,68,77,63,234,160,77,63,34,253,77,63,0,89,78,63,133,180,78,63,176,15,79,63,128,106,79,63,246,196,79,63,18,31,80,63,210,120,80,63,56,210,80,63,66,43,81,63,242,131,81,63,69,220,81,63,61,52,82,63,217,139,82,63,24,227,82,63,252,57,83,63,131,144,83,63,174,230,83,63,123,60,84,63,236,145,84,63,0,231,84,63,183,59,85,63,16,144,85,63,12,228,85,63,170,55,86,63,235,138,86,63,206,221,86,63,83,48,87,63,121,130,87,63,66,212,87,63,172,37,88,63,184,118,88,63,101,199,88,63,180,23,89,63,164,103,89,63,53,183,89,63,104,6,90,63,59,85,90,63,175,163,90,63,197,241,90,63,123,63,91,63,210,140,91,63,201,217,91,63,97,38,92,63,154,114,92,63,115,190,92,63,237,9,93,63,7,85,93,63,194,159,93,63,29,234,93,63,24,52,94,63,179,125,94,63,239,198,94,63,203,15,95,63,72,88,95,63,100,160,95,63,33,232,95,63,126,47,96,63,123,118,96,63,24,189,96,63,85,3,97,63,51,73,97,63,177,142,97,63,207,211,97,63,141,24,98,63,236,92,98,63,235,160,98,63,138,228,98,63,202,39,99,63,170,106,99,63,42,173,99,63,75,239,99,63,13,49,100,63,111,114,100,63,114,179,100,63,21,244,100,63,90,52,101,63,63,116,101,63,197,179,101,63,236,242,101,63,180,49,102,63,29,112,102,63,39,174,102,63,211,235,102,63,32,41,103,63,15,102,103,63,159,162,103,63,209,222,103,63,164,26,104,63,26,86,104,63,49,145,104,63,235,203,104,63,71,6,105,63,69,64,105,63,230,121,105,63,42,179,105,63,16,236,105,63,153,36,106,63,197,92,106,63,148,148,106,63,7,204,106,63,29,3,107,63,214,57,107,63,52,112,107,63,53,166,107,63,218,219,107,63,36,17,108,63,18,70,108,63,164,122,108,63,220,174,108,63,184,226,108,63,57,22,109,63,96,73,109,63,44,124,109,63,157,174,109,63,181,224,109,63,115,18,110,63,214,67,110,63,225,116,110,63,146,165,110,63,233,213,110,63,232,5,111,63,142,53,111,63,219,100,111,63,209,147,111,63,110,194,111,63,179,240,111,63,160,30,112,63,54,76,112,63,117,121,112,63,93,166,112,63,239,210,112,63,41,255,112,63,14,43,113,63,156,86,113,63,213,129,113,63,184,172,113,63,70,215,113,63,127,1,114,63,99,43,114,63,243,84,114,63,46,126,114,63,21,167,114,63,169,207,114,63,233,247,114,63,214,31,115,63,113,71,115,63,184,110,115,63,173,149,115,63,80,188,115,63,162,226,115,63,161,8,116,63,80,46,116,63,174,83,116,63,187,120,116,63,119,157,116,63,228,193,116,63,1,230,116,63,206,9,117,63,76,45,117,63,123,80,117,63,92,115,117,63,238,149,117,63,51,184,117,63,42,218,117,63,211,251,117,63,48,29,118,63,64,62,118,63,3,95,118,63,122,127,118,63,166,159,118,63,134,191,118,63,27,223,118,63,101,254,118,63,101,29,119,63,27,60,119,63,135,90,119,63,169,120,119,63,131,150,119,63,19,180,119,63,91,209,119,63,91,238,119,63,20,11,120,63,132,39,120,63,174,67,120,63,145,95,120,63,46,123,120,63,132,150,120,63,149,177,120,63,96,204,120,63,231,230,120,63,41,1,121,63,38,27,121,63,223,52,121,63,85,78,121,63,136,103,121,63,120,128,121,63,37,153,121,63,144,177,121,63,185,201,121,63,161,225,121,63,72,249,121,63,174,16,122,63,212,39,122,63,185,62,122,63,96,85,122,63,198,107,122,63,238,129,122,63,216,151,122,63,131,173,122,63,241,194,122,63,33,216,122,63,20,237,122,63,202,1,123,63,68,22,123,63,130,42,123,63,133,62,123,63,77,82,123,63,217,101,123,63,43,121,123,63,68,140,123,63,34,159,123,63,200,177,123,63,52,196,123,63,104,214,123,63,99,232,123,63,39,250,123,63,180,11,124,63,9,29,124,63,40,46,124,63,17,63,124,63,196,79,124,63,65,96,124,63,137,112,124,63,156,128,124,63,124,144,124,63,39,160,124,63,158,175,124,63,226,190,124,63,244,205,124,63,211,220,124,63,128,235,124,63,251,249,124,63,69,8,125,63,94,22,125,63,71,36,125,63,255,49,125,63,136,63,125,63,225,76,125,63,11,90,125,63,7,103,125,63,212,115,125,63,115,128,125,63,229,140,125,63,42,153,125,63,66,165,125,63,46,177,125,63,238,188,125,63,130,200,125,63,235,211,125,63,41,223,125,63,61,234,125,63,38,245,125,63,230,255,125,63,124,10,126,63,234,20,126,63,47,31,126,63,75,41,126,63,64,51,126,63,13,61,126,63,180,70,126,63,51,80,126,63,140,89,126,63,191,98,126,63,205,107,126,63,181,116,126,63,120,125,126,63,23,134,126,63,146,142,126,63,233,150,126,63,28,159,126,63,44,167,126,63,26,175,126,63,229,182,126,63,142,190,126,63,22,198,126,63,124,205,126,63,194,212,126,63,231,219,126,63,235,226,126,63,208,233,126,63,149,240,126,63,59,247,126,63,195,253,126,63,44,4,127,63,118,10,127,63,163,16,127,63,179,22,127,63,165,28,127,63,123,34,127,63,52,40,127,63,210,45,127,63,83,51,127,63,186,56,127,63,5,62,127,63,53,67,127,63,75,72,127,63,72,77,127,63,42,82,127,63,243,86,127,63,163,91,127,63,58,96,127,63,185,100,127,63,32,105,127,63,111,109,127,63,166,113,127,63,199,117,127,63,208,121,127,63,196,125,127,63,161,129,127,63,104,133,127,63,25,137,127,63,182,140,127,63,61,144,127,63,176,147,127,63,14,151,127,63,89,154,127,63,143,157,127,63,179,160,127,63,195,163,127,63,192,166,127,63,171,169,127,63,132,172,127,63,74,175,127,63,255,177,127,63,163,180,127,63,53,183,127,63,183,185,127,63,40,188,127,63,137,190,127,63,217,192,127,63,26,195,127,63,76,197,127,63,111,199,127,63,130,201,127,63,135,203,127,63,126,205,127,63,102,207,127,63,65,209,127,63,14,211,127,63,205,212,127,63,128,214,127,63,38,216,127,63,191,217,127,63,76,219,127,63,204,220,127,63,65,222,127,63,170,223,127,63,8,225,127,63,91,226,127,63,163,227,127,63,224,228,127,63,19,230,127,63,59,231,127,63,90,232,127,63,110,233,127,63,122,234,127,63,124,235,127,63,116,236,127,63,100,237,127,63,75,238,127,63,42,239,127,63,1,240,127,63,207,240,127,63,149,241,127,63,84,242,127,63,12,243,127,63,188,243,127,63,101,244,127,63,7,245,127,63,162,245,127,63,55,246,127,63,198,246,127,63,78,247,127,63,209,247,127,63,77,248,127,63,196,248,127,63,54,249,127,63,162,249,127,63,9,250,127,63,108,250,127,63,201,250,127,63,34,251,127,63,118,251,127,63,198,251,127,63,18,252,127,63,89,252,127,63,157,252,127,63,221,252,127,63,26,253,127,63,83,253,127,63,136,253,127,63,187,253,127,63,234,253,127,63,22,254,127,63,64,254,127,63,103,254,127,63,139,254,127,63,173,254,127,63,204,254,127,63,234,254,127,63,5,255,127,63,30,255,127,63,53,255,127,63,74,255,127,63,94,255,127,63,112,255,127,63,128,255,127,63,143,255,127,63,157,255,127,63,169,255,127,63,180,255,127,63,191,255,127,63,200,255,127,63,208,255,127,63,215,255,127,63,221,255,127,63,227,255,127,63,232,255,127,63,236,255,127,63,239,255,127,63,243,255,127,63,245,255,127,63,248,255,127,63,249,255,127,63,251,255,127,63,252,255,127,63,253,255,127,63,254,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,204,8,120,52,171,134,11,54,79,202,193,54,190,233,61,55,238,247,156,55,192,123,234,55,43,192,35,56,161,2,90,56,189,2,140,56,76,228,174,56,227,165,213,56,199,35,0,57,168,100,23,57,134,149,48,57,104,182,75,57,64,199,104,57,7,228,131,57,105,92,148,57,191,204,165,57,6,53,184,57,65,149,203,57,105,237,223,57,120,61,245,57,184,194,5,58,166,98,17,58,134,126,29,58,81,22,42,58,9,42,55,58,172,185,68,58,54,197,82,58,165,76,97,58,250,79,112,58,47,207,127,58,34,229,135,58,154,32,144,58,255,153,152,58,80,81,161,58,139,70,170,58,174,121,179,58,186,234,188,58,171,153,198,58,129,134,208,58,58,177,218,58,212,25,229,58,79,192,239,58,167,164,250,58,109,227,2,59,117,147,8,59,105,98,14,59,73,80,20,59,19,93,26,59,199,136,32,59,100,211,38,59,232,60,45,59,83,197,51,59,164,108,58,59,218,50,65,59,243,23,72,59,239,27,79,59,204,62,86,59,138,128,93,59,38,225,100,59,161,96,108,59,249,254,115,59,45,188,123,59,29,204,129,59,145,201,133,59,113,214,137,59,188,242,141,59,113,30,146,59,145,89,150,59,26,164,154,59,12,254,158,59,102,103,163,59,40,224,167,59,80,104,172,59,222,255,176,59,209,166,181,59,40,93,186,59,228,34,191,59,2,248,195,59,131,220,200,59,101,208,205,59,168,211,210,59,74,230,215,59,76,8,221,59,172,57,226,59,105,122,231,59,131,202,236,59,249,41,242,59,202,152,247,59,245,22,253,59,60,82,1,60,170,32,4,60,196,246,6,60,137,212,9,60,249,185,12,60,19,167,15,60,216,155,18,60,69,152,21,60,92,156,24,60,26,168,27,60,129,187,30,60,143,214,33,60,69,249,36,60,160,35,40,60,162,85,43,60,73,143,46,60,149,208,49,60,133,25,53,60,26,106,56,60,81,194,59,60,44,34,63,60,168,137,66,60,199,248,69,60,134,111,73,60,230,237,76,60,231,115,80,60,134,1,84,60,197,150,87,60,162,51,91,60,28,216,94,60,52,132,98,60,232,55,102,60,56,243,105,60,35,182,109,60,170,128,113,60,202,82,117,60,131,44,121,60,214,13,125,60,96,123,128,60,161,115,130,60,174,111,132,60,134,111,134,60,40,115,136,60,149,122,138,60,205,133,140,60,206,148,142,60,152,167,144,60,44,190,146,60,136,216,148,60,173,246,150,60,154,24,153,60,78,62,155,60,202,103,157,60,13,149,159,60,23,198,161,60,231,250,163,60,125,51,166,60,217,111,168,60,249,175,170,60,223,243,172,60,137,59,175,60,247,134,177,60,40,214,179,60,29,41,182,60,213,127,184,60,80,218,186,60,140,56,189,60,138,154,191,60,74,0,194,60,202,105,196,60,11,215,198,60,12,72,201,60,205,188,203,60,77,53,206,60,140,177,208,60,137,49,211,60,69,181,213,60,189,60,216,60,243,199,218,60,230,86,221,60,149,233,223,60,0,128,226,60,39,26,229,60,8,184,231,60,164,89,234,60,250,254,236,60,9,168,239,60,210,84,242,60,83,5,245,60,141,185,247,60,126,113,250,60,39,45,253,60,134,236,255,60,206,87,1,61,52,187,2,61,117,32,4,61,144,135,5,61,133,240,6,61,84,91,8,61,253,199,9,61,128,54,11,61,219,166,12,61,16,25,14,61,29,141,15,61,3,3,17,61,193,122,18,61,87,244,19,61,197,111,21,61,10,237,22,61,39,108,24,61,26,237,25,61,228,111,27,61,132,244,28,61,251,122,30,61,71,3,32,61,105,141,33,61,96,25,35,61,45,167,36,61,206,54,38,61,67,200,39,61,141,91,41,61,171,240,42,61,156,135,44,61,96,32,46,61,248,186,47,61,99,87,49,61,160,245,50,61,175,149,52,61,144,55,54,61,67,219,55,61,199,128,57,61,28,40,59,61,65,209,60,61,56,124,62,61,254,40,64,61,148,215,65,61,250,135,67,61,47,58,69,61,51,238,70,61,5,164,72,61,166,91,74,61,20,21,76,61,80,208,77,61,90,141,79,61,49,76,81,61,212,12,83,61,68,207,84,61,128,147,86,61,135,89,88,61,90,33,90,61,248,234,91,61,97,182,93,61,148,131,95,61,145,82,97,61,88,35,99,61,232,245,100,61,65,202,102,61,100,160,104,61,78,120,106,61,1,82,108,61,123,45,110,61,188,10,112,61,197,233,113,61,148,202,115,61,41,173,117,61,133,145,119,61,166,119,121,61,140,95,123,61,55,73,125,61,166,52,127,61,237,144,128,61,105,136,129,61,198,128,130,61,5,122,131,61,37,116,132,61,39,111,133,61,9,107,134,61,204,103,135,61,112,101,136,61,244,99,137,61,88,99,138,61,157,99,139,61,193,100,140,61,196,102,141,61,167,105,142,61,106,109,143,61,11,114,144,61,139,119,145,61,234,125,146,61,40,133,147,61,67,141,148,61,61,150,149,61,20,160,150,61,201,170,151,61,92,182,152,61,203,194,153,61,24,208,154,61,66,222,155,61,72,237,156,61,42,253,157,61,233,13,159,61,132,31,160,61,250,49,161,61,76,69,162,61,122,89,163,61,130,110,164,61,101,132,165,61,35,155,166,61,188,178,167,61,47,203,168,61,124,228,169,61,162,254,170,61,163,25,172,61,124,53,173,61,47,82,174,61,187,111,175,61,31,142,176,61,92,173,177,61,113,205,178,61,94,238,179,61,35,16,181,61,192,50,182,61,52,86,183,61,127,122,184,61,160,159,185,61,153,197,186,61,104,236,187,61,13,20,189,61,136,60,190,61,217,101,191,61,255,143,192,61,250,186,193,61,202,230,194,61,111,19,196,61,233,64,197,61,55,111,198,61,89,158,199,61,78,206,200,61,23,255,201,61,179,48,203,61,35,99,204,61,101,150,205,61,121,202,206,61,96,255,207,61,25,53,209,61,164,107,210,61,0,163,211,61,45,219,212,61,44,20,214,61,251,77,215,61,154,136,216,61,10,196,217,61,74,0,219,61,89,61,220,61,56,123,221,61,230,185,222,61,99,249,223,61,174,57,225,61,200,122,226,61,176,188,227,61,102,255,228,61,233,66,230,61,58,135,231,61,88,204,232,61,66,18,234,61,249,88,235,61,124,160,236,61,203,232,237,61,230,49,239,61,204,123,240,61,125,198,241,61,249,17,243,61,63,94,244,61,79,171,245,61,42,249,246,61,206,71,248,61,60,151,249,61,114,231,250,61,114,56,252,61,58,138,253,61,202,220,254,61,17,24,0,62,33,194,0,62,149,108,1,62,108,23,2,62,166,194,2,62,68,110,3,62,69,26,4,62,168,198,4,62,111,115,5,62,152,32,6,62,35,206,6,62,17,124,7,62,98,42,8,62,20,217,8,62,40,136,9,62,157,55,10,62,117,231,10,62,173,151,11,62,71,72,12,62,66,249,12,62,158,170,13,62,91,92,14,62,120,14,15,62,246,192,15,62,213,115,16,62,19,39,17,62,177,218,17,62,175,142,18,62,13,67,19,62,202,247,19,62,231,172,20,62,99,98,21,62,62,24,22,62,120,206,22,62,16,133,23,62,7,60,24,62,92,243,24,62,16,171,25,62,33,99,26,62,145,27,27,62,94,212,27,62,137,141,28,62,17,71,29,62,246,0,30,62,56,187,30,62,215,117,31,62,211,48,32,62,43,236,32,62,224,167,33,62,241,99,34,62,93,32,35,62,38,221,35,62,74,154,36,62,202,87,37,62,165,21,38,62,219,211,38,62,108,146,39,62,88,81,40,62,159,16,41,62,64,208,41,62,59,144,42,62,144,80,43,62,63,17,44,62,72,210,44,62,170,147,45,62,102,85,46,62,122,23,47,62,232,217,47,62,175,156,48,62,206,95,49,62,69,35,50,62,21,231,50,62,61,171,51,62,189,111,52,62,148,52,53,62,195,249,53,62,73,191,54,62,38,133,55,62,91,75,56,62,230,17,57,62,199,216,57,62,255,159,58,62,141,103,59,62,113,47,60,62,171,247,60,62,59,192,61,62,31,137,62,62,89,82,63,62,232,27,64,62,204,229,64,62,5,176,65,62,146,122,66,62,115,69,67,62,168,16,68,62,49,220,68,62,14,168,69,62,62,116,70,62,194,64,71,62,152,13,72,62,193,218,72,62,61,168,73,62,12,118,74,62,44,68,75,62,159,18,76,62,100,225,76,62,122,176,77,62,225,127,78,62,154,79,79,62,164,31,80,62,255,239,80,62,170,192,81,62,166,145,82,62,242,98,83,62,141,52,84,62,121,6,85,62,180,216,85,62,63,171,86,62,25,126,87,62,65,81,88,62,185,36,89,62,126,248,89,62,147,204,90,62,245,160,91,62,165,117,92,62,163,74,93,62,238,31,94,62,135,245,94,62,109,203,95,62,159,161,96,62,30,120,97,62,233,78,98,62,1,38,99,62,100,253,99,62,19,213,100,62,14,173,101,62,84,133,102,62,229,93,103,62,193,54,104,62,231,15,105,62,88,233,105,62,19,195,106,62,24,157,107,62,103,119,108,62,255,81,109,62,224,44,110,62,11,8,111,62,126,227,111,62,58,191,112,62,62,155,113,62,139,119,114,62,31,84,115,62,251,48,116,62,31,14,117,62,138,235,117,62,59,201,118,62,52,167,119,62,115,133,120,62,248,99,121,62,196,66,122,62,213,33,123,62,44,1,124,62,200,224,124,62,170,192,125,62,208,160,126,62,59,129,127,62,245,48,128,62,111,161,128,62,11,18,129,62,201,130,129,62,168,243,129,62,169,100,130,62,204,213,130,62,15,71,131,62,117,184,131,62,251,41,132,62,162,155,132,62,107,13,133,62,84,127,133,62,93,241,133,62,136,99,134,62,210,213,134,62,61,72,135,62,200,186,135,62,116,45,136,62,63,160,136,62,42,19,137,62,52,134,137,62,94,249,137,62,168,108,138,62,17,224,138,62,153,83,139,62,64,199,139,62,6,59,140,62,235,174,140,62,239,34,141,62,17,151,141,62,82,11,142,62,177,127,142,62,46,244,142,62,201,104,143,62,130,221,143,62,89,82,144,62,78,199,144,62,96,60,145,62,143,177,145,62,220,38,146,62,70,156,146,62,205,17,147,62,113,135,147,62,50,253,147,62,16,115,148,62,9,233,148,62,32,95,149,62,82,213,149,62,161,75,150,62,12,194,150,62,146,56,151,62,53,175,151,62,243,37,152,62,204,156,152,62,193,19,153,62,209,138,153,62,252,1,154,62,66,121,154,62,163,240,154,62,31,104,155,62,181,223,155,62,101,87,156,62,48,207,156,62,21,71,157,62,20,191,157,62,45,55,158,62,96,175,158,62,172,39,159,62,18,160,159,62,145,24,160,62,41,145,160,62,218,9,161,62,165,130,161,62,136,251,161,62,132,116,162,62,152,237,162,62,197,102,163,62,10,224,163,62,103,89,164,62,220,210,164,62,105,76,165,62,14,198,165,62,202,63,166,62,158,185,166,62,137,51,167,62,139,173,167,62,164,39,168,62,213,161,168,62,27,28,169,62],"i8",O3,_.GLOBAL_BASE+520696),C3([121,150,169,62,237,16,170,62,119,139,170,62,24,6,171,62,206,128,171,62,155,251,171,62,125,118,172,62,117,241,172,62,130,108,173,62,165,231,173,62,221,98,174,62,42,222,174,62,140,89,175,62,2,213,175,62,142,80,176,62,46,204,176,62,226,71,177,62,170,195,177,62,135,63,178,62,119,187,178,62,124,55,179,62,148,179,179,62,191,47,180,62,254,171,180,62,80,40,181,62,181,164,181,62,45,33,182,62,184,157,182,62,85,26,183,62,5,151,183,62,199,19,184,62,156,144,184,62,130,13,185,62,123,138,185,62,133,7,186,62,161,132,186,62,206,1,187,62,13,127,187,62,93,252,187,62,190,121,188,62,48,247,188,62,178,116,189,62,70,242,189,62,233,111,190,62,157,237,190,62,98,107,191,62,54,233,191,62,26,103,192,62,14,229,192,62,17,99,193,62,36,225,193,62,70,95,194,62,119,221,194,62,184,91,195,62,7,218,195,62,100,88,196,62,209,214,196,62,75,85,197,62,212,211,197,62,107,82,198,62,16,209,198,62,195,79,199,62,132,206,199,62,82,77,200,62,45,204,200,62,21,75,201,62,11,202,201,62,13,73,202,62,29,200,202,62,56,71,203,62,97,198,203,62,149,69,204,62,214,196,204,62,34,68,205,62,123,195,205,62,223,66,206,62,79,194,206,62,202,65,207,62,81,193,207,62,226,64,208,62,127,192,208,62,38,64,209,62,216,191,209,62,148,63,210,62,91,191,210,62,44,63,211,62,7,191,211,62,235,62,212,62,218,190,212,62,210,62,213,62,211,190,213,62,222,62,214,62,242,190,214,62,15,63,215,62,53,191,215,62,99,63,216,62,154,191,216,62,217,63,217,62,32,192,217,62,112,64,218,62,199,192,218,62,38,65,219,62,140,193,219,62,250,65,220,62,112,194,220,62,236,66,221,62,112,195,221,62,250,67,222,62,139,196,222,62,34,69,223,62,192,197,223,62,100,70,224,62,14,199,224,62,189,71,225,62,115,200,225,62,46,73,226,62,239,201,226,62,181,74,227,62,127,203,227,62,79,76,228,62,36,205,228,62,253,77,229,62,219,206,229,62,190,79,230,62,164,208,230,62,142,81,231,62,125,210,231,62,111,83,232,62,100,212,232,62,93,85,233,62,89,214,233,62,89,87,234,62,91,216,234,62,96,89,235,62,104,218,235,62,114,91,236,62,126,220,236,62,141,93,237,62,158,222,237,62,176,95,238,62,196,224,238,62,218,97,239,62,241,226,239,62,10,100,240,62,35,229,240,62,62,102,241,62,89,231,241,62,116,104,242,62,145,233,242,62,173,106,243,62,202,235,243,62,230,108,244,62,3,238,244,62,31,111,245,62,59,240,245,62,86,113,246,62,112,242,246,62,137,115,247,62,161,244,247,62,184,117,248,62,206,246,248,62,226,119,249,62,244,248,249,62,4,122,250,62,18,251,250,62,30,124,251,62,40,253,251,62,47,126,252,62,52,255,252,62,54,128,253,62,52,1,254,62,48,130,254,62,40,3,255,62,29,132,255,62,135,2,0,63,254,66,0,63,115,131,0,63,230,195,0,63,86,4,1,63,197,68,1,63,49,133,1,63,155,197,1,63,3,6,2,63,103,70,2,63,202,134,2,63,42,199,2,63,135,7,3,63,225,71,3,63,56,136,3,63,141,200,3,63,222,8,4,63,44,73,4,63,119,137,4,63,191,201,4,63,3,10,5,63,68,74,5,63,130,138,5,63,188,202,5,63,242,10,6,63,36,75,6,63,83,139,6,63,126,203,6,63,165,11,7,63,199,75,7,63,230,139,7,63,1,204,7,63,23,12,8,63,41,76,8,63,54,140,8,63,63,204,8,63,67,12,9,63,67,76,9,63,62,140,9,63,52,204,9,63,37,12,10,63,18,76,10,63,249,139,10,63,219,203,10,63,184,11,11,63,144,75,11,63,98,139,11,63,47,203,11,63,246,10,12,63,184,74,12,63,116,138,12,63,43,202,12,63,219,9,13,63,134,73,13,63,43,137,13,63,202,200,13,63,98,8,14,63,245,71,14,63,129,135,14,63,7,199,14,63,135,6,15,63,0,70,15,63,114,133,15,63,222,196,15,63,67,4,16,63,161,67,16,63,249,130,16,63,73,194,16,63,147,1,17,63,213,64,17,63,17,128,17,63,69,191,17,63,114,254,17,63,151,61,18,63,181,124,18,63,203,187,18,63,218,250,18,63,225,57,19,63,225,120,19,63,216,183,19,63,200,246,19,63,176,53,20,63,143,116,20,63,103,179,20,63,54,242,20,63,253,48,21,63,188,111,21,63,114,174,21,63,32,237,21,63,197,43,22,63,98,106,22,63,246,168,22,63,129,231,22,63,3,38,23,63,125,100,23,63,237,162,23,63,84,225,23,63,178,31,24,63,7,94,24,63,83,156,24,63,149,218,24,63,206,24,25,63,253,86,25,63,35,149,25,63,63,211,25,63,82,17,26,63,90,79,26,63,89,141,26,63,78,203,26,63,57,9,27,63,25,71,27,63,240,132,27,63,188,194,27,63,126,0,28,63,54,62,28,63,227,123,28,63,134,185,28,63,30,247,28,63,172,52,29,63,47,114,29,63,167,175,29,63,20,237,29,63,118,42,30,63,206,103,30,63,26,165,30,63,91,226,30,63,145,31,31,63,188,92,31,63,219,153,31,63,239,214,31,63,247,19,32,63,244,80,32,63,230,141,32,63,203,202,32,63,165,7,33,63,115,68,33,63,53,129,33,63,235,189,33,63,150,250,33,63,52,55,34,63,198,115,34,63,75,176,34,63,197,236,34,63,50,41,35,63,146,101,35,63,230,161,35,63,46,222,35,63,105,26,36,63,151,86,36,63,185,146,36,63,205,206,36,63,213,10,37,63,208,70,37,63,190,130,37,63,158,190,37,63,114,250,37,63,56,54,38,63,241,113,38,63,157,173,38,63,59,233,38,63,204,36,39,63,79,96,39,63,197,155,39,63,45,215,39,63,135,18,40,63,211,77,40,63,18,137,40,63,66,196,40,63,101,255,40,63,121,58,41,63,128,117,41,63,120,176,41,63,98,235,41,63,62,38,42,63,11,97,42,63,202,155,42,63,122,214,42,63,28,17,43,63,175,75,43,63,52,134,43,63,170,192,43,63,16,251,43,63,105,53,44,63,178,111,44,63,236,169,44,63,23,228,44,63,51,30,45,63,64,88,45,63,61,146,45,63,43,204,45,63,10,6,46,63,218,63,46,63,154,121,46,63,74,179,46,63,235,236,46,63,124,38,47,63,254,95,47,63,112,153,47,63,210,210,47,63,36,12,48,63,102,69,48,63,152,126,48,63,186,183,48,63,204,240,48,63,205,41,49,63,191,98,49,63,160,155,49,63,113,212,49,63,49,13,50,63,225,69,50,63,128,126,50,63,15,183,50,63,141,239,50,63,251,39,51,63,87,96,51,63,163,152,51,63,222,208,51,63,8,9,52,63,34,65,52,63,42,121,52,63,33,177,52,63,7,233,52,63,219,32,53,63,159,88,53,63,81,144,53,63,242,199,53,63,129,255,53,63,255,54,54,63,108,110,54,63,198,165,54,63,16,221,54,63,71,20,55,63,109,75,55,63,129,130,55,63,131,185,55,63,116,240,55,63,82,39,56,63,30,94,56,63,217,148,56,63,129,203,56,63,23,2,57,63,155,56,57,63,13,111,57,63,108,165,57,63,185,219,57,63,244,17,58,63,28,72,58,63,50,126,58,63,53,180,58,63,38,234,58,63,4,32,59,63,207,85,59,63,135,139,59,63,45,193,59,63,192,246,59,63,64,44,60,63,173,97,60,63,7,151,60,63,78,204,60,63,130,1,61,63,163,54,61,63,177,107,61,63,171,160,61,63,146,213,61,63,102,10,62,63,39,63,62,63,212,115,62,63,110,168,62,63,244,220,62,63,103,17,63,63,198,69,63,63,17,122,63,63,73,174,63,63,109,226,63,63,126,22,64,63,122,74,64,63,99,126,64,63,56,178,64,63,248,229,64,63,165,25,65,63,62,77,65,63,195,128,65,63,52,180,65,63,144,231,65,63,216,26,66,63,13,78,66,63,44,129,66,63,56,180,66,63,47,231,66,63,18,26,67,63,224,76,67,63,154,127,67,63,64,178,67,63,208,228,67,63,77,23,68,63,180,73,68,63,7,124,68,63,69,174,68,63,111,224,68,63,131,18,69,63,131,68,69,63,110,118,69,63,68,168,69,63,5,218,69,63,177,11,70,63,72,61,70,63,202,110,70,63,55,160,70,63,143,209,70,63,210,2,71,63,255,51,71,63,23,101,71,63,26,150,71,63,8,199,71,63,224,247,71,63,163,40,72,63,81,89,72,63,233,137,72,63,107,186,72,63,216,234,72,63,48,27,73,63,114,75,73,63,158,123,73,63,181,171,73,63,181,219,73,63,161,11,74,63,118,59,74,63,54,107,74,63,224,154,74,63,116,202,74,63,242,249,74,63,90,41,75,63,173,88,75,63,233,135,75,63,15,183,75,63,32,230,75,63,26,21,76,63,254,67,76,63,204,114,76,63,132,161,76,63,38,208,76,63,177,254,76,63,38,45,77,63,133,91,77,63,206,137,77,63,0,184,77,63,28,230,77,63,34,20,78,63,17,66,78,63,234,111,78,63,172,157,78,63,88,203,78,63,238,248,78,63,108,38,79,63,213,83,79,63,38,129,79,63,97,174,79,63,134,219,79,63,147,8,80,63,138,53,80,63,107,98,80,63,52,143,80,63,231,187,80,63,131,232,80,63,8,21,81,63,119,65,81,63,206,109,81,63,15,154,81,63,57,198,81,63,76,242,81,63,71,30,82,63,44,74,82,63,250,117,82,63,177,161,82,63,81,205,82,63,218,248,82,63,76,36,83,63,166,79,83,63,234,122,83,63,22,166,83,63,44,209,83,63,42,252,83,63,17,39,84,63,224,81,84,63,153,124,84,63,58,167,84,63,196,209,84,63,54,252,84,63,146,38,85,63,214,80,85,63,2,123,85,63,24,165,85,63,22,207,85,63,252,248,85,63,204,34,86,63,131,76,86,63,36,118,86,63,172,159,86,63,30,201,86,63,120,242,86,63,186,27,87,63,229,68,87,63,248,109,87,63,244,150,87,63,216,191,87,63,165,232,87,63,90,17,88,63,248,57,88,63,126,98,88,63,236,138,88,63,67,179,88,63,130,219,88,63,169,3,89,63,185,43,89,63,177,83,89,63,145,123,89,63,90,163,89,63,11,203,89,63,164,242,89,63,37,26,90,63,143,65,90,63,225,104,90,63,27,144,90,63,62,183,90,63,72,222,90,63,59,5,91,63,22,44,91,63,217,82,91,63,133,121,91,63,24,160,91,63,148,198,91,63,248,236,91,63,68,19,92,63,120,57,92,63,149,95,92,63,153,133,92,63,134,171,92,63,91,209,92,63,24,247,92,63,189,28,93,63,74,66,93,63,191,103,93,63,28,141,93,63,98,178,93,63,143,215,93,63,165,252,93,63,162,33,94,63,136,70,94,63,86,107,94,63,11,144,94,63,169,180,94,63,47,217,94,63,157,253,94,63,243,33,95,63,49,70,95,63,88,106,95,63,102,142,95,63,92,178,95,63,59,214,95,63,1,250,95,63,175,29,96,63,70,65,96,63,196,100,96,63,43,136,96,63,122,171,96,63,176,206,96,63,207,241,96,63,214,20,97,63,197,55,97,63,155,90,97,63,90,125,97,63,1,160,97,63,144,194,97,63,8,229,97,63,103,7,98,63,174,41,98,63,221,75,98,63,245,109,98,63,244,143,98,63,220,177,98,63,171,211,98,63,99,245,98,63,3,23,99,63,139,56,99,63,251,89,99,63,83,123,99,63,147,156,99,63,188,189,99,63,204,222,99,63,197,255,99,63,166,32,100,63,110,65,100,63,32,98,100,63,185,130,100,63,58,163,100,63,164,195,100,63,245,227,100,63,47,4,101,63,82,36,101,63,92,68,101,63,78,100,101,63,41,132,101,63,236,163,101,63,151,195,101,63,43,227,101,63,167,2,102,63,11,34,102,63,87,65,102,63,139,96,102,63,168,127,102,63,174,158,102,63,155,189,102,63,113,220,102,63,47,251,102,63,214,25,103,63,101,56,103,63,220,86,103,63,59,117,103,63,132,147,103,63,180,177,103,63,205,207,103,63,206,237,103,63,184,11,104,63,138,41,104,63,69,71,104,63,233,100,104,63,116,130,104,63,233,159,104,63,69,189,104,63,139,218,104,63,185,247,104,63,207,20,105,63,207,49,105,63,182,78,105,63,135,107,105,63,64,136,105,63,225,164,105,63,108,193,105,63,223,221,105,63,59,250,105,63,127,22,106,63,172,50,106,63,195,78,106,63,193,106,106,63,169,134,106,63,121,162,106,63,51,190,106,63,213,217,106,63,96,245,106,63,212,16,107,63,48,44,107,63,118,71,107,63,165,98,107,63,188,125,107,63,189,152,107,63,167,179,107,63,121,206,107,63,53,233,107,63,218,3,108,63,104,30,108,63,223,56,108,63,63,83,108,63,136,109,108,63,187,135,108,63,214,161,108,63,219,187,108,63,201,213,108,63,161,239,108,63,97,9,109,63,11,35,109,63,159,60,109,63,27,86,109,63,129,111,109,63,209,136,109,63,9,162,109,63,44,187,109,63,56,212,109,63,45,237,109,63,12,6,110,63,212,30,110,63,134,55,110,63,33,80,110,63,166,104,110,63,21,129,110,63,110,153,110,63,176,177,110,63,220,201,110,63,241,225,110,63,241,249,110,63,218,17,111,63,173,41,111,63,106,65,111,63,16,89,111,63,161,112,111,63,28,136,111,63,128,159,111,63,207,182,111,63,7,206,111,63,42,229,111,63,54,252,111,63,45,19,112,63,14,42,112,63,217,64,112,63,142,87,112,63,46,110,112,63,184,132,112,63,43,155,112,63,138,177,112,63,210,199,112,63,5,222,112,63,35,244,112,63,42,10,113,63,29,32,113,63,249,53,113,63,193,75,113,63,114,97,113,63,15,119,113,63,150,140,113,63,7,162,113,63,99,183,113,63,170,204,113,63,220,225,113,63,249,246,113,63,0,12,114,63,242,32,114,63,207,53,114,63,151,74,114,63,73,95,114,63,231,115,114,63,112,136,114,63,227,156,114,63,66,177,114,63,140,197,114,63,193,217,114,63,225,237,114,63,236,1,115,63,227,21,115,63,197,41,115,63,146,61,115,63,74,81,115,63,238,100,115,63,125,120,115,63,248,139,115,63,94,159,115,63,175,178,115,63,236,197,115,63,21,217,115,63,41,236,115,63,41,255,115,63,21,18,116,63,236,36,116,63,175,55,116,63,94,74,116,63,248,92,116,63,127,111,116,63,241,129,116,63,80,148,116,63,154,166,116,63,208,184,116,63,242,202,116,63,1,221,116,63,251,238,116,63,226,0,117,63,181,18,117,63,116,36,117,63,31,54,117,63,183,71,117,63,59,89,117,63,171,106,117,63,8,124,117,63,81,141,117,63,135,158,117,63,169,175,117,63,184,192,117,63,179,209,117,63,155,226,117,63,112,243,117,63,50,4,118,63,224,20,118,63,123,37,118,63,3,54,118,63,120,70,118,63,217,86,118,63,40,103,118,63,100,119,118,63,140,135,118,63,162,151,118,63,165,167,118,63,149,183,118,63,114,199,118,63,61,215,118,63,245,230,118,63,154,246,118,63,44,6,119,63,172,21,119,63,26,37,119,63,117,52,119,63,189,67,119,63,243,82,119,63,22,98,119,63,40,113,119,63,39,128,119,63,19,143,119,63,238,157,119,63,182,172,119,63,108,187,119,63,16,202,119,63,162,216,119,63,34,231,119,63,144,245,119,63,236,3,120,63,55,18,120,63,111,32,120,63,150,46,120,63,170,60,120,63,174,74,120,63,159,88,120,63,127,102,120,63,77,116,120,63,10,130,120,63,181,143,120,63,79,157,120,63,215,170,120,63,78,184,120,63,180,197,120,63,8,211,120,63,76,224,120,63,126,237,120,63,158,250,120,63,174,7,121,63,173,20,121,63,155,33,121,63,119,46,121,63,67,59,121,63,254,71,121,63,168,84,121,63,66,97,121,63,202,109,121,63,66,122,121,63,169,134,121,63,0,147,121,63,70,159,121,63,124,171,121,63,161,183,121,63,181,195,121,63,186,207,121,63,173,219,121,63,145,231,121,63,100,243,121,63,40,255,121,63,219,10,122,63,126,22,122,63,16,34,122,63,147,45,122,63,6,57,122,63,105,68,122,63,188,79,122,63,255,90,122,63,51,102,122,63,86,113,122,63,106,124,122,63,111,135,122,63,99,146,122,63,72,157,122,63,30,168,122,63,228,178,122,63,155,189,122,63,66,200,122,63,218,210,122,63,99,221,122,63,221,231,122,63,71,242,122,63,162,252,122,63,238,6,123,63,43,17,123,63,89,27,123,63,120,37,123,63,137,47,123,63,138,57,123,63,124,67,123,63,96,77,123,63,53,87,123,63,252,96,123,63,179,106,123,63,92,116,123,63,247,125,123,63,131,135,123,63,1,145,123,63,112,154,123,63,209,163,123,63,36,173,123,63,104,182,123,63,158,191,123,63,198,200,123,63,224,209,123,63,236,218,123,63,234,227,123,63,218,236,123,63,188,245,123,63,144,254,123,63,86,7,124,63,14,16,124,63,185,24,124,63,86,33,124,63,230,41,124,63,104,50,124,63,220,58,124,63,67,67,124,63,156,75,124,63,232,83,124,63,39,92,124,63,88,100,124,63,124,108,124,63,147,116,124,63,157,124,124,63,153,132,124,63,137,140,124,63,107,148,124,63,65,156,124,63,9,164,124,63,197,171,124,63,116,179,124,63,22,187,124,63,172,194,124,63,52,202,124,63,176,209,124,63,32,217,124,63,131,224,124,63,217,231,124,63,35,239,124,63,97,246,124,63,146,253,124,63,183,4,125,63,208,11,125,63,221,18,125,63,221,25,125,63,209,32,125,63,185,39,125,63,150,46,125,63,102,53,125,63,42,60,125,63,227,66,125,63,143,73,125,63,48,80,125,63,197,86,125,63,78,93,125,63,204,99,125,63,62,106,125,63,165,112,125,63,0,119,125,63,80,125,125,63,148,131,125,63,205,137,125,63,251,143,125,63,29,150,125,63,52,156,125,63,64,162,125,63,65,168,125,63,55,174,125,63,34,180,125,63,2,186,125,63,215,191,125,63,161,197,125,63,96,203,125,63,21,209,125,63,190,214,125,63,93,220,125,63,242,225,125,63,124,231,125,63,251,236,125,63,112,242,125,63,218,247,125,63,58,253,125,63,143,2,126,63,219,7,126,63,28,13,126,63,82,18,126,63,127,23,126,63,161,28,126,63,186,33,126,63,200,38,126,63,204,43,126,63,199,48,126,63,183,53,126,63,158,58,126,63,123,63,126,63,78,68,126,63,23,73,126,63,215,77,126,63,141,82,126,63,58,87,126,63,221,91,126,63,118,96,126,63,6,101,126,63,141,105,126,63,10,110,126,63,126,114,126,63,233,118,126,63,75,123,126,63,164,127,126,63,243,131,126,63,57,136,126,63,119,140,126,63,171,144,126,63,214,148,126,63,249,152,126,63,18,157,126,63,35,161,126,63,44,165,126,63,43,169,126,63,34,173,126,63,16,177,126,63,246,180,126,63,211,184,126,63,167,188,126,63,115,192,126,63,55,196,126,63,243,199,126,63,166,203,126,63,81,207,126,63,243,210,126,63,142,214,126,63,32,218,126,63,171,221,126,63,45,225,126,63,167,228,126,63,26,232,126,63,132,235,126,63,231,238,126,63,66,242,126,63,149,245,126,63,224,248,126,63,36,252,126,63,96,255,126,63,148,2,127,63,193,5,127,63,230,8,127,63,4,12,127,63,27,15,127,63,42,18,127,63,50,21,127,63,50,24,127,63,43,27,127,63,29,30,127,63,8,33,127,63,236,35,127,63,201,38,127,63,158,41,127,63,109,44,127,63,53,47,127,63,246,49,127,63,175,52,127,63,99,55,127,63,15,58,127,63,181,60,127,63,83,63,127,63,236,65,127,63,125,68,127,63,8,71,127,63,141,73,127,63,11,76,127,63,131,78,127,63,244,80,127,63,95,83,127,63,195,85,127,63,33,88,127,63,121,90,127,63,203,92,127,63,23,95,127,63,92,97,127,63,155,99,127,63,213,101,127,63,8,104,127,63,54,106,127,63,93,108,127,63,127,110,127,63,155,112,127,63,177,114,127,63,193,116,127,63,203,118,127,63,208,120,127,63,207,122,127,63,201,124,127,63,189,126,127,63,171,128,127,63,148,130,127,63,120,132,127,63,86,134,127,63,47,136,127,63,2,138,127,63,209,139,127,63,153,141,127,63,93,143,127,63,28,145,127,63,213,146,127,63,137,148,127,63,57,150,127,63,227,151,127,63,136,153,127,63,40,155,127,63,196,156,127,63,90,158,127,63,236,159,127,63,121,161,127,63,1,163,127,63,132,164,127,63,3,166,127,63,125,167,127,63,242,168,127,63,99,170,127,63,207,171,127,63,55,173,127,63,154,174,127,63,249,175,127,63,84,177,127,63,170,178,127,63,251,179,127,63,73,181,127,63,146,182,127,63,215,183,127,63,24,185,127,63,85,186,127,63,141,187,127,63,193,188,127,63,242,189,127,63,30,191,127,63,71,192,127,63,107,193,127,63,140,194,127,63,168,195,127,63,193,196,127,63,214,197,127,63,231,198,127,63,245,199,127,63,255,200,127,63,5,202,127,63,7,203,127,63,6,204,127,63,1,205,127,63,249,205,127,63,237,206,127,63,222,207,127,63,203,208,127,63,181,209,127,63,156,210,127,63,127,211,127,63,95,212,127,63,59,213,127,63,20,214,127,63,234,214,127,63,189,215,127,63,141,216,127,63,90,217,127,63,35,218,127,63,233,218,127,63,173,219,127,63,109,220,127,63,43,221,127,63,229,221,127,63,156,222,127,63,81,223,127,63,3,224,127,63,178,224,127,63,94,225,127,63,7,226,127,63,174,226,127,63,82,227,127,63,243,227,127,63,146,228,127,63,46,229,127,63,199,229,127,63,94,230,127,63,242,230,127,63,132,231,127,63,19,232,127,63,160,232,127,63,42,233,127,63,178,233,127,63,56,234,127,63,187,234,127,63,60,235,127,63,187,235,127,63,55,236,127,63,177,236,127,63,41,237,127,63,159,237,127,63,18,238,127,63,132,238,127,63,243,238,127,63,96,239,127,63,204,239,127,63,53,240,127,63,156,240,127,63,1,241,127,63,101,241,127,63,198,241,127,63,37,242,127,63,131,242,127,63,222,242,127,63,56,243,127,63,144,243,127,63,231,243,127,63,59,244,127,63,142,244,127,63,223,244,127,63,46,245,127,63,124,245,127,63,200,245,127,63,19,246,127,63,91,246,127,63,163,246,127,63,233,246,127,63,45,247,127,63,111,247,127,63,177,247,127,63,240,247,127,63,47,248,127,63,108,248,127,63,167,248,127,63,225,248,127,63,26,249,127,63,82,249,127,63,136,249,127,63,188,249,127,63,240,249,127,63,34,250,127,63,83,250,127,63,131,250,127,63,178,250,127,63,224,250,127,63,12,251,127,63,55,251,127,63,97,251,127,63,138,251,127,63,178,251,127,63,217,251,127,63,255,251,127,63,36,252,127,63,72,252,127,63,107,252,127,63,141,252,127,63,173,252,127,63,205,252,127,63,237,252,127,63,11,253,127,63,40,253,127,63,69,253,127,63,96,253,127,63,123,253,127,63,149,253,127,63,174,253,127,63,199,253,127,63,222,253,127,63,245,253,127,63,12,254,127,63,33,254,127,63,54,254,127,63,74,254,127,63,93,254,127,63,112,254,127,63,130,254,127,63,148,254,127,63,165,254,127,63,181,254,127,63,197,254,127,63,212,254,127,63,227,254,127,63,241,254,127,63,254,254,127,63,11,255,127,63,24,255,127,63,36,255,127,63,47,255,127,63,59,255,127,63,69,255,127,63,79,255,127,63,89,255,127,63,99,255,127,63,108,255,127,63,116,255,127,63,124,255,127,63,132,255,127,63,140,255,127,63,147,255,127,63,154,255,127,63,160,255,127,63,166,255,127,63,172,255,127,63,178,255,127,63,183,255,127,63,188,255,127,63,193,255,127,63,197,255,127,63,202,255,127,63,206,255,127,63,209,255,127,63,213,255,127,63,216,255,127,63,220,255,127,63,223,255,127,63,225,255,127,63,228,255,127,63,230,255,127,63,233,255,127,63,235,255,127,63,237,255,127,63,239,255,127,63,240,255,127,63,242,255,127,63,243,255,127,63,245,255,127,63,246,255,127,63,247,255,127,63,248,255,127,63,249,255,127,63,250,255,127,63,251,255,127,63,251,255,127,63,252,255,127,63,252,255,127,63,253,255,127,63,253,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,198,63,120,51,98,136,11,53,151,200,193,53,80,233,61,54,183,247,156,54,46,124,234,54,153,192,35,55,244,2,90,55,56,3,140,55,227,228,174,55,177,166,213,55,108,36,0,56,146,101,23,56,201,150,48,56,18,184,75,56,81,201,104,56,94,229,131,56,29,94,148,56,229,206,165,56,167,55,184,56,128,152,203,56,85,241,223,56,36,66,245,56,126,197,5,57,238,101,17,57,99,130,29,57,207,26,42,57,63,47,55,57,179,191,68,57,30,204,82,57,141,84,97,57,243,88,112,57,94,217,127,57,227,234,135,57,18,39,144,57,64,161,152,57,105,89,161,57,146,79,170,57,181,131,179,57,215,245,188,57,245,165,198,57,14,148,208,57,34,192,218,57,46,42,229,57,57,210,239,57,60,184,250,57,27,238,2,58,22,159,8,58,13,111,14,58,0,94,20,58,239,107,26,58,218,152,32,58,192,228,38,58,161,79,45,58,124,217,51,58,83,130,58,58,37,74,65,58,240,48,72,58,182,54,79,58,116,91,86,58,45,159,93,58,222,1,101,58,136,131,108,58,42,36,116,58,196,227,123,58,44,225,129,58,241,223,133,58,49,238,137,58,238,11,142,58,37,57,146,58,215,117,150,58,5,194,154,58,174,29,159,58,209,136,163,58,110,3,168,58,134,141,172,58,24,39,177,58,36,208,181,58,169,136,186,58,169,80,191,58,33,40,196,58,19,15,201,58,126,5,206,58,98,11,211,58,191,32,216,58,148,69,221,58,225,121,226,58,166,189,231,58,227,16,237,58,152,115,242,58,196,229,247,58,103,103,253,58,65,124,1,59,137,76,4,59,141,36,7,59,76,4,10,59,198,235,12,59,251,218,15,59,235,209,18,59,149,208,21,59,251,214,24,59,26,229,27,59,244,250,30,59,136,24,34,59,215,61,37,59,223,106,40,59,161,159,43,59,29,220,46,59,83,32,50,59,66,108,53,59,234,191,56,59,76,27,60,59,103,126,63,59,59,233,66,59,199,91,70,59,12,214,73,59,10,88,77,59,193,225,80,59,48,115,84,59,86,12,88,59,53,173,91,59,204,85,95,59,26,6,99,59,32,190,102,59,222,125,106,59,82,69,110,59,127,20,114,59,97,235,117,59,251,201,121,59,76,176,125,59,41,207,128,59,8,202,130,59,194,200,132,59,87,203,134,59,198,209,136,59,17,220,138,59,55,234,140,59,55,252,142,59,18,18,145,59,199,43,147,59,87,73,149,59,194,106,151,59,6,144,153,59,37,185,155,59,30,230,157,59,241,22,160,59,158,75,162,59,37,132,164,59,134,192,166,59,192,0,169,59,212,68,171,59,193,140,173,59,137,216,175,59,41,40,178,59,163,123,180,59,245,210,182,59,33,46,185,59,38,141,187,59,4,240,189,59,186,86,192,59,73,193,194,59,177,47,197,59,242,161,199,59,10,24,202,59,251,145,204,59,196,15,207,59,102,145,209,59,223,22,212,59,49,160,214,59,90,45,217,59,91,190,219,59,51,83,222,59,227,235,224,59,107,136,227,59,201,40,230,59,255,204,232,59,12,117,235,59,240,32,238,59,171,208,240,59,61,132,243,59,165,59,246,59,228,246,248,59,250,181,251,59,229,120,254,59,212,159,0,60,32,5,2,60,87,108,3,60,121,213,4,60,134,64,6,60,126,173,7,60,96,28,9,60,45,141,10,60,229,255,11,60,136,116,13,60,21,235,14,60,141,99,16,60,239,221,17,60,59,90,19,60,114,216,20,60,147,88,22,60,158,218,23,60,147,94,25,60,115,228,26,60,60,108,28,60,240,245,29,60,141,129,31,60,20,15,33,60,133,158,34,60,224,47,36,60,36,195,37,60,82,88,39,60,105,239,40,60,106,136,42,60,84,35,44,60,40,192,45,60,229,94,47,60,139,255,48,60,26,162,50,60,146,70,52,60,243,236,53,60,61,149,55,60,112,63,57,60,140,235,58,60,145,153,60,60,126,73,62,60,84,251,63,60,18,175,65,60,185,100,67,60,72,28,69,60,192,213,70,60,31,145,72,60,103,78,74,60,151,13,76,60,175,206,77,60,176,145,79,60,152,86,81,60,103,29,83,60,31,230,84,60,190,176,86,60,69,125,88,60,179,75,90,60,9,28,92,60,71,238,93,60,107,194,95,60,119,152,97,60,106,112,99,60,68,74,101,60,5,38,103,60,173,3,105,60,60,227,106,60,178,196,108,60,14,168,110,60,81,141,112,60,123,116,114,60,139,93,116,60,130,72,118,60,95,53,120,60,34,36,122,60,203,20,124,60,90,7,126,60,208,251,127,60,22,249,128,60,54,245,129,60,74,242,130,60,80,240,131,60,73,239,132,60,53,239,133,60,19,240,134,60,229,241,135,60,169,244,136,60,95,248,137,60,8,253,138,60,164,2,140,60,50,9,141,60,178,16,142,60,37,25,143,60,139,34,144,60,226,44,145,60,44,56,146,60,104,68,147,60,150,81,148,60,182,95,149,60,201,110,150,60,205,126,151,60,196,143,152,60,172,161,153,60,135,180,154,60,83,200,155,60,17,221,156,60,193,242,157,60,98,9,159,60,245,32,160,60,122,57,161,60,241,82,162,60,89,109,163,60,178,136,164,60,253,164,165,60,57,194,166,60,103,224,167,60,134,255,168,60,151,31,170,60,152,64,171,60,139,98,172,60,111,133,173,60,68,169,174,60,10,206,175,60,193,243,176,60,105,26,178,60,2,66,179,60,139,106,180,60,6,148,181,60,113,190,182,60,205,233,183,60,26,22,185,60,87,67,186,60,133,113,187,60,163,160,188,60,177,208,189,60,177,1,191,60,160,51,192,60,128,102,193,60,80,154,194,60,16,207,195,60,193,4,197,60,97,59,198,60,242,114,199,60,114,171,200,60,227,228,201,60,67,31,203,60,147,90,204,60,211,150,205,60,3,212,206,60,34,18,208,60,49,81,209,60,48,145,210,60,30,210,211,60,252,19,213,60,201,86,214,60,133,154,215,60,49,223,216,60,204,36,218,60,86,107,219,60,208,178,220,60,56,251,221,60,144,68,223,60,214,142,224,60,12,218,225,60,48,38,227,60,67,115,228,60,69,193,229,60,54,16,231,60,21,96,232,60,227,176,233,60,160,2,235,60,75,85,236,60,228,168,237,60,108,253,238,60,226,82,240,60,70,169,241,60,153,0,243,60,218,88,244,60,8,178,245,60,37,12,247,60,48,103,248,60,41,195,249,60,15,32,251,60,228,125,252,60,166,220,253,60,85,60,255,60,121,78,0,61,63,255,0,61,123,176,1,61,46,98,2,61,88,20,3,61,248,198,3,61,15,122,4,61,156,45,5,61,161,225,5,61,27,150,6,61,12,75,7,61,116,0,8,61,82,182,8,61,167,108,9,61,113,35,10,61,179,218,10,61,106,146,11,61,152,74,12,61,60,3,13,61,87,188,13,61,231,117,14,61,238,47,15,61,107,234,15,61,94,165,16,61,199,96,17,61,166,28,18,61,251,216,18,61,198,149,19,61,7,83,20,61,190,16,21,61,234,206,21,61,141,141,22,61,165,76,23,61,52,12,24,61,56,204,24,61,177,140,25,61,161,77,26,61,6,15,27,61,224,208,27,61,48,147,28,61,246,85,29,61,49,25,30,61,226,220,30,61,8,161,31,61,164,101,32,61,181,42,33,61,59,240,33,61,55,182,34,61,168,124,35,61,142,67,36,61,233,10,37,61,186,210,37,61,255,154,38,61,186,99,39,61,234,44,40,61,143,246,40,61,168,192,41,61,55,139,42,61,59,86,43,61,180,33,44,61,161,237,44,61,4,186,45,61,219,134,46,61,38,84,47,61,231,33,48,61,28,240,48,61,198,190,49,61,229,141,50,61,120,93,51,61,127,45,52,61,251,253,52,61,236,206,53,61,81,160,54,61,42,114,55,61,120,68,56,61,58,23,57,61,112,234,57,61,27,190,58,61,58,146,59,61,204,102,60,61,211,59,61,61,79,17,62,61,62,231,62,61,161,189,63,61,120,148,64,61,195,107,65,61,130,67,66,61,181,27,67,61,92,244,67,61,118,205,68,61,4,167,69,61,6,129,70,61,124,91,71,61,101,54,72,61,194,17,73,61,146,237,73,61,214,201,74,61,141,166,75,61,184,131,76,61,86,97,77,61,104,63,78,61,236,29,79,61,229,252,79,61,80,220,80,61,46,188,81,61,128,156,82,61,69,125,83,61,125,94,84,61,40,64,85,61,69,34,86,61,214,4,87,61,218,231,87,61,81,203,88,61,58,175,89,61,150,147,90,61,101,120,91,61,167,93,92,61,91,67,93,61,130,41,94,61,28,16,95,61,40,247,95,61,167,222,96,61,152,198,97,61,251,174,98,61,209,151,99,61,25,129,100,61,212,106,101,61,0,85,102,61,159,63,103,61,176,42,104,61,51,22,105,61,41,2,106,61,144,238,106,61,105,219,107,61,180,200,108,61,113,182,109,61,160,164,110,61,65,147,111,61,84,130,112,61,216,113,113,61,206,97,114,61,54,82,115,61,15,67,116,61,89,52,117,61,22,38,118,61,67,24,119,61,226,10,120,61,243,253,120,61,117,241,121,61,104,229,122,61,204,217,123,61,162,206,124,61,232,195,125,61,160,185,126,61,201,175,127,61,49,83,128,61,183,206,128,61,117,74,129,61,107,198,129,61,154,66,130,61,1,191,130,61,160,59,131,61,120,184,131,61,136,53,132,61,209,178,132,61,81,48,133,61,10,174,133,61,251,43,134,61,37,170,134,61,134,40,135,61,32,167,135,61,242,37,136,61,252,164,136,61,62,36,137,61,184,163,137,61,106,35,138,61,84,163,138,61,118,35,139,61,209,163,139,61,99,36,140,61,45,165,140,61,46,38,141,61,104,167,141,61,218,40,142,61,131,170,142,61,100,44,143,61,125,174,143,61,206,48,144,61,86,179,144,61,23,54,145,61,14,185,145,61,62,60,146,61,165,191,146,61,67,67,147,61,26,199,147,61,39,75,148,61,109,207,148,61,234,83,149,61,158,216,149,61,138,93,150,61,173,226,150,61,7,104,151,61,153,237,151,61,98,115,152,61,99,249,152,61,155,127,153,61,10,6,154,61,176,140,154,61,142,19,155,61,163,154,155,61,239,33,156,61,114,169,156,61,44,49,157,61,29,185,157,61,69,65,158,61,165,201,158,61,59,82,159,61,8,219,159,61,13,100,160,61,72,237,160,61,186,118,161,61,99,0,162,61,67,138,162,61,90,20,163,61,167,158,163,61,43,41,164,61,230,179,164,61,216,62,165,61,0,202,165,61,95,85,166,61,245,224,166,61,193,108,167,61,196,248,167,61,254,132,168,61,110,17,169,61,20,158,169,61,241,42,170,61,4,184,170,61,78,69,171,61,206,210,171,61,133,96,172,61,113,238,172,61,149,124,173,61,238,10,174,61,126,153,174,61,67,40,175,61,63,183,175,61,114,70,176,61,218,213,176,61,120,101,177,61,77,245,177,61,88,133,178,61,152,21,179,61,15,166,179,61,187,54,180,61,158,199,180,61,182,88,181,61,4,234,181,61,137,123,182,61,67,13,183,61,50,159,183,61,88,49,184,61,179,195,184,61,68,86,185,61,11,233,185,61,7,124,186,61,57,15,187,61,160,162,187,61,61,54,188,61,16,202,188,61,24,94,189,61,85,242,189,61,200,134,190,61,112,27,191,61,78,176,191,61,97,69,192,61,170,218,192,61,39,112,193,61,218,5,194,61,194,155,194,61,224,49,195,61,50,200,195,61,186,94,196,61,119,245,196,61,104,140,197,61,143,35,198,61,235,186,198,61,124,82,199,61,66,234,199,61,61,130,200,61,108,26,201,61,209,178,201,61,106,75,202,61,57,228,202,61,59,125,203,61,115,22,204,61,224,175,204,61,129,73,205,61,86,227,205,61,97,125,206,61,159,23,207,61,19,178,207,61,187,76,208,61,151,231,208,61,168,130,209,61,237,29,210,61,103,185,210,61,21,85,211,61,248,240,211,61,14,141,212,61,89,41,213,61,216,197,213,61,140,98,214,61,115,255,214,61,143,156,215,61,223,57,216,61,99,215,216,61,27,117,217,61,7,19,218,61,38,177,218,61,122,79,219,61,2,238,219,61,189,140,220,61,173,43,221,61,208,202,221,61,39,106,222,61,178,9,223,61,112,169,223,61,98,73,224,61,136,233,224,61,226,137,225,61,111,42,226,61,47,203,226,61,35,108,227,61,74,13,228,61,165,174,228,61,52,80,229,61,245,241,229,61,234,147,230,61,19,54,231,61,110,216,231,61,253,122,232,61,191,29,233,61,180,192,233,61,221,99,234,61,56,7,235,61,199,170,235,61,136,78,236,61,125,242,236,61,164,150,237,61,255,58,238,61,140,223,238,61,76,132,239,61,63,41,240,61,101,206,240,61,189,115,241,61,73,25,242,61,7,191,242,61,247,100,243,61,26,11,244,61,112,177,244,61,248,87,245,61,179,254,245,61,160,165,246,61,192,76,247,61,18,244,247,61,151,155,248,61,77,67,249,61,55,235,249,61,82,147,250,61,159,59,251,61,31,228,251,61,209,140,252,61,181,53,253,61,203,222,253,61,19,136,254,61,141,49,255,61,57,219,255,61,140,66,0,62,148,151,0,62,181,236,0,62,238,65,1,62,65,151,1,62,173,236,1,62,49,66,2,62,206,151,2,62,132,237,2,62,83,67,3,62,59,153,3,62,59,239,3,62,84,69,4,62,134,155,4,62,209,241,4,62,52,72,5,62,176,158,5,62,68,245,5,62,242,75,6,62,183,162,6,62,150,249,6,62,141,80,7,62,156,167,7,62,196,254,7,62,5,86,8,62,94,173,8,62,207,4,9,62,89,92,9,62,252,179,9,62,183,11,10,62,138,99,10,62,118,187,10,62,122,19,11,62,150,107,11,62,203,195,11,62,24,28,12,62,125,116,12,62,250,204,12,62,144,37,13,62,62,126,13,62,4,215,13,62,227,47,14,62,217,136,14,62,232,225,14,62,15,59,15,62,78,148,15,62,165,237,15,62,20,71,16,62,155,160,16,62,58,250,16,62,241,83,17,62,193,173,17,62,168,7,18,62,167,97,18,62,190,187,18,62,237,21,19,62,51,112,19,62,146,202,19,62,9,37,20,62,151,127,20,62,61,218,20,62,251,52,21,62,209,143,21,62,190,234,21,62,195,69,22,62,224,160,22,62,21,252,22,62,97,87,23,62,197,178,23,62,64,14,24,62,211,105,24,62,126,197,24,62,64,33,25,62,26,125,25,62,11,217,25,62,20,53,26,62,52,145,26,62,108,237,26,62,187,73,27,62,34,166,27,62,160,2,28,62,53,95,28,62,226,187,28,62,166,24,29,62,129,117,29,62,116,210,29,62,126,47,30,62,159,140,30,62,215,233,30,62,39,71,31,62,141,164,31,62,11,2,32,62,160,95,32,62,76,189,32,62,16,27,33,62,234,120,33,62,219,214,33,62,228,52,34,62,3,147,34,62,58,241,34,62,135,79,35,62,235,173,35,62,103,12,36,62,249,106,36,62,162,201,36,62,98,40,37,62,56,135,37,62,38,230,37,62,42,69,38,62,69,164,38,62,119,3,39,62,192,98,39,62,31,194,39,62,149,33,40,62,33,129,40,62,197,224,40,62,126,64,41,62,79,160,41,62,54,0,42,62,51,96,42,62,72,192,42,62,114,32,43,62,179,128,43,62,11,225,43,62,121,65,44,62,253,161,44,62,152,2,45,62,73,99,45,62,16,196,45,62,238,36,46,62,226,133,46,62,237,230,46,62,13,72,47,62,68,169,47,62,145,10,48,62,245,107,48,62,110,205,48,62,254,46,49,62,163,144,49,62,95,242,49,62,49,84,50,62,25,182,50,62,23,24,51,62,43,122,51,62,85,220,51,62,148,62,52,62,234,160,52,62,86,3,53,62,216,101,53,62,111,200,53,62,28,43,54,62,223,141,54,62,184,240,54,62,167,83,55,62,171,182,55,62,197,25,56,62,245,124,56,62,59,224,56,62,150,67,57,62,7,167,57,62,141,10,58,62,41,110,58,62,219,209,58,62,162,53,59,62,126,153,59,62,112,253,59,62,120,97,60,62,149,197,60,62,199,41,61,62,15,142,61,62,108,242,61,62,222,86,62,62,102,187,62,62,3,32,63,62,181,132,63,62,125,233,63,62,90,78,64,62,75,179,64,62,83,24,65,62,111,125,65,62,160,226,65,62,231,71,66,62,66,173,66,62,179,18,67,62,57,120,67,62,211,221,67,62,131,67,68,62,71,169,68,62,33,15,69,62,15,117,69,62,18,219,69,62,42,65,70,62,87,167,70,62,153,13,71,62,240,115,71,62,91,218,71,62,219,64,72,62,111,167,72,62,25,14,73,62,215,116,73,62,169,219,73,62,144,66,74,62,140,169,74,62,157,16,75,62,193,119,75,62,251,222,75,62,73,70,76,62,171,173,76,62,34,21,77,62,173,124,77,62,76,228,77,62,0,76,78,62,200,179,78,62,164,27,79,62,149,131,79,62,154,235,79,62,179,83,80,62,225,187,80,62,34,36,81,62,120,140,81,62,225,244,81,62,95,93,82,62,241,197,82,62,151,46,83,62,81,151,83,62,31,0,84,62,1,105,84,62,247,209,84,62,0,59,85,62,30,164,85,62,79,13,86,62,149,118,86,62,238,223,86,62,91,73,87,62,219,178,87,62,112,28,88,62,24,134,88,62,211,239,88,62,163,89,89,62,134,195,89,62,124,45,90,62,134,151,90,62,164,1,91,62,213,107,91,62,26,214,91,62,114,64,92,62,221,170,92,62,92,21,93,62,239,127,93,62,148,234,93,62,77,85,94,62,26,192,94,62,249,42,95,62,236,149,95,62,242,0,96,62,11,108,96,62,55,215,96,62,119,66,97,62,202,173,97,62,47,25,98,62,168,132,98,62,52,240,98,62,210,91,99,62,132,199,99,62,73,51,100,62,32,159,100,62,11,11,101,62,8,119,101,62,24,227,101,62,59,79,102,62,113,187,102,62,186,39,103,62,21,148,103,62,131,0,104,62,3,109,104,62,151,217,104,62,60,70,105,62,245,178,105,62,192,31,106,62,157,140,106,62,141,249,106,62,144,102,107,62,165,211,107,62,204,64,108,62,6,174,108,62,82,27,109,62,176,136,109,62,33,246,109,62,164,99,110,62,57,209,110,62,225,62,111,62,154,172,111,62,102,26,112,62,68,136,112,62,52,246,112,62,55,100,113,62,75,210,113,62,113,64,114,62,169,174,114,62,243,28,115,62,80,139,115,62,190,249,115,62,61,104,116,62,207,214,116,62,115,69,117,62,40,180,117,62,239,34,118,62,200,145,118,62,179,0,119,62,175,111,119,62,189,222,119,62,221,77,120,62,14,189,120,62,80,44,121,62,165,155,121,62,10,11,122,62,130,122,122,62,10,234,122,62,164,89,123,62,80,201,123,62,13,57,124,62,219,168,124,62,186,24,125,62,171,136,125,62,173,248,125,62,192,104,126,62,228,216,126,62,26,73,127,62,96,185,127,62,220,20,128,62,16,77,128,62,77,133,128,62,147,189,128,62,225,245,128,62,55,46,129,62,150,102,129,62,253,158,129,62,109,215,129,62,229,15,130,62,102,72,130,62,238,128,130,62,128,185,130,62,25,242,130,62,187,42,131,62,102,99,131,62,24,156,131,62,211,212,131,62,150,13,132,62,98,70,132,62,53,127,132,62,17,184,132,62,245,240,132,62,226,41,133,62,214,98,133,62,211,155,133,62,216,212,133,62,229,13,134,62,250,70,134,62,23,128,134,62,61,185,134,62,106,242,134,62,160,43,135,62,221,100,135,62,35,158,135,62,112,215,135,62,198,16,136,62,35,74,136,62,137,131,136,62,247,188,136,62,108,246,136,62,233,47,137,62,111,105,137,62,252,162,137,62,145,220,137,62,46,22,138,62,211,79,138,62,127,137,138,62,52,195,138,62,240,252,138,62,180,54,139,62,128,112,139,62,84,170,139,62,47,228,139,62,18,30,140,62,253,87,140,62,239,145,140,62,233,203,140,62,235,5,141,62,245,63,141,62,6,122,141,62,31,180,141,62,63,238,141,62,103,40,142,62],"i8",O3,_.GLOBAL_BASE+530936),C3([150,98,142,62,205,156,142,62,12,215,142,62,82,17,143,62,159,75,143,62,245,133,143,62,81,192,143,62,181,250,143,62,33,53,144,62,147,111,144,62,14,170,144,62,143,228,144,62,25,31,145,62,169,89,145,62,65,148,145,62,224,206,145,62,134,9,146,62,52,68,146,62,233,126,146,62,165,185,146,62,105,244,146,62,52,47,147,62,6,106,147,62,223,164,147,62,191,223,147,62,167,26,148,62,150,85,148,62,139,144,148,62,136,203,148,62,140,6,149,62,152,65,149,62,170,124,149,62,195,183,149,62,227,242,149,62,11,46,150,62,57,105,150,62,111,164,150,62,171,223,150,62,238,26,151,62,56,86,151,62,138,145,151,62,226,204,151,62,65,8,152,62,167,67,152,62,19,127,152,62,135,186,152,62,1,246,152,62,130,49,153,62,10,109,153,62,153,168,153,62,47,228,153,62,203,31,154,62,110,91,154,62,24,151,154,62,200,210,154,62,127,14,155,62,61,74,155,62,2,134,155,62,205,193,155,62,158,253,155,62,119,57,156,62,85,117,156,62,59,177,156,62,39,237,156,62,25,41,157,62,18,101,157,62,18,161,157,62,24,221,157,62,36,25,158,62,55,85,158,62,80,145,158,62,112,205,158,62,150,9,159,62,195,69,159,62,246,129,159,62,47,190,159,62,111,250,159,62,180,54,160,62,1,115,160,62,83,175,160,62,172,235,160,62,11,40,161,62,112,100,161,62,219,160,161,62,77,221,161,62,196,25,162,62,66,86,162,62,198,146,162,62,81,207,162,62,225,11,163,62,119,72,163,62,20,133,163,62,182,193,163,62,95,254,163,62,13,59,164,62,194,119,164,62,125,180,164,62,61,241,164,62,4,46,165,62,208,106,165,62,162,167,165,62,123,228,165,62,89,33,166,62,61,94,166,62,39,155,166,62,23,216,166,62,12,21,167,62,7,82,167,62,8,143,167,62,15,204,167,62,28,9,168,62,46,70,168,62,70,131,168,62,100,192,168,62,136,253,168,62,177,58,169,62,223,119,169,62,20,181,169,62,78,242,169,62,141,47,170,62,211,108,170,62,29,170,170,62,109,231,170,62,195,36,171,62,31,98,171,62,127,159,171,62,230,220,171,62,81,26,172,62,194,87,172,62,57,149,172,62,181,210,172,62,54,16,173,62,189,77,173,62,73,139,173,62,218,200,173,62,113,6,174,62,13,68,174,62,174,129,174,62,85,191,174,62,0,253,174,62,177,58,175,62,103,120,175,62,35,182,175,62,227,243,175,62,169,49,176,62,116,111,176,62,68,173,176,62,25,235,176,62,243,40,177,62,210,102,177,62,182,164,177,62,160,226,177,62,142,32,178,62,129,94,178,62,121,156,178,62,119,218,178,62,121,24,179,62,128,86,179,62,140,148,179,62,157,210,179,62,178,16,180,62,205,78,180,62,236,140,180,62,16,203,180,62,57,9,181,62,103,71,181,62,154,133,181,62,209,195,181,62,13,2,182,62,78,64,182,62,147,126,182,62,221,188,182,62,44,251,182,62,127,57,183,62,215,119,183,62,52,182,183,62,149,244,183,62,251,50,184,62,101,113,184,62,212,175,184,62,71,238,184,62,191,44,185,62,59,107,185,62,188,169,185,62,65,232,185,62,202,38,186,62,88,101,186,62,235,163,186,62,129,226,186,62,28,33,187,62,188,95,187,62,95,158,187,62,7,221,187,62,180,27,188,62,100,90,188,62,25,153,188,62,210,215,188,62,143,22,189,62,80,85,189,62,22,148,189,62,223,210,189,62,173,17,190,62,127,80,190,62,85,143,190,62,47,206,190,62,13,13,191,62,239,75,191,62,213,138,191,62,191,201,191,62,173,8,192,62,159,71,192,62,149,134,192,62,143,197,192,62,141,4,193,62,143,67,193,62,148,130,193,62,158,193,193,62,171,0,194,62,188,63,194,62,209,126,194,62,234,189,194,62,6,253,194,62,38,60,195,62,74,123,195,62,113,186,195,62,157,249,195,62,204,56,196,62,254,119,196,62,52,183,196,62,110,246,196,62,171,53,197,62,236,116,197,62,49,180,197,62,121,243,197,62,196,50,198,62,19,114,198,62,102,177,198,62,188,240,198,62,21,48,199,62,114,111,199,62,210,174,199,62,54,238,199,62,157,45,200,62,7,109,200,62,117,172,200,62,230,235,200,62,90,43,201,62,209,106,201,62,76,170,201,62,202,233,201,62,75,41,202,62,208,104,202,62,88,168,202,62,226,231,202,62,112,39,203,62,1,103,203,62,149,166,203,62,45,230,203,62,199,37,204,62,100,101,204,62,4,165,204,62,168,228,204,62,78,36,205,62,248,99,205,62,164,163,205,62,83,227,205,62,5,35,206,62,186,98,206,62,114,162,206,62,45,226,206,62,234,33,207,62,171,97,207,62,110,161,207,62,52,225,207,62,253,32,208,62,200,96,208,62,150,160,208,62,103,224,208,62,59,32,209,62,17,96,209,62,234,159,209,62,198,223,209,62,164,31,210,62,133,95,210,62,104,159,210,62,78,223,210,62,55,31,211,62,33,95,211,62,15,159,211,62,255,222,211,62,241,30,212,62,230,94,212,62,221,158,212,62,215,222,212,62,211,30,213,62,209,94,213,62,210,158,213,62,213,222,213,62,219,30,214,62,226,94,214,62,236,158,214,62,248,222,214,62,7,31,215,62,24,95,215,62,42,159,215,62,63,223,215,62,87,31,216,62,112,95,216,62,139,159,216,62,169,223,216,62,200,31,217,62,234,95,217,62,14,160,217,62,51,224,217,62,91,32,218,62,133,96,218,62,176,160,218,62,222,224,218,62,13,33,219,62,63,97,219,62,114,161,219,62,167,225,219,62,222,33,220,62,23,98,220,62,82,162,220,62,142,226,220,62,204,34,221,62,12,99,221,62,78,163,221,62,146,227,221,62,215,35,222,62,29,100,222,62,102,164,222,62,176,228,222,62,252,36,223,62,73,101,223,62,152,165,223,62,232,229,223,62,58,38,224,62,142,102,224,62,227,166,224,62,57,231,224,62,145,39,225,62,234,103,225,62,69,168,225,62,161,232,225,62,255,40,226,62,94,105,226,62,190,169,226,62,32,234,226,62,131,42,227,62,231,106,227,62,76,171,227,62,179,235,227,62,27,44,228,62,132,108,228,62,238,172,228,62,90,237,228,62,199,45,229,62,52,110,229,62,163,174,229,62,19,239,229,62,133,47,230,62,247,111,230,62,106,176,230,62,222,240,230,62,83,49,231,62,202,113,231,62,65,178,231,62,185,242,231,62,50,51,232,62,172,115,232,62,38,180,232,62,162,244,232,62,31,53,233,62,156,117,233,62,26,182,233,62,153,246,233,62,25,55,234,62,153,119,234,62,26,184,234,62,156,248,234,62,31,57,235,62,162,121,235,62,38,186,235,62,170,250,235,62,47,59,236,62,181,123,236,62,59,188,236,62,194,252,236,62,73,61,237,62,209,125,237,62,89,190,237,62,226,254,237,62,107,63,238,62,245,127,238,62,127,192,238,62,10,1,239,62,149,65,239,62,32,130,239,62,171,194,239,62,55,3,240,62,196,67,240,62,80,132,240,62,221,196,240,62,106,5,241,62,247,69,241,62,132,134,241,62,18,199,241,62,160,7,242,62,45,72,242,62,187,136,242,62,74,201,242,62,216,9,243,62,102,74,243,62,244,138,243,62,131,203,243,62,17,12,244,62,159,76,244,62,46,141,244,62,188,205,244,62,74,14,245,62,216,78,245,62,102,143,245,62,244,207,245,62,129,16,246,62,15,81,246,62,156,145,246,62,41,210,246,62,182,18,247,62,67,83,247,62,207,147,247,62,91,212,247,62,231,20,248,62,115,85,248,62,254,149,248,62,136,214,248,62,19,23,249,62,157,87,249,62,38,152,249,62,175,216,249,62,56,25,250,62,192,89,250,62,72,154,250,62,207,218,250,62,86,27,251,62,220,91,251,62,97,156,251,62,230,220,251,62,106,29,252,62,238,93,252,62,113,158,252,62,243,222,252,62,117,31,253,62,245,95,253,62,118,160,253,62,245,224,253,62,116,33,254,62,241,97,254,62,110,162,254,62,235,226,254,62,102,35,255,62,224,99,255,62,90,164,255,62,211,228,255,62,165,18,0,63,225,50,0,63,27,83,0,63,86,115,0,63,144,147,0,63,201,179,0,63,2,212,0,63,58,244,0,63,114,20,1,63,169,52,1,63,224,84,1,63,22,117,1,63,76,149,1,63,129,181,1,63,181,213,1,63,233,245,1,63,28,22,2,63,78,54,2,63,128,86,2,63,178,118,2,63,226,150,2,63,18,183,2,63,65,215,2,63,112,247,2,63,157,23,3,63,203,55,3,63,247,87,3,63,35,120,3,63,78,152,3,63,120,184,3,63,161,216,3,63,202,248,3,63,242,24,4,63,25,57,4,63,63,89,4,63,101,121,4,63,137,153,4,63,173,185,4,63,208,217,4,63,243,249,4,63,20,26,5,63,52,58,5,63,84,90,5,63,115,122,5,63,145,154,5,63,173,186,5,63,202,218,5,63,229,250,5,63,255,26,6,63,24,59,6,63,48,91,6,63,72,123,6,63,94,155,6,63,116,187,6,63,136,219,6,63,155,251,6,63,174,27,7,63,191,59,7,63,208,91,7,63,223,123,7,63,237,155,7,63,250,187,7,63,7,220,7,63,18,252,7,63,28,28,8,63,37,60,8,63,44,92,8,63,51,124,8,63,57,156,8,63,61,188,8,63,64,220,8,63,67,252,8,63,68,28,9,63,68,60,9,63,66,92,9,63,64,124,9,63,60,156,9,63,55,188,9,63,49,220,9,63,41,252,9,63,33,28,10,63,23,60,10,63,12,92,10,63,255,123,10,63,242,155,10,63,227,187,10,63,211,219,10,63,193,251,10,63,174,27,11,63,154,59,11,63,133,91,11,63,110,123,11,63,86,155,11,63,60,187,11,63,33,219,11,63,5,251,11,63,231,26,12,63,200,58,12,63,168,90,12,63,134,122,12,63,98,154,12,63,62,186,12,63,23,218,12,63,240,249,12,63,199,25,13,63,156,57,13,63,112,89,13,63,66,121,13,63,19,153,13,63,227,184,13,63,176,216,13,63,125,248,13,63,72,24,14,63,17,56,14,63,216,87,14,63,159,119,14,63,99,151,14,63,38,183,14,63,232,214,14,63,167,246,14,63,101,22,15,63,34,54,15,63,221,85,15,63,150,117,15,63,78,149,15,63,4,181,15,63,184,212,15,63,106,244,15,63,27,20,16,63,202,51,16,63,120,83,16,63,36,115,16,63,206,146,16,63,118,178,16,63,28,210,16,63,193,241,16,63,100,17,17,63,6,49,17,63,165,80,17,63,67,112,17,63,223,143,17,63,121,175,17,63,17,207,17,63,167,238,17,63,60,14,18,63,206,45,18,63,95,77,18,63,238,108,18,63,123,140,18,63,7,172,18,63,144,203,18,63,23,235,18,63,157,10,19,63,32,42,19,63,162,73,19,63,34,105,19,63,159,136,19,63,27,168,19,63,149,199,19,63,13,231,19,63,131,6,20,63,247,37,20,63,104,69,20,63,216,100,20,63,70,132,20,63,178,163,20,63,27,195,20,63,131,226,20,63,233,1,21,63,76,33,21,63,174,64,21,63,13,96,21,63,106,127,21,63,197,158,21,63,31,190,21,63,117,221,21,63,202,252,21,63,29,28,22,63,109,59,22,63,188,90,22,63,8,122,22,63,82,153,22,63,153,184,22,63,223,215,22,63,34,247,22,63,100,22,23,63,162,53,23,63,223,84,23,63,26,116,23,63,82,147,23,63,136,178,23,63,187,209,23,63,237,240,23,63,28,16,24,63,73,47,24,63,115,78,24,63,155,109,24,63,193,140,24,63,228,171,24,63,6,203,24,63,36,234,24,63,65,9,25,63,91,40,25,63,115,71,25,63,136,102,25,63,155,133,25,63,171,164,25,63,185,195,25,63,197,226,25,63,206,1,26,63,213,32,26,63,217,63,26,63,219,94,26,63,218,125,26,63,215,156,26,63,210,187,26,63,202,218,26,63,191,249,26,63,178,24,27,63,162,55,27,63,144,86,27,63,123,117,27,63,100,148,27,63,74,179,27,63,46,210,27,63,15,241,27,63,237,15,28,63,201,46,28,63,162,77,28,63,121,108,28,63,77,139,28,63,31,170,28,63,237,200,28,63,185,231,28,63,131,6,29,63,74,37,29,63,14,68,29,63,207,98,29,63,142,129,29,63,74,160,29,63,3,191,29,63,186,221,29,63,110,252,29,63,31,27,30,63,205,57,30,63,121,88,30,63,34,119,30,63,200,149,30,63,107,180,30,63,12,211,30,63,170,241,30,63,69,16,31,63,221,46,31,63,114,77,31,63,5,108,31,63,148,138,31,63,33,169,31,63,171,199,31,63,50,230,31,63,182,4,32,63,56,35,32,63,182,65,32,63,50,96,32,63,170,126,32,63,32,157,32,63,147,187,32,63,3,218,32,63,112,248,32,63,218,22,33,63,65,53,33,63,165,83,33,63,6,114,33,63,100,144,33,63,191,174,33,63,23,205,33,63,108,235,33,63,190,9,34,63,13,40,34,63,89,70,34,63,162,100,34,63,232,130,34,63,43,161,34,63,107,191,34,63,167,221,34,63,225,251,34,63,24,26,35,63,75,56,35,63,123,86,35,63,168,116,35,63,211,146,35,63,249,176,35,63,29,207,35,63,62,237,35,63,91,11,36,63,118,41,36,63,141,71,36,63,161,101,36,63,177,131,36,63,191,161,36,63,201,191,36,63,208,221,36,63,212,251,36,63,213,25,37,63,210,55,37,63,204,85,37,63,195,115,37,63,183,145,37,63,167,175,37,63,148,205,37,63,126,235,37,63,101,9,38,63,72,39,38,63,40,69,38,63,4,99,38,63,221,128,38,63,179,158,38,63,134,188,38,63,85,218,38,63,33,248,38,63,233,21,39,63,174,51,39,63,112,81,39,63,46,111,39,63,233,140,39,63,160,170,39,63,84,200,39,63,4,230,39,63,178,3,40,63,91,33,40,63,1,63,40,63,164,92,40,63,67,122,40,63,223,151,40,63,120,181,40,63,12,211,40,63,158,240,40,63,43,14,41,63,182,43,41,63,60,73,41,63,192,102,41,63,63,132,41,63,187,161,41,63,52,191,41,63,169,220,41,63,26,250,41,63,136,23,42,63,242,52,42,63,89,82,42,63,188,111,42,63,28,141,42,63,119,170,42,63,208,199,42,63,36,229,42,63,117,2,43,63,194,31,43,63,12,61,43,63,82,90,43,63,148,119,43,63,211,148,43,63,14,178,43,63,69,207,43,63,120,236,43,63,168,9,44,63,212,38,44,63,252,67,44,63,33,97,44,63,66,126,44,63,95,155,44,63,120,184,44,63,142,213,44,63,159,242,44,63,173,15,45,63,184,44,45,63,190,73,45,63,193,102,45,63,191,131,45,63,186,160,45,63,177,189,45,63,165,218,45,63,148,247,45,63,128,20,46,63,103,49,46,63,75,78,46,63,43,107,46,63,7,136,46,63,224,164,46,63,180,193,46,63,132,222,46,63,81,251,46,63,26,24,47,63,222,52,47,63,159,81,47,63,92,110,47,63,21,139,47,63,202,167,47,63,123,196,47,63,40,225,47,63,209,253,47,63,118,26,48,63,23,55,48,63,180,83,48,63,77,112,48,63,226,140,48,63,115,169,48,63,0,198,48,63,137,226,48,63,14,255,48,63,142,27,49,63,11,56,49,63,132,84,49,63,248,112,49,63,105,141,49,63,214,169,49,63,62,198,49,63,162,226,49,63,2,255,49,63,95,27,50,63,182,55,50,63,10,84,50,63,90,112,50,63,166,140,50,63,237,168,50,63,48,197,50,63,111,225,50,63,170,253,50,63,225,25,51,63,19,54,51,63,66,82,51,63,108,110,51,63,146,138,51,63,180,166,51,63,209,194,51,63,234,222,51,63,0,251,51,63,16,23,52,63,29,51,52,63,37,79,52,63,41,107,52,63,41,135,52,63,37,163,52,63,28,191,52,63,15,219,52,63,253,246,52,63,232,18,53,63,206,46,53,63,176,74,53,63,141,102,53,63,102,130,53,63,59,158,53,63,11,186,53,63,215,213,53,63,159,241,53,63,98,13,54,63,33,41,54,63,220,68,54,63,146,96,54,63,68,124,54,63,241,151,54,63,154,179,54,63,63,207,54,63,223,234,54,63,123,6,55,63,18,34,55,63,165,61,55,63,52,89,55,63,190,116,55,63,67,144,55,63,196,171,55,63,65,199,55,63,185,226,55,63,45,254,55,63,156,25,56,63,7,53,56,63,109,80,56,63,207,107,56,63,44,135,56,63,133,162,56,63,217,189,56,63,40,217,56,63,115,244,56,63,186,15,57,63,252,42,57,63,57,70,57,63,114,97,57,63,166,124,57,63,214,151,57,63,1,179,57,63,40,206,57,63,74,233,57,63,103,4,58,63,128,31,58,63,148,58,58,63,163,85,58,63,174,112,58,63,180,139,58,63,182,166,58,63,179,193,58,63,171,220,58,63,159,247,58,63,142,18,59,63,120,45,59,63,94,72,59,63,63,99,59,63,27,126,59,63,243,152,59,63,197,179,59,63,148,206,59,63,93,233,59,63,34,4,60,63,226,30,60,63,157,57,60,63,84,84,60,63,5,111,60,63,178,137,60,63,91,164,60,63,254,190,60,63,157,217,60,63,55,244,60,63,204,14,61,63,93,41,61,63,232,67,61,63,111,94,61,63,241,120,61,63,110,147,61,63,231,173,61,63,91,200,61,63,201,226,61,63,51,253,61,63,152,23,62,63,249,49,62,63,84,76,62,63,171,102,62,63,252,128,62,63,73,155,62,63,145,181,62,63,212,207,62,63,19,234,62,63,76,4,63,63,128,30,63,63,176,56,63,63,219,82,63,63,0,109,63,63,33,135,63,63,61,161,63,63,84,187,63,63,102,213,63,63,115,239,63,63,123,9,64,63,127,35,64,63,125,61,64,63,118,87,64,63,106,113,64,63,90,139,64,63,68,165,64,63,42,191,64,63,10,217,64,63,229,242,64,63,188,12,65,63,141,38,65,63,90,64,65,63,33,90,65,63,228,115,65,63,161,141,65,63,89,167,65,63,13,193,65,63,187,218,65,63,100,244,65,63,8,14,66,63,167,39,66,63,65,65,66,63,214,90,66,63,102,116,66,63,241,141,66,63,119,167,66,63,248,192,66,63,115,218,66,63,234,243,66,63,91,13,67,63,199,38,67,63,47,64,67,63,145,89,67,63,238,114,67,63,69,140,67,63,152,165,67,63,230,190,67,63,46,216,67,63,113,241,67,63,175,10,68,63,232,35,68,63,28,61,68,63,75,86,68,63,116,111,68,63,153,136,68,63,184,161,68,63,210,186,68,63,230,211,68,63,246,236,68,63,0,6,69,63,5,31,69,63,5,56,69,63,0,81,69,63,245,105,69,63,230,130,69,63,209,155,69,63,182,180,69,63,151,205,69,63,114,230,69,63,72,255,69,63,25,24,70,63,229,48,70,63,171,73,70,63,108,98,70,63,40,123,70,63,222,147,70,63,143,172,70,63,59,197,70,63,226,221,70,63,131,246,70,63,31,15,71,63,182,39,71,63,71,64,71,63,211,88,71,63,90,113,71,63,220,137,71,63,88,162,71,63,207,186,71,63,64,211,71,63,172,235,71,63,19,4,72,63,116,28,72,63,209,52,72,63,39,77,72,63,121,101,72,63,197,125,72,63,11,150,72,63,77,174,72,63,137,198,72,63,191,222,72,63,240,246,72,63,28,15,73,63,66,39,73,63,99,63,73,63,127,87,73,63,149,111,73,63,166,135,73,63,177,159,73,63,183,183,73,63,183,207,73,63,178,231,73,63,168,255,73,63,152,23,74,63,131,47,74,63,104,71,74,63,72,95,74,63,34,119,74,63,247,142,74,63,199,166,74,63,145,190,74,63,85,214,74,63,20,238,74,63,206,5,75,63,130,29,75,63,49,53,75,63,218,76,75,63,126,100,75,63,28,124,75,63,181,147,75,63,72,171,75,63,213,194,75,63,93,218,75,63,224,241,75,63,93,9,76,63,213,32,76,63,71,56,76,63,179,79,76,63,26,103,76,63,124,126,76,63,216,149,76,63,46,173,76,63,127,196,76,63,202,219,76,63,16,243,76,63,80,10,77,63,139,33,77,63,192,56,77,63,240,79,77,63,26,103,77,63,62,126,77,63,93,149,77,63,118,172,77,63,137,195,77,63,151,218,77,63,160,241,77,63,163,8,78,63,160,31,78,63,151,54,78,63,137,77,78,63,118,100,78,63,93,123,78,63,62,146,78,63,25,169,78,63,239,191,78,63,192,214,78,63,138,237,78,63,79,4,79,63,15,27,79,63,201,49,79,63,125,72,79,63,43,95,79,63,212,117,79,63,119,140,79,63,21,163,79,63,172,185,79,63,63,208,79,63,203,230,79,63,82,253,79,63,211,19,80,63,79,42,80,63,197,64,80,63,53,87,80,63,159,109,80,63,4,132,80,63,99,154,80,63,189,176,80,63,16,199,80,63,94,221,80,63,167,243,80,63,233,9,81,63,38,32,81,63,93,54,81,63,143,76,81,63,187,98,81,63,225,120,81,63,1,143,81,63,28,165,81,63,48,187,81,63,64,209,81,63,73,231,81,63,77,253,81,63,75,19,82,63,67,41,82,63,53,63,82,63,34,85,82,63,9,107,82,63,234,128,82,63,198,150,82,63,155,172,82,63,107,194,82,63,53,216,82,63,250,237,82,63,185,3,83,63,113,25,83,63,37,47,83,63,210,68,83,63,121,90,83,63,27,112,83,63,183,133,83,63,77,155,83,63,222,176,83,63,104,198,83,63,237,219,83,63,108,241,83,63,230,6,84,63,89,28,84,63,199,49,84,63,46,71,84,63,145,92,84,63,237,113,84,63,67,135,84,63,148,156,84,63,223,177,84,63,35,199,84,63,99,220,84,63,156,241,84,63,207,6,85,63,253,27,85,63,37,49,85,63,71,70,85,63,99,91,85,63,121,112,85,63,138,133,85,63,149,154,85,63,153,175,85,63,152,196,85,63,146,217,85,63,133,238,85,63,114,3,86,63,90,24,86,63,60,45,86,63,24,66,86,63,238,86,86,63,190,107,86,63,136,128,86,63,76,149,86,63,11,170,86,63,196,190,86,63,118,211,86,63,35,232,86,63,203,252,86,63,108,17,87,63,7,38,87,63,156,58,87,63,44,79,87,63,182,99,87,63,58,120,87,63,183,140,87,63,47,161,87,63,162,181,87,63,14,202,87,63,116,222,87,63,213,242,87,63,47,7,88,63,132,27,88,63,211,47,88,63,28,68,88,63,95,88,88,63,156,108,88,63,211,128,88,63,4,149,88,63,47,169,88,63,85,189,88,63,116,209,88,63,142,229,88,63,162,249,88,63,175,13,89,63,183,33,89,63,185,53,89,63,181,73,89,63,171,93,89,63,155,113,89,63,134,133,89,63,106,153,89,63,72,173,89,63,33,193,89,63,243,212,89,63,192,232,89,63,135,252,89,63,71,16,90,63,2,36,90,63,183,55,90,63,102,75,90,63,15,95,90,63,178,114,90,63,79,134,90,63,230,153,90,63,119,173,90,63,3,193,90,63,136,212,90,63,7,232,90,63,129,251,90,63,244,14,91,63,98,34,91,63,201,53,91,63,43,73,91,63,135,92,91,63,220,111,91,63,44,131,91,63,118,150,91,63,186,169,91,63,248,188,91,63,47,208,91,63,97,227,91,63,141,246,91,63,179,9,92,63,212,28,92,63,238,47,92,63,2,67,92,63,16,86,92,63,24,105,92,63,26,124,92,63,23,143,92,63,13,162,92,63,253,180,92,63,232,199,92,63,204,218,92,63,171,237,92,63,131,0,93,63,86,19,93,63,34,38,93,63,233,56,93,63,169,75,93,63,100,94,93,63,24,113,93,63,199,131,93,63,112,150,93,63,18,169,93,63,175,187,93,63,70,206,93,63,215,224,93,63,97,243,93,63,230,5,94,63,101,24,94,63,222,42,94,63,81,61,94,63,190,79,94,63,36,98,94,63,133,116,94,63,224,134,94,63,53,153,94,63,132,171,94,63,205,189,94,63,16,208,94,63,77,226,94,63,132,244,94,63,181,6,95,63,224,24,95,63,5,43,95,63,36,61,95,63,61,79,95,63,80,97,95,63,93,115,95,63,101,133,95,63,102,151,95,63,97,169,95,63,86,187,95,63,69,205,95,63,46,223,95,63,18,241,95,63,239,2,96,63,198,20,96,63,151,38,96,63,98,56,96,63,40,74,96,63,231,91,96,63,160,109,96,63,84,127,96,63,1,145,96,63,168,162,96,63,73,180,96,63,229,197,96,63,122,215,96,63,10,233,96,63,147,250,96,63,22,12,97,63,148,29,97,63,11,47,97,63,125,64,97,63,232,81,97,63,77,99,97,63,173,116,97,63,6,134,97,63,90,151,97,63,167,168,97,63,239,185,97,63,48,203,97,63,108,220,97,63,162,237,97,63,209,254,97,63,251,15,98,63,30,33,98,63,60,50,98,63,84,67,98,63,101,84,98,63,113,101,98,63,119,118,98,63,119,135,98,63,112,152,98,63,100,169,98,63,82,186,98,63,58,203,98,63,28,220,98,63,247,236,98,63,205,253,98,63,157,14,99,63,103,31,99,63,43,48,99,63,233,64,99,63,161,81,99,63,83,98,99,63,255,114,99,63,165,131,99,63,69,148,99,63,224,164,99,63,116,181,99,63,2,198,99,63,138,214,99,63,13,231,99,63,137,247,99,63,255,7,100,63,112,24,100,63,218,40,100,63,62,57,100,63,157,73,100,63,246,89,100,63,72,106,100,63,149,122,100,63,219,138,100,63,28,155,100,63,87,171,100,63,140,187,100,63,186,203,100,63,227,219,100,63,6,236,100,63,35,252,100,63,58,12,101,63,75,28,101,63,86,44,101,63,91,60,101,63,91,76,101,63,84,92,101,63,71,108,101,63,53,124,101,63,28,140,101,63,254,155,101,63,217,171,101,63,175,187,101,63,126,203,101,63,72,219,101,63,12,235,101,63,202,250,101,63,130,10,102,63,52,26,102,63,224,41,102,63,134,57,102,63,38,73,102,63,193,88,102,63,85,104,102,63,227,119,102,63,108,135,102,63,238,150,102,63,107,166,102,63,226,181,102,63,83,197,102,63,190,212,102,63,35,228,102,63,130,243,102,63,219,2,103,63,46,18,103,63,124,33,103,63,195,48,103,63,5,64,103,63,64,79,103,63,118,94,103,63,166,109,103,63,208,124,103,63,244,139,103,63,18,155,103,63,42,170,103,63,61,185,103,63,73,200,103,63,80,215,103,63,80,230,103,63,75,245,103,63,64,4,104,63,47,19,104,63,24,34,104,63,251,48,104,63,217,63,104,63,176,78,104,63,130,93,104,63,78,108,104,63,20,123,104,63,212,137,104,63,142,152,104,63,66,167,104,63,240,181,104,63,153,196,104,63,60,211,104,63,217,225,104,63,112,240,104,63,1,255,104,63,140,13,105,63,17,28,105,63,145,42,105,63,11,57,105,63,127,71,105,63,237,85,105,63,85,100,105,63,183,114,105,63,20,129,105,63,106,143,105,63,187,157,105,63,6,172,105,63,75,186,105,63,139,200,105,63,196,214,105,63,248,228,105,63,38,243,105,63,78,1,106,63,112,15,106,63,141,29,106,63,163,43,106,63,180,57,106,63,191,71,106,63,196,85,106,63,196,99,106,63,189,113,106,63,177,127,106,63,159,141,106,63,135,155,106,63,106,169,106,63,70,183,106,63,29,197,106,63,238,210,106,63,186,224,106,63,127,238,106,63,63,252,106,63,249,9,107,63,173,23,107,63,91,37,107,63,4,51,107,63,167,64,107,63,68,78,107,63,219,91,107,63,109,105,107,63,249,118,107,63,127,132,107,63,255,145,107,63,122,159,107,63,238,172,107,63,94,186,107,63,199,199,107,63,42,213,107,63,136,226,107,63,224,239,107,63,51,253,107,63,128,10,108,63,198,23,108,63,8,37,108,63,67,50,108,63,121,63,108,63,169,76,108,63,211,89,108,63,248,102,108,63,23,116,108,63,48,129,108,63,68,142,108,63,82,155,108,63,90,168,108,63,92,181,108,63,89,194,108,63,80,207,108,63,65,220,108,63,45,233,108,63,19,246,108,63,243,2,109,63,206,15,109,63,163,28,109,63,114,41,109,63,60,54,109,63,0,67,109,63,190,79,109,63,119,92,109,63,42,105,109,63,215,117,109,63,127,130,109,63,33,143,109,63,189,155,109,63,84,168,109,63,229,180,109,63,113,193,109,63,247,205,109,63,119,218,109,63,242,230,109,63,103,243,109,63,214,255,109,63,64,12,110,63,164,24,110,63,3,37,110,63,91,49,110,63,175,61,110,63,253,73,110,63,69,86,110,63,135,98,110,63,196,110,110,63,252,122,110,63,45,135,110,63,90,147,110,63,128,159,110,63,161,171,110,63,189,183,110,63,211,195,110,63,227,207,110,63,238,219,110,63,243,231,110,63,243,243,110,63,237,255,110,63,226,11,111,63,209,23,111,63,186,35,111,63,158,47,111,63,125,59,111,63,85,71,111,63,41,83,111,63,247,94,111,63,191,106,111,63,130,118,111,63,63,130,111,63,247,141,111,63,169,153,111,63,86,165,111,63,253,176,111,63,159,188,111,63,59,200,111,63,210,211,111,63,99,223,111,63,239,234,111,63,117,246,111,63,246,1,112,63,114,13,112,63,231,24,112,63,88,36,112,63,195,47,112,63,40,59,112,63,137,70,112,63,227,81,112,63,56,93,112,63,136,104,112,63,210,115,112,63,23,127,112,63,87,138,112,63,145,149,112,63,197,160,112,63,244,171,112,63,30,183,112,63,66,194,112,63,97,205,112,63,123,216,112,63,143,227,112,63,157,238,112,63,167,249,112,63,171,4,113,63,169,15,113,63,162,26,113,63,150,37,113,63,132,48,113,63,109,59,113,63,81,70,113,63,47,81,113,63,8,92,113,63,219,102,113,63,170,113,113,63,114,124,113,63,54,135,113,63,244,145,113,63,173,156,113,63,96,167,113,63,14,178,113,63,183,188,113,63,91,199,113,63,249,209,113,63,146,220,113,63,37,231,113,63,179,241,113,63,60,252,113,63,192,6,114,63,62,17,114,63,183,27,114,63,43,38,114,63,154,48,114,63,3,59,114,63,103,69,114,63,197,79,114,63,31,90,114,63,115,100,114,63,194,110,114,63,11,121,114,63,79,131,114,63,143,141,114,63,200,151,114,63,253,161,114,63,44,172,114,63,87,182,114,63,123,192,114,63,155,202,114,63,182,212,114,63,203,222,114,63,219,232,114,63,230,242,114,63,235,252,114,63,236,6,115,63,231,16,115,63,221,26,115,63,206,36,115,63,186,46,115,63,160,56,115,63,130,66,115,63,94,76,115,63,53,86,115,63,7,96,115,63,212,105,115,63,155,115,115,63,94,125,115,63,27,135,115,63,211,144,115,63,134,154,115,63,52,164,115,63,221,173,115,63,128,183,115,63,31,193,115,63,184,202,115,63,77,212,115,63,220,221,115,63,102,231,115,63,235,240,115,63,107,250,115,63,230,3,116,63,92,13,116,63,204,22,116,63,56,32,116,63,159,41,116,63,0,51,116,63,93,60,116,63,180,69,116,63,6,79,116,63,84,88,116,63,156,97,116,63,223,106,116,63,29,116,116,63,87,125,116,63,139,134,116,63,186,143,116,63,228,152,116,63,9,162,116,63,41,171,116,63,68,180,116,63,91,189,116,63,108,198,116,63,120,207,116,63,127,216,116,63,129,225,116,63,127,234,116,63,119,243,116,63,106,252,116,63,89,5,117,63,66,14,117,63,38,23,117,63,6,32,117,63,225,40,117,63,182,49,117,63,135,58,117,63,83,67,117,63,26,76,117,63,220,84,117,63,153,93,117,63,81,102,117,63,4,111,117,63,179,119,117,63,92,128,117,63,1,137,117,63,160,145,117,63,59,154,117,63,209,162,117,63,98,171,117,63,239,179,117,63,118,188,117,63,249,196,117,63,118,205,117,63,239,213,117,63,99,222,117,63,210,230,117,63,61,239,117,63,162,247,117,63,3,0,118,63,95,8,118,63,182,16,118,63,8,25,118,63,86,33,118,63,159,41,118,63,227,49,118,63,34,58,118,63,92,66,118,63,146,74,118,63,195,82,118,63,239,90,118,63,22,99,118,63,57,107,118,63,86,115,118,63,112,123,118,63,132,131,118,63,148,139,118,63,158,147,118,63,165,155,118,63,166,163,118,63,163,171,118,63,155,179,118,63,142,187,118,63,125,195,118,63,103,203,118,63,76,211,118,63,45,219,118,63,9,227,118,63,224,234,118,63,178,242,118,63,128,250,118,63,74,2,119,63,14,10,119,63,206,17,119,63,137,25,119,63,64,33,119,63,242,40,119,63,160,48,119,63,72,56,119,63,237,63,119,63,140,71,119,63,39,79,119,63,190,86,119,63,79,94,119,63,220,101,119,63,101,109,119,63,233,116,119,63,105,124,119,63,228,131,119,63,90,139,119,63,204,146,119,63,57,154,119,63,162,161,119,63,6,169,119,63,101,176,119,63,192,183,119,63,23,191,119,63,105,198,119,63,182,205,119,63,255,212,119,63,68,220,119,63,132,227,119,63,191,234,119,63,246,241,119,63,41,249,119,63,87,0,120,63,129,7,120,63,166,14,120,63,198,21,120,63,227,28,120,63,250,35,120,63,14,43,120,63,28,50,120,63,39,57,120,63,45,64,120,63,46,71,120,63,44,78,120,63,36,85,120,63,25,92,120,63,9,99,120,63,244,105,120,63,219,112,120,63,190,119,120,63,156,126,120,63,118,133,120,63,76,140,120,63,29,147,120,63,234,153,120,63,179,160,120,63,119,167,120,63,55,174,120,63,242,180,120,63,169,187,120,63,92,194,120,63,11,201,120,63,181,207,120,63,91,214,120,63,252,220,120,63,154,227,120,63,51,234,120,63,199,240,120,63,88,247,120,63,228,253,120,63,108,4,121,63,240,10,121,63,111,17,121,63,234,23,121,63,97,30,121,63,211,36,121,63,66,43,121,63,172,49,121,63,18,56,121,63,116,62,121,63,209,68,121,63,42,75,121,63,127,81,121,63,208,87,121,63,29,94,121,63,101,100,121,63,170,106,121,63,234,112,121,63,38,119,121,63,93,125,121,63,145,131,121,63,193,137,121,63,236,143,121,63,19,150,121,63,54,156,121,63,85,162,121,63,112,168,121,63,134,174,121,63,153,180,121,63,167,186,121,63,178,192,121,63,184,198,121,63,186,204,121,63,184,210,121,63,178,216,121,63,168,222,121,63,154,228,121,63,135,234,121,63,113,240,121,63,87,246,121,63,56,252,121,63,22,2,122,63,239,7,122,63,197,13,122,63,150,19,122,63,100,25,122,63,45,31,122,63,243,36,122,63,180,42,122,63,113,48,122,63,43,54,122,63,224,59,122,63,146,65,122,63,63,71,122,63,233,76,122,63,142,82,122,63,48,88,122,63,206,93,122,63,103,99,122,63,253,104,122,63,143,110,122,63,29,116,122,63,167,121,122,63,45,127,122,63,175,132,122,63,45,138,122,63,168,143,122,63,30,149,122,63,145,154,122,63,255,159,122,63,106,165,122,63,209,170,122,63,52,176,122,63,147,181,122,63,239,186,122,63,70,192,122,63,154,197,122,63,234,202,122,63,54,208,122,63,126,213,122,63,194,218,122,63,3,224,122,63,64,229,122,63,121,234,122,63,174,239,122,63,223,244,122,63,13,250,122,63,55,255,122,63,93,4,123,63,127,9,123,63,157,14,123,63,184,19,123,63,207,24,123,63,227,29,123,63,242,34,123,63,254,39,123,63,6,45,123,63,10,50,123,63,11,55,123,63,8,60,123,63,1,65,123,63,247,69,123,63,233,74,123,63,215,79,123,63,193,84,123,63,168,89,123,63,139,94,123,63,107,99,123,63,71,104,123,63,31,109,123,63,243,113,123,63,196,118,123,63,146,123,123,63,91,128,123,63,33,133,123,63,228,137,123,63,163,142,123,63,94,147,123,63,22,152,123,63,202,156,123,63,122,161,123,63,39,166,123,63,208,170,123,63,118,175,123,63,24,180,123,63,183,184,123,63,82,189,123,63,233,193,123,63,125,198,123,63,14,203,123,63,155,207,123,63,36,212,123,63,170,216,123,63,45,221,123,63,172,225,123,63,39,230,123,63,159,234,123,63,19,239,123,63,132,243,123,63,242,247,123,63,92,252,123,63,195,0,124,63,38,5,124,63,133,9,124,63,226,13,124,63,58,18,124,63,144,22,124,63,226,26,124,63,48,31,124,63,123,35,124,63,195,39,124,63,7,44,124,63,72,48,124,63,134,52,124,63,192,56,124,63,247,60,124,63,42,65,124,63,90,69,124,63,135,73,124,63,176,77,124,63,214,81,124,63,249,85,124,63,24,90,124,63,52,94,124,63,77,98,124,63,98,102,124,63,116,106,124,63,131,110,124,63,142,114,124,63,150,118,124,63,155,122,124,63,157,126,124,63,155,130,124,63,150,134,124,63,142,138,124,63,130,142,124,63,116,146,124,63,98,150,124,63,77,154,124,63,52,158,124,63,24,162,124,63,249,165,124,63,215,169,124,63,178,173,124,63,137,177,124,63,94,181,124,63,47,185,124,63,253,188,124,63,199,192,124,63,143,196,124,63,83,200,124,63,20,204,124,63,211,207,124,63,141,211,124,63,69,215,124,63,250,218,124,63,171,222,124,63,90,226,124,63,5,230,124,63,173,233,124,63,82,237,124,63,244,240,124,63,147,244,124,63,46,248,124,63,199,251,124,63,93,255,124,63,239,2,125,63,127,6,125,63,11,10,125,63,148,13,125,63,27,17,125,63,158,20,125,63,30,24,125,63,155,27,125,63,21,31,125,63,140,34,125,63,0,38,125,63,114,41,125,63,224,44,125,63,75,48,125,63,179,51,125,63,24,55,125,63,122,58,125,63,217,61,125,63,54,65,125,63,143,68,125,63,229,71,125,63,56,75,125,63,137,78,125,63,214,81,125,63,33,85,125,63,104,88,125,63,173,91,125,63,239,94,125,63,46,98,125,63,106,101,125,63,163,104,125,63,217,107,125,63,12,111,125,63,61,114,125,63,106,117,125,63,149,120,125,63,189,123,125,63,226,126,125,63,4,130,125,63,36,133,125,63,64,136,125,63,90,139,125,63,112,142,125,63,133,145,125,63,150,148,125,63,164,151,125,63,176,154,125,63,185,157,125,63,191,160,125,63,194,163,125,63,194,166,125,63,192,169,125,63,187,172,125,63,179,175,125,63,168,178,125,63,155,181,125,63,139,184,125,63,120,187,125,63,99,190,125,63,74,193,125,63,48,196,125,63,18,199,125,63,241,201,125,63,206,204,125,63,169,207,125,63,128,210,125,63,85,213,125,63,39,216,125,63,247,218,125,63,196,221,125,63,142,224,125,63,85,227,125,63,26,230,125,63,220,232,125,63,156,235,125,63,89,238,125,63,19,241,125,63,203,243,125,63,128,246,125,63,51,249,125,63,227,251,125,63,144,254,125,63,59,1,126,63,227,3,126,63,137,6,126,63,44,9,126,63,204,11,126,63,106,14,126,63,6,17,126,63,158,19,126,63,53,22,126,63,200,24,126,63,90,27,126,63,232,29,126,63,116,32,126,63,254,34,126,63,133,37,126,63,10,40,126,63,140,42,126,63,12,45,126,63,137,47,126,63,4,50,126,63,124,52,126,63,242,54,126,63,101,57,126,63,214,59,126,63,68,62,126,63,176,64,126,63,26,67,126,63,129,69,126,63,230,71,126,63,72,74,126,63,168,76,126,63,5,79,126,63,96,81,126,63,185,83,126,63,15,86,126,63,99,88,126,63,181,90,126,63,4,93,126,63,81,95,126,63,155,97,126,63,227,99,126,63,41,102,126,63,108,104,126,63,173,106,126,63,236,108,126,63,40,111,126,63,98,113,126,63,154,115,126,63,208,117,126,63,3,120,126,63,51,122,126,63,98,124,126,63,142,126,126,63,184,128,126,63,224,130,126,63,5,133,126,63,40,135,126,63,73,137,126,63,104,139,126,63,132,141,126,63,159,143,126,63,183,145,126,63,204,147,126,63,224,149,126,63,241,151,126,63,0,154,126,63,13,156,126,63,24,158,126,63,32,160,126,63,38,162,126,63,42,164,126,63,44,166,126,63,44,168,126,63,41,170,126,63,37,172,126,63,30,174,126,63,21,176,126,63,10,178,126,63,253,179,126,63,238,181,126,63,220,183,126,63,201,185,126,63,179,187,126,63,155,189,126,63,129,191,126,63,101,193,126,63,71,195,126,63,39,197,126,63,5,199,126,63,224,200,126,63,186,202,126,63,145,204,126,63,103,206,126,63,58,208,126,63,12,210,126,63,219,211,126,63,168,213,126,63,115,215,126,63,61,217,126,63,4,219,126,63,201,220,126,63,140,222,126,63,77,224,126,63,12,226,126,63,202,227,126,63,133,229,126,63,62,231,126,63,245,232,126,63,170,234,126,63,94,236,126,63,15,238,126,63,190,239,126,63,108,241,126,63,23,243,126,63,193,244,126,63,104,246,126,63,14,248,126,63,178,249,126,63,84,251,126,63,243,252,126,63,145,254,126,63,46,0,127,63,200,1,127,63,96,3,127,63,247,4,127,63,139,6,127,63,30,8,127,63,175,9,127,63,62,11,127,63,203,12,127,63,86,14,127,63,223,15,127,63,103,17,127,63,237,18,127,63,112,20,127,63,242,21,127,63,115,23,127,63,241,24,127,63,110,26,127,63,233,27,127,63,98,29,127,63,217,30,127,63,78,32,127,63,194,33,127,63,52,35,127,63,164,36,127,63,18,38,127,63,127,39,127,63,234,40,127,63,83,42,127,63,186,43,127,63,32,45,127,63,131,46,127,63,230,47,127,63,70,49,127,63,165,50,127,63,2,52,127,63,93,53,127,63,182,54,127,63,14,56,127,63,100,57,127,63,185,58,127,63,12,60,127,63,93,61,127,63,172,62,127,63,250,63,127,63,70,65,127,63,145,66,127,63,217,67,127,63,33,69,127,63,102,70,127,63,170,71,127,63,236,72,127,63,45,74,127,63,108,75,127,63,169,76,127,63,229,77,127,63,31,79,127,63,88,80,127,63,143,81,127,63,196,82,127,63,248,83,127,63,42,85,127,63,91,86,127,63,138,87,127,63,184,88,127,63,228,89,127,63,14,91,127,63,55,92,127,63,94,93,127,63,132,94,127,63,169,95,127,63,203,96,127,63,237,97,127,63,12,99,127,63,42,100,127,63,71,101,127,63,98,102,127,63,124,103,127,63,148,104,127,63,171,105,127,63,192,106,127,63,212,107,127,63,230,108,127,63,247,109,127,63,6,111,127,63,20,112,127,63,33,113,127,63,44,114,127,63,53,115,127,63,61,116,127,63,68,117,127,63,73,118,127,63,77,119,127,63,79,120,127,63,80,121,127,63,80,122,127,63,78,123,127,63,75,124,127,63,70,125,127,63,64,126,127,63,57,127,127,63,48,128,127,63,38,129,127,63,27,130,127,63,14,131,127,63,0,132,127,63,240,132,127,63,223,133,127,63,205,134,127,63,185,135,127,63,164,136,127,63,142,137,127,63,118,138,127,63,93,139,127,63,67,140,127,63,40,141,127,63,11,142,127,63,237,142,127,63,205,143,127,63,173,144,127,63,139,145,127,63,103,146,127,63,67,147,127,63,29,148,127,63,246,148,127,63,205,149,127,63,164,150,127,63,121,151,127,63,77,152,127,63,31,153,127,63,241,153,127,63,193,154,127,63,144,155,127,63,93,156,127,63,42,157,127,63,245,157,127,63,191,158,127,63,136,159,127,63,79,160,127,63,22,161,127,63,219,161,127,63,159,162,127,63,98,163,127,63,36,164,127,63,228,164,127,63,163,165,127,63,98,166,127,63,31,167,127,63,219,167,127,63,149,168,127,63,79,169,127,63,7,170,127,63,190,170,127,63,117,171,127,63,42,172,127,63,221,172,127,63,144,173,127,63,66,174,127,63,242,174,127,63,162,175,127,63,80,176,127,63,253,176,127,63,169,177,127,63,85,178,127,63,254,178,127,63,167,179,127,63,79,180,127,63,246,180,127,63,156,181,127,63,64,182,127,63,228,182,127,63,134,183,127,63,40,184,127,63,200,184,127,63,103,185,127,63,6,186,127,63,163,186,127,63,63,187,127,63,219,187,127,63,117,188,127,63,14,189,127,63,166,189,127,63,61,190,127,63,212,190,127,63,105,191,127,63,253,191,127,63,144,192,127,63,34,193,127,63,180,193,127,63,68,194,127,63,211,194,127,63,98,195,127,63,239,195,127,63,123,196,127,63,7,197,127,63,145,197,127,63,27,198,127,63,163,198,127,63,43,199,127,63,178,199,127,63,56,200,127,63,189,200,127,63,65,201,127,63,196,201,127,63,70,202,127,63,199,202,127,63,71,203,127,63,199,203,127,63,69,204,127,63,195,204,127,63,64,205,127,63,187,205,127,63,54,206,127,63,177,206,127,63,42,207,127,63,162,207,127,63,26,208,127,63,144,208,127,63,6,209,127,63,123,209,127,63,239,209,127,63,98,210,127,63,213,210,127,63,70,211,127,63,183,211,127,63,39,212,127,63,150,212,127,63,4,213,127,63,114,213,127,63],"i8",O3,_.GLOBAL_BASE+541176),C3([222,213,127,63,74,214,127,63,181,214,127,63,32,215,127,63,137,215,127,63,242,215,127,63,89,216,127,63,192,216,127,63,39,217,127,63,140,217,127,63,241,217,127,63,85,218,127,63,184,218,127,63,27,219,127,63,124,219,127,63,221,219,127,63,61,220,127,63,157,220,127,63,251,220,127,63,89,221,127,63,183,221,127,63,19,222,127,63,111,222,127,63,202,222,127,63,36,223,127,63,126,223,127,63,215,223,127,63,47,224,127,63,134,224,127,63,221,224,127,63,51,225,127,63,137,225,127,63,221,225,127,63,49,226,127,63,133,226,127,63,215,226,127,63,41,227,127,63,122,227,127,63,203,227,127,63,27,228,127,63,106,228,127,63,185,228,127,63,7,229,127,63,84,229,127,63,161,229,127,63,237,229,127,63,56,230,127,63,131,230,127,63,205,230,127,63,23,231,127,63,96,231,127,63,168,231,127,63,239,231,127,63,54,232,127,63,125,232,127,63,195,232,127,63,8,233,127,63,76,233,127,63,144,233,127,63,212,233,127,63,23,234,127,63,89,234,127,63,154,234,127,63,219,234,127,63,28,235,127,63,92,235,127,63,155,235,127,63,218,235,127,63,24,236,127,63,86,236,127,63,147,236,127,63,207,236,127,63,11,237,127,63,71,237,127,63,130,237,127,63,188,237,127,63,246,237,127,63,47,238,127,63,104,238,127,63,160,238,127,63,216,238,127,63,15,239,127,63,69,239,127,63,123,239,127,63,177,239,127,63,230,239,127,63,27,240,127,63,79,240,127,63,130,240,127,63,182,240,127,63,232,240,127,63,26,241,127,63,76,241,127,63,125,241,127,63,174,241,127,63,222,241,127,63,14,242,127,63,61,242,127,63,108,242,127,63,154,242,127,63,200,242,127,63,245,242,127,63,34,243,127,63,79,243,127,63,123,243,127,63,166,243,127,63,209,243,127,63,252,243,127,63,38,244,127,63,80,244,127,63,121,244,127,63,162,244,127,63,203,244,127,63,243,244,127,63,27,245,127,63,66,245,127,63,105,245,127,63,143,245,127,63,181,245,127,63,219,245,127,63,0,246,127,63,37,246,127,63,73,246,127,63,109,246,127,63,145,246,127,63,180,246,127,63,215,246,127,63,250,246,127,63,28,247,127,63,62,247,127,63,95,247,127,63,128,247,127,63,160,247,127,63,193,247,127,63,225,247,127,63,0,248,127,63,31,248,127,63,62,248,127,63,93,248,127,63,123,248,127,63,152,248,127,63,182,248,127,63,211,248,127,63,240,248,127,63,12,249,127,63,40,249,127,63,68,249,127,63,95,249,127,63,122,249,127,63,149,249,127,63,175,249,127,63,202,249,127,63,227,249,127,63,253,249,127,63,22,250,127,63,47,250,127,63,71,250,127,63,96,250,127,63,120,250,127,63,143,250,127,63,166,250,127,63,190,250,127,63,212,250,127,63,235,250,127,63,1,251,127,63,23,251,127,63,44,251,127,63,66,251,127,63,87,251,127,63,108,251,127,63,128,251,127,63,148,251,127,63,168,251,127,63,188,251,127,63,208,251,127,63,227,251,127,63,246,251,127,63,8,252,127,63,27,252,127,63,45,252,127,63,63,252,127,63,81,252,127,63,98,252,127,63,115,252,127,63,132,252,127,63,149,252,127,63,165,252,127,63,182,252,127,63,198,252,127,63,213,252,127,63,229,252,127,63,244,252,127,63,3,253,127,63,18,253,127,63,33,253,127,63,47,253,127,63,62,253,127,63,76,253,127,63,89,253,127,63,103,253,127,63,116,253,127,63,130,253,127,63,143,253,127,63,155,253,127,63,168,253,127,63,181,253,127,63,193,253,127,63,205,253,127,63,217,253,127,63,228,253,127,63,240,253,127,63,251,253,127,63,6,254,127,63,17,254,127,63,28,254,127,63,38,254,127,63,49,254,127,63,59,254,127,63,69,254,127,63,79,254,127,63,89,254,127,63,98,254,127,63,108,254,127,63,117,254,127,63,126,254,127,63,135,254,127,63,144,254,127,63,152,254,127,63,161,254,127,63,169,254,127,63,177,254,127,63,185,254,127,63,193,254,127,63,201,254,127,63,208,254,127,63,216,254,127,63,223,254,127,63,230,254,127,63,237,254,127,63,244,254,127,63,251,254,127,63,2,255,127,63,8,255,127,63,14,255,127,63,21,255,127,63,27,255,127,63,33,255,127,63,39,255,127,63,45,255,127,63,50,255,127,63,56,255,127,63,61,255,127,63,67,255,127,63,72,255,127,63,77,255,127,63,82,255,127,63,87,255,127,63,92,255,127,63,96,255,127,63,101,255,127,63,105,255,127,63,110,255,127,63,114,255,127,63,118,255,127,63,122,255,127,63,126,255,127,63,130,255,127,63,134,255,127,63,138,255,127,63,142,255,127,63,145,255,127,63,149,255,127,63,152,255,127,63,155,255,127,63,159,255,127,63,162,255,127,63,165,255,127,63,168,255,127,63,171,255,127,63,174,255,127,63,176,255,127,63,179,255,127,63,182,255,127,63,184,255,127,63,187,255,127,63,189,255,127,63,192,255,127,63,194,255,127,63,196,255,127,63,198,255,127,63,201,255,127,63,203,255,127,63,205,255,127,63,207,255,127,63,209,255,127,63,210,255,127,63,212,255,127,63,214,255,127,63,216,255,127,63,217,255,127,63,219,255,127,63,220,255,127,63,222,255,127,63,223,255,127,63,225,255,127,63,226,255,127,63,227,255,127,63,229,255,127,63,230,255,127,63,231,255,127,63,232,255,127,63,233,255,127,63,234,255,127,63,235,255,127,63,236,255,127,63,237,255,127,63,238,255,127,63,239,255,127,63,240,255,127,63,241,255,127,63,241,255,127,63,242,255,127,63,243,255,127,63,244,255,127,63,244,255,127,63,245,255,127,63,246,255,127,63,246,255,127,63,247,255,127,63,247,255,127,63,248,255,127,63,248,255,127,63,249,255,127,63,249,255,127,63,250,255,127,63,250,255,127,63,250,255,127,63,251,255,127,63,251,255,127,63,251,255,127,63,252,255,127,63,252,255,127,63,252,255,127,63,253,255,127,63,253,255,127,63,253,255,127,63,253,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,69,78,67,79,68,69,82,0,79,103,103,86,111,114,98,105,115,69,110,99,111,100,101,114,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",O3,_.GLOBAL_BASE+551416);var bt=_.alignMemory(C3(12,"i8",Yo),8);t4(bt%8==0);function dC(r){j9[bt]=j9[r],j9[bt+1]=j9[r+1],j9[bt+2]=j9[r+2],j9[bt+3]=j9[r+3]}function Br(r){j9[bt]=j9[r],j9[bt+1]=j9[r+1],j9[bt+2]=j9[r+2],j9[bt+3]=j9[r+3],j9[bt+4]=j9[r+4],j9[bt+5]=j9[r+5],j9[bt+6]=j9[r+6],j9[bt+7]=j9[r+7]}var ir=uC,Xa=Z$,jo=0;function Xo(r){return N9[jo>>2]=r,r}var T2={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _B(r){switch(r){case 30:return $C;case 85:return Xr/$C;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return Xo(T2.EINVAL),-1}n._memset=AS;var xB=!0;n._strlen=nS,n._strcat=oS,n._bitshift64Shl=gS;function Sk(){n.abort()}n._i64Add=sS;var bk=H4,Dk={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},On={ttys:[],init:function(){},shutdown:function(){},register:function(r,l){On.ttys[r]={input:[],output:[],ops:l},k.registerDevice(r,On.stream_ops)},stream_ops:{open:function(r){var l=On.ttys[r.node.rdev];if(!l)throw new k.ErrnoError(T2.ENODEV);r.tty=l,r.seekable=!1},close:function(r){r.tty.ops.flush(r.tty)},flush:function(r){r.tty.ops.flush(r.tty)},read:function(r,l,u,f,Y){if(!r.tty||!r.tty.ops.get_char)throw new k.ErrnoError(T2.ENXIO);for(var e=0,X0=0;X00?l=f.slice(0,Y).toString("utf-8"):l=null}else typeof window<"u"&&typeof window.prompt=="function"?(l=window.prompt("Input: "),l!==null&&(l+=` +`)});var H=void 0,P=void 0;n.read=function(l,u){l=P.normalize(l);var f=H.readFileSync(l);return!f&&l!=P.resolve(l)&&(l=path.join(__dirname,"..","src",l),f=H.readFileSync(l)),f&&!u&&(f=f.toString()),f},n.readBinary=function(l){return n.read(l,!0)},n.load=function(l){W0(read(l))},n.thisProgram||(process.argv.length>1?n.thisProgram=process.argv[1].replace(/\\/g,"/"):n.thisProgram="unknown-program"),n.arguments=process.argv.slice(2),typeof module<"u"&&n!=null,process.on("uncaughtException",function(r){if(!(r instanceof eA))throw r}),n.inspect=function(){return"[Emscripten Module object]"}}else if(O)n.print||(n.print=print),typeof printErr<"u"&&(n.printErr=printErr),typeof read<"u"?n.read=read:n.read=function(){throw"no read() available (jsc?)"},n.readBinary=function(l){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(l));var u=read(l,"binary");return t4(typeof u=="object"),u},typeof scriptArgs<"u"?n.arguments=scriptArgs:typeof arguments<"u"&&(n.arguments=arguments);else if(c||p){if(n.read=function(l){var u=new XMLHttpRequest;return u.open("GET",l,!1),u.send(null),u.responseText},typeof arguments<"u"&&(n.arguments=arguments),typeof console<"u")n.print||(n.print=function(l){console.log(l)}),n.printErr||(n.printErr=function(l){console.log(l)});else{var U=!1;n.print||(n.print=U&&typeof dump<"u"?function(r){dump(r)}:function(r){})}p&&(n.load=importScripts),typeof n.setWindowTitle>"u"&&(n.setWindowTitle=function(r){document.title=r})}else throw"Unknown runtime environment. Where are we?";function W0(r){eval.call(null,r)}!n.load&&n.read&&(n.load=function(l){W0(n.read(l))}),n.print||(n.print=function(){}),n.printErr||(n.printErr=n.print),n.arguments||(n.arguments=[]),n.thisProgram||(n.thisProgram="./this.program"),n.print=n.print,n.printErr=n.printErr,n.preRun=[],n.postRun=[];for(var A in i)i.hasOwnProperty(A)&&(n[A]=i[A]);var _={setTempRet0:function(r){w6=r},getTempRet0:function(){return w6},stackSave:function(){return v7},stackRestore:function(r){v7=r},getNativeTypeSize:function(r){switch(r){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(r[r.length-1]==="*")return _.QUANTUM_SIZE;if(r[0]==="i"){var l=parseInt(r.substr(1));return t4(l%8===0),l/8}else return 0}}},getNativeFieldSize:function(r){return Math.max(_.getNativeTypeSize(r),_.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(r,l){return l==="double"||l==="i64"?r&7&&(t4((r&7)===4),r+=4):t4((r&3)===0),r},getAlignSize:function(r,l,u){return!u&&(r=="i64"||r=="double")?8:r?Math.min(l||(r?_.getNativeFieldSize(r):0),_.QUANTUM_SIZE):Math.min(l,8)},dynCall:function(r,l,u){return u&&u.length?(u.splice||(u=Array.prototype.slice.call(u)),u.splice(0,0,l),n["dynCall_"+r].apply(null,u)):n["dynCall_"+r].call(null,l)},functionPointers:[],addFunction:function(r){for(var l=0;l<_.functionPointers.length;l++)if(!_.functionPointers[l])return _.functionPointers[l]=r,2*(1+l);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(r){_.functionPointers[(r-2)/2]=null},warnOnce:function(r){_.warnOnce.shown||(_.warnOnce.shown={}),_.warnOnce.shown[r]||(_.warnOnce.shown[r]=1,n.printErr(r))},funcWrappers:{},getFuncWrapper:function(r,l){t4(l),_.funcWrappers[l]||(_.funcWrappers[l]={});var u=_.funcWrappers[l];return u[r]||(u[r]=function(){return _.dynCall(l,r,arguments)}),u[r]},getCompilerSetting:function(r){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(r){var l=v7;return v7=v7+r|0,v7=v7+15&-16,l},staticAlloc:function(r){var l=jr;return jr=jr+r|0,jr=jr+15&-16,l},dynamicAlloc:function(r){var l=P7;if(P7=P7+r|0,P7=P7+15&-16,P7>=Ko){var u=lC();if(!u)return P7=l,0}return l},alignMemory:function(r,l){var u=r=Math.ceil(r/(l||16))*(l||16);return u},makeBigInt:function(r,l,u){var f=u?+(r>>>0)+ +(l>>>0)*4294967296:+(r>>>0)+ +(l|0)*4294967296;return f},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};n.Runtime=_;var e0=0,i0=!1,a1=0,_1=0,f1,C2,u2,I2,K2,J2,A0,C5,p3,w3,m6,v3,x6,u9,P3,w6,Me,Wr,er,Ka,Ho,Op,F$,aC,vk;function t4(r,l){r||es("Assertion failed: "+l)}var kk=this;function AC(r){var l=n["_"+r];if(!l)try{l=void("_"+r)}catch{}return t4(l,"Cannot call unknown function "+r+" (perhaps LLVM optimizations or closure removed it?)"),l}var T$,Wa;(function(){var r={stackSave:function(){_.stackSave()},stackRestore:function(){_.stackRestore()},arrayToC:function(X0){var r1=_.stackAlloc(X0.length);return ja(X0,r1),r1},stringToC:function(X0){var r1=0;return X0!=null&&X0!==0&&(r1=_.stackAlloc((X0.length<<2)+1),Zo(X0,r1)),r1}},l={string:r.stringToC,array:r.arrayToC};Wa=function(r1,x2,s,l1,C){var k5=AC(r1),w2=[],P5=0;if(l1)for(var G9=0;G9>0]=l;break;case"i8":j9[r>>0]=l;break;case"i16":Zr[r>>1]=l;break;case"i32":N9[r>>2]=l;break;case"i64":u9=[l>>>0,(v3=l,+Z$(v3)>=1?v3>0?(Gi(+H4(v3/4294967296),4294967295)|0)>>>0:~~+v8((v3-+(~~v3>>>0))/4294967296)>>>0:0)],N9[r>>2]=u9[0],N9[r+4>>2]=u9[1];break;case"float":X$[r>>2]=l;break;case"double":P$[r>>3]=l;break;default:es("invalid type for setValue: "+u)}}n.setValue=vu;function Er(r,l,u){switch(l=l||"i8",l.charAt(l.length-1)==="*"&&(l="i32"),l){case"i1":return j9[r>>0];case"i8":return j9[r>>0];case"i16":return Zr[r>>1];case"i32":return N9[r>>2];case"i64":return N9[r>>2];case"float":return X$[r>>2];case"double":return P$[r>>3];default:es("invalid type for setValue: "+l)}return null}n.getValue=Er;var Za=0,qp=1,Yo=2,ku=3,O3=4;n.ALLOC_NORMAL=Za,n.ALLOC_STACK=qp,n.ALLOC_STATIC=Yo,n.ALLOC_DYNAMIC=ku,n.ALLOC_NONE=O3;function C3(r,l,u,f){var Y,e;typeof r=="number"?(Y=!0,e=r):(Y=!1,e=r.length);var X0=typeof l=="string"?l:null,r1;if(u==O3?r1=f:r1=[Ru,_.stackAlloc,_.staticAlloc,_.dynamicAlloc][u===void 0?Yo:u](Math.max(e,X0?1:l.length)),Y){var f=r1,x2;for(t4((r1&3)==0),x2=r1+(e&-4);f>2]=0;for(x2=r1+e;f>0]=0;return r1}if(X0==="i8")return r.subarray||r.slice?k7.set(r,r1):k7.set(new Uint8Array(r),r1),r1;for(var s=0,l1,C,k5;s>0],u|=f,!(f==0&&!l||(Y++,l&&Y==l)););l||(l=Y);var e="";if(u<128){for(var X0=1024,r1;l>0;)r1=String.fromCharCode.apply(String,k7.subarray(r,r+Math.min(l,X0))),e=e?e+r1:r1,r+=X0,l-=X0;return e}return n.UTF8ToString(r)}n.Pointer_stringify=N$;function G$(r){for(var l="";;){var u=j9[r++>>0];if(!u)return l;l+=String.fromCharCode(u)}}n.AsciiToString=G$;function mB(r,l){return K$(r,l,!1)}n.stringToAscii=mB;function Vo(r,l){for(var u,f,Y,e,X0,r1,x2="";;){if(u=r[l++],!u)return x2;if(!(u&128)){x2+=String.fromCharCode(u);continue}if(f=r[l++]&63,(u&224)==192){x2+=String.fromCharCode((u&31)<<6|f);continue}if(Y=r[l++]&63,(u&240)==224?u=(u&15)<<12|f<<6|Y:(e=r[l++]&63,(u&248)==240?u=(u&7)<<18|f<<12|Y<<6|e:(X0=r[l++]&63,(u&252)==248?u=(u&3)<<24|f<<18|Y<<12|e<<6|X0:(r1=r[l++]&63,u=(u&1)<<30|f<<24|Y<<18|e<<12|X0<<6|r1))),u<65536)x2+=String.fromCharCode(u);else{var s=u-65536;x2+=String.fromCharCode(55296|s>>10,56320|s&1023)}}}n.UTF8ArrayToString=Vo;function Hp(r){return Vo(k7,r)}n.UTF8ToString=Hp;function Gn(r,l,u,f){if(!(f>0))return 0;for(var Y=u,e=u+f-1,X0=0;X0=55296&&r1<=57343&&(r1=65536+((r1&1023)<<10)|r.charCodeAt(++X0)&1023),r1<=127){if(u>=e)break;l[u++]=r1}else if(r1<=2047){if(u+1>=e)break;l[u++]=192|r1>>6,l[u++]=128|r1&63}else if(r1<=65535){if(u+2>=e)break;l[u++]=224|r1>>12,l[u++]=128|r1>>6&63,l[u++]=128|r1&63}else if(r1<=2097151){if(u+3>=e)break;l[u++]=240|r1>>18,l[u++]=128|r1>>12&63,l[u++]=128|r1>>6&63,l[u++]=128|r1&63}else if(r1<=67108863){if(u+4>=e)break;l[u++]=248|r1>>24,l[u++]=128|r1>>18&63,l[u++]=128|r1>>12&63,l[u++]=128|r1>>6&63,l[u++]=128|r1&63}else{if(u+5>=e)break;l[u++]=252|r1>>30,l[u++]=128|r1>>24&63,l[u++]=128|r1>>18&63,l[u++]=128|r1>>12&63,l[u++]=128|r1>>6&63,l[u++]=128|r1&63}}return l[u]=0,u-Y}n.stringToUTF8Array=Gn;function Yp(r,l,u){return Gn(r,k7,l,u)}n.stringToUTF8=Yp;function Jo(r){for(var l=0,u=0;u=55296&&f<=57343&&(f=65536+((f&1023)<<10)|r.charCodeAt(++u)&1023),f<=127?++l:f<=2047?l+=2:f<=65535?l+=3:f<=2097151?l+=4:f<=67108863?l+=5:l+=6}return l}n.lengthBytesUTF8=Jo;function Vp(r){for(var l=0,u="";;){var f=Zr[r+l*2>>1];if(f==0)return u;++l,u+=String.fromCharCode(f)}}n.UTF16ToString=Vp;function pB(r,l,u){if(u===void 0&&(u=2147483647),u<2)return 0;u-=2;for(var f=l,Y=u>1]=X0,l+=2}return Zr[l>>1]=0,l-f}n.stringToUTF16=pB;function EB(r){return r.length*2}n.lengthBytesUTF16=EB;function CB(r){for(var l=0,u="";;){var f=N9[r+l*4>>2];if(f==0)return u;if(++l,f>=65536){var Y=f-65536;u+=String.fromCharCode(55296|Y>>10,56320|Y&1023)}else u+=String.fromCharCode(f)}}n.UTF32ToString=CB;function BB(r,l,u){if(u===void 0&&(u=2147483647),u<4)return 0;for(var f=l,Y=f+u-4,e=0;e=55296&&X0<=57343){var r1=r.charCodeAt(++e);X0=65536+((X0&1023)<<10)|r1&1023}if(N9[l>>2]=X0,l+=4,l+4>Y)break}return N9[l>>2]=0,l-f}n.stringToUTF32=BB;function QB(r){for(var l=0,u=0;u=55296&&f<=57343&&++u,l+=4}return l}n.lengthBytesUTF32=QB;function yB(r){var l=!!n.___cxa_demangle;if(l)try{var u=Ru(r.length);Zo(r.substr(1),u);var f=Ru(4),Y=n.___cxa_demangle(u,0,0,f);if(Er(f,"i32")===0&&Y)return N$(Y)}catch{}finally{u&&hC(u),f&&hC(f),Y&&hC(Y)}var e=3,X0={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},r1=[],x2=!0;function s(w2){w2&&n.print(w2),n.print(r);for(var P5="",G9=0;G9"}else K9=te;e:for(;e0;){var Qr=r[e++];if(Qr in X0)ye.push(X0[Qr]);else switch(Qr){case"P":ye.push(C(!0,1,!0)[0]+"*");break;case"R":ye.push(C(!0,1,!0)[0]+"&");break;case"L":{e++;var tl=r.indexOf("E",e),It=tl-e;ye.push(r.substr(e,It)),e+=It+2;break}case"A":{var It=parseInt(r.substr(e));if(e+=It.toString().length,r[e]!=="_")throw"?";e++,ye.push(C(!0,1,!0)[0]+" ["+It+"]");break}case"E":break e;default:K9+="?"+Qr;break e}}return!G9&&ye.length===1&&ye[0]==="void"&&(ye=[]),w2?(K9&&ye.push(K9+"?"),ye):K9+Dt()}var k5=r;try{if(r=="Object._main"||r=="_main")return"main()";if(typeof r=="number"&&(r=N$(r)),r[0]!=="_"||r[1]!=="_"||r[2]!=="Z")return r;switch(r[3]){case"n":return"operator new()";case"d":return"operator delete()"}k5=C()}catch{k5+="?"}return k5.indexOf("?")>=0&&!l&&_.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),k5}function wB(r){return r.replace(/__Z[\w\d_]+/g,function(l){var u=yB(l);return l===u?l:l+" ["+u+"]"})}function vB(){var r=new Error;if(!r.stack){try{throw new Error(0)}catch(l){r=l}if(!r.stack)return"(no stack trace available)"}return r.stack.toString()}function Jp(){return wB(vB())}n.stackTrace=Jp;var $C=4096;function Su(r){return r%4096>0&&(r+=4096-r%4096),r}var zp,j9,k7,Zr,U$,N9,j$,X$,P$,zo=0,jr=0,O$=!1,bu=0,v7=0,q$=0,H$=0,P7=0;function lC(){es("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+Ko+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}for(var Kp=n.TOTAL_STACK||5242880,Ko=n.TOTAL_MEMORY||16777216,Xr=64*1024;Xr0;){var l=r.shift();if(typeof l=="function"){l();continue}var u=l.func;typeof u=="number"?l.arg===void 0?_.dynCall("v",u):_.dynCall("vi",u,[l.arg]):u(l.arg===void 0?null:l.arg)}}var Wp=[],V$=[],Du=[],J$=[],_u=[],xu=!1,Un=!1;function Lu(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Ni(n.preRun.shift());Y$(Wp)}function Wo(){xu||(xu=!0,Y$(V$))}function kB(){Y$(Du)}function Zp(){Y$(J$),Un=!0}function z$(){if(n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)cC(n.postRun.shift());Y$(_u)}function Ni(r){Wp.unshift(r)}n.addOnPreRun=n.addOnPreRun=Ni;function SB(r){V$.unshift(r)}n.addOnInit=n.addOnInit=SB;function bB(r){Du.unshift(r)}n.addOnPreMain=n.addOnPreMain=bB;function DB(r){J$.unshift(r)}n.addOnExit=n.addOnExit=DB;function cC(r){_u.unshift(r)}n.addOnPostRun=n.addOnPostRun=cC;function en(r,l,u){var f=u>0?u:Jo(r)+1,Y=new Array(f),e=Gn(r,Y,0,Y.length);return l&&(Y.length=e),Y}n.intArrayFromString=en;function gC(r){for(var l=[],u=0;u255&&(f&=255),l.push(String.fromCharCode(f))}return l.join("")}n.intArrayToString=gC;function Zo(r,l,u){for(var f=en(r,u),Y=0;Y>0]=e,Y=Y+1}}n.writeStringToMemory=Zo;function ja(r,l){for(var u=0;u>0]=r[u]}n.writeArrayToMemory=ja;function K$(r,l,u){for(var f=0;f>0]=r.charCodeAt(f);u||(j9[l>>0]=0)}n.writeAsciiToMemory=K$;function jp(r,l,u){return r>=0?r:l<=32?2*Math.abs(1<=f&&(l<=32||r>f)&&(r=-2*f+r),r}(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function(l,u){var f=l>>>16,Y=l&65535,e=u>>>16,X0=u&65535;return Y*X0+(f*X0+Y*e<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(r){r=r>>>0;for(var l=0;l<32;l++)if(r&1<<31-l)return l;return 32}),Math.clz32=Math.clz32;var Z$=Math.abs,uC=Math.cos,tr=Math.sin,R0=Math.tan,t1=Math.acos,y1=Math.asin,_2=Math.atan,t6=Math.atan2,E9=Math.exp,X9=Math.log,p6=Math.sqrt,v8=Math.ceil,H4=Math.floor,rt=Math.pow,M4=Math.imul,C9=Math.fround,Gi=Math.min,q7=Math.clz32,k8=0,Ui=null,H7=null;function Y7(r){return r}function Pn(r){k8++,n.monitorRunDependencies&&n.monitorRunDependencies(k8)}n.addRunDependency=Pn;function Cr(r){if(k8--,n.monitorRunDependencies&&n.monitorRunDependencies(k8),k8==0&&(Ui!==null&&(clearInterval(Ui),Ui=null),H7)){var l=H7;H7=null,l()}}n.removeRunDependency=Cr,n.preloadedImages={},n.preloadedAudios={};var Xp=null,Mu=[];zo=8,jr=zo+553552,V$.push(),C3([0,0,0,0,1,0,0,0,3,0,0,0,7,0,0,0,15,0,0,0,31,0,0,0,63,0,0,0,127,0,0,0,255,0,0,0,255,1,0,0,255,3,0,0,255,7,0,0,255,15,0,0,255,31,0,0,255,63,0,0,255,127,0,0,255,255,0,0,255,255,1,0,255,255,3,0,255,255,7,0,255,255,15,0,255,255,31,0,255,255,63,0,255,255,127,0,255,255,255,0,255,255,255,1,255,255,255,3,255,255,255,7,255,255,255,15,255,255,255,31,255,255,255,63,255,255,255,127,255,255,255,255,0,0,0,0,0,0,0,0,183,29,193,4,110,59,130,9,217,38,67,13,220,118,4,19,107,107,197,23,178,77,134,26,5,80,71,30,184,237,8,38,15,240,201,34,214,214,138,47,97,203,75,43,100,155,12,53,211,134,205,49,10,160,142,60,189,189,79,56,112,219,17,76,199,198,208,72,30,224,147,69,169,253,82,65,172,173,21,95,27,176,212,91,194,150,151,86,117,139,86,82,200,54,25,106,127,43,216,110,166,13,155,99,17,16,90,103,20,64,29,121,163,93,220,125,122,123,159,112,205,102,94,116,224,182,35,152,87,171,226,156,142,141,161,145,57,144,96,149,60,192,39,139,139,221,230,143,82,251,165,130,229,230,100,134,88,91,43,190,239,70,234,186,54,96,169,183,129,125,104,179,132,45,47,173,51,48,238,169,234,22,173,164,93,11,108,160,144,109,50,212,39,112,243,208,254,86,176,221,73,75,113,217,76,27,54,199,251,6,247,195,34,32,180,206,149,61,117,202,40,128,58,242,159,157,251,246,70,187,184,251,241,166,121,255,244,246,62,225,67,235,255,229,154,205,188,232,45,208,125,236,119,112,134,52,192,109,71,48,25,75,4,61,174,86,197,57,171,6,130,39,28,27,67,35,197,61,0,46,114,32,193,42,207,157,142,18,120,128,79,22,161,166,12,27,22,187,205,31,19,235,138,1,164,246,75,5,125,208,8,8,202,205,201,12,7,171,151,120,176,182,86,124,105,144,21,113,222,141,212,117,219,221,147,107,108,192,82,111,181,230,17,98,2,251,208,102,191,70,159,94,8,91,94,90,209,125,29,87,102,96,220,83,99,48,155,77,212,45,90,73,13,11,25,68,186,22,216,64,151,198,165,172,32,219,100,168,249,253,39,165,78,224,230,161,75,176,161,191,252,173,96,187,37,139,35,182,146,150,226,178,47,43,173,138,152,54,108,142,65,16,47,131,246,13,238,135,243,93,169,153,68,64,104,157,157,102,43,144,42,123,234,148,231,29,180,224,80,0,117,228,137,38,54,233,62,59,247,237,59,107,176,243,140,118,113,247,85,80,50,250,226,77,243,254,95,240,188,198,232,237,125,194,49,203,62,207,134,214,255,203,131,134,184,213,52,155,121,209,237,189,58,220,90,160,251,216,238,224,12,105,89,253,205,109,128,219,142,96,55,198,79,100,50,150,8,122,133,139,201,126,92,173,138,115,235,176,75,119,86,13,4,79,225,16,197,75,56,54,134,70,143,43,71,66,138,123,0,92,61,102,193,88,228,64,130,85,83,93,67,81,158,59,29,37,41,38,220,33,240,0,159,44,71,29,94,40,66,77,25,54,245,80,216,50,44,118,155,63,155,107,90,59,38,214,21,3,145,203,212,7,72,237,151,10,255,240,86,14,250,160,17,16,77,189,208,20,148,155,147,25,35,134,82,29,14,86,47,241,185,75,238,245,96,109,173,248,215,112,108,252,210,32,43,226,101,61,234,230,188,27,169,235,11,6,104,239,182,187,39,215,1,166,230,211,216,128,165,222,111,157,100,218,106,205,35,196,221,208,226,192,4,246,161,205,179,235,96,201,126,141,62,189,201,144,255,185,16,182,188,180,167,171,125,176,162,251,58,174,21,230,251,170,204,192,184,167,123,221,121,163,198,96,54,155,113,125,247,159,168,91,180,146,31,70,117,150,26,22,50,136,173,11,243,140,116,45,176,129,195,48,113,133,153,144,138,93,46,141,75,89,247,171,8,84,64,182,201,80,69,230,142,78,242,251,79,74,43,221,12,71,156,192,205,67,33,125,130,123,150,96,67,127,79,70,0,114,248,91,193,118,253,11,134,104,74,22,71,108,147,48,4,97,36,45,197,101,233,75,155,17,94,86,90,21,135,112,25,24,48,109,216,28,53,61,159,2,130,32,94,6,91,6,29,11,236,27,220,15,81,166,147,55,230,187,82,51,63,157,17,62,136,128,208,58,141,208,151,36,58,205,86,32,227,235,21,45,84,246,212,41,121,38,169,197,206,59,104,193,23,29,43,204,160,0,234,200,165,80,173,214,18,77,108,210,203,107,47,223,124,118,238,219,193,203,161,227,118,214,96,231,175,240,35,234,24,237,226,238,29,189,165,240,170,160,100,244,115,134,39,249,196,155,230,253,9,253,184,137,190,224,121,141,103,198,58,128,208,219,251,132,213,139,188,154,98,150,125,158,187,176,62,147,12,173,255,151,177,16,176,175,6,13,113,171,223,43,50,166,104,54,243,162,109,102,180,188,218,123,117,184,3,93,54,181,180,64,247,177,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,88,105,112,104,46,79,114,103,32,108,105,98,86,111,114,98,105,115,32,73,32,50,48,49,53,48,49,48,53,32,40,226,155,132,226,155,132,226,155,132,226,155,132,41,0,0,0,0,1,0,0,0,4,0,0,0,3,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,76,194,0,0,80,194,0,0,84,194,0,0,88,194,0,0,92,194,0,0,96,194,0,0,100,194,0,0,104,194,0,0,108,194,0,0,112,194,0,0,116,194,0,0,120,194,0,0,124,194,0,0,128,194,0,0,130,194,0,0,132,194,0,0,134,194,0,0,136,194,0,0,138,194,0,0,140,194,0,0,142,194,0,0,144,194,0,0,146,194,0,0,148,194,0,0,150,194,0,0,152,194,0,0,154,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,164,194,0,0,166,194,0,0,168,194,0,0,170,194,0,0,172,194,0,0,174,194,0,0,176,194,0,0,176,194,0,0,178,194,0,0,178,194,0,0,180,194,0,0,182,194,0,0,182,194,0,0,184,194,0,0,186,194,0,0,188,194,0,0,190,194,0,0,192,194,0,0,192,194,0,0,194,194,0,0,196,194,0,0,196,194,0,0,198,194,0,0,198,194,0,0,200,194,0,0,200,194,0,0,202,194,0,0,204,194,0,0,206,194,0,0,208,194,0,0,212,194,0,0,214,194,0,0,214,194,0,0,214,194,0,0,214,194,0,0,210,194,0,0,206,194,0,0,204,194,0,0,202,194,0,0,198,194,0,0,196,194,0,0,192,194,0,0,190,194,0,0,190,194,0,0,192,194,0,0,194,194,0,0,192,194,0,0,190,194,0,0,186,194,0,0,180,194,0,0,160,194,0,0,140,194,0,0,72,194,0,0,32,194,0,0,240,193,0,0,240,193,0,0,240,193,0,0,240,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,248,63,0,0,0,0,0,0,4,64,0,0,0,0,0,0,18,64,0,0,0,0,0,0,33,64,0,0,0,0,0,128,48,64,0,0,0,4,107,244,52,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,248,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,4,64,0,0,0,0,0,0,18,64,0,0,0,0,0,0,33,64,0,0,0,4,107,244,52,66,62,180,228,51,9,145,243,51,139,178,1,52,60,32,10,52,35,26,19,52,96,169,28,52,167,215,38,52,75,175,49,52,80,59,61,52,112,135,73,52,35,160,86,52,184,146,100,52,85,109,115,52,136,159,129,52,252,11,138,52,147,4,147,52,105,146,156,52,50,191,166,52,63,149,177,52,147,31,189,52,228,105,201,52,173,128,214,52,54,113,228,52,166,73,243,52,136,140,1,53,192,247,9,53,6,239,18,53,118,123,28,53,192,166,38,53,55,123,49,53,218,3,61,53,94,76,73,53,59,97,86,53,185,79,100,53,252,37,115,53,138,121,129,53,134,227,137,53,124,217,146,53,133,100,156,53,82,142,166,53,51,97,177,53,37,232,188,53,220,46,201,53,206,65,214,53,65,46,228,53,87,2,243,53,143,102,1,54,79,207,9,54,245,195,18,54,152,77,28,54,232,117,38,54,50,71,49,54,116,204,60,54,94,17,73,54,101,34,86,54,206,12,100,54,184,222,114,54,151,83,129,54,28,187,137,54,114,174,146,54,175,54,156,54,129,93,166,54,53,45,177,54,199,176,188,54,228,243,200,54,1,3,214,54,96,235,227,54,30,187,242,54,162,64,1,55,235,166,9,55,241,152,18,55,201,31,28,55,30,69,38,55,61,19,49,55,30,149,60,55,111,214,72,55,162,227,85,55,247,201,99,55,137,151,114,55,175,45,129,55,190,146,137,55,116,131,146,55,230,8,156,55,190,44,166,55,71,249,176,55,121,121,188,55,254,184,200,55,71,196,213,55,146,168,227,55,248,115,242,55,192,26,1,56,147,126,9,56,249,109,18,56,6,242,27,56,98,20,38,56,86,223,48,56,216,93,60,56,146,155,72,56,242,164,85,56,51,135,99,56,110,80,114,56,211,7,129,56,107,106,137,56,130,88,146,56,42,219,155,56,9,252,165,56,104,197,176,56,59,66,188,56,41,126,200,56,160,133,213,56,217,101,227,56,232,44,242,56,233,244,0,57,70,86,9,57,14,67,18,57,81,196,27,57,181,227,37,57,127,171,48,57,162,38,60,57,197,96,72,57,83,102,85,57,131,68,99,57,104,9,114,57,1,226,128,57,36,66,137,57,157,45,146,57,123,173,155,57,99,203,165,57,153,145,176,57,13,11,188,57,102,67,200,57,11,71,213,57,50,35,227,57,237,229,241,57,29,207,0,58,5,46,9,58,48,24,18,58,169,150,27,58,21,179,37,58,183,119,48,58,124,239,59,58,10,38,72,58,199,39,85,58,230,1,99,58,120,194,113,58,59,188,128,58,233,25,137,58,198,2,146,58,219,127,155,58,203,154,165,58,216,93,176,58,239,211,187,58,179,8,200,58,136,8,213,58,159,224,226,58,7,159,241,58,92,169,0,59,208,5,9,59,94,237,17,59,15,105,27,59,132,130,37,59,253,67,48,59,103,184,59,59,97,235,71,59,77,233,84,59,93,191,98,59,156,123,113,59,127,150,128,59,186,241,136,59,249,215,145,59,71,82,155,59,65,106,165,59,39,42,176,59,226,156,187,59,18,206,199,59,23,202,212,59,32,158,226,59,53,88,241,59,166,131,0,60,167,221,8,60,152,194,17,60,130,59,27,60,1,82,37,60,84,16,48,60,97,129,59,60,200,176,71,60,229,170,84,60,232,124,98,60,212,52,113,60,207,112,128,60,150,201,136,60,58,173,145,60,192,36,155,60,197,57,165,60,133,246,175,60,229,101,187,60,130,147,199,60,185,139,212,60,180,91,226,60,121,17,241,60,251,93,0,61,137,181,8,61,223,151,17,61,2,14,27,61,141,33,37,61,185,220,47,61,109,74,59,61,64,118,71,61,145,108,84,61,133,58,98,61,34,238,112,61,42,75,128,61,127,161,136,61,136,130,145,61,72,247,154,61,88,9,165,61,242,194,175,61,248,46,187,61,3,89,199,61,109,77,212,61,92,25,226,61,209,202,240,61,91,56,0,62,119,141,8,62,51,109,17,62,144,224,26,62,39,241,36,62,46,169,47,62,135,19,59,62,202,59,71,62,77,46,84,62,55,248,97,62,132,167,112,62,143,37,128,62,115,121,136,62,226,87,145,62,220,201,154,62,249,216,164,62,109,143,175,62,27,248,186,62,149,30,199,62,51,15,212,62,23,215,225,62,61,132,240,62,198,18,0,63,114,101,8,63,147,66,17,63,43,179,26,63,206,192,36,63,177,117,47,63,178,220,58,63,101,1,71,63,29,240,83,63,251,181,97,63,251,96,112,63,0,0,128,63,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,120,194,0,0,120,194,0,0,130,194,0,0,146,194,0,0,138,194,0,0,136,194,0,0,136,194,0,0,134,194,0,0,140,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,150,194,0,0,158,194,0,0,158,194,0,0,160,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,84,194,0,0,116,194,0,0,132,194,0,0,132,194,0,0,136,194,0,0,134,194,0,0,140,194,0,0,152,194,0,0,152,194,0,0,144,194,0,0,146,194,0,0,150,194,0,0,152,194,0,0,156,194,0,0,158,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,24,194,0,0,32,194,0,0,40,194,0,0,56,194,0,0,64,194,0,0,84,194,0,0,92,194,0,0,120,194,0,0,130,194,0,0,104,194,0,0,96,194,0,0,96,194,0,0,116,194,0,0,112,194,0,0,130,194,0,0,134,194,0,0,138,194,0,0,142,194,0,0,154,194,0,0,154,194,0,0,156,194,0,0,160,194,0,0,164,194,0,0,168,194,0,0,176,194,0,0,186,194,0,0,196,194,0,0,212,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,208,193,0,0,216,193,0,0,232,193,0,0,0,194,0,0,24,194,0,0,64,194,0,0,80,194,0,0,80,194,0,0,72,194,0,0,64,194,0,0,64,194,0,0,76,194,0,0,80,194,0,0,88,194,0,0,112,194,0,0,134,194,0,0,134,194,0,0,132,194,0,0,136,194,0,0,138,194,0,0,146,194,0,0,146,194,0,0,152,194,0,0,160,194,0,0,162,194,0,0,162,194,0,0,170,194,0,0,170,194,0,0,172,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,136,193,0,0,152,193,0,0,160,193,0,0,176,193,0,0,208,193,0,0,224,193,0,0,248,193,0,0,32,194,0,0,60,194,0,0,28,194,0,0,28,194,0,0,32,194,0,0,40,194,0,0,44,194,0,0,60,194,0,0,76,194,0,0,100,194,0,0,80,194,0,0,92,194,0,0,92,194,0,0,112,194,0,0,104,194,0,0,120,194,0,0,124,194,0,0,140,194,0,0,134,194,0,0,138,194,0,0,144,194,0,0,146,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,166,194,0,0,174,194,0,0,180,194,0,0,188,194,0,0,196,194,0,0,208,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,32,193,0,0,48,193,0,0,112,193,0,0,152,193,0,0,200,193,0,0,240,193,0,0,8,194,0,0,248,193,0,0,240,193,0,0,248,193,0,0,232,193,0,0,0,194,0,0,12,194,0,0,40,194,0,0,64,194,0,0,40,194,0,0,48,194,0,0,56,194,0,0,72,194,0,0,72,194,0,0,76,194,0,0,80,194,0,0,108,194,0,0,88,194,0,0,92,194,0,0,92,194,0,0,104,194,0,0,120,194,0,0,124,194,0,0,132,194,0,0,144,194,0,0,146,194,0,0,152,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,160,194,0,0,162,194,0,0,168,194,0,0,176,194,0,0,180,194,0,0,188,194,0,0,196,194,0,0,202,194,0,0,212,194,0,0,220,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,134,194,0,0,134,194,0,0,134,194,0,0,152,194,0,0,144,194,0,0,142,194,0,0,148,194,0,0,152,194,0,0,152,194,0,0,150,194,0,0,156,194,0,0,158,194,0,0,158,194,0,0,162,194,0,0,166,194,0,0,172,194,0,0,178,194,0,0,186,194,0,0,194,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,64,194,0,0,76,194,0,0,92,194,0,0,108,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,134,194,0,0,132,194,0,0,136,194,0,0,138,194,0,0,140,194,0,0,148,194,0,0,158,194,0,0,154,194,0,0,154,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,164,194,0,0,168,194,0,0,172,194,0,0,176,194,0,0,182,194,0,0,190,194,0,0,200,194,0,0,216,194,0,0,232,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,20,194,0,0,20,194,0,0,36,194,0,0,48,194,0,0,64,194,0,0,76,194,0,0,104,194,0,0,120,194,0,0,112,194,0,0,100,194,0,0,108,194,0,0,108,194,0,0,112,194,0,0,124,194,0,0,130,194,0,0,144,194,0,0,142,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,154,194,0,0,152,194,0,0,156,194,0,0,162,194,0,0,162,194,0,0,160,194,0,0,166,194,0,0,172,194,0,0,182,194,0,0,192,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,240,193,0,0,0,194,0,0,0,194,0,0,4,194,0,0,12,194,0,0,36,194,0,0,68,194,0,0,72,194,0,0,68,194,0,0,60,194,0,0,64,194,0,0,64,194,0,0,80,194,0,0,76,194,0,0,100,194,0,0,130,194,0,0,116,194,0,0,108,194,0,0,116,194,0,0,128,194,0,0,138,194,0,0,140,194,0,0,148,194,0,0,154,194,0,0,154,194,0,0,156,194,0,0,162,194,0,0,168,194,0,0,170,194,0,0,174,194,0,0,180,194,0,0,184,194,0,0,192,194,0,0,200,194,0,0,214,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,160,193,0,0,168,193,0,0,184,193,0,0,216,193,0,0,240,193,0,0,12,194,0,0,16,194,0,0,36,194,0,0,56,194,0,0,48,194,0,0,40,194,0,0,32,194,0,0,36,194,0,0,36,194,0,0,44,194,0,0,64,194,0,0,92,194,0,0,84,194,0,0,80,194,0,0,84,194,0,0,96,194,0,0,108,194,0,0,104,194,0,0,112,194,0,0,134,194,0,0,132,194,0,0,138,194,0,0,142,194,0,0,144,194,0,0,150,194,0,0,158,194,0,0,162,194,0,0,168,194,0,0,174,194,0,0,180,194,0,0,186,194,0,0,194,194,0,0,202,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,48,193,0,0,64,193,0,0,64,193,0,0,112,193,0,0,128,193,0,0,160,193,0,0,184,193,0,0,240,193,0,0,20,194,0,0,8,194,0,0,4,194,0,0,8,194,0,0,248,193,0,0,0,194,0,0,0,194,0,0,24,194,0,0,60,194,0,0,48,194,0,0,36,194,0,0,32,194,0,0,60,194,0,0,68,194,0,0,56,194,0,0,56,194,0,0,104,194,0,0,72,194,0,0,72,194,0,0,88,194,0,0,104,194,0,0,120,194,0,0,128,194,0,0,134,194,0,0,134,194,0,0,140,194,0,0,144,194,0,0,152,194,0,0,158,194,0,0,166,194,0,0,174,194,0,0,182,194,0,0,192,194,0,0,200,194,0,0,208,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,124,194,0,0,128,194,0,0,132,194,0,0,134,194,0,0,132,194,0,0,136,194,0,0,150,194,0,0,144,194,0,0,152,194,0,0,150,194,0,0,152,194,0,0,156,194,0,0,158,194,0,0,164,194,0,0,168,194,0,0,170,194,0,0,180,194,0,0,188,194,0,0,202,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,112,194,0,0,112,194,0,0,116,194,0,0,124,194,0,0,132,194,0,0,142,194,0,0,136,194,0,0,140,194,0,0,140,194,0,0,142,194,0,0,144,194,0,0,144,194,0,0,150,194,0,0,162,194,0,0,156,194,0,0,158,194,0,0,164,194,0,0,166,194,0,0,172,194,0,0,180,194,0,0,194,194,0,0,206,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,88,194,0,0,92,194,0,0,100,194,0,0,96,194,0,0,100,194,0,0,92,194,0,0,116,194,0,0,130,194,0,0,112,194,0,0,112,194,0,0,120,194,0,0,124,194,0,0,124,194,0,0,132,194,0,0,136,194,0,0,148,194,0,0,146,194,0,0,150,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,160,194,0,0,164,194,0,0,170,194,0,0,180,194,0,0,192,194,0,0,202,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,64,194,0,0,76,194,0,0,100,194,0,0,76,194,0,0,68,194,0,0,72,194,0,0,76,194,0,0,84,194,0,0,88,194,0,0,108,194,0,0,132,194,0,0,112,194,0,0,120,194,0,0,134,194,0,0,134,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,152,194,0,0,156,194,0,0,162,194,0,0,170,194,0,0,176,194,0,0,188,194,0,0,194,194,0,0,208,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,28,194,0,0,36,194,0,0,40,194,0,0,40,194,0,0,28,194,0,0,24,194,0,0,36,194,0,0,44,194,0,0,80,194,0,0,48,194,0,0,32,194,0,0,28,194,0,0,20,194,0,0,20,194,0,0,32,194,0,0,60,194,0,0,88,194,0,0,72,194,0,0,64,194,0,0,72,194,0,0,92,194,0,0,116,194,0,0,108,194,0,0,120,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,138,194,0,0,138,194,0,0,146,194,0,0,148,194,0,0,148,194,0,0,150,194,0,0,154,194,0,0,158,194,0,0,164,194,0,0,174,194,0,0,182,194,0,0,190,194,0,0,200,194,0,0,216,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,224,193,0,0,208,193,0,0,192,193,0,0,176,193,0,0,160,193,0,0,160,193,0,0,184,193,0,0,232,193,0,0,240,193,0,0,248,193,0,0,224,193,0,0,216,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,12,194,0,0,32,194,0,0,4,194,0,0,0,194,0,0,232,193,0,0,240,193,0,0,240,193,0,0,240,193,0,0,20,194,0,0,52,194,0,0,36,194,0,0,20,194,0,0,24,194,0,0,52,194,0,0,60,194,0,0,60,194,0,0,64,194,0,0,84,194,0,0,68,194,0,0,64,194,0,0,72,194,0,0,68,194,0,0,68,194,0,0,76,194,0,0,80,194,0,0,104,194,0,0,96,194,0,0,100,194,0,0,96,194,0,0,112,194,0,0,116,194,0,0,120,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,156,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,212,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,200,194,0,0,190,194,0,0,182,194,0,0,174,194,0,0,166,194,0,0,160,194,0,0,156,194,0,0,152,194,0,0,156,194,0,0,156,194,0,0,162,194,0,0,166,194,0,0,170,194,0,0,172,194,0,0,170,194,0,0,172,194,0,0,174,194,0,0,180,194,0,0,194,194,0,0,214,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,162,194,0,0,154,194,0,0,146,194,0,0,140,194,0,0,134,194,0,0,134,194,0,0,136,194,0,0,150,194,0,0,146,194,0,0,140,194,0,0,138,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,158,194,0,0,168,194,0,0,166,194,0,0,168,194,0,0,172,194,0,0,176,194,0,0,178,194,0,0,178,194,0,0,186,194,0,0,196,194,0,0,210,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,152,194,0,0,142,194,0,0,136,194,0,0,136,194,0,0,130,194,0,0,124,194,0,0,124,194,0,0,120,194,0,0,120,194,0,0,128,194,0,0,130,194,0,0,128,194,0,0,116,194,0,0,120,194,0,0,124,194,0,0,128,194,0,0,132,194,0,0,136,194,0,0,146,194,0,0,146,194,0,0,148,194,0,0,150,194,0,0,152,194,0,0,162,194,0,0,166,194,0,0,170,194,0,0,176,194,0,0,178,194,0,0,184,194,0,0,190,194,0,0,200,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,160,194,0,0,150,194,0,0,142,194,0,0,136,194,0,0,130,194,0,0,124,194,0,0,120,194,0,0,116,194,0,0,116,194,0,0,116,194,0,0,116,194,0,0,108,194,0,0,96,194,0,0,100,194,0,0,84,194,0,0,72,194,0,0,104,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,80,194,0,0,84,194,0,0,88,194,0,0,104,194,0,0,134,194,0,0,124,194,0,0,134,194,0,0,136,194,0,0,144,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,162,194,0,0,164,194,0,0,170,194,0,0,178,194,0,0,180,194,0,0,186,194,0,0,194,194,0,0,202,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,130,194,0,0,116,194,0,0,108,194,0,0,100,194,0,0,96,194,0,0,92,194,0,0,92,194,0,0,96,194,0,0,96,194,0,0,100,194,0,0,92,194,0,0,84,194,0,0,80,194,0,0,60,194,0,0,48,194,0,0,48,194,0,0,72,194,0,0,48,194,0,0,36,194,0,0,28,194,0,0,28,194,0,0,40,194,0,0,32,194,0,0,56,194,0,0,76,194,0,0,68,194,0,0,72,194,0,0,84,194,0,0,88,194,0,0,124,194,0,0,112,194,0,0,116,194,0,0,120,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,140,194,0,0,146,194,0,0,148,194,0,0,150,194,0,0,152,194,0,0,150,194,0,0,158,194,0,0,170,194,0,0,178,194,0,0,182,194,0,0,192,194,0,0,204,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,80,194,0,0,72,194,0,0,68,194,0,0,68,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,68,194,0,0,72,194,0,0,72,194,0,0,68,194,0,0,56,194,0,0,44,194,0,0,28,194,0,0,12,194,0,0,4,194,0,0,24,194,0,0,16,194,0,0,0,194,0,0,232,193,0,0,0,194,0,0,0,194,0,0,0,194,0,0,12,194,0,0,48,194,0,0,28,194,0,0,24,194,0,0,24,194,0,0,56,194,0,0,72,194,0,0,52,194,0,0,56,194,0,0,84,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,88,194,0,0,88,194,0,0,84,194,0,0,84,194,0,0,96,194,0,0,100,194,0,0,108,194,0,0,132,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,158,194,0,0,166,194,0,0,170,194,0,0,180,194,0,0,194,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,172,194,0,0,160,194,0,0,150,194,0,0,150,194,0,0,158,194,0,0,160,194,0,0,158,194,0,0,160,194,0,0,162,194,0,0,164,194,0,0,176,194,0,0,190,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,176,194,0,0,166,194,0,0,158,194,0,0,156,194,0,0,150,194,0,0,142,194,0,0,134,194,0,0,136,194,0,0,146,194,0,0,146,194,0,0,144,194,0,0,146,194,0,0,150,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,202,194,0,0,192,194,0,0,180,194,0,0,172,194,0,0,162,194,0,0,154,194,0,0,146,194,0,0,138,194,0,0,132,194,0,0,116,194,0,0,120,194,0,0,132,194,0,0,128,194,0,0,120,194,0,0,130,194,0,0,132,194,0,0,140,194,0,0,144,194,0,0,152,194,0,0,162,194,0,0,160,194,0,0,168,194,0,0,180,194,0,0,190,194,0,0,204,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,206,194,0,0,194,194,0,0,184,194,0,0,176,194,0,0,166,194,0,0,158,194,0,0,148,194,0,0,140,194,0,0,132,194,0,0,108,194,0,0,84,194,0,0,104,194,0,0,120,194,0,0,92,194,0,0,88,194,0,0,88,194,0,0,88,194,0,0,104,194,0,0,116,194,0,0,120,194,0,0,144,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,160,194,0,0,166,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,150,194,0,0,140,194,0,0,132,194,0,0,120,194,0,0,96,194,0,0,64,194,0,0,48,194,0,0,64,194,0,0,56,194,0,0,56,194,0,0,44,194,0,0,56,194,0,0,64,194,0,0,64,194,0,0,76,194,0,0,104,194,0,0,104,194,0,0,108,194,0,0,112,194,0,0,120,194,0,0,120,194,0,0,116,194,0,0,116,194,0,0,130,194,0,0,128,194,0,0,130,194,0,0,136,194,0,0,140,194,0,0,148,194,0,0,150,194,0,0,156,194,0,0,162,194,0,0,172,194,0,0,190,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,150,194,0,0,140,194,0,0,130,194,0,0,116,194,0,0,92,194,0,0,68,194,0,0,28,194,0,0,4,194,0,0,32,194,0,0,12,194,0,0,0,194,0,0,24,194,0,0,32,194,0,0,4,194,0,0,12,194,0,0,20,194,0,0,56,194,0,0,36,194,0,0,52,194,0,0,48,194,0,0,56,194,0,0,40,194,0,0,52,194,0,0,56,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,88,194,0,0,88,194,0,0,92,194,0,0,100,194,0,0,120,194,0,0,128,194,0,0,132,194,0,0,136,194,0,0,140,194,0,0,152,194,0,0,162,194,0,0,180,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,180,194,0,0,170,194,0,0,164,194,0,0,166,194,0,0,160,194,0,0,156,194,0,0,168,194,0,0,158,194,0,0,160,194,0,0,166,194,0,0,174,194,0,0,178,194,0,0,182,194,0,0,186,194,0,0,198,194,0,0,212,194,0,0,234,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,150,194,0,0,140,194,0,0,136,194,0,0,148,194,0,0,144,194,0,0,148,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,170,194,0,0,174,194,0,0,184,194,0,0,178,194,0,0,182,194,0,0,190,194,0,0,200,194,0,0,212,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,180,194,0,0,166,194,0,0,150,194,0,0,142,194,0,0,124,194,0,0,128,194,0,0,134,194,0,0,120,194,0,0,128,194,0,0,134,194,0,0,140,194,0,0,146,194,0,0,154,194,0,0,162,194,0,0,168,194,0,0,166,194,0,0,170,194,0,0,178,194,0,0,180,194,0,0,186,194,0,0,196,194,0,0,208,194,0,0,218,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,206,194,0,0,192,194,0,0,176,194,0,0,162,194,0,0,150,194,0,0,136,194,0,0,104,194,0,0,88,194],"i8",O3,_.GLOBAL_BASE),C3([0,0,96,194,0,0,88,194,0,0,96,194,0,0,96,194,0,0,104,194,0,0,112,194,0,0,124,194,0,0,132,194,0,0,148,194,0,0,138,194,0,0,144,194,0,0,144,194,0,0,150,194,0,0,148,194,0,0,154,194,0,0,162,194,0,0,162,194,0,0,164,194,0,0,168,194,0,0,174,194,0,0,186,194,0,0,192,194,0,0,198,194,0,0,208,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,204,194,0,0,192,194,0,0,182,194,0,0,170,194,0,0,160,194,0,0,148,194,0,0,136,194,0,0,112,194,0,0,76,194,0,0,56,194,0,0,64,194,0,0,56,194,0,0,44,194,0,0,52,194,0,0,60,194,0,0,60,194,0,0,68,194,0,0,64,194,0,0,96,194,0,0,84,194,0,0,92,194,0,0,104,194,0,0,100,194,0,0,124,194,0,0,104,194,0,0,112,194,0,0,132,194,0,0,128,194,0,0,134,194,0,0,140,194,0,0,140,194,0,0,148,194,0,0,154,194,0,0,168,194,0,0,172,194,0,0,178,194,0,0,182,194,0,0,186,194,0,0,188,194,0,0,202,194,0,0,218,194,0,0,236,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,176,194,0,0,166,194,0,0,156,194,0,0,146,194,0,0,136,194,0,0,112,194,0,0,84,194,0,0,48,194,0,0,12,194,0,0,24,194,0,0,24,194,0,0,8,194,0,0,8,194,0,0,16,194,0,0,32,194,0,0,36,194,0,0,48,194,0,0,76,194,0,0,52,194,0,0,56,194,0,0,60,194,0,0,56,194,0,0,88,194,0,0,72,194,0,0,68,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,76,194,0,0,88,194,0,0,100,194,0,0,104,194,0,0,112,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,128,194,0,0,130,194,0,0,136,194,0,0,154,194,0,0,164,194,0,0,174,194,0,0,190,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,204,194,0,0,194,194,0,0,184,194,0,0,174,194,0,0,166,194,0,0,156,194,0,0,150,194,0,0,164,194,0,0,158,194,0,0,166,194,0,0,170,194,0,0,178,194,0,0,184,194,0,0,190,194,0,0,196,194,0,0,202,194,0,0,210,194,0,0,218,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,172,194,0,0,162,194,0,0,156,194,0,0,148,194,0,0,138,194,0,0,148,194,0,0,148,194,0,0,152,194,0,0,158,194,0,0,166,194,0,0,168,194,0,0,172,194,0,0,178,194,0,0,184,194,0,0,194,194,0,0,186,194,0,0,200,194,0,0,206,194,0,0,214,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,174,194,0,0,166,194,0,0,160,194,0,0,150,194,0,0,138,194,0,0,112,194,0,0,132,194,0,0,132,194,0,0,136,194,0,0,140,194,0,0,148,194,0,0,156,194,0,0,158,194,0,0,162,194,0,0,162,194,0,0,166,194,0,0,168,194,0,0,174,194,0,0,186,194,0,0,192,194,0,0,198,194,0,0,206,194,0,0,214,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,178,194,0,0,170,194,0,0,164,194,0,0,156,194,0,0,142,194,0,0,120,194,0,0,92,194,0,0,104,194,0,0,104,194,0,0,88,194,0,0,88,194,0,0,92,194,0,0,108,194,0,0,116,194,0,0,120,194,0,0,140,194,0,0,132,194,0,0,132,194,0,0,134,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,156,194,0,0,168,194,0,0,168,194,0,0,168,194,0,0,176,194,0,0,182,194,0,0,180,194,0,0,190,194,0,0,196,194,0,0,204,194,0,0,206,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,188,194,0,0,180,194,0,0,174,194,0,0,164,194,0,0,158,194,0,0,146,194,0,0,134,194,0,0,104,194,0,0,60,194,0,0,72,194,0,0,52,194,0,0,36,194,0,0,52,194,0,0,64,194,0,0,48,194,0,0,48,194,0,0,68,194,0,0,88,194,0,0,76,194,0,0,64,194,0,0,60,194,0,0,68,194,0,0,72,194,0,0,76,194,0,0,100,194,0,0,104,194,0,0,112,194,0,0,124,194,0,0,138,194,0,0,140,194,0,0,138,194,0,0,142,194,0,0,148,194,0,0,156,194,0,0,164,194,0,0,180,194,0,0,190,194,0,0,202,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,202,194,0,0,194,194,0,0,186,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,154,194,0,0,144,194,0,0,130,194,0,0,96,194,0,0,64,194,0,0,20,194,0,0,32,194,0,0,16,194,0,0,8,194,0,0,32,194,0,0,72,194,0,0,60,194,0,0,24,194,0,0,36,194,0,0,60,194,0,0,24,194,0,0,12,194,0,0,28,194,0,0,24,194,0,0,44,194,0,0,32,194,0,0,52,194,0,0,72,194,0,0,52,194,0,0,48,194,0,0,60,194,0,0,72,194,0,0,92,194,0,0,64,194,0,0,64,194,0,0,80,194,0,0,132,194,0,0,140,194,0,0,152,194,0,0,164,194,0,0,180,194,0,0,194,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,172,194,0,0,158,194,0,0,152,194,0,0,166,194,0,0,162,194,0,0,170,194,0,0,174,194,0,0,178,194,0,0,186,194,0,0,196,194,0,0,204,194,0,0,214,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,172,194,0,0,158,194,0,0,142,194,0,0,154,194,0,0,148,194,0,0,154,194,0,0,158,194,0,0,162,194,0,0,168,194,0,0,170,194,0,0,180,194,0,0,184,194,0,0,186,194,0,0,184,194,0,0,196,194,0,0,202,194,0,0,216,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,174,194,0,0,156,194,0,0,136,194,0,0,130,194,0,0,132,194,0,0,120,194,0,0,130,194,0,0,134,194,0,0,140,194,0,0,146,194,0,0,150,194,0,0,156,194,0,0,164,194,0,0,164,194,0,0,166,194,0,0,168,194,0,0,182,194,0,0,186,194,0,0,196,194,0,0,204,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,164,194,0,0,148,194,0,0,120,194,0,0,100,194,0,0,104,194,0,0,96,194,0,0,76,194,0,0,80,194,0,0,80,194,0,0,88,194,0,0,88,194,0,0,104,194,0,0,132,194,0,0,108,194,0,0,112,194,0,0,124,194,0,0,132,194,0,0,138,194,0,0,146,194,0,0,158,194,0,0,166,194,0,0,168,194,0,0,160,194,0,0,162,194,0,0,162,194,0,0,164,194,0,0,176,194,0,0,184,194,0,0,196,194,0,0,210,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,204,194,0,0,194,194,0,0,184,194,0,0,168,194,0,0,158,194,0,0,138,194,0,0,100,194,0,0,60,194,0,0,80,194,0,0,60,194,0,0,48,194,0,0,52,194,0,0,72,194,0,0,80,194,0,0,40,194,0,0,40,194,0,0,84,194,0,0,44,194,0,0,44,194,0,0,64,194,0,0,76,194,0,0,96,194,0,0,92,194,0,0,80,194,0,0,100,194,0,0,108,194,0,0,116,194,0,0,120,194,0,0,134,194,0,0,142,194,0,0,156,194,0,0,166,194,0,0,172,194,0,0,188,194,0,0,196,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,168,194,0,0,156,194,0,0,140,194,0,0,116,194,0,0,76,194,0,0,36,194,0,0,32,194,0,0,24,194,0,0,32,194,0,0,56,194,0,0,80,194,0,0,76,194,0,0,36,194,0,0,32,194,0,0,56,194,0,0,32,194,0,0,24,194,0,0,24,194,0,0,36,194,0,0,56,194,0,0,36,194,0,0,56,194,0,0,60,194,0,0,44,194,0,0,44,194,0,0,52,194,0,0,36,194,0,0,52,194,0,0,96,194,0,0,134,194,0,0,136,194,0,0,166,194,0,0,174,194,0,0,180,194,0,0,190,194,0,0,204,194,0,0,214,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,218,194,0,0,210,194,0,0,202,194,0,0,192,194,0,0,182,194,0,0,168,194,0,0,154,194,0,0,164,194,0,0,164,194,0,0,170,194,0,0,178,194,0,0,188,194,0,0,200,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,206,194,0,0,196,194,0,0,184,194,0,0,170,194,0,0,160,194,0,0,142,194,0,0,150,194,0,0,144,194,0,0,152,194,0,0,160,194,0,0,168,194,0,0,172,194,0,0,178,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,208,194,0,0,202,194,0,0,194,194,0,0,184,194,0,0,176,194,0,0,168,194,0,0,160,194,0,0,128,194,0,0,132,194,0,0,124,194,0,0,128,194,0,0,132,194,0,0,138,194,0,0,146,194,0,0,154,194,0,0,166,194,0,0,166,194,0,0,172,194,0,0,182,194,0,0,196,194,0,0,208,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,208,194,0,0,202,194,0,0,194,194,0,0,184,194,0,0,180,194,0,0,168,194,0,0,148,194,0,0,100,194,0,0,104,194,0,0,80,194,0,0,92,194,0,0,88,194,0,0,72,194,0,0,80,194,0,0,72,194,0,0,80,194,0,0,124,194,0,0,120,194,0,0,138,194,0,0,152,194,0,0,154,194,0,0,156,194,0,0,156,194,0,0,158,194,0,0,164,194,0,0,176,194,0,0,188,194,0,0,200,194,0,0,212,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,204,194,0,0,196,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,166,194,0,0,156,194,0,0,140,194,0,0,72,194,0,0,72,194,0,0,36,194,0,0,48,194,0,0,68,194,0,0,60,194,0,0,72,194,0,0,72,194,0,0,48,194,0,0,92,194,0,0,56,194,0,0,60,194,0,0,64,194,0,0,64,194,0,0,88,194,0,0,68,194,0,0,68,194,0,0,104,194,0,0,120,194,0,0,142,194,0,0,162,194,0,0,174,194,0,0,184,194,0,0,194,194,0,0,204,194,0,0,216,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,204,194,0,0,196,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,166,194,0,0,156,194,0,0,140,194,0,0,52,194,0,0,44,194,0,0,36,194,0,0,60,194,0,0,72,194,0,0,76,194,0,0,72,194,0,0,68,194,0,0,52,194,0,0,60,194,0,0,36,194,0,0,48,194,0,0,36,194,0,0,28,194,0,0,44,194,0,0,24,194,0,0,20,194,0,0,32,194,0,0,36,194,0,0,48,194,0,0,72,194,0,0,104,194,0,0,130,194,0,0,146,194,0,0,158,194,0,0,170,194,0,0,184,194,0,0,194,194,0,0,202,194,0,0,210,194,0,0,218,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,200,194,0,0,190,194,0,0,174,194,0,0,162,194,0,0,170,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,202,194,0,0,190,194,0,0,176,194,0,0,166,194,0,0,152,194,0,0,146,194,0,0,144,194,0,0,158,194,0,0,168,194,0,0,180,194,0,0,190,194,0,0,200,194,0,0,210,194,0,0,220,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,208,194,0,0,196,194,0,0,184,194,0,0,174,194,0,0,162,194,0,0,140,194,0,0,130,194,0,0,120,194,0,0,134,194,0,0,142,194,0,0,148,194,0,0,160,194,0,0,170,194,0,0,182,194,0,0,190,194,0,0,198,194,0,0,206,194,0,0,216,194,0,0,222,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,206,194,0,0,194,194,0,0,180,194,0,0,170,194,0,0,152,194,0,0,112,194,0,0,96,194,0,0,88,194,0,0,112,194,0,0,120,194,0,0,116,194,0,0,96,194,0,0,124,194,0,0,130,194,0,0,146,194,0,0,148,194,0,0,154,194,0,0,150,194,0,0,156,194,0,0,162,194,0,0,172,194,0,0,174,194,0,0,176,194,0,0,182,194,0,0,188,194,0,0,196,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,194,194,0,0,184,194,0,0,172,194,0,0,162,194,0,0,158,194,0,0,140,194,0,0,100,194,0,0,76,194,0,0,60,194,0,0,76,194,0,0,104,194,0,0,112,194,0,0,96,194,0,0,84,194,0,0,72,194,0,0,104,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,84,194,0,0,92,194,0,0,128,194,0,0,138,194,0,0,142,194,0,0,170,194,0,0,164,194,0,0,156,194,0,0,162,194,0,0,170,194,0,0,190,194,0,0,204,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,194,194,0,0,184,194,0,0,170,194,0,0,166,194,0,0,158,194,0,0,144,194,0,0,68,194,0,0,32,194,0,0,44,194,0,0,44,194,0,0,88,194,0,0,96,194,0,0,76,194,0,0,72,194,0,0,32,194,0,0,44,194,0,0,24,194,0,0,16,194,0,0,12,194,0,0,20,194,0,0,24,194,0,0,20,194,0,0,48,194,0,0,88,194,0,0,112,194,0,0,100,194,0,0,112,194,0,0,140,194,0,0,150,194,0,0,168,194,0,0,184,194,0,0,206,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,204,194,0,0,190,194,0,0,178,194,0,0,164,194,0,0,166,194,0,0,168,194,0,0,180,194,0,0,184,194,0,0,198,194,0,0,214,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,202,194,0,0,190,194,0,0,178,194,0,0,166,194,0,0,144,194,0,0,148,194,0,0,156,194,0,0,170,194,0,0,176,194,0,0,176,194,0,0,180,194,0,0,184,194,0,0,196,194,0,0,210,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,218,194,0,0,206,194,0,0,194,194,0,0,186,194,0,0,174,194,0,0,162,194,0,0,140,194,0,0,140,194,0,0,134,194,0,0,150,194,0,0,146,194,0,0,152,194,0,0,158,194,0,0,162,194,0,0,166,194,0,0,176,194,0,0,178,194,0,0,194,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,200,194,0,0,188,194,0,0,176,194,0,0,166,194,0,0,150,194,0,0,124,194,0,0,108,194,0,0,108,194,0,0,124,194,0,0,132,194,0,0,112,194,0,0,120,194,0,0,134,194,0,0,134,194,0,0,154,194,0,0,152,194,0,0,162,194,0,0,176,194,0,0,172,194,0,0,184,194,0,0,192,194,0,0,204,194,0,0,218,194,0,0,232,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,184,194,0,0,172,194,0,0,162,194,0,0,146,194,0,0,96,194,0,0,80,194,0,0,60,194,0,0,92,194,0,0,112,194,0,0,104,194,0,0,80,194,0,0,76,194,0,0,52,194,0,0,68,194,0,0,72,194,0,0,84,194,0,0,88,194,0,0,116,194,0,0,142,194,0,0,140,194,0,0,138,194,0,0,156,194,0,0,158,194,0,0,174,194,0,0,180,194,0,0,192,194,0,0,208,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,206,194,0,0,192,194,0,0,180,194,0,0,172,194,0,0,156,194,0,0,140,194,0,0,76,194,0,0,40,194,0,0,60,194,0,0,64,194,0,0,92,194,0,0,88,194,0,0,88,194,0,0,84,194,0,0,40,194,0,0,12,194,0,0,224,193,0,0,4,194,0,0,24,194,0,0,20,194,0,0,48,194,0,0,60,194,0,0,68,194,0,0,88,194,0,0,124,194,0,0,136,194,0,0,156,194,0,0,164,194,0,0,178,194,0,0,188,194,0,0,198,194,0,0,208,194,0,0,218,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,180,194,0,0,158,194,0,0,170,194,0,0,162,194,0,0,164,194,0,0,164,194,0,0,178,194,0,0,188,194,0,0,198,194,0,0,206,194,0,0,218,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,194,194,0,0,170,194,0,0,144,194,0,0,148,194,0,0,140,194,0,0,140,194,0,0,140,194,0,0,152,194,0,0,170,194,0,0,182,194,0,0,186,194,0,0,194,194,0,0,206,194,0,0,218,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,224,194,0,0,186,194,0,0,162,194,0,0,136,194,0,0,120,194,0,0,112,194,0,0,112,194,0,0,100,194,0,0,124,194,0,0,140,194,0,0,154,194,0,0,164,194,0,0,180,194,0,0,186,194,0,0,196,194,0,0,208,194,0,0,218,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,226,194,0,0,200,194,0,0,186,194,0,0,168,194,0,0,124,194,0,0,104,194,0,0,64,194,0,0,84,194,0,0,88,194,0,0,80,194,0,0,80,194,0,0,100,194,0,0,128,194,0,0,132,194,0,0,152,194,0,0,166,194,0,0,162,194,0,0,170,194,0,0,170,194,0,0,180,194,0,0,190,194,0,0,196,194,0,0,202,194,0,0,206,194,0,0,212,194,0,0,216,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,190,194,0,0,172,194,0,0,148,194,0,0,84,194,0,0,72,194,0,0,24,194,0,0,44,194,0,0,68,194,0,0,44,194,0,0,40,194,0,0,28,194,0,0,28,194,0,0,56,194,0,0,80,194,0,0,100,194,0,0,96,194,0,0,144,194,0,0,138,194,0,0,148,194,0,0,162,194,0,0,174,194,0,0,184,194,0,0,188,194,0,0,194,194,0,0,198,194,0,0,204,194,0,0,210,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,198,194,0,0,180,194,0,0,152,194,0,0,132,194,0,0,52,194,0,0,44,194,0,0,36,194,0,0,48,194,0,0,60,194,0,0,44,194,0,0,60,194,0,0,32,194,0,0,240,193,0,0,248,193,0,0,248,193,0,0,28,194,0,0,4,194,0,0,32,194,0,0,36,194,0,0,44,194,0,0,84,194,0,0,108,194,0,0,140,194,0,0,146,194,0,0,154,194,0,0,158,194,0,0,164,194,0,0,168,194,0,0,174,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,182,194,0,0,152,194,0,0,150,194,0,0,170,194,0,0,186,194,0,0,196,194,0,0,208,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,182,194,0,0,140,194,0,0,140,194,0,0,150,194,0,0,172,194,0,0,178,194,0,0,188,194,0,0,196,194,0,0,202,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,190,194,0,0,160,194,0,0,112,194,0,0,130,194,0,0,128,194,0,0,148,194,0,0,166,194,0,0,176,194,0,0,182,194,0,0,190,194,0,0,198,194,0,0,206,194,0,0,214,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,190,194,0,0,160,194,0,0,104,194,0,0,92,194,0,0,68,194,0,0,132,194,0,0,136,194,0,0,142,194,0,0,156,194,0,0,156,194,0,0,160,194,0,0,176,194,0,0,170,194,0,0,178,194,0,0,194,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,190,194,0,0,160,194,0,0,84,194,0,0,80,194,0,0,36,194,0,0,108,194,0,0,108,194,0,0,68,194,0,0,104,194,0,0,96,194,0,0,124,194,0,0,172,194,0,0,158,194,0,0,180,194,0,0,186,194,0,0,196,194,0,0,206,194,0,0,214,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,194,194,0,0,182,194,0,0,146,194,0,0,52,194,0,0,32,194,0,0,4,194,0,0,84,194,0,0,116,194,0,0,68,194,0,0,88,194,0,0,72,194,0,0,72,194,0,0,112,194,0,0,80,194,0,0,134,194,0,0,148,194,0,0,162,194,0,0,184,194,0,0,192,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,226,194,0,0,212,194,0,0,198,194,0,0,184,194,0,0,154,194,0,0,160,194,0,0,176,194,0,0,194,194,0,0,212,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196],"i8",O3,_.GLOBAL_BASE+10240),C3([0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,232,194,0,0,218,194,0,0,204,194,0,0,190,194,0,0,178,194,0,0,148,194,0,0,144,194,0,0,176,194,0,0,174,194,0,0,190,194,0,0,204,194,0,0,218,194,0,0,232,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,232,194,0,0,218,194,0,0,204,194,0,0,190,194,0,0,178,194,0,0,150,194,0,0,132,194,0,0,148,194,0,0,154,194,0,0,156,194,0,0,172,194,0,0,174,194,0,0,180,194,0,0,192,194,0,0,210,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,230,194,0,0,216,194,0,0,202,194,0,0,188,194,0,0,176,194,0,0,132,194,0,0,96,194,0,0,116,194,0,0,140,194,0,0,130,194,0,0,156,194,0,0,144,194,0,0,166,194,0,0,168,194,0,0,186,194,0,0,196,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,190,194,0,0,178,194,0,0,164,194,0,0,100,194,0,0,80,194,0,0,80,194,0,0,108,194,0,0,96,194,0,0,108,194,0,0,104,194,0,0,138,194,0,0,134,194,0,0,176,194,0,0,164,194,0,0,164,194,0,0,178,194,0,0,188,194,0,0,200,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,202,194,0,0,192,194,0,0,180,194,0,0,166,194,0,0,154,194,0,0,88,194,0,0,44,194,0,0,24,194,0,0,72,194,0,0,64,194,0,0,80,194,0,0,64,194,0,0,40,194,0,0,40,194,0,0,76,194,0,0,80,194,0,0,84,194,0,0,108,194,0,0,130,194,0,0,142,194,0,0,156,194,0,0,170,194,0,0,190,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,210,194,0,0,172,194,0,0,136,194,0,0,156,194,0,0,158,194,0,0,180,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,210,194,0,0,172,194,0,0,132,194,0,0,146,194,0,0,154,194,0,0,176,194,0,0,192,194,0,0,210,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,210,194,0,0,184,194,0,0,160,194,0,0,116,194,0,0,128,194,0,0,136,194,0,0,160,194,0,0,174,194,0,0,184,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,208,194,0,0,182,194,0,0,158,194,0,0,80,194,0,0,112,194,0,0,88,194,0,0,128,194,0,0,138,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,168,194,0,0,170,194,0,0,174,194,0,0,176,194,0,0,180,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,236,194,0,0,200,194,0,0,174,194,0,0,154,194,0,0,68,194,0,0,72,194,0,0,48,194,0,0,104,194,0,0,116,194,0,0,116,194,0,0,134,194,0,0,130,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,130,194,0,0,136,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,230,194,0,0,196,194,0,0,168,194,0,0,120,194,0,0,68,194,0,0,48,194,0,0,24,194,0,0,56,194,0,0,68,194,0,0,68,194,0,0,56,194,0,0,28,194,0,0,20,194,0,0,28,194,0,0,32,194,0,0,40,194,0,0,44,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,176,194,0,0,148,194,0,0,154,194,0,0,164,194,0,0,164,194,0,0,170,194,0,0,180,194,0,0,188,194,0,0,198,194,0,0,208,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,176,194,0,0,132,194,0,0,140,194,0,0,162,194,0,0,160,194,0,0,162,194,0,0,168,194,0,0,176,194,0,0,182,194,0,0,186,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,176,194,0,0,116,194,0,0,124,194,0,0,140,194,0,0,142,194,0,0,148,194,0,0,154,194,0,0,160,194,0,0,166,194,0,0,170,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,172,194,0,0,120,194,0,0,124,194,0,0,120,194,0,0,120,194,0,0,104,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,80,194,0,0,88,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,236,194,0,0,216,194,0,0,168,194,0,0,84,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,92,194,0,0,60,194,0,0,52,194,0,0,32,194,0,0,32,194,0,0,32,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,236,194,0,0,200,194,0,0,146,194,0,0,44,194,0,0,20,194,0,0,40,194,0,0,44,194,0,0,84,194,0,0,24,194,0,0,20,194,0,0,12,194,0,0,12,194,0,0,24,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,182,194,0,0,168,194,0,0,148,194,0,0,160,194,0,0,160,194,0,0,160,194,0,0,160,194,0,0,160,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,182,194,0,0,168,194,0,0,148,194,0,0,136,194,0,0,136,194,0,0,136,194,0,0,136,194,0,0,136,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,172,194,0,0,156,194,0,0,140,194,0,0,112,194,0,0,52,194,0,0,240,193,0,0,168,193,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,174,194,0,0,156,194,0,0,134,194,0,0,64,194,0,0,24,194,0,0,232,193,0,0,168,193,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,172,194,0,0,138,194,0,0,96,194,0,0,52,194,0,0,12,194,0,0,4,194,0,0,232,193,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,166,194,0,0,142,194,0,0,64,194,0,0,216,193,0,0,24,194,0,0,20,194,0,0,8,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,0,0,144,4,0,0,72,100,0,0,104,100,0,0,136,100,0,0,0,0,0,0,224,4,0,0,0,0,0,0,0,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,5,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,0,12,195,0,0,12,195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,128,0,0,0,63,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,66,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,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,1,0,0,0,40,103,0,0,200,103,0,0,104,104,0,0,8,105,0,0,168,105,0,0,72,106,0,0,232,106,0,0,136,107,0,0,40,108,0,0,200,108,0,0,104,109,0,0,8,110,0,0,168,110,0,0,72,111,0,0,232,111,0,0,136,112,0,0,40,113,0,0,0,0,0,0,11,0,0,0,48,240,7,0,64,164,1,0,2,0,0,0,64,156,0,0,80,195,0,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,184,216,1,0,24,120,0,0,24,217,1,0,136,149,2,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,200,160,2,0,0,0,0,0,11,0,0,0,160,87,5,0,64,164,1,0,6,0,0,0,64,156,0,0,112,17,1,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,184,216,1,0,24,120,0,0,24,217,1,0,136,149,2,0,160,132,0,0,208,132,0,0,3,0,0,0,120,217,1,0,0,88,5,0,0,0,0,0,11,0,0,0,64,87,5,0,64,164,1,0,255,255,255,255,64,156,0,0,80,195,0,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,184,216,1,0,24,120,0,0,24,217,1,0,136,149,2,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,136,217,1,0,0,0,0,0,11,0,0,0,224,86,5,0,64,164,1,0,2,0,0,0,144,101,0,0,64,156,0,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,128,86,5,0,24,120,0,0,24,217,1,0,136,149,2,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,200,160,2,0,0,0,0,0,11,0,0,0,32,86,5,0,64,164,1,0,255,255,255,255,144,101,0,0,64,156,0,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,128,86,5,0,24,120,0,0,24,217,1,0,0,0,0,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,136,217,1,0,0,0,0,0,3,0,0,0,0,86,5,0,16,172,4,0,2,0,0,0,56,74,0,0,144,101,0,0,48,172,4,0,64,172,4,0,80,172,4,0,136,114,0,0,184,114,0,0,160,172,4,0,160,172,4,0,160,172,4,0,176,173,4,0,224,173,4,0,16,177,4,0,16,177,4,0,64,180,4,0,56,118,0,0,104,118,0,0,112,183,4,0,112,183,4,0,144,183,4,0,144,183,4,0,160,183,4,0,160,183,4,0,176,183,4,0,208,183,4,0,224,183,4,0,224,85,5,0,24,120,0,0,16,184,4,0,48,184,4,0,160,132,0,0,208,132,0,0,2,0,0,0,240,187,4,0,8,240,4,0,0,0,0,0,3,0,0,0,192,85,5,0,16,172,4,0,255,255,255,255,56,74,0,0,144,101,0,0,48,172,4,0,64,172,4,0,80,172,4,0,136,114,0,0,184,114,0,0,160,172,4,0,160,172,4,0,160,172,4,0,176,173,4,0,224,173,4,0,16,177,4,0,16,177,4,0,64,180,4,0,56,118,0,0,104,118,0,0,112,183,4,0,112,183,4,0,144,183,4,0,144,183,4,0,160,183,4,0,160,183,4,0,176,183,4,0,208,183,4,0,224,183,4,0,224,85,5,0,24,120,0,0,16,184,4,0,48,184,4,0,160,132,0,0,208,132,0,0,2,0,0,0,240,187,4,0,248,187,4,0,0,0,0,0,3,0,0,0,232,239,4,0,16,172,4,0,2,0,0,0,152,58,0,0,56,74,0,0,48,172,4,0,64,172,4,0,80,172,4,0,136,114,0,0,184,114,0,0,160,172,4,0,160,172,4,0,160,172,4,0,176,173,4,0,224,173,4,0,16,177,4,0,16,177,4,0,64,180,4,0,56,118,0,0,104,118,0,0,112,183,4,0,112,183,4,0,144,183,4,0,144,183,4,0,160,183,4,0,160,183,4,0,176,183,4,0,208,183,4,0,224,183,4,0,240,183,4,0,24,120,0,0,16,184,4,0,48,184,4,0,160,132,0,0,208,132,0,0,2,0,0,0,240,187,4,0,8,240,4,0,0,0,0,0,3,0,0,0,240,171,4,0,16,172,4,0,255,255,255,255,152,58,0,0,56,74,0,0,48,172,4,0,64,172,4,0,80,172,4,0,136,114,0,0,184,114,0,0,160,172,4,0,160,172,4,0,160,172,4,0,176,173,4,0,224,173,4,0,16,177,4,0,16,177,4,0,64,180,4,0,56,118,0,0,104,118,0,0,112,183,4,0,112,183,4,0,144,183,4,0,144,183,4,0,160,183,4,0,160,183,4,0,176,183,4,0,208,183,4,0,224,183,4,0,240,183,4,0,24,120,0,0,16,184,4,0,48,184,4,0,160,132,0,0,208,132,0,0,2,0,0,0,240,187,4,0,248,187,4,0,0,0,0,0,2,0,0,0,216,171,4,0,0,168,4,0,2,0,0,0,40,35,0,0,152,58,0,0,24,168,4,0,24,168,4,0,32,168,4,0,136,114,0,0,184,114,0,0,96,168,4,0,0,0,0,0,96,168,4,0,184,115,0,0,48,169,4,0,48,169,4,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,152,171,4,0,224,119,0,0,240,119,0,0,176,171,4,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,200,171,4,0,184,47,1,0,0,0,0,0,2,0,0,0,232,167,4,0,0,168,4,0,255,255,255,255,40,35,0,0,152,58,0,0,24,168,4,0,24,168,4,0,32,168,4,0,136,114,0,0,184,114,0,0,96,168,4,0,0,0,0,0,96,168,4,0,184,115,0,0,48,169,4,0,48,169,4,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,152,171,4,0,224,119,0,0,240,119,0,0,176,171,4,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,200,171,4,0,248,180,0,0,0,0,0,0,2,0,0,0,208,167,4,0,40,114,0,0,2,0,0,0,64,31,0,0,40,35,0,0,64,114,0,0,64,114,0,0,72,114,0,0,136,114,0,0,184,114,0,0,232,114,0,0,0,0,0,0,232,114,0,0,184,115,0,0,208,115,0,0,208,115,0,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,208,119,0,0,224,119,0,0,240,119,0,0,0,120,0,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,240,180,0,0,184,47,1,0,0,0,0,0,2,0,0,0,184,167,4,0,40,114,0,0,255,255,255,255,64,31,0,0,40,35,0,0,64,114,0,0,64,114,0,0,72,114,0,0,136,114,0,0,184,114,0,0,232,114,0,0,0,0,0,0,232,114,0,0,184,115,0,0,208,115,0,0,208,115,0,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,208,119,0,0,224,119,0,0,240,119,0,0,0,120,0,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,240,180,0,0,248,180,0,0,0,0,0,0,11,0,0,0,200,113,0,0,64,164,1,0,2,0,0,0,80,195,0,0,64,13,3,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,184,216,1,0,24,120,0,0,24,217,1,0,136,149,2,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,200,160,2,0,0,0,0,0,11,0,0,0,200,113,0,0,64,164,1,0,255,255,255,255,80,195,0,0,64,13,3,0,160,164,1,0,208,164,1,0,0,165,1,0,136,114,0,0,184,114,0,0,240,165,1,0,32,169,1,0,240,165,1,0,80,172,1,0,128,172,1,0,16,182,1,0,160,191,1,0,48,201,1,0,56,118,0,0,192,210,1,0,128,214,1,0,224,214,1,0,64,215,1,0,112,215,1,0,160,215,1,0,208,215,1,0,0,216,1,0,88,216,1,0,136,216,1,0,184,216,1,0,24,120,0,0,24,217,1,0,0,0,0,0,160,132,0,0,208,132,0,0,2,0,0,0,120,217,1,0,136,217,1,0,0,0,0,0,2,0,0,0,200,113,0,0,40,114,0,0,2,0,0,0,0,0,0,0,64,31,0,0,64,114,0,0,64,114,0,0,72,114,0,0,136,114,0,0,184,114,0,0,232,114,0,0,0,0,0,0,232,114,0,0,184,115,0,0,208,115,0,0,208,115,0,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,208,119,0,0,224,119,0,0,240,119,0,0,0,120,0,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,240,180,0,0,184,47,1,0,0,0,0,0,2,0,0,0,200,113,0,0,40,114,0,0,255,255,255,255,0,0,0,0,64,31,0,0,64,114,0,0,64,114,0,0,72,114,0,0,136,114,0,0,184,114,0,0,232,114,0,0,0,0,0,0,232,114,0,0,184,115,0,0,208,115,0,0,208,115,0,0,0,0,0,0,0,0,0,0,56,118,0,0,104,118,0,0,168,119,0,0,0,0,0,0,192,119,0,0,192,119,0,0,200,119,0,0,200,119,0,0,208,119,0,0,224,119,0,0,240,119,0,0,0,120,0,0,24,120,0,0,184,129,0,0,208,129,0,0,160,132,0,0,208,132,0,0,1,0,0,0,240,180,0,0,248,180,0,0,0,0,0,0,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,154,153,153,153,153,153,185,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,2,0,0,0,2,0,0,32,0,0,0,25,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,25,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,242,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,90,0,0,0,90,0,0,0,95,0,0,0,95,0,0,0,95,0,0,0,95,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,232,255,255,255,226,255,255,255,216,255,255,255,216,255,255,255,211,255,255,255,211,255,255,255,211,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,0,0,0,0,10,0,0,0,10,0,0,0,255,255,255,255,10,0,0,0,10,0,0,0,255,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,0,0,0,0,236,255,255,255,236,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,226,255,255,255,216,255,255,255,216,255,255,255,211,255,255,255,211,255,255,255,211,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,14,0,0,0,14,0,0,0,15,0,0,0,15,0,0,0,16,0,0,0,16,0,0,0,17,0,0,0,17,0,0,0,17,0,0,0,18,0,0,0,18,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,64,0,0,0,64,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,156,255,255,255,156,255,255,255,151,255,255,255,0,0,0,0,126,255,255,255,126,255,255,255,116,255,255,255,0,0,0,0,0,0,0,0,0,0,8,64],"i8",O3,_.GLOBAL_BASE+20480),C3([0,0,0,0,0,0,16,64,0,0,0,0,0,0,16,64,8,0,0,0,0,0,160,65,0,0,96,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,112,194,0,0,240,193,0,0,32,194,0,0,32,194,0,0,32,194,0,0,32,194,0,0,32,194,0,0,0,64,0,0,150,194,0,0,192,192,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,96,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,194,0,0,240,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,0,64,0,0,160,194,0,0,192,192,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,64,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,160,193,0,0,160,193,0,0,112,193,0,0,112,193,0,0,112,193,0,0,112,193,0,0,112,193,0,0,0,0,0,0,160,194,0,0,192,192,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,32,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,160,193,0,0,112,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,0,0,0,0,160,194,0,0,192,192,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,32,65,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,112,193,0,0,112,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,64,193,0,0,0,0,0,0,170,194,0,0,192,192,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,8,64,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,3,1,0,24,3,1,0,48,3,1,0,80,3,1,0,112,3,1,0,160,3,1,0,208,3,1,0,232,3,1,0,40,4,1,0,104,4,1,0,152,4,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,128,0,0,0,33,0,0,0,8,0,0,0,16,0,0,0,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,128,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,1,0,0,66,0,0,0,16,0,0,0,32,0,0,0,140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,0,1,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,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,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,2,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,5,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,128,0,0,0,14,0,0,0,4,0,0,0,58,0,0,0,2,0,0,0,8,0,0,0,28,0,0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,128,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,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,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,2,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,5,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,1,0,0,28,0,0,0,8,0,0,0,116,0,0,0,4,0,0,0,16,0,0,0,56,0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,0,1,0,0,4,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,6,0,0,0,7,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,128,0,0,0,8,0,0,0,33,0,0,0,4,0,0,0,16,0,0,0,70,0,0,0,2,0,0,0,6,0,0,0,12,0,0,0,23,0,0,0,46,0,0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,128,0,0,0,6,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,6,0,0,0,7,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,128,0,0,0,12,0,0,0,46,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,23,0,0,0,33,0,0,0,70,0,0,0,2,0,0,0,6,0,0,0,10,0,0,0,14,0,0,0,19,0,0,0,28,0,0,0,39,0,0,0,58,0,0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,128,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],"i8",O3,_.GLOBAL_BASE+30720),C3([1,0,0,0,2,0,0,0,3,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,1,0,0,66,0,0,0,16,0,0,0,32,0,0,0,140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,0,1,0,0,8,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,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,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,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,255,255,255,255,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,12,0,0,0,13,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,4,0,0,93,0,0,0,23,0,0,0,116,1,0,0,6,0,0,0,46,0,0,0,186,0,0,0,238,2,0,0,14,0,0,0,33,0,0,0,65,0,0,0,130,0,0,0,4,1,0,0,44,2,0,0,3,0,0,0,10,0,0,0,18,0,0,0,28,0,0,0,39,0,0,0,55,0,0,0,79,0,0,0,111,0,0,0,158,0,0,0,220,0,0,0,56,1,0,0,208,1,0,0,138,2,0,0,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,64,64,0,0,144,65,0,4,0,0,8,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,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,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,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,255,255,255,255,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,12,0,0,0,13,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,8,0,0,186,0,0,0,46,0,0,0,232,2,0,0,12,0,0,0,92,0,0,0,116,1,0,0,220,5,0,0,28,0,0,0,66,0,0,0,130,0,0,0,4,1,0,0,8,2,0,0,88,4,0,0,6,0,0,0,20,0,0,0,36,0,0,0,56,0,0,0,78,0,0,0,110,0,0,0,158,0,0,0,222,0,0,0,60,1,0,0,184,1,0,0,112,2,0,0,160,3,0,0,20,5,0,0,164,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,64,64,0,0,144,65,0,8,0,0,6,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,6,0,0,0,7,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,2,0,0,46,0,0,0,186,0,0,0,16,0,0,0,33,0,0,0,65,0,0,0,93,0,0,0,130,0,0,0,22,1,0,0,7,0,0,0,23,0,0,0,39,0,0,0,55,0,0,0,79,0,0,0,110,0,0,0,156,0,0,0,232,0,0,0,104,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,66,0,0,240,65,0,0,250,67,0,0,128,63,0,0,144,65,10,0,0,0,248,2,1,0,0,0,0,0,8,181,0,0,24,206,0,0,8,181,0,0,56,206,0,0,1],"i8",O3,_.GLOBAL_BASE+41032),C3([1],"i8",O3,_.GLOBAL_BASE+49544),C3([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],"i8",O3,_.GLOBAL_BASE+50572),C3([1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,8,245,0,0,8,245,0,0,48,245,0,0,48,245,0,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,112,217,0,0,112,217,0,0,152,217,0,0,152,217,0,0,0,0,0,0,255,255,255,255,255,255,255,255,10,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+52752),C3([1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,16,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,30,0,0,0,255,255,255,255,50,0,0,0,255,255,255,255,80,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,136,233,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,219,0,0,0,0,0,0,72,219,0,0,112,219,0,0,0,0,0,0,0,0,0,0,152,219,0,0,192,219,0,0,0,0,0,0,0,0,0,0,232,219,0,0,16,220,0,0,56,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,81,0,0,0,32,233,0,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,120,233,0,0,0,0,0,0,4,0,0,0,81,0,0,0,184,232,0,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,16,233,0,0,0,0,0,0,4,0,0,0,113,2,0,0,40,230,0,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,232,0,0,0,0,0,0,4,0,0,0,113,2,0,0,152,227,0,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,16,230,0,0,0,0,0,0,2,0,0,0,81,0,0,0,24,227,0,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,112,227,0,0,0,0,0,0,2,0,0,0,81,0,0,0,152,226,0,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,240,226,0,0,0,0,0,0,4,0,0,0,81,0,0,0,48,226,0,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,136,226,0,0,0,0,0,0,2,0,0,0,121,0,0,0,128,225,0,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,0,226,0,0,0,0,0,0,2,0,0,0,121,0,0,0,208,224,0,0,1,0,0,0,0,128,187,224,0,0,118,96,4,0,0,0,0,0,0,0,80,225,0,0,0,0,0,0,2,0,0,0,121,0,0,0,32,224,0,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,160,224,0,0,0,0,0,0,2,0,0,0,225,0,0,0,248,222,0,0,1,0,0,0,0,228,91,225,0,224,255,96,4,0,0,0,0,0,0,0,224,223,0,0,0,0,0,0,2,0,0,0,225,0,0,0,208,221,0,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,184,222,0,0,0,0,0,0,2,0,0,0,33,1,0,0,96,220,0,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,136,221,0,0,0,0,0,0,2,5,4,6,6,8,8,8,8,8,9,9,9,9,9,9,9,5,6,6,7,7,8,8,9,8,9,9,9,9,9,9,9,9,5,6,6,7,7,8,8,8,9,9,9,9,9,9,9,9,9,7,7,7,8,8,9,9,9,9,9,9,9,9,9,10,10,9,7,7,7,8,8,9,9,9,9,9,9,9,9,9,9,10,10,8,8,8,9,9,9,9,10,10,10,9,10,10,10,10,10,10,8,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,7,7,9,9,7,7,8,8,10,10,11,11,4,7,7,9,9,10,10,8,8,10,10,10,11,10,11,4,7,7,9,9,10,10,8,8,10,9,11,11,11,11,7,9,9,12,12,11,12,10,10,11,10,12,11,11,11,7,9,9,11,11,13,12,9,9,11,10,11,11,12,11,9,10,10,12,12,14,14,10,10,11,12,12,11,11,11,9,10,11,11,13,14,13,10,11,11,11,12,11,12,12,7,8,8,10,9,11,10,11,12,12,11,12,14,12,13,7,8,8,9,10,10,11,12,12,12,11,12,12,12,13,9,9,9,11,11,13,12,12,12,12,11,12,12,13,12,8,10,10,11,10,11,12,12,12,12,12,12,14,12,12,9,11,11,11,12,12,12,12,13,13,12,12,13,13,12,10,11,11,12,11,12,12,12,11,12,13,12,12,12,13,11,11,12,12,12,13,12,12,11,12,13,13,12,12,13,12,11,12,12,13,13,12,13,12,13,13,13,13,14,13,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,4,4,11,11,11,11,11,11,11,11,11,11,11,11,3,11,8,11,11,11,11,11,11,11,11,11,11,11,11,3,9,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,2,5,5,6,6,7,7,7,7,8,8,5,6,6,7,7,7,7,8,8,8,8,5,6,6,7,7,7,7,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,7,8,8,8,8,8,8,9,8,9,9,8,8,8,8,8,8,8,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,10,11,11,4,6,6,7,7,9,9,11,11,13,12,4,6,6,7,7,9,9,11,11,12,12,6,7,7,9,9,11,11,12,12,13,13,6,7,7,9,9,11,11,12,12,13,13,8,9,9,11,11,12,12,13,13,14,14,8,9,9,11,11,12,12,13,13,14,14,9,11,11,12,12,13,13,14,14,15,15,9,11,11,12,12,13,13,14,14,15,14,11,12,12,13,13,14,14,15,15,16,16,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,4,5,5,7,7,8,8,9,9,9,9,4,5,5,7,7,8,8,9,9,9,9,6,7,7,8,8,8,8,9,9,9,9,6,7,7,8,8,8,8,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,9,9,8,10,10,8,10,10,5,9,9,7,10,10,8,10,10,4,10,10,9,12,12,9,11,11,7,12,11,10,11,13,10,13,13,7,12,12,10,13,12,10,13,13,4,10,10,9,12,12,9,12,12,7,12,12,10,13,13,10,12,13,7,11,12,10,13,13,10,13,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,6,6,7,7,9,9,4,4,5,6,6,7,7,9,9,4,4,4,6,6,7,7,9,9,6,6,6,7,7,8,8,9,9,6,6,6,7,7,8,8,9,9,7,7,7,8,8,8,9,10,10,7,7,7,8,8,9,8,10,10,9,9,9,9,9,10,10,10,10,9,9,9,9,9,10,10,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,5,8,7,8,8,10,10,4,6,6,8,8,8,8,10,10,7,8,8,9,9,9,9,11,11,7,8,8,9,9,9,9,11,11,8,8,8,9,9,10,10,12,11,8,8,8,9,9,10,10,11,11,9,10,10,11,11,11,11,13,12,9,10,10,11,11,12,12,12,13,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,9,9,6,7,7,9,9,6,7,7,9,9,9,9,9,11,11,9,9,9,11,11,6,7,7,9,9,7,7,8,9,10,7,7,8,9,10,9,9,10,10,11,9,9,10,10,12,6,7,7,9,9,7,8,7,10,9,7,8,7,10,9,9,10,9,12,11,10,10,9,12,10,9,10,10,12,11,9,10,10,12,11,9,10,10,12,12,11,11,12,12,13,11,11,12,12,13,9,9,10,12,11,9,10,10,12,12,10,10,10,12,12,11,12,11,13,12,11,12,11,13,12,6,7,7,9,9,7,8,8,10,10,7,8,7,10,9,10,10,10,12,12,10,10,10,12,11,7,8,7,10,10,7,7,9,10,11,8,9,9,11,10,10,10,11,10,12,10,10,11,12,12,7,8,8,10,10,7,9,8,11,10,8,8,9,11,11,10,11,10,12,11,10,11,11,12,12,9,10,10,12,12,9,10,10,12,12,10,11,11,13,12,11,10,12,10,14,12,12,12,13,14,9,10,10,12,12,9,11,10,12,12,10,11,11,12,12,11,12,11,14,12,12,12,12,14,14,5,7,7,9,9,7,7,7,9,10,7,8,8,10,10,10,10,10,11,11,10,10,10,12,12,7,8,8,10,10,8,9,8,11,10,7,8,9,10,11,10,10,10,11,12,10,10,11,11,13,6,7,8,10,10,8,9,9,10,10,7,9,7,11,10,10,11,10,12,12,10,11,10,12,10,9,10,10,12,12,10,11,11,13,12,9,10,10,12,12,12,12,12,14,13,11,11,12,11,14,9,10,10,11,12,10,11,11,12,13,9,10,10,12,12,12,12,12,14,13,11,12,10,14,11,9,9,10,11,12,9,10,10,12,12,9,10,10,12,12,12,12,12,14,14,11,12,12,13,12,9,10,9,12,12,9,10,11,12,13,10,11,10,13,11,12,12,13,13,14,12,12,12,13,13,9,10,10,12,12,10,11,10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,12,13,14,11,12,11,14,13,10,10,11,13,13,12,12,12,14,13,12,10,14,10,15,13,14,14,14,14,11,11,12,13,14,10,12,11,13,13,12,12,12,13,15,12,13,11,15,12,13,13,14,14,14,9,10,9,12,12,9,10,10,12,12,10,10,10,12,12,11,11,12,12,13,12,12,12,14,14,9,10,10,12,12,10,11,10,13,12,10,10,11,12,13,12,12,12,14,13,12,12,13,13,14,9,10,10,12,13,10,10,11,11,12,9,11,10,13,12,12,12,12,13,14,12,13,12,14,13,11,12,11,13,13,12,13,12,14,13,10,11,12,13,13,13,13,13,14,15,12,11,14,12,14,11,11,12,12,13,12,12,12,13,14,10,12,10,14,13,13,13,13,14,15,12,14,11,15,10,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,7,7,6,7,7,9,9,6,7,7,9,9,8,10,9,11,11,9,9,9,11,11,6,8,8,10,10,8,10,10,11,11,8,9,10,11,11,10,11,11,12,12,10,11,11,12,13,6,8,8,10,10,8,10,9,11,11,8,10,9,11,11,10,11,11,12,12,10,11,11,12,12,9,11,11,14,13,10,12,11,14,14,10,12,11,14,13,12,13,13,15,14,12,13,13,15,14,8,11,11,13,14,10,11,12,13,15,10,11,12,14,14,12,13,13,14,15,12,13,13,14,15,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,13,11,12,12,13,14,8,10,10,12,12,9,11,12,13,14,10,12,12,13,13,12,12,13,14,14,11,13,13,15,15,7,10,10,12,12,9,12,11,14,12,10,11,12,13,14,12,13,12,14,14,12,13,13,15,16,10,12,12,15,14,11,12,13,15,15,11,13,13,15,16,14,14,15,15,16,13,14,15,17,15,9,12,12,14,15,11,13,12,15,15,11,13,13,15,15,13,14,13,15,14,13,14,14,17,0,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,14,11,12,12,14,14,7,10,10,12,12,10,12,12,13,13,9,11,12,12,13,11,12,13,15,15,11,12,13,14,15,8,10,10,12,12,10,12,11,13,13,10,12,11,13,13,11,13,13,15,14,12,13,12,15,13,9,12,12,14,14,11,13,13,16,15,11,12,13,16,15,13,14,15,16,16,13,13,15,15,16,10,12,12,15,14,11,13,13,14,16,11,13,13,15,16,13,15,15,16,17,13,15,14,16,15,8,11,11,14,15,10,12,12,15,15,10,12,12,15,16,14,15,15,16,17,13,14,14,16,16,9,12,12,15,15,11,13,14,15,17,11,13,13,15,16,14,15,16,19,17,13,15,15,0,17,9,12,12,15,15,11,14,13,16,15,11,13,13,15,16,15,15,15,18,17,13,15,15,17,17,11,15,14,18,16,12,14,15,17,17,12,15,15,18,18,15,15,16,15,19,14,16,16,0,0,11,14,14,16,17,12,15,14,18,17,12,15,15,18,18,15,17,15,18,16,14,16,16,18,18,7,11,11,14,14,10,12,12,15,15,10,12,13,15,15,13,14,15,16,16,14,15,15,18,18,9,12,12,15,15,11,13,13,16,15,11,12,13,16,16,14,15,15,17,16,15,16,16,17,17,9,12,12,15,15,11,13,13,15,17,11,14,13,16,15,13,15,15,17,17,15,15,15,18,17,11,14,14,17,15,12,14,15,17,18,13,13,15,17,17,14,16,16,19,18,16,15,17,17,0,11,14,14,17,17,12,15,15,18,0,12,15,14,18,16,14,17,17,19,0,16,18,15,0,16,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,5,5,6,6,5,6,6,5,7,6,6,7,8,6,7,8,5,6,6,6,8,7,6,8,7,5,6,6,7,8,8,6,7,7,6,8,7,7,7,9,8,9,9,6,7,8,7,9,7,8,9,9,5,6,6,6,7,7,7,8,8,6,8,7,8,9,9,7,7,9,6,7,8,8,9,9,7,9,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,8,7,9,10,7,9,9,5,8,8,7,10,9,7,9,9,5,8,8,8,10,10,8,10,10,7,10,10,9,10,12,10,12,12,7,10,10,9,12,11,10,12,12,5,8,8,8,10,10,8,10,10,7,10,10,10,12,12,9,11,12,7,10,10,10,12,12,9,12,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,13,9,15,9,16,8,10,13,7,5,8,6,9,7,10,7,10,11,11,6,7,8,8,9,9,9,12,16,8,5,8,6,8,6,9,7,10,12,11,7,7,7,6,7,7,7,11,15,7,5,8,6,7,5,7,6,9,13,13,9,9,8,6,6,5,5,9,14,8,6,8,6,6,4,5,3,5,13,9,9,11,8,10,7,8,4,5,12,11,16,17,15,17,12,13,8,8,15,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,8,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+55148),C3([1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,25,0,0,0,255,255,255,255,45,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,184,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,245,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,246,0,0,0,0,0,0,184,246,0,0,224,246,0,0,0,0,0,0,0,0,0,0,8,247,0,0,48,247,0,0,88,247,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,81,0,0,0,80,2,1,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,168,2,1,0,0,0,0,0,4,0,0,0,81,0,0,0,232,1,1,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,64,2,1,0,0,0,0,0,4,0,0,0,113,2,0,0,88,255,0,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,208,1,1,0,0,0,0,0,4,0,0,0,113,2,0,0,200,252,0,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,255,0,0,0,0,0,0,2,0,0,0,81,0,0,0,72,252,0,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,160,252,0,0,0,0,0,0,2,0,0,0,169,0,0,0,96,251,0,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,16,252,0,0,0,0,0,0,2,0,0,0,25,0,0,0,40,251,0,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,72,251,0,0,0,0,0,0,4,0,0,0,81,0,0,0,192,250,0,0,1,0,0,0,0,176,19,225,0,176,19,97,2,0,0,0,0,0,0,0,24,251,0,0,0,0,0,0,2,0,0,0,225,0,0,0,152,249,0,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,128,250,0,0,0,0,0,0,2,0,0,0,185,1,0,0,128,247,0,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,64,249,0,0,0,0,0,0,1,6,5,7,7,9,9,9,9,10,12,12,10,11,11,10,11,11,11,10,11,6,8,8,9,9,10,10,9,10,11,11,10,11,11,11,11,10,11,11,11,11,6,7,8,9,9,9,10,11,10,11,12,11,10,11,11,11,11,11,11,12,10,8,9,9,10,9,10,10,9,10,10,10,10,10,9,10,10,10,10,9,10,10,9,9,9,9,10,10,9,9,10,10,11,10,9,12,10,11,10,9,10,10,10,8,9,9,10,9,10,9,9,10,10,9,10,9,11,10,10,10,10,10,9,10,8,8,9,9,10,9,11,9,8,9,9,10,11,10,10,10,11,12,9,9,11,8,9,8,11,10,11,10,10,9,11,10,10,10,10,10,10,10,11,11,11,11,8,9,9,9,10,10,10,11,11,12,11,12,11,10,10,10,12,11,11,11,10,8,10,9,11,10,10,11,12,10,11,12,11,11,12,11,12,12,10,11,11,10,9,9,10,11,12,10,10,10,11,10,11,11,10,12,12,10,11,10,11,12,10,9,10,10,11,10,11,11,11,11,11,12,11,11,11,9,11,10,11,10,11,10,9,9,10,11,11,11,10,10,11,12,12,11,12,11,11,11,12,12,12,12,11,9,11,11,12,10,11,11,11,11,11,11,12,11,11,12,11,11,11,10,11,11,9,11,10,11,11,11,10,10,10,11,11,11,12,10,11,10,11,11,11,11,12,9,11,10,11,11,10,10,11,11,9,11,11,12,10,10,10,10,10,11,11,10,9,10,11,11,12,11,10,10,12,11,11,12,11,12,11,11,10,10,11,11,10,12,11,10,11,10,11,10,10,10,11,11,10,10,11,11,11,11,10,10,10,12,11,11,11,11,10,9,10,11,11,11,12,11,11,11,12,10,11,11,11,9,10,11,11,11,11,11,11,10,10,11,11,12,11,10,11,12,11,10,10,11,9,10,11,11,11,11,11,10,11,11,10,12,11,11,11,12,11,11,11,10,10,11,11,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,5,5,5,5,10,10,11,11,11,11,11,11,11,11,5,7,6,8,8,9,10,11,11,11,11,11,11,11,11,6,6,7,9,7,11,10,11,11,11,11,11,11,11,11,5,6,6,11,8,11,11,11,11,11,11,11,11,11,11,5,6,6,9,10,11,10,11,11,11,11,11,11,11,11,7,10,10,11,11,11,11,11,11,11,11,11,11,11,11,7,11,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,6,6,4,6,5,7,7,4,5,6,7,7,6,7,7,7,7,6,7,7,7,7,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,9,9,11,11,12,12,16,16,3,6,6,9,9,11,11,12,12,13,14,18,16,3,6,7,9,9,11,11,13,12,14,14,17,16,7,9,9,11,11,12,12,14,14,14,14,17,16,7,9,9,11,11,13,12,13,13,14,14,17,0,9,11,11,12,13,14,14,14,13,15,14,17,17,9,11,11,12,12,14,14,13,14,14,15,0,0,11,12,12,15,14,15,14,15,14,15,16,17,0,11,12,13,13,13,14,14,15,14,15,15,0,0,12,14,14,15,15,14,16,15,15,17,16,0,18,13,14,14,15,14,15,14,15,16,17,16,0,0,17,17,18,0,16,18,16,0,0,0,17,0,0,16,0,0,16,16,0,15,0,17,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,6,8,7,8,8,10,10,4,6,6,8,8,8,8,10,10,6,8,8,9,9,9,9,11,11,7,8,8,9,9,9,9,11,11,7,8,8,9,9,10,10,12,11,7,8,8,9,9,10,10,11,11,9,10,10,11,11,11,12,12,12,9,10,10,11,11,12,12,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,5,6,7,9,9,6,7,6,9,9,9,9,9,10,11,9,9,9,11,10,6,7,7,10,10,7,7,8,10,10,7,8,8,10,10,10,10,10,10,11,9,10,10,11,12,6,7,7,10,10,7,8,8,10,10,7,8,7,10,10,9,10,10,12,11,10,10,10,11,10,9,10,10,12,11,10,10,10,13,11,9,10,10,12,12,11,11,12,12,13,11,11,11,12,13,9,10,10,12,12,10,10,11,12,12,10,10,11,12,12,11,11,11,13,13,11,12,12,13,13,5,7,7,10,10,7,8,8,10,10,7,8,8,10,10,10,11,11,12,12,10,11,10,12,12,7,8,8,11,11,7,8,9,10,11,8,9,9,11,11,11,10,11,10,12,10,11,11,12,13,7,8,8,10,11,8,9,8,12,10,8,9,9,11,12,10,11,10,13,11,10,11,11,13,12,9,11,10,13,12,10,10,11,12,12,10,11,11,13,13,12,10,13,11,14,11,12,12,15,13,9,11,11,13,13,10,11,11,13,12,10,11,11,12,14,12,13,11,14,12,12,12,12,14,14,5,7,7,10,10,7,8,8,10,10,7,8,8,11,10,10,11,11,12,12,10,11,10,12,12,7,8,8,10,11,8,9,9,12,11,8,8,9,10,11,10,11,11,12,13,11,10,11,11,13,6,8,8,10,11,8,9,9,11,11,7,9,7,11,10,10,11,11,12,12,10,11,10,13,10,9,11,10,13,12,10,12,11,13,13,10,10,11,12,13,11,12,13,15,14,11,11,13,12,13,9,10,11,12,13,10,11,11,12,13,10,11,10,13,12,12,13,13,13,14,12,12,11,14,11,8,10,10,12,13,10,11,11,13,13,10,11,10,13,13,12,13,14,15,14,12,12,12,14,13,9,10,10,13,12,10,10,12,13,13,10,11,11,15,12,12,12,13,15,14,12,13,13,15,13,9,10,11,12,13,10,12,10,13,12,10,11,11,12,13,12,14,12,15,13,12,12,12,15,14,11,12,11,14,13,11,11,12,14,14,12,13,13,14,13,13,11,15,11,15,14,14,14,16,15,11,12,12,13,14,11,13,11,14,14,12,12,13,14,15,12,14,12,15,12,13,15,14,16,15,8,10,10,12,12,10,10,10,12,13,10,11,11,13,13,12,12,12,13,14,13,13,13,15,15,9,10,10,12,12,10,11,11,13,12,10,10,11,13,13,12,12,12,14,14,12,12,13,15,14,9,10,10,13,12,10,10,12,12,13,10,11,10,13,13,12,13,13,14,14,12,13,12,14,13,11,12,12,14,13,12,13,12,14,14,10,12,12,14,14,14,14,14,16,14,13,12,14,12,15,10,12,12,14,15,12,13,13,14,16,11,12,11,15,14,13,14,14,14,15,13,14,11,14,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,7,7,6,7,7,9,9,6,7,7,9,9,8,10,9,11,11,8,9,9,11,11,6,8,8,10,10,8,10,10,11,11,8,10,10,11,11,10,11,11,12,12,10,11,11,12,13,6,8,8,10,10,8,10,10,11,11,8,10,10,11,11,9,10,11,12,12,10,11,11,12,12,8,11,11,14,13,10,12,11,15,13,10,12,11,14,14,12,13,12,16,14,12,14,12,16,15,8,11,11,13,14,10,11,12,13,15,10,11,12,13,15,11,12,13,14,15,12,12,14,14,16,5,8,8,11,11,9,11,11,12,12,8,10,11,12,12,11,12,12,15,14,11,12,12,14,14,7,11,10,13,12,10,11,12,13,14,10,12,12,14,13,12,13,13,14,15,12,13,13,15,15,7,10,11,12,13,10,12,11,14,13,10,12,13,13,15,12,13,12,14,14,11,13,13,15,16,9,12,12,15,14,11,13,13,15,16,11,13,13,16,16,13,14,15,15,15,12,14,15,17,16,9,12,12,14,15,11,13,13,15,16,11,13,13,16,18,13,14,14,17,16,13,15,15,17,18,5,8,9,11,11,8,11,11,12,12,8,10,11,12,12,11,12,12,14,14,11,12,12,14,15,7,11,10,12,13,10,12,12,14,13,10,11,12,13,14,11,13,13,15,14,12,13,13,14,15,7,10,11,13,13,10,12,12,13,14,10,12,12,13,13,11,13,13,16,16,12,13,13,15,14,9,12,12,16,15,10,13,13,15,15,11,13,13,17,15,12,15,15,18,17,13,14,14,15,16,9,12,12,15,15,11,13,13,15,16,11,13,13,15,15,12,15,15,16,16,13,15,14,17,15,7,11,11,15,15,10,13,13,16,15,10,13,13,15,16,14,15,15,17,19,13,15,14,15,18,9,12,12,16,16,11,13,14,17,16,11,13,13,17,16,15,15,16,17,19,13,15,16,0,18,9,12,12,16,15,11,14,13,17,17,11,13,14,16,16,15,16,16,19,18,13,15,15,17,19,11,14,14,19,16,12,14,15,0,18,12,16,15,18,17,15,15,18,16,19,14,15,17,19,19,11,14,14,18,19,13,15,14,19,19,12,16,15,18,17,15,17,15,0,16,14,17,16,19,0,7,11,11,14,14,10,12,12,15,15,10,13,13,16,15,13,15,15,17,0,14,15,15,16,19,9,12,12,16,16,11,14,14,16,16,11,13,13,16,16,14,17,16,19,0,14,18,17,17,19,9,12,12,15,16,11,13,13,15,17,12,14,13,19,16,13,15,15,17,19,15,17,16,17,19,11,14,14,19,16,12,15,15,19,17,13,14,15,17,19,14,16,17,19,19,16,15,16,17,19,11,15,14,16,16,12,15,15,19,0,12,14,15,19,19,14,16,16,0,18,15,19,14,18,16,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,6,6,5,6,6,5,7,7,6,7,8,6,7,8,5,7,7,6,8,8,7,9,7,5,7,7,7,9,9,7,8,8,6,9,8,7,7,10,8,10,10,6,8,8,8,10,8,8,10,10,5,7,7,7,8,8,7,8,9,6,8,8,8,10,10,8,8,10,6,8,9,8,10,10,7,10,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,8,8,10,10,7,10,10,5,8,8,7,10,10,8,10,10,4,9,8,8,11,11,8,11,11,7,11,11,10,11,13,10,13,13,7,11,11,10,13,12,10,13,13,5,9,8,8,11,11,8,11,11,7,11,11,9,13,13,10,12,13,7,11,11,10,13,13,10,13,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,11,9,12,8,7,10,6,4,5,5,7,5,6,16,9,5,5,6,7,7,9,16,7,4,6,5,7,5,7,17,10,7,7,8,7,7,8,18,7,5,6,4,5,4,5,15,7,6,7,5,6,4,5,15,12,13,18,12,17,11,9,17,6,0,0,0,6,0,0,0,120,45,1,0,160,45,1,0,200,45,1,0,240,45,1,0,24,46,1,0,0,0,0,0,56,43,1,0,96,43,1,0,136,43,1,0,176,43,1,0,216,43,1,0,0,0,0,0,216,39,1,0,0,40,1,0,40,40,1,0,80,40,1,0,120,40,1,0,160,40,1,0,200,40,1,0,240,40,1,0,120,36,1,0,160,36,1,0,200,36,1,0,240,36,1,0,24,37,1,0,64,37,1,0,104,37,1,0,144,37,1,0,80,31,1,0,120,31,1,0,160,31,1,0,200,31,1,0,240,31,1,0,24,32,1,0,64,32,1,0,104,32,1,0,144,32,1,0,184,32,1,0,224,32,1,0,8,33,1,0,40,26,1,0,80,26,1,0,120,26,1,0,160,26,1,0,200,26,1,0,240,26,1,0,24,27,1,0,64,27,1,0,104,27,1,0,144,27,1,0,184,27,1,0,224,27,1,0,232,23,1,0,16,24,1,0,56,24,1,0,96,24,1,0,136,24,1,0,0,0,0,0,216,16,1,0,0,17,1,0,40,17,1,0,80,17,1,0,120,17,1,0,160,17,1,0,200,17,1,0,240,17,1,0,24,18,1,0,64,18,1,0,104,18,1,0,144,18,1,0,184,18,1,0,224,18,1,0,8,19,1,0,0,0,0,0,200,9,1,0,240,9,1,0,24,10,1,0,64,10,1,0,104,10,1,0,144,10,1,0,184,10,1,0,224,10,1,0,8,11,1,0,48,11,1,0,88,11,1,0,128,11,1,0,168,11,1,0,208,11,1,0,248,11,1,0,0,0,0,0,160,4,1,0,200,4,1,0,240,4,1,0,24,5,1,0,64,5,1,0,104,5,1,0,144,5,1,0,184,5,1,0,224,5,1,0,8,6,1,0,48,6,1,0,88,6,1,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,192,9,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,128,9,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,64,9,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,192,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,160,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,32,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,8,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,208,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,80,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,56,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,0,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,128,6,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,8,4,8,4,8,4,8,5,8,5,8,6,8,4,8,4,8,5,8,5,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,4,3,5,4,6,4,6,5,7,6,7,6,8,6,8,7,9,8,10,8,12,9,13,10,15,10,15,11,14,0,0,0,0,0,0,0,4,4,4,4,4,4,3,4,4,4,4,4,5,4,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,4,3,4,4,5,5,6,6,7,7,7,8,8,11,8,9,9,9,10,11,11,11,9,10,10,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,3,4,3,4,4,5,4,5,4,6,4,6,5,6,5,7,5,7,6,8,6,8,6,8,7,8,7,9,7,9,8,0,0,0,0,0,0,0,4,5,4,4,4,5,4,4,4,5,4,5,4,5,3,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,3,5,3,5,4,5,4,5,4,5,5,5,5,6,5,6,5,7,5,8,6,8,6,8,6,8,6,8,7,9,7,9,7,11,9,11,11,12,11,14,12,14,16,14,16,13,16,14,16,12,15,13,16,14,16,13,14,12,15,13,15,13,13,13,15,12,14,14,15,13,15,12,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,2,4,5,4,5,4,5,4,5,5,5,5,5,5,6,5,6,5,6,6,7,6,7,6,8,7,8,7,8,7,8,7,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,6,6,6,6,5,6,6,7,6,7,6,7,6,7,6,8,7,8,7,8,7,8,7,8,7,9,7,9,7,9,7,9,8,9,8,10,8,10,8,10,7,10,6,10,8,10,8,11,7,10,7,11,8,11,11,12,12,11,11,12,11,13,11,13,11,13,12,15,12,13,13,14,14,14,14,14,15,15,15,16,14,17,19,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,2,4,6,17,4,5,7,17,8,7,10,17,17,17,17,17,3,4,6,15,3,3,6,15,7,6,9,17,17,17,17,17,6,8,10,17,6,6,8,16,9,8,10,17,17,15,16,17,17,17,17,17,12,15,15,16,12,15,15,16,16,16,16,16,3,3,3,14,5,4,4,11,8,6,6,10,17,12,11,17,6,5,5,15,5,3,4,11,8,5,5,8,16,9,10,14,10,8,9,17,8,6,6,13,10,7,7,10,16,11,13,14,17,17,17,17,17,16,16,16,16,15,16,16,16,16,16,16,1,2,3,6,5,4,7,7,1,0,0,0,16,0,0,0,200,16,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,192,16,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,192,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,128,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,0,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,224,14,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,96,14,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,64,14,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,192,13,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,168,13,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,112,13,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,240,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,216,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,160,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,32,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,5,7,5,7,7,7,7,7,5,7,5,7,5,7,5,7,7,7,7,7,4,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,4,3,4,4,4,5,5,6,5,6,5,7,6,6,6,7,7,7,8,9,9,9,12,10,11,10,10,12,10,10,0,0,0,0,0,0,0,3,4,4,4,4,4,4,4,4,5,4,5,4,5,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,3,7,3,7,5,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,4,4,4,4,4,4,5,5,5,5,6,6,7,6,7,6,8,6,9,7,9,7,9,9,11,9,12,10,12,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,3,4,3,4,4,5,4,5,5,5,6,6,6,7,6,8,6,8,6,9,7,10,7,10,7,10,7,12,7,12,7,12,9,12,11,12,10,12,10,12,11,12,12,12,10,12,10,12,10,12,9,12,11,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,10,10,12,12,12,12,12,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,2,4,5,4,5,4,5,4,5,5,5,5,5,5,6,5,6,5,6,6,6,6,7,7,7,7,7,7,8,8,8,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,6,5,7,5,7,4,7,4,8,4,8,4,8,4,8,3,8,4,9,4,9,4,9,4,9,4,9,5,9,5,9,6,9,7,9,8,9,9,9,10,9,11,9,14,9,15,10,15,10,15,10,15,10,15,11,15,10,14,12,14,11,14,13,14,13,15,15,15,12,15,15,15,13,15,13,15,13,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,7,6,7,6,7,6,7,6,5,5,5,5,5,5,6,5,6,5,6,5,6,5,6,5,6,5,7,5,7,5,7,5,8,5,8,5,8,5,9,5,9,6,10,6,10,6,11,6,11,6,11,6,11,6,11,6,11,6,11,6,12,7,11,7,11,7,11,7,11,7,10,7,11,7,11,7,12,7,11,8,11,8,11,8,11,8,13,8,12,9,11,9,11,9,11,10,12,10,12,9,12,10,12,11,14,12,16,12,12,11,14,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16,2,4,7,13,4,5,7,15,8,7,10,16,16,14,16,16,2,4,7,16,3,4,7,14,8,8,10,16,16,16,15,16,6,8,11,16,7,7,9,16,11,9,13,16,16,16,15,16,16,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16,3,3,6,16,5,5,7,16,9,8,11,16,16,16,16,16,5,5,8,16,5,5,7,16,8,7,9,16,16,16,16,16,9,9,12,16,6,8,11,16,9,10,11,16,16,16,16,16,16,16,16,16,13,16,16,16,15,16,16,16,16,16,16,16,5,4,7,16,6,5,8,16,9,8,10,16,16,16,16,16,5,5,7,15,5,4,6,15,7,6,8,16,16,16,16,16,9,9,11,15,7,7,9,16,8,8,9,16,16,16,16,16,16,16,16,16,15,15,15,16,15,15,14,16,16,16,16,16,8,8,11,16,8,9,10,16,11,10,14,16,16,16,16,16,6,8,10,16,6,7,10,16,8,8,11,16,14,16,16,16,10,11,14,16,9,9,11,16,10,10,11,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,12,16,15,16,12,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1,2,3,6,4,7,5,7,2,6,8,9,7,11,13,13,1,3,5,5,6,6,12,10,1,0,0,0,16,0,0,0,216,23,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,208,23,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,208,22,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,144,22,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,16,22,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,240,21,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,112,21,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,80,21,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,208,20,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,184,20,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,128,20,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,0,20,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,232,19,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,176,19,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,48,19,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,5,2,6,3,6,4,7,4,7,5,9,5,11,6,11,6,11,7,11,6,11,6,11,9,11,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,2,4,2,5,3,5,4,6,6,6,7,7,8,7,8,7,8,7,9,8,9,8,9,8,10,8,11,9,12,9,12,0,0,0,0,0,0,0,4,5,4,5,4,5,4,5,3,5,3,5,3,5,4,5,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,3,7,3,8,3,10,3,8,3,9,3,8,4,9,4,9,5,9,6,10,6,9,7,11,7,12,9,13,10,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,4,3,4,4,4,4,5,5,5,5,5,6,5,7,5,8,6,8,6,9,7,10,7,10,8,10,8,11,9,11,0,0,0,0,0,0,0,4,5,4,5,3,5,3,5,3,5,4,4,4,4,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,3,4,3,4,4,5,4,5,4,5,5,6,5,6,5,7,5,7,6,7,6,8,7,8,7,8,7,9,8,9,9,9,9,10,10,10,11,9,12,9,12,9,15,10,14,9,13,10,13,10,12,10,12,10,13,10,12,11,13,11,14,12,13,13,14,14,13,14,15,14,16,13,13,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,15,1,5,5,5,5,5,5,5,6,5,6,5,6,5,6,5,6,6,7,7,7,7,8,7,8,8,9,8,10,9,10,9,0,0,0,0,0,0,0,0,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,5,8,4,9,4,9,4,9,4,9,4,9,4,9,4,9,4,9,4,9,4,8,4,8,4,9,5,9,5,9,5,9,5,9,6,10,6,10,7,10,8,11,9,11,11,12,13,12,14,13,15,13,15,14,16,14,17,15,17,15,15,16,16,15,16,16,16,15,18,16,15,17,17,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,2,5,5,4,5,4,5,4,5,4,6,5,6,5,6,5,6,5,7,5,7,6,8,6,8,6,8,6,9,6,9,6,5,5,5,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,7,5,7,5,7,5,7,5,8,6,8,6,8,6,9,6,9,6,10,6,10,6,11,6,11,7,11,7,12,7,12,7,12,7,12,7,12,7,12,7,12,7,12,8,13,8,12,8,12,8,13,8,13,9,13,9,13,9,13,9,12,10,12,10,13,10,14,11,14,12,14,13,14,13,14,14,15,16,15,15,15,14,15,17,21,22,22,21,22,22,22,22,22,22,21,21,21,21,21,21,21,21,21,21,2,3,7,13,4,4,7,15,8,6,9,17,21,16,15,21,2,5,7,11,5,5,7,14,9,7,10,16,17,15,16,21,4,7,10,17,7,7,9,15,11,9,11,16,21,18,15,21,18,21,21,21,15,17,17,19,21,19,18,20,21,21,21,20,1,5,7,21,5,8,9,21,10,9,12,20,20,16,20,20,4,8,9,20,6,8,9,20,11,11,13,20,20,15,17,20,9,11,14,20,8,10,15,20,11,13,15,20,20,20,20,20,20,20,20,20,13,20,20,20,18,18,20,20,20,20,20,20,3,6,8,20,6,7,9,20,10,9,12,20,20,20,20,20,5,7,9,20,6,6,9,20,10,9,12,20,20,20,20,20,8,10,13,20,8,9,12,20,11,10,12,20,20,20,20,20,18,20,20,20,15,17,18,20,18,17,18,20,20,20,20,20,7,10,12,20,8,9,11,20,14,13,14,20,20,20,20,20,6,9,12,20,7,8,11,20,12,11,13,20,20,20,20,20,9,11,15,20,8,10,14,20,12,11,14,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,11,16,18,20,15,15,17,20,20,17,20,20,20,20,20,20,9,14,16,20,12,12,15,20,17,15,18,20,20,20,20,20,16,19,18,20,15,16,20,20,17,17,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,1,4,2,6,3,7,5,7,2,10,8,14,7,12,11,14,1,5,3,7,4,9,7,13,1,0,0,0,0,1,0,0,40,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,32,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,16,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,240,24,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,176,24,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,2,4,3,5,4,5,5,5,5,6,6,6,6,6,6,6,7,7,8,6,9,7,12,11,16,13,16,12,15,13,15,12,14,12,15,15,15,0,0,0,0,0,0,0,0,0,0,3,3,3,4,3,4,4,4,4,4,5,5,5,6,6,0,0,0,0,0,0,0,0,0,0,0,2,3,2,3,3,3,0,0,0,0,0,0,1,3,2,3,0,0,0,0,4,5,6,11,5,5,6,10,7,7,6,6,14,13,9,9,6,6,6,10,6,6,6,9,8,7,7,9,14,12,8,11,8,7,7,11,8,8,7,11,9,9,7,9,13,11,9,13,19,19,18,19,15,16,16,19,11,11,10,13,10,10,9,15,5,5,6,13,6,6,6,11,8,7,6,7,14,11,10,11,6,6,6,12,7,6,6,11,8,7,7,11,13,11,9,11,9,7,6,12,8,7,6,12,9,8,8,11,13,10,7,13,19,19,17,19,17,14,14,19,12,10,8,12,13,10,9,16,7,8,7,12,7,7,7,11,8,7,7,8,12,12,11,11,8,8,7,12,8,7,6,11,8,7,7,10,10,11,10,11,9,8,8,13,9,8,7,12,10,9,7,11,9,8,7,11,18,18,15,18,18,16,17,18,15,11,10,18,11,9,9,18,16,16,13,16,12,11,10,16,12,11,9,6,15,12,11,13,16,16,14,14,13,11,12,16,12,9,9,13,13,10,10,12,17,18,17,17,14,15,14,16,14,12,14,15,12,10,11,12,18,18,18,18,18,18,18,18,18,12,13,18,16,11,9,18,1,0,0,0,8,0,0,0,72,31,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,8,31,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,200,30,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,72,30,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,40,30,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,168,29,1],"i8",O3,_.GLOBAL_BASE+62212),C3([1,0,0,0,18,0,0,0,144,29,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,88,29,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,216,28,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,192,28,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,136,28,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,8,28,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,4,3,4,4,4,5,4,7,5,8,5,11,6,10,6,12,7,12,7,12,8,12,8,12,10,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,3,6,3,6,4,7,4,7,4,7,4,8,4,8,4,8,4,8,4,9,4,9,5,10,5,10,7,10,8,10,8,0,0,0,0,0,0,0,4,4,4,4,4,4,4,5,3,5,3,5,4,6,4,6,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,1,5,3,5,3,5,4,7,5,10,7,10,7,12,10,14,10,14,9,14,11,14,14,14,13,13,13,13,13,13,13,0,0,0,0,0,0,0,4,5,4,6,4,8,3,9,3,9,2,9,3,8,4,9,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,4,3,5,3,5,3,6,3,6,4,6,4,7,4,7,5,8,5,8,6,9,7,9,7,9,8,10,9,10,9,11,10,11,11,11,11,11,11,12,12,12,13,12,13,12,14,12,15,12,14,12,16,13,17,13,17,14,17,14,16,13,17,14,17,14,17,15,17,15,15,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,16,2,5,5,4,5,4,5,4,5,5,5,5,5,5,6,5,6,5,6,5,7,6,7,6,7,6,8,6,9,7,9,7,5,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,7,5,7,5,7,5,7,5,7,5,7,5,8,5,8,5,8,5,8,5,8,6,8,6,8,6,9,6,9,6,9,6,9,6,9,7,9,7,9,7,9,7,10,7,10,8,10,8,10,8,10,8,10,8,11,8,11,8,11,8,11,8,11,9,12,9,12,9,12,9,12,9,12,10,12,10,13,11,13,11,14,12,14,13,15,14,16,14,17,15,18,16,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,3,6,10,17,4,8,11,20,8,10,11,20,20,20,20,20,2,4,8,18,4,6,8,17,7,8,10,20,20,17,20,20,3,5,8,17,3,4,6,17,8,8,10,17,17,12,16,20,13,13,15,20,10,10,12,20,15,14,15,20,20,20,19,19,1,4,10,19,3,8,13,19,7,12,19,19,19,19,19,19,2,6,11,19,8,13,19,19,9,11,19,19,19,19,19,19,6,7,13,19,9,13,19,19,10,13,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,1,3,4,7,2,5,6,7,1,0,0,0,8,0,0,0,112,36,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,48,36,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,240,35,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,112,35,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,80,35,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,208,34,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,184,34,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,128,34,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,0,34,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,0,0,0,232,33,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,50,0,0,0,176,33,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,0,0,0,48,33,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,1,6,3,7,3,8,4,8,5,8,8,8,9,7,8,8,7,7,7,8,9,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,3,5,4,6,4,6,4,7,4,7,4,8,4,8,4,9,4,9,4,10,4,10,5,10,5,11,5,12,6,12,6,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,5,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,4,8,3,8,4,8,4,8,6,8,5,8,4,8,4,8,6,8,7,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,4,4,4,4,5,4,5,4,6,5,7,5,7,6,8,6,8,6,9,7,9,7,10,7,9,8,11,8,11,0,0,0,0,0,0,0,4,5,4,5,4,5,3,5,3,5,3,5,4,4,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,5,3,6,4,6,4,7,4,7,4,7,4,8,4,8,4,9,5,9,5,9,5,9,6,10,6,10,6,11,7,10,7,10,8,11,9,11,9,11,10,11,11,12,11,11,12,15,15,12,14,11,14,12,14,11,14,13,14,12,14,11,14,11,14,12,14,11,14,11,14,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,2,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,6,5,6,5,6,5,7,6,7,6,7,6,8,6,8,6,5,5,5,5,5,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,6,6,6,7,6,7,6,7,6,7,6,7,6,7,6,8,6,8,6,8,7,8,7,8,7,8,7,9,7,9,8,9,8,9,8,10,8,10,9,10,9,10,9,11,9,11,9,10,10,11,10,11,10,11,11,11,11,11,11,12,13,14,14,14,15,15,16,16,16,17,15,16,15,16,16,17,17,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,7,6,9,17,7,6,8,17,12,9,11,16,16,16,16,16,5,4,7,16,5,3,6,14,9,6,8,15,16,16,16,16,5,4,6,13,3,2,4,11,7,4,6,13,16,11,10,14,12,12,12,16,9,7,10,15,12,9,11,16,16,15,15,16,1,6,12,16,4,12,15,16,9,15,16,16,16,16,16,16,2,5,11,16,5,11,13,16,9,13,16,16,16,16,16,16,4,8,12,16,5,9,12,16,9,13,15,16,16,16,16,16,15,16,16,16,11,14,13,16,12,15,16,16,16,16,16,15,1,6,3,7,2,4,5,7,1,0,0,0,64,0,0,0,152,39,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,152,38,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,136,38,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,104,38,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,40,38,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,24,38,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,248,37,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,184,37,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,4,3,6,3,7,3,8,5,8,6,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,7,0,0,0,0,0,0,0,0,0,2,3,3,4,3,4,4,5,4,6,5,6,7,6,8,8,0,0,0,0,0,0,0,0,3,3,3,3,2,4,3,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,3,5,2,5,3,5,3,6,3,6,4,7,6,7,8,7,9,8,9,9,9,10,9,11,13,11,13,10,10,13,13,13,13,13,13,12,12,12,12,0,0,0,0,0,0,0,0,0,3,4,3,4,3,5,3,6,3,6,4,6,4,7,5,7,0,0,0,0,0,0,0,0,2,3,3,3,3,4,3,4,0,0,0,0,0,0,0,5,6,8,15,6,9,10,15,10,11,12,15,15,15,15,15,4,6,7,15,6,7,8,15,9,8,9,15,15,15,15,15,6,8,9,15,7,7,8,15,10,9,10,15,15,15,15,15,15,13,15,15,15,10,11,15,15,13,13,15,15,15,15,15,4,6,7,15,6,8,9,15,10,10,12,15,15,15,15,15,2,5,6,15,5,6,7,15,8,6,7,15,15,15,15,15,5,6,8,15,5,6,7,15,9,6,7,15,15,15,15,15,14,12,13,15,12,10,11,15,15,15,15,15,15,15,15,15,7,8,9,15,9,10,10,15,15,14,14,15,15,15,15,15,5,6,7,15,7,8,9,15,12,9,10,15,15,15,15,15,7,7,9,15,7,7,8,15,12,8,9,15,15,15,15,15,13,13,14,15,12,11,12,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,13,13,13,15,15,15,15,15,15,15,15,15,15,15,15,15,15,12,13,15,15,12,13,15,15,14,15,15,15,15,15,15,15,15,15,15,15,15,13,15,15,15,15,15,15,15,15,15,7,5,5,9,9,6,6,9,12,8,7,8,11,8,9,15,6,3,3,7,7,4,3,6,9,6,5,6,8,6,8,15,8,5,5,9,8,5,4,6,10,7,5,5,11,8,7,15,14,15,13,13,13,13,8,11,15,10,7,6,11,9,10,15,1,0,0,0,64,0,0,0,248,42,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,248,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,232,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,200,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,136,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,120,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,88,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,24,41,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,7,2,7,3,8,4,9,5,9,8,10,11,11,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,13,13,13,0,0,0,0,0,0,0,0,0,3,4,3,6,3,6,3,6,3,7,3,8,4,9,4,9,0,0,0,0,0,0,0,0,3,3,2,3,3,4,3,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,3,5,3,5,3,5,4,5,4,5,5,5,5,6,5,6,5,6,5,6,5,6,5,7,8,9,11,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,0,0,3,3,3,4,4,4,4,5,4,5,4,5,4,6,4,6,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,8,13,17,17,8,11,17,17,11,13,17,17,17,17,17,17,6,10,16,17,6,10,15,17,8,10,16,17,17,17,17,17,9,13,15,17,8,11,17,17,10,12,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,6,11,15,17,7,10,15,17,8,10,17,17,17,15,17,17,4,8,13,17,4,7,13,17,6,8,15,17,16,15,17,17,6,11,15,17,6,9,13,17,8,10,17,17,15,17,17,17,16,17,17,17,12,14,15,17,13,14,15,17,17,17,17,17,5,10,14,17,5,9,14,17,7,9,15,17,15,15,17,17,3,7,12,17,3,6,11,17,5,7,13,17,12,12,17,17,5,9,14,17,3,7,11,17,5,8,13,17,13,11,16,17,12,17,17,17,9,14,15,17,10,11,14,17,16,14,17,17,8,12,17,17,8,12,17,17,10,12,17,17,17,17,17,17,5,10,17,17,5,9,15,17,7,9,17,17,13,13,17,17,7,11,17,17,6,10,15,17,7,9,15,17,12,11,17,17,12,15,17,17,11,14,17,17,11,10,15,17,17,16,17,17,10,7,8,13,9,6,7,11,10,8,8,12,17,17,17,17,7,5,5,9,6,4,4,8,8,5,5,8,16,14,13,16,7,5,5,7,6,3,3,5,8,5,4,7,14,12,12,15,10,7,8,9,7,5,5,6,9,6,5,5,15,12,9,10,1,0,0,0,0,1,0,0,120,44,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,112,44,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,96,44,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,64,44,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,0,44,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,3,5,3,5,3,6,4,7,4,7,5,7,6,7,6,7,8,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,0,0,0,0,0,0,0,0,0,0,4,3,4,3,4,3,5,3,5,4,5,4,6,4,6,0,0,0,0,0,0,0,0,0,0,0,2,2,3,3,3,3,0,0,0,0,0,0,2,2,2,2,0,0,0,0,6,7,7,12,6,6,7,12,7,6,6,10,15,12,11,13,7,7,8,13,7,7,8,12,7,7,7,11,12,12,11,13,10,9,9,11,9,9,9,10,10,8,8,12,14,12,12,14,11,11,12,14,11,12,11,15,15,12,13,15,15,15,15,15,6,6,7,10,6,6,6,11,7,6,6,9,14,12,11,13,7,7,7,10,6,6,7,9,7,7,6,10,13,12,10,12,9,9,9,11,9,9,8,9,9,8,8,10,13,12,10,12,12,12,11,13,12,12,11,12,15,13,12,15,15,15,14,14,6,6,6,8,6,6,5,6,7,7,6,5,11,10,9,8,7,6,6,7,6,6,5,6,7,7,6,6,11,10,9,8,8,8,8,9,8,8,7,8,8,8,6,7,11,10,9,9,14,11,10,14,14,11,10,15,13,11,9,11,15,12,12,11,11,9,8,8,10,9,8,9,11,10,9,8,12,11,12,11,13,10,8,9,11,10,8,9,10,9,8,9,10,8,12,12,15,11,10,10,13,11,10,10,8,8,7,12,10,9,11,12,15,12,11,15,13,11,11,15,12,14,11,13,15,15,13,13,1,0,0,0,0,1,0,0,184,46,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,176,46,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,160,46,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,25,0,0,0,128,46,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,64,46,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,3,5,3,5,3,5,4,6,5,6,5,7,6,6,7,7,9,9,11,11,16,11,14,10,11,11,13,16,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,3,3,4,3,4,3,4,4,5,4,5,4,6,5,6,0,0,0,0,0,0,0,0,0,0,0,3,2,3,2,3,3,0,0,0,0,0,0,2,2,2,2,0,0,0,0,7,7,7,11,6,6,7,11,7,6,6,10,12,10,10,13,7,7,8,11,7,7,7,11,7,6,7,10,11,10,10,13,10,10,9,12,9,9,9,11,8,8,8,11,13,11,10,14,15,15,14,15,15,14,13,14,15,12,12,17,17,17,17,17,7,7,6,9,6,6,6,9,7,6,6,8,11,11,10,12,7,7,7,9,7,6,6,9,7,6,6,9,13,10,10,11,10,9,8,10,9,8,8,10,8,8,7,9,13,12,10,11,17,14,14,13,15,14,12,13,17,13,12,15,17,17,14,17,7,6,6,7,6,6,5,7,6,6,6,6,11,9,9,9,7,7,6,7,7,6,6,7,6,6,6,6,10,9,8,9,10,9,8,8,9,8,7,8,8,7,6,8,11,10,9,10,17,17,12,15,15,15,12,14,14,14,10,12,15,13,12,13,11,10,8,10,11,10,8,8,10,9,7,7,10,9,9,11,11,11,9,10,11,10,8,9,10,8,6,8,10,9,9,11,14,13,10,12,12,11,10,10,8,7,8,10,10,11,11,12,17,17,15,17,17,17,17,17,17,13,12,17,17,17,14,17,200,47,1,0,216,72,1,0,200,47,1,0,248,72,1,0,1],"i8",O3,_.GLOBAL_BASE+72464),C3([1],"i8",O3,_.GLOBAL_BASE+78916),C3([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],"i8",O3,_.GLOBAL_BASE+79944),C3([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],"i8",O3,_.GLOBAL_BASE+81996),C3([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,120,124,1,0,120,124,1,0,160,124,1,0,160,124,1,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,48,84,1,0,48,84,1,0,88,84,1,0,88,84,1,0,0,0,0,0,255,255,255,255,255,255,255,255,10,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+83152),C3([1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,231,3,0,0,0,0,0,0,231,3,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,16,124,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,85,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,85,1,0,0,0,0,0,0,0,0,0,0,0,0,0,104,85,1,0,0,0,0,0,0,0,0,0,0,0,0,0,144,85,1,0,0,0,0,0,0,0,0,0,0,0,0,0,184,85,1,0,0,0,0,0,224,85,1,0,8,86,1,0,0,0,0,0,0,0,0,0,48,86,1,0,88,86,1,0,0,0,0,0,0,0,0,0,128,86,1,0,168,86,1,0,208,86,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,161,25,0,0,88,98,1,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,0,124,1,0,0,0,0,0,4,0,0,0,113,2,0,0,200,95,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,98,1,0,0,0,0,0,2,0,0,0,81,0,0,0,72,95,1,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,160,95,1,0,0,0,0,0,2,0,0,0,81,0,0,0,200,94,1,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,32,95,1,0,0,0,0,0,2,0,0,0,33,1,0,0,88,93,1,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,128,94,1,0,0,0,0,0,4,0,0,0,81,0,0,0,240,92,1,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,72,93,1,0,0,0,0,0,2,0,0,0,121,0,0,0,64,92,1,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,192,92,1,0,0,0,0,0,2,0,0,0,169,0,0,0,88,91,1,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,8,92,1,0,0,0,0,0,2,0,0,0,25,0,0,0,32,91,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,91,1,0,0,0,0,0,2,0,0,0,169,0,0,0,56,90,1,0,1,0,0,0,0,136,93,225,0,176,19,97,4,0,0,0,0,0,0,0,232,90,1,0,0,0,0,0,2,0,0,0,225,0,0,0,16,89,1,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,248,89,1,0,0,0,0,0,2,0,0,0,185,1,0,0,248,86,1,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,184,88,1,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,9,8,9,9,9,9,9,9,9,9,11,11,12,7,7,7,7,8,8,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,7,7,7,7,8,8,9,8,9,9,9,9,9,9,10,10,10,10,11,11,12,8,8,8,8,8,8,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,12,11,9,9,8,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,8,8,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,12,11,12,11,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,12,11,12,11,11,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,12,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,12,11,11,12,11,10,10,10,10,10,10,10,10,10,10,10,10,11,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,12,11,12,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,12,11,12,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,12,11,11,12,11,11,12,10,10,11,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,12,12,11,12,11,11,12,12,12,11,11,10,10,10,10,10,10,10,10,10,11,12,12,11,12,12,11,12,11,11,11,11,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,5,5,7,7,9,9,11,11,12,12,13,13,6,5,5,6,6,9,9,10,10,12,12,12,13,15,14,6,5,5,7,7,9,9,10,10,12,12,12,13,14,13,17,7,7,8,8,10,10,11,11,12,13,13,13,13,13,17,7,7,8,8,10,10,11,11,13,13,13,13,14,14,17,11,11,9,9,11,11,12,12,12,13,13,14,15,13,17,12,12,9,9,11,11,12,12,13,13,13,13,14,16,17,17,17,11,12,12,12,13,13,13,14,15,14,15,15,17,17,17,12,12,11,11,13,13,14,14,15,14,15,15,17,17,17,15,15,13,13,14,14,15,14,15,15,16,15,17,17,17,15,15,13,13,13,14,14,15,15,15,15,16,17,17,17,17,16,14,15,14,14,15,14,14,15,15,15,17,17,17,17,17,14,14,16,14,15,15,15,15,15,15,17,17,17,17,17,17,16,16,15,17,15,15,14,17,15,17,16,17,17,17,17,16,15,14,15,15,15,15,15,15,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,3,10,10,10,10,10,10,10,10,10,10,5,6,6,10,10,10,10,10,10,10,10,10,10,6,7,8,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,8,8,9,9,10,10,7,5,5,7,7,8,8,8,8,9,10,11,11,7,5,5,7,7,8,8,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,9,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,9,10,9,10,11,11,11,0,13,12,9,8,9,9,10,10,11,11,12,11,0,0,0,9,9,9,9,10,10,11,11,12,12,0,0,0,10,10,9,9,10,10,11,11,12,12,0,0,0,13,13,10,10,11,11,12,11,13,12,0,0,0,14,14,10,10,11,10,11,11,12,12,0,0,0,0,0,12,12,11,11,12,12,13,13,0,0,0,0,0,12,12,11,10,12,11,13,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,5,7,7,7,7,7,7,10,10,9,7,7,7,7,8,8,8,8,9,9,9,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,6,7,6,6,4,7,7,10,9,9,10,9,9,5,7,7,10,9,9,10,9,9,6,10,10,10,10,10,11,10,10,6,9,9,10,9,10,11,10,10,6,9,9,10,9,9,11,9,10,7,10,10,11,11,11,11,10,10,6,9,9,10,10,10,11,9,9,6,9,9,10,10,10,10,9,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,5,5,8,8,8,8,9,9,10,10,11,11,11,11,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,9,9,8,8,10,10,10,10,11,11,12,12,12,12,0,0,0,9,9,8,8,10,10,10,10,11,11,12,12,12,12,0,0,0,10,10,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,10,10,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,11,11,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,11,12,12,13,13,0,0,0,0,0,10,10,11,11,11,11,12,12,13,12,13,13,0,0,0,0,0,0,0,11,10,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,14,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,14,13,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,4,5,6,6,8,8,0,0,0,8,8,7,7,9,9,0,0,0,8,8,7,7,9,9,0,0,0,9,10,8,8,9,9,0,0,0,10,10,8,8,9,9,0,0,0,11,10,8,8,10,10,0,0,0,11,11,8,8,10,10,0,0,0,12,12,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,2,3,7,7,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,8,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,8,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,7,9,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,8,10,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,8,10,8],"i8",O3,_.GLOBAL_BASE+86572),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,18,8,11,8,8,9,9,10,4,4,18,5,9,5,6,7,8,10,18,18,18,18,17,17,17,17,17,17,7,5,17,6,11,6,7,8,9,12,12,9,17,12,8,8,9,10,10,13,7,5,17,6,8,4,5,6,8,10,6,5,17,6,8,5,4,5,7,9,7,7,17,8,9,6,5,5,6,8,8,8,17,9,11,8,6,6,6,7,9,10,17,12,12,10,9,7,7,8,0,0,0,0,2,0,0,0,100,0,0,0,216,163,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,125,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,125,1,0,0,0,0,0,0,0,0,0,0,0,0,0,176,125,1,0,0,0,0,0,0,0,0,0,0,0,0,0,216,125,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,1,0,0,0,0,0,40,126,1,0,80,126,1,0,0,0,0,0,0,0,0,0,120,126,1,0,160,126,1,0,0,0,0,0,0,0,0,0,200,126,1,0,240,126,1,0,24,127,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,161,25,0,0,32,138,1,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,200,163,1,0,0,0,0,0,4,0,0,0,113,2,0,0,144,135,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,8,138,1,0,0,0,0,0,2,0,0,0,81,0,0,0,16,135,1,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,104,135,1,0,0,0,0,0,2,0,0,0,81,0,0,0,144,134,1,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,232,134,1,0,0,0,0,0,2,0,0,0,33,1,0,0,32,133,1,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,72,134,1,0,0,0,0,0,4,0,0,0,81,0,0,0,184,132,1,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,16,133,1,0,0,0,0,0,2,0,0,0,121,0,0,0,8,132,1,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,136,132,1,0,0,0,0,0,2,0,0,0,169,0,0,0,32,131,1,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,208,131,1,0,0,0,0,0,2,0,0,0,25,0,0,0,232,130,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,8,131,1,0,0,0,0,0,4,0,0,0,81,0,0,0,128,130,1,0,1,0,0,0,0,176,19,225,0,176,19,97,2,0,0,0,0,0,0,0,216,130,1,0,0,0,0,0,2,0,0,0,225,0,0,0,88,129,1,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,64,130,1,0,0,0,0,0,2,0,0,0,185,1,0,0,64,127,1,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,0,129,1,0,0,0,0,0,1,5,5,7,7,8,7,8,8,10,10,9,9,10,10,10,11,11,10,12,11,12,12,12,9,8,8,8,8,8,9,10,10,10,10,11,11,11,10,11,11,12,12,11,12,8,8,7,7,8,9,10,10,10,9,10,10,9,10,10,11,11,11,11,11,11,9,9,9,9,8,9,10,10,11,10,10,11,11,12,10,10,12,12,11,11,10,9,9,10,8,9,10,10,10,9,10,10,11,11,10,11,10,10,10,12,12,12,9,10,9,10,9,9,10,10,11,11,11,11,10,10,10,11,12,11,12,11,12,10,11,10,11,9,10,9,10,9,10,10,9,10,10,11,10,11,11,11,11,12,11,9,10,10,10,10,11,11,11,11,11,10,11,11,11,11,10,12,10,12,12,11,12,10,10,11,10,9,11,10,11,9,10,11,10,10,10,11,11,11,11,12,12,10,9,9,11,10,9,12,11,10,12,12,11,11,11,11,10,11,11,12,11,10,12,9,11,10,11,10,10,11,10,11,9,10,10,10,11,12,11,11,12,11,10,10,11,11,9,10,10,12,10,11,10,10,10,9,10,10,10,10,9,10,10,11,11,11,11,12,11,10,10,10,10,11,11,10,11,11,9,11,10,12,10,12,11,10,11,10,10,10,11,10,10,11,11,10,11,10,10,10,10,11,11,12,10,10,10,11,10,11,12,11,10,11,10,10,11,11,10,12,10,9,10,10,11,11,11,10,12,10,10,11,11,11,10,10,11,10,10,10,11,10,11,10,12,11,11,10,10,10,12,10,10,11,9,10,11,11,11,10,10,11,10,10,9,11,11,12,12,11,12,11,11,11,11,11,11,9,10,11,10,12,10,10,10,10,11,10,10,11,10,10,12,10,10,10,10,10,9,12,10,10,10,10,12,9,11,10,10,11,10,12,12,10,12,12,12,10,10,10,10,9,10,11,10,10,12,10,10,12,11,10,11,10,10,12,11,10,12,10,10,11,9,11,10,9,10,9,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,5,5,10,8,11,11,11,11,11,11,11,11,6,6,6,7,6,11,10,11,11,11,11,11,11,11,11,7,5,6,6,6,8,7,11,11,11,11,11,11,11,11,11,7,8,8,8,9,9,11,11,11,11,11,11,11,11,11,9,8,7,8,9,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,4,5,5,7,6,6,6,5,7,7,7,6,6,7,7,7,6,6,7,7,7,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,6,7,7,7,7,8,8,9,9,7,6,6,7,7,8,8,7,7,8,9,10,10,7,6,6,7,7,8,7,7,7,9,9,10,12,0,8,8,8,8,8,9,8,8,9,9,10,10,0,8,8,8,8,8,9,8,9,9,9,11,10,0,0,13,9,8,9,9,9,9,10,10,11,11,0,13,0,9,9,9,9,9,9,11,10,11,11,0,0,0,8,9,10,9,10,10,13,11,12,12,0,0,0,8,9,9,9,10,10,13,12,12,13,0,0,0,12,0,10,10,12,11,10,11,12,12,0,0,0,13,13,10,10,10,11,12,0,13,0,0,0,0,0,0,13,11,0,12,12,12,13,12,0,0,0,0,0,0,13,13,11,13,13,11,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,6,6,8,8,9,9,9,9,10,10,10,7,7,8,8,9,9,9,9,10,10,9,7,7,8,8,9,9,9,9,10,10,10,8,8,9,9,9,9,9,9,10,10,10,8,8,9,9,9,9,8,9,10,10,10,8,8,9,9,9,10,10,10,10,10,10,9,9,9,9,9,9,10,10,11,10,11,9,9,9,9,10,10,10,10,11,11,11,10,10,9,9,10,10,10,9,11,10,10,10,10,10,10,9,9,10,10,11,11,10,10,10,9,9,9,10,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,11,9,10,12,9,10,4,7,7,10,10,10,11,9,9,6,11,10,11,11,12,11,11,11,6,10,10,11,11,12,11,10,10,6,9,10,11,11,11,11,10,10,7,10,11,12,11,11,12,11,12,6,9,9,10,9,9,11,10,10,6,9,9,10,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,6,6,8,8,9,9,8,8,10,9,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,11,0,0,0,8,8,9,9,10,10,9,9,10,10,11,11,12,12,0,0,0,8,8,9,9,10,10,9,9,11,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,11,12,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,10,10,10,10,11,11,10,10,11,11,12,12,13,13,0,0,0,0,0,10,9,10,11,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,9,10,11,12,12,13,13,14,13,0,0,0,0,0,9,9,9,10,10,10,11,11,13,12,13,13,0,0,0,0,0,10,10,10,10,11,11,12,12,13,13,14,14,0,0,0,0,0,0,0,10,10,11,11,12,12,13,13,13,14,0,0,0,0,0,0,0,11,11,11,11,12,12,13,14,14,14,0,0,0,0,0,0,0,11,11,11,11,12,12,13,13,14,13,0,0,0,0,0,0,0,11,11,12,12,13,13,14,14,14,14,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,5,5,7,6,8,8,0,0,0,7,7,7,7,8,8,0,0,0,7,7,7,7,8,9,0,0,0,8,8,8,8,9,9,0,0,0,8,8,8,8,9,9,0,0,0,9,9,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,10,10,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,2,3,7,7,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,8,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,6,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,4,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,9,0,0,0,0,0,0,8,9,11,0,0,0,0,0,0,9,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,9,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,11,11,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,9,11,11,0,0,0,0,0,0,8,11,9],"i8",O3,_.GLOBAL_BASE+97272),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,5,18,7,10,6,7,8,9,10,5,2,18,5,7,5,6,7,8,11,17,17,17,17,17,17,17,17,17,17,7,4,17,6,9,6,8,10,12,15,11,7,17,9,6,6,7,9,11,15,6,4,17,6,6,4,5,8,11,16,6,6,17,8,6,5,6,9,13,16,8,9,17,11,9,8,8,11,13,17,9,12,17,15,14,13,12,13,14,17,12,15,17,17,17,17,17,16,17,17,0,0,0,0,154,153,153,153,153,153,185,191,0,0,0,0,0,0,0,0,154,153,153,153,153,153,185,63,154,153,153,153,153,153,201,63,51,51,51,51,51,51,211,63,154,153,153,153,153,153,217,63,0,0,0,0,0,0,224,63,51,51,51,51,51,51,227,63,102,102,102,102,102,102,230,63,154,153,153,153,153,153,233,63,205,204,204,204,204,204,236,63,0,0,0,0,0,0,240,63,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,0,0,0,35,0,0,0,21,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,20,0,0,0,8,0,0,0,0,0,0,192,0,0,160,63,25,0,0,0,12,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,9,0,0,0,253,255,255,255,0,0,0,0,0,0,0,0,20,0,0,0,9,0,0,0,252,255,255,255,0,0,0,0,0,0,0,0,20,0,0,0,9,0,0,0,252,255,255,255,0,0,0,0,0,0,0,0,20,0,0,0,6,0,0,0,250,255,255,255,0,0,0,0,0,0,0,0,20,0,0,0,3,0,0,0,246,255,255,255,0,0,0,0,0,0,0,0,18,0,0,0,1,0,0,0,242,255,255,255,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,240,255,255,255,0,0,0,0,0,0,0,0,18,0,0,0,254,255,255,255,240,255,255,255,0,0,0,0,0,0,0,0,12,0,0,0,254,255,255,255,236,255,255,255,0,0,0,0,0,0,0,0,253,255,255,255,248,255,255,255,243,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,247,255,255,255,247,255,255,255,247,255,255,255,247,255,255,255,247,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,252,255,255,255,246,255,255,255,242,255,255,255,240,255,255,255,242,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,245,255,255,255,245,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,255,255,255,244,255,255,255,242,255,255,255,240,255,255,255,241,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,254,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,244,255,255,255,243,255,255,255,242,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,251,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,243,255,255,255,243,255,255,255,243,255,255,255,246,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,243,255,255,255,245,255,255,255,246,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,243,255,255,255,245,255,255,255,246,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,248,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,253,255,255,255,248,255,255,255,243,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,255,255,255,246,255,255,255,242,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,245,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,250,255,255,255,244,255,255,255,242,255,255,255,240,255,255,255,241,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,254,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,244,255,255,255,243,255,255,255,242,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,244,255,255,255,244,255,255,255,250,255,255,255,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,243,255,255,255,243,255,255,255,243,255,255,255,246,255,255,255,252,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,243,255,255,255,245,255,255,255,246,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,243,255,255,255,245,255,255,255,246,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,248,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,241,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,247,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,3,0,0,0,3,0,0,0,15,0,0,0,3,0,0,0,3,0,0,0,15,0,0,0,10,0,0,0,10,0,0,0,100,0,0,0,10,0,0,0,10,0,0,0,100,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,236,255,255,255,240,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,250,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,2,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,16,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,252,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,14,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,252,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,244,255,255,255,246,255,255,255,250,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,252,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,11,0,0,0,224,255,255,255,224,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,232,255,255,255,234,255,255,255,240,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,230,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,247,255,255,255,251,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,11,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,222,255,255,255,228,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,240,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,11,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,234,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,224,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,234,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,3,0,0,0,5,0,0,0,10,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,224,255,255,255,224,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,224,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,2,0,0,0,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,222,255,255,255,224,255,255,255,224,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,224,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,244,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,221,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,236,255,255,255,240,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,254,255,255,255,2,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,2,0,0,0,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,16,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,14,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,244,255,255,255,246,255,255,255,250,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,2,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,224,255,255,255,224,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,232,255,255,255,234,255,255,255,240,255,255,255,244,255,255,255,250,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,0,0,0,0,4,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,230,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,251,255,255,255,253,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,253,255,255,255,255,255,255,255,4,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,230,255,255,255,236,255,255,255,240,255,255,255,243,255,255,255,243,255,255,255,243,255,255,255,243,255,255,255,243,255,255,255,245,255,255,255,248,255,255,255,250,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,240,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,251,255,255,255,253,255,255,255,1,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,234,255,255,255,238,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,11,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,240,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,249,255,255,255,251,255,255,255,254,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,222,255,255,255,228,255,255,255,234,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,242,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,2,0,0,0,6,0,0,0,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,222,255,255,255,224,255,255,255,224,255,255,255,232,255,255,255,240,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,251,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,224,255,255,255,230,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,238,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,221,255,255,255,226,255,255,255,231,255,255,255,231,255,255,255,231,255,255,255,231,255,255,255,231,255,255,255,231,255,255,255,241,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,236,255,255,255,240,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,254,255,255,255,2,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,254,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,250,255,255,255,252,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,10,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,10,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,1,0,0,0,4,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,10,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,3,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,249,255,255,255,252,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,8,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,0,0,0,0,2,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,252,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,255,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,255,255,255,255,1,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,252,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,255,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,224,255,255,255,224,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,232,255,255,255,234,255,255,255,240,255,255,255,244,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,253,255,255,255,255,255,255,255,0,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,247,255,255,255,251,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,255,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,224,255,255,255,224,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,251,255,255,255,254,255,255,255,0,0,0,0,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,234,255,255,255,237,255,255,255,237,255,255,255,237,255,255,255,237,255,255,255,238,255,255,255,239,255,255,255,240,255,255,255,244,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,255,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,224,255,255,255,224,255,255,255,224,255,255,255,224,255,255,255,228,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,240,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,234,255,255,255,236,255,255,255,241,255,255,255,246,255,255,255,248,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,7,0,0,0,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,249,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,220,255,255,255,222,255,255,255,226,255,255,255,228,255,255,255,230,255,255,255,232,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,2,0,0,0,218,255,255,255,218,255,255,255,218,255,255,255,218,255,255,255,220,255,255,255,222,255,255,255,222,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,238,255,255,255,240,255,255,255,244,255,255,255,246,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,218,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,221,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,228,255,255,255,236,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,221,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,236,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,20,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,246,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0,15,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,246,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,10,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,252,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,10,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,1,0,0,0,4,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,252,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4],"i8",O3,_.GLOBAL_BASE+107456),C3([4,0,0,0,5,0,0,0,6,0,0,0,10,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,3,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,252,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,8,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,0,0,0,0,2,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,251,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,252,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,252,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,253,255,255,255,254,255,255,255,255,255,255,255,1,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,249,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,252,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,240,255,255,255,244,255,255,255,250,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,253,255,255,255,255,255,255,255,0,0,0,0,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,247,255,255,255,248,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,252,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,251,255,255,255,254,255,255,255,0,0,0,0,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,238,255,255,255,240,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,243,255,255,255,243,255,255,255,244,255,255,255,246,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,252,255,255,255,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,246,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,252,255,255,255,0,0,0,0,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,237,255,255,255,237,255,255,255,237,255,255,255,237,255,255,255,238,255,255,255,239,255,255,255,240,255,255,255,244,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,252,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,7,0,0,0,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,236,255,255,255,240,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,250,255,255,255,254,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,228,255,255,255,230,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,236,255,255,255,240,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,234,255,255,255,238,255,255,255,242,255,255,255,248,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,255,255,255,254,255,255,255,2,0,0,0,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,234,255,255,255,238,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,249,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,232,255,255,255,238,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,242,255,255,255,244,255,255,255,246,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,236,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,216,255,255,255,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,17,0,0,0,17,0,0,0,18,0,0,0,18,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,14,0,0,0,14,0,0,0,14,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,16,0,0,0,16,0,0,0,17,0,0,0,17,0,0,0,17,0,0,0,18,0,0,0,18,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,7,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,205,204,204,204,204,204,244,63,154,153,153,153,153,153,249,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,12,64,0,0,0,0,0,0,16,64,0,0,0,0,0,0,16,64,51,51,51,51,51,51,17,64,102,102,102,102,102,102,18,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,0,0,0,0,0,0,20,64,32,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,32,0,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,0,0,0,0,0,1,0,0,128,0,0,0,128,0,0,0,0,1,0,0,0,2,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,15,39,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,154,153,153,153,153,153,201,63,154,153,153,153,153,153,201,63,154,153,153,153,153,153,201,63,154,153,153,153,153,153,217,63,51,51,51,51,51,51,227,63,0,0,0,0,128,135,195,64,0,0,0,0,128,135,195,64,0,0,0,0,128,135,195,64,0,0,0,0,128,135,195,64,0,0,0,0,128,135,195,64,0,0,0,0,128,135,195,64,156,255,255,255,156,255,255,255,156,255,255,255,156,255,255,255,156,255,255,255,156,255,255,255,151,255,255,255,151,255,255,255,151,255,255,255,151,255,255,255,146,255,255,255,136,255,255,255,126,255,255,255,126,255,255,255,126,255,255,255,126,255,255,255,116,255,255,255,116,255,255,255,116,255,255,255,116,255,255,255,116,255,255,255,116,255,255,255,116,255,255,255,106,255,255,255,205,204,204,204,204,204,43,64,51,51,51,51,51,51,46,64,154,153,153,153,153,153,47,64,0,0,0,0,0,128,48,64,51,51,51,51,51,51,49,64,102,102,102,102,102,230,50,64,154,153,153,153,153,25,52,64,0,0,0,0,0,0,72,64,0,0,0,0,0,56,143,64,0,0,0,0,0,56,143,64,0,0,0,0,0,56,143,64,0,0,0,0,0,56,143,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,248,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,4,64,154,153,153,153,153,153,5,64,0,0,0,0,0,0,8,64,154,153,153,153,153,153,13,64,0,0,0,0,0,0,16,64,0,0,0,0,0,0,16,64,248,148,2,0,40,149,2,0,88,149,2,0,0,0,0,0,8,181,0,0,224,217,1,0,8,181,0,0,32,218,1,0,8,181,0,0,96,218,1,0,8,181,0,0,160,218,1,0,8,181,0,0,224,218,1,0,8,181,0,0,32,219,1,0,8,181,0,0,96,219,1,0,8,181,0,0,160,219,1,0,8,181,0,0,224,219,1,0,8,181,0,0,32,220,1,0,8,181,0,0,96,220,1,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,232,133,2,0,232,133,2,0,16,134,2,0,16,134,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,208,134,2,0,208,134,2,0,16,134,2,0,16,134,2,0,1,0,0,0,0,0,0,0,16,0,0,0,240,233,0,0,216,118,2,0,216,118,2,0,0,119,2,0,0,119,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,192,119,2,0,192,119,2,0,0,119,2,0,0,119,2,0,1,0,0,0,0,0,0,0,16,0,0,0,240,233,0,0,0,106,2,0,0,106,2,0,40,106,2,0,40,106,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,232,106,2,0,232,106,2,0,40,106,2,0,40,106,2,0,1,0,0,0,0,0,0,0,16,0,0,0,240,233,0,0,0,93,2,0,0,93,2,0,40,93,2,0,40,93,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,232,93,2,0,232,93,2,0,40,93,2,0,40,93,2,0,1,0,0,0,0,0,0,0,16,0,0,0,240,233,0,0,56,79,2,0,56,79,2,0,96,79,2,0,96,79,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,32,80,2,0,32,80,2,0,96,79,2,0,96,79,2,0,1,0,0,0,0,0,0,0,16,0,0,0,240,233,0,0,8,65,2,0,8,65,2,0,48,65,2,0,48,65,2,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,240,65,2,0,240,65,2,0,48,65,2,0,48,65,2,0,1,0,0,0,0,0,0,0,16,0,0,0,88,206,0,0,56,48,2,0,56,48,2,0,96,48,2,0,96,48,2,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,32,49,2,0,32,49,2,0,96,48,2,0,96,48,2,0,1,0,0,0,0,0,0,0,16,0,0,0,88,206,0,0,40,31,2,0,40,31,2,0,80,31,2,0,80,31,2,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,16,32,2,0,16,32,2,0,80,31,2,0,80,31,2,0,1,0,0,0,0,0,0,0,16,0,0,0,88,206,0,0,64,15,2,0,64,15,2,0,104,15,2,0,104,15,2,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,40,16,2,0,40,16,2,0,104,15,2,0,104,15,2,0,1,0,0,0,0,0,0,0,16,0,0,0,160,220,1,0,208,251,1,0,208,251,1,0,248,251,1,0,248,251,1,0,1,0,0,0,0,0,0,0,32,0,0,0,160,220,1,0,184,252,1,0,184,252,1,0,248,251,1,0,248,251,1,0,1,0,0,0,0,0,0,0,16,0,0,0,160,220,1,0,184,231,1,0,184,231,1,0,224,231,1,0,224,231,1,0,1,0,0,0,0,0,0,0,32,0,0,0,160,220,1,0,160,232,1,0,160,232,1,0,224,231,1,0,224,231,1,0,0,0,0,0,255,255,255,255,255,255,255,255,10,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+117696),C3([1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,71,0,0,0,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,104,251,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,233,1,0,0,0,0,0,0,0,0,0,0,0,0,0,88,233,1,0,0,0,0,0,0,0,0,0,0,0,0,0,128,233,1,0,0,0,0,0,0,0,0,0,0,0,0,0,168,233,1,0,0,0,0,0,208,233,1,0,248,233,1,0,0,0,0,0,0,0,0,0,32,234,1,0,72,234,1,0,0,0,0,0,0,0,0,0,112,234,1,0,152,234,1,0,0,0,0,0,0,0,0,0,192,234,1,0,232,234,1,0,0,0,0,0,0,0,0,0,16,235,1,0,56,235,1,0,96,235,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,200,232,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,9,13,13,14,15,14,14,15,15,5,5,9,10,12,12,13,14,16,15,10,6,6,6,8,11,12,13,16,15,11,7,5,3,5,8,10,12,15,15,10,10,7,4,3,5,8,10,12,12,12,12,9,7,5,4,6,8,10,13,13,12,11,9,7,5,5,6,9,12,14,12,12,10,8,6,6,6,7,11,13,12,14,13,10,8,7,7,7,10,11,11,12,13,12,11,10,8,8,9,0,0,0,0,4,0,0,0,81,0,0,0,0,251,1,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,88,251,1,0,0,0,0,0,4,0,0,0,113,2,0,0,112,248,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,250,1,0,0,0,0,0,2,0,0,0,81,0,0,0,240,247,1,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,72,248,1,0,0,0,0,0,2,0,0,0,33,1,0,0,128,246,1,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,168,247,1,0,0,0,0,0,4,0,0,0,81,0,0,0,24,246,1,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,112,246,1,0,0,0,0,0,2,0,0,0,121,0,0,0,104,245,1,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,232,245,1,0,0,0,0,0,2,0,0,0,169,0,0,0,128,244,1,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,48,245,1,0,0,0,0,0,2,0,0,0,25,0,0,0,72,244,1,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,104,244,1,0,0,0,0,0,2,0,0,0,169,0,0,0,96,243,1,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,16,244,1,0,0,0,0,0,2,0,0,0,121,0,0,0,176,242,1,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,48,243,1,0,0,0,0,0,2,0,0,0,225,0,0,0,136,241,1,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,112,242,1,0,0,0,0,0,2,0,0,0,185,1,0,0,112,239,1,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,48,241,1,0,0,0,0,0,2,0,0,0,225,0,0,0,72,238,1,0,1,0,0,0,0,117,153,225,0,24,61,97,4,0,0,0,0,0,0,0,48,239,1,0,0,0,0,0,2,0,0,0,105,1,0,0,136,236,1,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,248,237,1,0,0,0,0,0,1,0,0,0,49,0,0,0,136,235,1,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,192,235,1,0,0,0,0,0,2,4,4,5,4,5,5,5,5,6,6,6,6,6,6,6,6,6,6,7,6,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,8,7,8,7,9,8,10,9,10,10,11,11,12,12,4,7,6,9,9,10,9,9,8,10,10,11,10,12,10,13,12,13,12,4,6,6,9,9,9,9,9,9,10,10,11,11,11,12,12,12,12,12,7,9,8,11,10,10,10,11,10,11,11,12,12,13,12,13,13,13,13,7,8,9,10,10,11,11,10,10,11,11,11,12,13,13,13,13,14,14,8,9,9,11,11,12,11,12,12,13,12,12,13,13,14,15,14,14,14,8,9,9,10,11,11,11,12,12,13,12,13,13,14,14,14,15,14,16,8,9,9,11,10,12,12,12,12,15,13,13,13,17,14,15,15,15,14,8,9,9,10,11,11,12,13,12,13,13,13,14,15,14,14,14,16,15,9,11,10,12,12,13,13,13,13,14,14,16,15,14,14,14,15,15,17,9,10,10,11,11,13,13,13,14,14,13,15,14,15,14,15,16,15,16,10,11,11,12,12,13,14,15,14,15,14,14,15,17,16,15,15,17,17,10,12,11,13,12,14,14,13,14,15,15,15,15,16,17,17,15,17,16,11,12,12,14,13,15,14,15,16,17,15,17,15,17,15,15,16,17,15,11,11,12,14,14,14,14,14,15,15,16,15,17,17,17,16,17,16,15,12,12,13,14,14,14,15,14,15,15,16,16,17,16,17,15,17,17,16,12,14,12,14,14,15,15,15,14,14,16,16,16,15,16,16,15,17,15,12,13,13,14,15,14,15,17,15,17,16,17,17,17,16,17,16,17,17,12,13,13,14,16,15,15,15,16,15,17,17,15,17,15,17,16,16,17,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,3,3,11,11,11,11,11,11,11,11,11,11,11,11,4,10,11,11,11,11,11,11,11,11,11,11,11,11,11,4,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,4,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,6,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,6,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,8,8,8,9,9,9,9,9,9,9,9,9,9,10,9,10,9,10,10,10,10,8,8,8,9,9,9,9,9,9,9,9,9,9,10,10,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,8,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,8,9,9,10,9,11,10,4,6,6,8,8,9,9,9,9,10,10,11,10,12,10,4,6,6,8,8,9,10,9,9,10,10,11,11,12,12,7,8,8,10,10,11,11,10,10,11,11,12,12,13,12,7,8,8,10,10,11,11,10,10,11,11,12,12,12,13,8,10,9,11,11,12,12,11,11,12,12,13,13,14,13,8,9,9,11,11,12,12,11,12,12,12,13,13,14,13,8,9,9,10,10,12,11,13,12,13,13,14,13,15,14,8,9,9,10,10,11,12,12,12,13,13,13,14,14,14,9,10,10,12,11,13,12,13,13,14,13,14,14,14,15,9,10,10,11,12,12,12,13,13,14,14,14,15,15,15,10,11,11,12,12,13,13,14,14,14,14,15,14,16,15,10,11,11,12,12,13,13,13,14,14,14,14,14,15,16,11,12,12,13,13,14,13,14,14,15,14,15,16,16,16,11,12,12,13,13,14,13,14,14,15,15,15,16,15,15,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,5,6,6,7,7,7,7,7,7,7,7,6,6,6,7,7,7,7,7,7,7,7,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,7,7,7,7,7,7,7,8,7,8,8,7,7,7,7,7,7,7,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,5,6,6,7,7,8,9,10,10,11,11,5,6,6,7,7,8,8,9,9,10,10,11,11,5,6,6,7,7,8,8,9,9,10,10,11,11,6,7,7,8,8,9,9,10,10,11,11,12,12,6,7,7,8,8,9,9,10,10,11,11,12,12,8,8,8,9,9,10,10,11,11,12,12,13,13,8,8,8,9,9,10,10,11,11,12,12,13,13,9,9,9,10,10,11,11,12,12,13,13,13,13,9,9,9,10,10,11,11,12,12,13,13,14,14,10,10,10,11,11,12,12,13,13,14,13,15,14,10,10,10,11,11,12,12,13,13,14,14,14,14,11,11,12,12,12,13,13,14,14,14,14,15,15,11,11,12,12,12,13,13,14,14,14,15,15,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,4,4,4,5,5,4,5,4,5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,9,9,10,10,4,6,5,7,7,8,8,8,8,9,9,10,10,4,5,6,7,7,8,8,8,8,9,9,10,10,6,7,7,8,8,8,8,9,9,10,10,10,10,6,7,7,8,8,8,8,9,9,10,10,10,10,7,8,8,8,8,9,9,9,9,10,10,11,11,7,8,8,8,8,9,9,9,9,10,10,11,11,8,8,8,9,9,9,9,9,10,10,10,11,11,8,8,8,9,9,9,9,10,9,10,10,11,11,9,9,9,10,10,10,10,10,11,11,11,11,12,9,9,9,10,10,10,10,10,10,11,10,12,11,10,10,10,10,10,11,11,11,11,11,12,12,12,10,10,10,10,10,11,11,11,11,12,11,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,5,5,5,6,6,7,7,7,7,7,7,5,6,6,6,6,7,7,7,7,8,7,5,6,6,6,6,7,7,7,7,7,7,6,6,6,7,7,7,7,7,7,8,8,6,6,6,7,7,7,7,7,7,8,8,7,7,7,7,7,8,7,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,8,7,8,8,8,8,8,8,7,7,7,7,8,8,8,8,8,8,8,7,8,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,8,8,9,9,7,9,9,5,8,8,7,9,9,8,9,9,5,8,8,8,10,10,8,10,10,7,10,10,9,10,12,9,11,11,7,10,10,9,11,10,9,11,12,5,8,8,8,10,10,8,10,10,7,10,10,9,12,11,9,10,11,7,10,10,9,11,11,10,12,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,5,5,6,6,7,7,8,8,8,8,9,9,10,10,11,11,5,5,5,6,6,7,7,8,8,8,8,9,9,10,10,11,11,5,5,5,6,6,7,7,8,8,8,8,9,9,10,10,11,11,6,6,6,7,6,7,7,8,8,9,9,10,10,11,11,12,11,6,6,6,6,7,7,7,8,8,9,9,10,10,11,11,11,12,7,7,7,7,7,8,8,9,9,9,9,10,10,11,11,12,12,7,7,7,7,7,8,8,9,9,9,9,10,10,11,11,12,12,8,8,8,8,8,9,8,10,9,10,10,11,10,12,11,13,12,8,8,8,8,8,9,9,9,10,10,10,10,11,11,12,12,12,8,8,8,9,9,9,9,10,10,11,10,12,11,12,12,13,12,8,8,8,9,9,9,9,10,10,10,11,11,11,12,12,12,13,9,9,9,10,10,10,10,11,10,11,11,12,11,13,12,13,13,9,9,10,10,10,10,10,10,11,11,11,11,12,12,13,13,13,10,11,10,11,11,11,11,12,11,12,12,13,12,13,13,14,13,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,11,11,11,12,11,12,12,12,12,13,13,13,13,14,13,14,14,11,11,11,11,12,12,12,12,12,12,13,13,13,13,14,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,3,4,4,5,5,7,7,8,8,4,5,5,6,6,7,7,9,9,4,4,5,6,6,7,7,9,9,5,6,6,7,7,8,8,9,9,5,6,6,7,7,8,8,9,9,7,7,7,8,8,9,9,10,10,7,7,7,8,8,9,9,10,10,8,9,9,10,9,10,10,11,11,8,9,9,9,10,10,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,5,7,7,9,9,6,7,7,9,9,8,9,9,11,10,8,9,9,11,11,6,7,7,9,9,7,8,8,10,10,7,8,8,9,10,9,10,10,11,11,9,9,10,11,11,6,7,7,9,9,7,8,8,10,9,7,8,8,10,10,9,10,9,11,11,9,10,10,11,11,8,9,9,11,11,9,10,10,12,11,9,10,10,11,12,11,11,11,13,13,11,11,11,12,13,8,9,9,11,11,9,10,10,11,11,9,10,10,12,11,11,12,11,13,12,11,11,12,13,13,6,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,11,9,10,10,11,12,7,8,8,10,10,8,9,9,11,11,8,9,9,10,10,10,11,11,12,12,10,10,11,12,12,7,8,8,10,10,8,9,8,10,10,8,9,9,10,10,10,11,10,12,11,10,10,11,12,12,9,10,10,11,12,10,11,11,12,12,10,11,10,12,12,12,12,12,13,13,11,12,12,13,13,9,10,10,11,11,9,10,10,12,12,10,11,11,12,13,11,12,11,13,12,12,12,12,13,14,6,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,11,11,9,10,10,11,12,7,8,8,10,10,8,9,9,11,10,8,8,9,10,10,10,11,10,12,12,10,10,11,11,12,7,8,8,10,10,8,9,9,10,10,8,9,9,10,10,10,11,10,12,12,10,11,10,12,12,9,10,10,12,11,10,11,11,12,12,9,10,10,12,12,12,12,12,13,13,11,11,12,12,14,9,10,10,11,12,10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,12,12,12,13,13,8,9,9,11,11,9,10,10,12,11,9,10,10,12,12,11,12,11,13,13,11,11,12,13,13,9,10,10,12,12,10,11,11,12,12,10,11,11,12,12,12,12,12,14,14,12,12,12,13,13,9,10,10,12,11,10,11,10,12,12,10,11,11,12,12,11,12,12,14,13,12,12,12,13,14,11,12,11,13,13,11,12,12,13,13,12,12,12,14,14,13,13,13,13,15,13,13,14,15,15,11,11,11,13,13,11,12,11,13,13,11,12,12,13,13,12,13,12,15,13,13,13,14,14,15,8,9,9,11,11,9,10,10,11,12,9,10,10,11,12,11,12,11,13,13,11,12,12,13,13,9,10,10,11,12,10,11,10,12,12,10,10,11,12,13,12,12,12,14,13,11,12,12,13,14,9,10,10,12,12,10,11,11,12,12,10,11,11,12,12,12,12,12,14,13,12,12,12,14,13,11,11,11,13,13,11,12,12,14,13,11,11,12,13,13,13,13,13,15,14,12,12,13,13,15,11,12,12,13,13,12,12,12,13,14,11,12,12,13,13,13,13,14,14,15,13,13,13,14,14,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,5,7,7,5,7,7,5,7,7,7,9,9,7,9,9,5,7,7,7,9,9,7,9,9,5,7,7,7,9,9,7,9,9,8,9,9,9,10,11,9,11,11,7,9,9,9,11,10,9,11,11,5,7,7,7,9,9,8,9,10,7,9,9,9,11,11,9,10,11,7,9,10,9,11,11,9,11,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,16,18,18,17,17,17,17,17,17,5,8,11,12,11,12,17,17,16,16,6,6,8,8,9,10,14,15,16,16,6,7,7,4,6,9,13,16,16,16,6,6,7,4,5,8,11,15,17,16,7,6,7,6,6,8,9,10,14,16,11,8,8,7,6,6,3,4,10,15,14,12,12,10,5,6,3,3,8,13,15,17,15,11,6,8,6,6,9,14,17,15,15,12,8,10,9,9,12,15,0,0,0,0,2,0,0,0,100,0,0,0,216,14,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,253,1,0,0,0,0,0,0,0,0,0,0,0,0,0,112,253,1,0,0,0,0,0,0,0,0,0,0,0,0,0,152,253,1,0,0,0,0,0,0,0,0,0,0,0,0,0,192,253,1,0,0,0,0,0,232,253,1,0,16,254,1,0,0,0,0,0,0,0,0,0,56,254,1,0,96,254,1,0,0,0,0,0,0,0,0,0,136,254,1,0,176,254,1,0,0,0,0,0,0,0,0,0,216,254,1,0,0,255,1,0,0,0,0,0,0,0,0,0,40,255,1,0,80,255,1,0,120,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,224,252,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,9,13,14,14,15,14,14,15,15,5,4,6,8,10,12,12,14,15,15,9,5,4,5,8,10,11,13,16,16,10,7,4,3,5,7,9,11,13,13,10,9,7,4,4,6,8,10,12,14,13,11,9,6,5,5,6,8,12,14,13,11,10,8,7,6,6,7,10,14,13,11,12,10,8,7,6,6,9,13,12,11,14,12,11,9,8,7,9,11,11,12,14,13,14,11,10,8,8,9,0,0,0,0,4,0,0,0,81,0,0,0,112,14,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,200,14,2,0,0,0,0,0,4,0,0,0,113,2,0,0,224,11,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,14,2,0,0,0,0,0,2,0,0,0,81,0,0,0,96,11,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,184,11,2,0,0,0,0,0,2,0,0,0,33,1,0,0,240,9,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,24,11,2,0,0,0,0,0,4,0,0,0,81,0,0,0,136,9,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,224,9,2,0,0,0,0,0,2,0,0,0,121,0,0,0,216,8,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,88,9,2,0,0,0,0,0,2,0,0,0,169,0,0,0,240,7,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,160,8,2,0,0,0,0,0,2,0,0,0,25,0,0,0,184,7,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,216,7,2,0,0,0,0,0,2,0,0,0,169,0,0,0,208,6,2,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,128,7,2,0,0,0,0,0,2,0,0,0,121,0,0,0,32,6,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,160,6,2,0,0,0,0,0,2,0,0,0,225,0,0,0,248,4,2,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,224,5,2,0,0,0,0,0,2,0,0,0,185,1,0,0,224,2,2,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,160,4,2,0,0,0,0,0,2,0,0,0,81,0,0,0,96,2,2,0,1,0,0,0,0,24,125,225,0,24,61,97,4,0,0,0,0,0,0,0,184,2,2,0,0,0,0,0,2,0,0,0,105,1,0,0,160,0,2,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,16,2,2,0,0,0,0,0,1,0,0,0,49,0,0,0,160,255,1,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,216,255,1,0,0,0,0,0,2,3,4,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,8,7,8,6,9,7,10,8,11,10,11,11,11,11,4,7,6,9,9,10,9,9,9,10,10,11,10,11,10,11,11,13,11,4,7,7,9,9,9,9,9,9,10,10,11,10,11,11,11,12,11,12,7,9,8,11,11,11,11,10,10,11,11,12,12,12,12,12,12,14,13,7,8,9,10,11,11,11,10,10,11,11,11,11,12,12,14,12,13,14,8,9,9,11,11,11,11,11,11,12,12,14,12,15,14,14,14,15,14,8,9,9,11,11,11,11,12,11,12,12,13,13,13,13,13,13,14,14,8,9,9,11,10,12,11,12,12,13,13,13,13,15,14,14,14,16,16,8,9,9,10,11,11,12,12,12,13,13,13,14,14,14,15,16,15,15,9,10,10,11,12,12,13,13,13,14,14,16,14,14,16,16,16,16,15,9,10,10,11,11,12,13,13,14,15,14,16,14,15,16,16,16,16,15,10,11,11,12,13,13,14,15,15,15,15,15,16,15,16,15,16,15,15,10,11,11,13,13,14,13,13,15,14,15,15,16,15,15,15,16,15,16,10,12,12,14,14,14,14,14,16,16,15,15,15,16,16,16,16,16,16,11,12,12,14,14,14,14,15,15,16,15,16,15,16,15,16,16,16,16,12,12,13,14,14,15,16,16,16,16,16,16,15,16,16,16,16,16,16,12,13,13,14,14,14,14,15,16,15,16,16,16,16,16,16,16,16,16,12,13,14,14,14,16,15,16,15,16,16,16,16,16,16,16,16,16,16,12,14,13,14,15,15,15,16,15,16,16,15,16,16,16,16,16,16,16,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,3,3,9,9,9,9,9,9,4,9,9,9,9,9,9,9,9,5,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,6,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,5,6,6,7,7,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,10,9,10,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,10,9,10,10,9,10,8,9,8,9,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,8,9,8,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,9,10,10,9,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,7,9,8,10,9,11,10,4,6,6,8,8,10,9,9,9,10,10,11,10,12,10,4,6,6,8,8,10,10,9,9,10,10,11,11,11,12,7,8,8,10,10,11,11,11,10,12,11,12,12,13,11,7,8,8,10,10,11,11,10,10,11,11,12,12,13,13,8,10,10,11,11,12,11,12,11,13,12,13,12,14,13,8,10,9,11,11,12,12,12,12,12,12,13,13,14,13,8,9,9,11,10,12,11,13,12,13,13,14,13,14,13,8,9,9,10,11,12,12,12,12,13,13,14,15,14,14,9,10,10,12,11,13,12,13,13,14,13,14,14,14,14,9,10,10,12,12,12,12,13,13,14,14,14,15,14,14,10,11,11,13,12,13,12,14,14,14,14,14,14,15,15,10,11,11,12,12,13,13,14,14,14,15,15,14,16,15,11,12,12,13,12,14,14,14,13,15,14,15,15,15,17,11,12,12,13,13,14,14,14,15,15,14,15,15,14,17,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,4,5,5,6,6,7,7,7,7,7,7,5,6,6,7,7,7,7,7,7,7,7,5,6,6,7,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,8,8,6,7,7,7,7,7,7,7,7,7,8,7,7,7,7,7,7,7,8,8,8,8,7,7,7,7,7,7,7,8,8,8,8,7,7,7,8,7,8,8,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,5,6,6,7,7,8,8,10,10,11,11,5,6,6,7,7,8,8,9,9,11,10,12,11,5,6,6,7,7,8,8,9,9,10,11,11,12,6,7,7,8,8,9,9,10,10,11,11,12,12,6,7,7,8,8,9,9,10,10,11,12,13,12,7,8,8,9,9,10,10,11,11,12,12,13,13,8,8,8,9,9,10,10,11,11,12,12,13,13,9,9,9,10,10,11,11,12,12,13,13,14,14,9,9,9,10,10,11,11,12,12,13,13,14,14,10,11,11,12,11,13,12,13,13,14,14,15,15,10,11,11,11,12,12,13,13,14,14,14,15,15,11,12,12,13,13,14,13,15,14,15,15,16,15,11,11,12,13,13,13,14,14,14,15,15,15,16,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,4,4,5,5,4,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,9,9,10,10,4,6,5,7,7,8,8,8,8,9,9,10,10,4,6,6,7,7,8,8,8,8,9,9,10,10,6,7,7,7,8,8,8,8,9,9,10,10,10,6,7,7,8,8,8,8,9,8,10,9,11,10,7,8,8,8,8,8,9,9,9,10,10,11,11,7,8,8,8,8,9,8,9,9,10,10,11,11,8,8,8,9,9,9,9,9,10,10,10,11,11,8,8,8,9,9,9,9,10,9,10,10,11,11,9,9,9,9,10,10,10,10,10,10,11,11,12,9,9,9,10,9,10,10,10,10,11,10,12,11,10,10,10,10,10,11,11,11,11,11,12,12,12,10,10,10,10,11,11,11,11,11,12,11,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,4,5,5,6,6,7,7,7,7,8,8,5,5,5,6,6,7,7,8,8,8,8,5,5,5,6,6,7,7,7,8,8,8,6,6,6,7,7,7,7,8,8,8,8,6,6,6,7,7,7,7,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,8,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,8,8,8,8,8,8,8,8,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,8,8,9,9,7,9,9,5,8,8,7,9,9,8,9,9,5,8,8,8,10,10,8,10,10,7,10,10,9,10,12,9,12,11,7,10,10,9,11,10,9,11,12,5,8,8,8,10,10,8,10,10,7,10,10,9,11,11,9,10,11,7,10,10,9,11,11,10,12,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,4,4,6,6,7,7,8,8,8,8,10,10,11,11,11,11,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,6,6,6,7,7,8,8,9,9,9,9,10,10,11,11,12,12,6,6,6,7,7,8,8,9,9,9,9,10,10,11,11,12,12,7,7,7,8,8,9,8,10,9,10,9,11,10,12,11,13,12,7,7,7,8,8,8,9,9,10,9,10,10,11,11,12,12,13,8,8,8,9,9,9,9,10,10,11,10,11,11,12,12,13,13,8,8,8,9,9,9,10,10,10,10,11,11,11,12,12,12,13,8,9,9,9,9,10,9,11,10,11,11,12,11,13,12,13,13,8,9,9,9,9,9,10,10,11,11,11,11,12,12,13,13,13,10,10,10,10,10,11,10,11,11,12,11,13,12,13,13,14,13,10,10,10,10,10,10,11,11,11,11,12,12,13,13,13,13,14,11,11,11,11,11,12,11,12,12,13,12,13,13,14,13,14,14,11,11,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,11,12,12,12,12,13,12,13,12,13,13,14,13,14,14,14,14,11,12,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,3,4,4,5,5,7,7,9,9,4,5,4,6,6,7,7,9,9,4,4,5,6,6,7,7,9,9,5,6,6,7,7,8,8,10,10,6,6,6,7,7,8,8,10,10,7,7,7,8,8,9,9,11,10,7,7,7,8,8,9,9,10,11,9,9,9,10,10,11,10,12,11,9,9,9,9,10,11,11,11,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,5,7,6,9,9,5,6,7,9,9,8,9,9,11,11,8,9,9,11,11,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,9,10,10,11,12,5,7,7,9,9,7,8,7,10,10,7,8,8,10,10,9,10,9,12,11,9,10,10,12,12,8,9,9,12,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,14,11,11,12,13,14,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,11,13,13,11,12,12,14,14,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,9,10,10,11,12,7,8,8,10,10,8,9,9,11,11,8,9,9,11,11,10,11,11,12,13,10,11,11,12,13,6,8,8,10,10,8,9,8,11,10,8,9,9,11,11,10,11,10,13,12,10,11,11,13,13,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,12,13,13,14,12,13,13,14,14,9,10,10,12,12,10,11,10,13,12,10,11,11,13,13,11,13,12,14,13,12,13,13,14,14,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,9,10,10,12,12,7,8,8,10,10,8,9,9,11,11,8,8,9,10,11,10,11,11,13,13,10,10,11,12,13,7,8,8,10,10,8,9,9,11,11,8,9,9,11,11,10,11,11,13,13,10,11,11,13,12,9,10,10,12,12,10,11,11,13,13,10,10,11,12,13,12,13,13,14,14,12,12,13,13,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,15,14,12,13,13,14,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,12,12,12,14,13,11,12,12,14,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,14,15,12,13,13,14,15,9,10,10,12,12,10,11,10,13,12,10,11,11,13,13,12,13,12,15,14,12,13,13,14,15,11,12,12,14,14,12,13,13,14,14,12,13,13,15,14,14,14,14,14,16,14,14,15,16,16,11],"i8",O3,_.GLOBAL_BASE+124340),C3([12,12,14,14,11,12,12,14,14,12,13,13,14,15,13,14,13,16,14,14,14,14,16,16,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,12,12,14,14,9,10,10,12,12,10,11,11,13,13,10,10,11,12,13,12,13,13,15,14,12,12,13,13,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,14,14,12,13,13,15,14,11,12,12,14,13,12,13,13,15,14,11,12,12,13,14,14,15,14,16,15,13,13,14,13,16,11,12,12,14,14,12,13,13,14,15,12,13,12,15,14,14,14,14,16,15,14,15,13,16,14,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,5,7,7,5,7,7,5,7,7,8,9,9,7,9,9,5,7,7,7,9,9,8,9,9,5,7,7,7,9,9,7,9,9,7,9,9,9,10,11,9,11,10,7,9,9,9,11,10,9,10,11,5,7,7,7,9,9,7,9,9,7,9,9,9,11,10,9,10,10,8,9,9,9,11,11,9,11,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,6,14,18,18,17,17,17,17,17,17,4,7,9,9,10,13,15,17,17,17,6,7,5,6,8,11,16,17,16,17,5,7,5,4,6,10,14,17,17,17,6,6,6,5,7,10,13,16,17,17,7,6,7,7,7,8,7,10,15,16,12,9,9,6,6,5,3,5,11,15,14,14,13,5,5,7,3,4,8,15,17,17,13,7,7,10,6,6,10,15,17,17,16,10,11,14,10,10,15,17,0,0,0,0,2,0,0,0,100,0,0,0,192,30,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,16,2,0,0,0,0,0,0,0,0,0,0,0,0,0,224,16,2,0,0,0,0,0,0,0,0,0,0,0,0,0,8,17,2,0,0,0,0,0,0,0,0,0,0,0,0,0,48,17,2,0,0,0,0,0,0,0,0,0,0,0,0,0,88,17,2,0,0,0,0,0,0,0,0,0,0,0,0,0,128,17,2,0,0,0,0,0,168,17,2,0,208,17,2,0,0,0,0,0,0,0,0,0,248,17,2,0,32,18,2,0,0,0,0,0,0,0,0,0,72,18,2,0,112,18,2,0,152,18,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,80,16,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,9,14,13,15,14,16,13,13,14,5,5,7,7,8,9,11,10,12,15,10,6,5,6,6,9,10,10,13,16,10,6,6,6,6,8,9,9,12,15,14,7,6,6,5,6,6,8,12,15,10,8,7,7,6,7,7,7,11,13,14,10,9,8,5,6,4,5,9,12,10,9,9,8,6,6,5,3,6,11,12,11,12,12,10,9,8,5,5,8,10,11,15,13,13,13,12,8,6,7,0,0,0,0,4,0,0,0,81,0,0,0,88,30,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,176,30,2,0,0,0,0,0,4,0,0,0,81,0,0,0,240,29,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,72,30,2,0,0,0,0,0,4,0,0,0,113,2,0,0,96,27,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,216,29,2,0,0,0,0,0,4,0,0,0,113,2,0,0,208,24,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,72,27,2,0,0,0,0,0,2,0,0,0,81,0,0,0,80,24,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,168,24,2,0,0,0,0,0,2,0,0,0,81,0,0,0,208,23,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,40,24,2,0,0,0,0,0,4,0,0,0,81,0,0,0,104,23,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,192,23,2,0,0,0,0,0,2,0,0,0,121,0,0,0,184,22,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,56,23,2,0,0,0,0,0,2,0,0,0,121,0,0,0,8,22,2,0,1,0,0,0,0,128,187,224,0,0,118,96,4,0,0,0,0,0,0,0,136,22,2,0,0,0,0,0,2,0,0,0,121,0,0,0,88,21,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,216,21,2,0,0,0,0,0,2,0,0,0,121,0,0,0,168,20,2,0,1,0,0,0,0,226,120,225,0,232,51,97,4,0,0,0,0,0,0,0,40,21,2,0,0,0,0,0,2,0,0,0,169,0,0,0,192,19,2,0,1,0,0,0,0,96,18,225,0,128,184,96,4,0,0,0,0,0,0,0,112,20,2,0,0,0,0,0,1,0,0,0,49,0,0,0,192,18,2,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,248,18,2,0,0,0,0,0,2,4,4,4,4,5,5,5,5,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,6,5,8,6,9,8,10,9,11,10,4,6,6,8,8,9,9,11,10,11,11,11,11,4,6,6,8,8,10,9,11,11,11,11,11,12,6,8,8,10,10,11,11,12,12,13,12,13,13,6,8,8,10,10,11,11,12,12,12,13,14,13,8,10,10,11,11,12,13,14,14,14,14,15,15,8,10,10,11,12,12,13,13,14,14,14,14,15,9,11,11,13,13,14,14,15,14,16,15,17,15,9,11,11,12,13,14,14,15,14,15,15,15,16,10,12,12,13,14,15,15,15,15,16,17,16,17,10,13,12,13,14,14,16,16,16,16,15,16,17,11,13,13,14,15,14,17,15,16,17,17,17,17,11,13,13,14,15,15,15,15,17,17,16,17,16,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,10,10,10,10,10,10,10,10,4,10,10,10,10,10,10,10,10,10,10,4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,4,5,5,6,6,7,7,7,7,7,7,5,6,6,7,7,7,7,7,7,7,7,5,6,6,6,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,8,8,6,7,7,7,7,7,7,7,7,8,8,7,7,7,7,7,8,7,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,10,11,11,4,6,6,7,7,9,9,11,10,12,12,5,6,5,7,7,9,9,10,11,12,12,6,7,7,8,8,10,10,11,11,13,13,6,7,7,8,8,10,10,11,12,13,13,8,9,9,10,10,11,11,12,12,14,14,8,9,9,10,10,11,11,12,12,14,14,10,10,10,11,11,13,12,14,14,15,15,10,10,10,12,12,13,13,14,14,15,15,11,12,12,13,13,14,14,15,14,16,15,11,12,12,13,13,14,14,15,15,15,16,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,3,4,4,6,6,7,7,8,8,8,8,4,5,5,6,6,8,7,8,8,8,8,4,5,5,6,6,7,8,8,8,8,8,6,7,6,7,7,8,8,9,9,9,9,6,6,7,7,7,8,8,9,9,9,9,7,8,7,8,8,9,9,9,9,9,9,7,7,8,8,8,9,9,9,9,9,9,8,8,8,9,9,9,9,10,9,9,9,8,8,8,9,9,9,9,9,9,9,10,8,8,8,9,9,9,9,10,9,10,10,8,8,8,9,9,9,9,9,10,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,9,8,8,9,9,7,10,10,5,8,9,7,9,10,8,9,9,4,9,9,9,11,10,8,10,10,7,11,10,10,10,12,10,12,12,7,10,10,10,12,11,10,12,12,5,9,9,8,10,10,9,11,11,7,11,10,10,12,12,10,11,12,7,10,11,10,12,12,10,12,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,7,7,9,9,4,5,4,6,6,8,7,9,9,4,4,5,6,6,7,7,9,9,5,6,6,7,7,8,8,10,10,5,6,6,7,7,8,8,10,10,7,8,7,8,8,10,9,11,11,7,7,8,8,8,9,10,11,11,9,9,9,10,10,11,10,12,11,9,9,9,10,10,11,11,11,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,7,8,10,10,4,5,5,8,7,8,8,11,11,3,5,5,7,7,8,9,11,11,6,8,7,9,9,10,10,12,12,6,7,8,9,10,10,10,12,12,8,8,8,10,10,12,11,13,13,8,8,9,10,10,11,11,13,13,10,11,11,12,12,13,13,14,14,10,11,11,12,12,13,13,14,14,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,6,7,6,9,9,6,6,7,9,9,8,9,9,11,11,8,9,9,10,11,6,7,7,9,9,7,8,8,10,10,6,7,8,9,10,9,10,10,12,12,9,9,10,11,12,6,7,7,9,9,6,8,7,10,9,7,8,8,10,10,9,10,9,12,11,9,10,10,12,11,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,13,14,11,11,12,13,13,8,9,9,11,11,9,10,10,12,11,9,10,10,12,12,11,12,11,13,13,11,12,12,13,13,6,7,7,9,9,7,8,7,10,10,7,7,8,10,10,9,10,10,12,11,9,10,10,12,12,7,8,8,10,10,8,8,9,11,11,8,9,9,11,11,10,11,11,12,12,10,10,11,12,13,6,7,7,10,10,7,9,8,11,10,8,8,9,10,11,10,11,10,13,11,10,11,11,12,12,9,10,10,12,12,10,10,11,13,13,10,11,11,13,12,12,12,13,13,14,12,12,13,14,14,9,10,10,12,12,9,10,10,12,12,10,11,11,13,13,11,12,11,14,12,12,13,13,14,14,6,7,7,9,9,7,8,7,10,10,7,7,8,10,10,9,10,10,12,11,9,10,10,11,12,6,7,7,10,10,8,9,8,11,10,7,8,9,10,11,10,11,11,13,12,10,10,11,11,13,7,8,8,10,10,8,9,9,11,11,8,9,9,11,11,10,11,10,13,12,10,11,11,12,12,9,10,10,12,12,10,11,11,13,12,9,10,10,12,13,12,13,12,14,14,11,11,12,12,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,12,14,14,12,13,12,14,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,12,12,13,13,9,10,10,12,12,10,11,11,13,13,10,11,11,13,12,12,13,13,14,14,12,12,13,14,14,9,10,10,12,12,9,11,10,13,12,10,10,11,12,13,11,13,12,14,13,12,12,13,14,14,11,12,12,13,13,11,12,13,14,14,12,13,13,14,14,13,13,14,14,16,13,14,14,16,16,11,11,11,13,13,11,12,11,14,13,12,12,13,14,15,13,14,12,16,13,14,14,14,15,16,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,12,12,13,14,9,10,10,12,12,10,11,10,13,12,9,10,11,12,13,12,13,12,14,14,12,12,13,13,14,9,10,10,12,12,10,11,11,12,13,10,11,11,13,13,12,13,12,14,14,12,13,13,14,14,11,12,12,13,13,12,13,12,14,14,11,11,12,13,14,13,15,14,16,15,13,12,14,13,16,11,12,12,13,13,12,13,13,14,14,12,12,12,14,14,13,14,14,15,15,13,14,13,16,14,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,4,8,8,5,7,6,9,9,5,6,7,9,9,8,9,9,13,12,8,9,10,12,13,5,7,7,10,9,7,9,9,11,11,6,8,9,11,11,10,11,11,14,14,9,10,11,13,14,5,7,7,9,9,7,9,8,11,11,7,9,9,11,11,9,11,10,14,13,10,11,11,14,14,8,10,10,14,13,10,11,12,15,14,9,11,11,15,14,13,14,14,16,16,12,13,14,17,16,8,10,10,13,13,9,11,11,14,15,10,11,12,14,15,12,14,13,16,16,13,14,15,15,17,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,12,11,15,14,10,11,12,14,14,7,9,9,12,12,9,11,11,13,13,9,11,11,13,13,11,13,13,14,17,11,13,13,15,16,6,9,9,11,11,8,11,10,13,12,9,11,11,13,13,11,13,12,16,14,11,13,13,16,16,10,12,12,15,15,11,13,13,16,16,11,13,13,16,15,14,16,17,17,19,14,16,16,18,0,9,11,11,14,15,10,13,12,16,15,11,13,13,16,16,14,15,14,0,16,14,16,16,18,0,5,7,7,10,10,7,9,9,12,11,7,9,9,11,12,10,11,11,15,14,10,11,12,14,14,6,9,9,11,11,9,11,11,13,13,8,10,11,12,13,11,13,13,17,15,11,12,13,14,15,7,9,9,11,12,9,11,11,13,13,9,11,11,13,13,11,13,12,16,16,11,13,13,15,14,9,11,11,14,15,11,13,13,16,15,10,12,13,16,16,15,16,16,0,0,14,13,15,16,18,10,11,11,15,15,11,13,14,16,18,11,13,13,16,15,15,16,16,19,0,14,15,15,16,16,8,10,10,13,13,10,12,11,16,15,10,11,11,16,15,13,15,16,18,0,13,14,15,17,17,9,11,11,15,15,11,13,13,16,18,11,13,13,16,17,15,16,16,0,0,15,18,16,0,17,9,11,11,15,15,11,13,12,17,15,11,13,14,16,17,15,18,15,0,17,15,16,16,18,19,13,15,14,0,18,14,16,16,19,18,14,16,15,19,19,16,18,19,0,0,16,17,0,0,0,12,14,14,17,17,13,16,14,0,18,14,16,15,18,0,16,18,16,19,17,18,19,17,0,0,8,10,10,14,14,9,12,11,15,15,10,11,12,15,17,13,15,15,18,16,14,16,15,18,17,9,11,11,16,15,11,13,13,0,16,11,12,13,16,15,15,16,16,0,17,15,15,16,18,17,9,12,11,15,17,11,13,13,16,16,11,14,13,16,16,15,15,16,18,19,16,18,16,0,0,12,14,14,0,16,14,16,16,0,18,13,14,15,16,0,17,16,18,0,0,16,16,17,19,0,13,14,14,17,0,14,17,16,0,19,14,15,15,18,19,17,16,18,0,0,15,19,16,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,4,5,6,6,5,6,6,5,6,6,6,8,8,6,7,8,5,6,6,6,8,7,6,8,8,5,6,6,6,8,7,6,8,8,6,8,8,8,9,9,8,9,9,6,8,7,7,9,8,8,9,9,5,6,6,6,8,7,6,8,8,6,8,8,8,9,9,7,8,9,6,8,8,8,9,9,8,9,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,4,7,7,5,7,7,5,8,8,8,10,10,7,10,10,5,8,8,7,10,10,8,10,10,5,8,8,8,11,10,8,10,10,8,10,10,10,12,13,10,13,13,7,10,10,10,13,12,10,13,13,5,8,8,8,11,10,8,10,11,7,10,10,10,13,13,10,12,13,8,11,11,10,13,13,10,13,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,12,17,16,16,17,17,17,17,17,4,7,11,11,12,9,17,10,17,17,7,7,8,9,7,9,11,10,15,17,7,9,10,11,10,12,14,12,16,17,7,8,5,7,4,7,7,8,16,16,6,10,9,10,7,10,11,11,16,17,6,8,8,9,5,7,5,8,16,17,5,5,8,7,6,7,7,6,6,14,12,10,12,11,7,11,4,4,2,7,17,15,15,15,8,15,6,8,5,9,0,0,0,0,2,0,0,0,100,0,0,0,208,47,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,200,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,240,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,24,33,2,0,0,0,0,0,0,0,0,0,0,0,0,0,64,33,2,0,0,0,0,0,0,0,0,0,0,0,0,0,104,33,2,0,0,0,0,0,144,33,2,0,184,33,2,0,0,0,0,0,0,0,0,0,224,33,2,0,8,34,2,0,0,0,0,0,0,0,0,0,48,34,2,0,88,34,2,0,128,34,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,56,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,9,14,13,14,13,16,12,13,14,5,4,6,6,8,9,11,10,12,15,10,5,5,6,6,8,10,10,13,16,10,6,6,6,6,8,9,9,12,14,13,7,6,6,4,6,6,7,11,14,10,7,7,7,6,6,6,7,10,13,15,10,9,8,5,6,5,6,10,14,10,9,8,8,6,6,5,4,6,11,11,11,12,11,10,9,9,5,5,9,10,12,15,13,13,13,13,8,7,7,0,0,0,0,4,0,0,0,81,0,0,0,104,47,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,192,47,2,0,0,0,0,0,4,0,0,0,81,0,0,0,0,47,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,88,47,2,0,0,0,0,0,4,0,0,0,113,2,0,0,112,44,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,46,2,0,0,0,0,0,4,0,0,0,113,2,0,0,224,41,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,44,2,0,0,0,0,0,2,0,0,0,81,0,0,0,96,41,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,184,41,2,0,0,0,0,0,2,0,0,0,81,0,0,0,224,40,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,56,41,2,0,0,0,0,0,4,0,0,0,81,0,0,0,120,40,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,208,40,2,0,0,0,0,0,2,0,0,0,121,0,0,0,200,39,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,72,40,2,0,0,0,0,0,2,0,0,0,121,0,0,0,24,39,2,0,1,0,0,0,0,128,187,224,0,0,118,96,4,0,0,0,0,0,0,0,152,39,2,0,0,0,0,0,2,0,0,0,121,0,0,0,104,38,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,232,38,2,0,0,0,0,0,2,0,0,0,225,0,0,0,64,37,2,0,1,0,0,0,0,228,91,225,0,224,255,96,4,0,0,0,0,0,0,0,40,38,2,0,0,0,0,0,2,0,0,0,225,0,0,0,24,36,2,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,0,37,2,0,0,0,0,0,2,0,0,0,33,1,0,0,168,34,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,208,35,2,0,0,0,0,0,3,5,5,7,7,8,8,8,8,8,8,9,8,8,9,9,9,5,6,6,7,7,8,8,8,8,8,8,9,9,9,9,9,9,5,6,6,7,7,8,8,8,8,8,8,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,9,9,9,9,10,9,9,9,10,9,9,9,9,9,9,9,9,9,9,10,9,9,9,10,9,9,10,9,9,9,9,9,9,9,9,9,10,10,10,9,10,9,10,10,9,9,9,9,9,9,9,9,9,10,10,9,10,10,9,9,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,7,7,8,9,8,8,9,8,9,8,9,9,4,7,6,8,8,9,9,9,9,9,9,9,9,9,9,4,7,6,9,9,10,10,9,9,10,10,10,10,11,11,7,9,8,10,10,11,11,10,10,11,11,11,11,11,11,7,8,9,10,10,11,11,10,10,11,11,11,11,11,12,8,10,10,11,11,12,12,11,11,12,12,12,12,13,12,8,10,10,11,11,12,11,11,11,11,12,12,12,12,13,8,9,9,11,10,11,11,12,12,12,12,13,12,13,12,8,9,9,11,11,11,11,12,12,12,12,12,13,13,13,9,10,10,11,12,12,12,12,12,13,13,13,13,13,13,9,10,10,11,11,12,12,12,12,13,13,13,13,14,13,10,10,10,12,11,12,12,13,13,13,13,13,13,13,13,10,10,11,11,11,12,12,13,13,13,13,13,13,13,13,10,11,11,12,12,13,12,12,13,13,13,13,13,13,14,10,11,11,12,12,13,12,13,13,13,14,13,13,14,13,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,2,9,8,15,15,15,15,15,15,15,15,15,15,4,8,9,13,14,14,14,14,14,14,14,14,14,14,14,5,8,9,14,14,14,14,14,14,14,14,14,14,14,14,11,14,14,14,14,14,14,14,14,14,14,14,14,14,14,11,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,3,5,5,6,6,7,7,7,7,7,7,5,6,5,7,7,7,7,8,7,8,8,5,5,6,6,7,7,7,7,7,8,8,6,7,7,7,7,8,7,8,8,8,8,6,6,7,7,7,7,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,7,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,10,10,4,6,6,7,7,9,9,10,10,11,11,4,6,6,7,7,9,9,10,10,11,11,6,8,8,9,9,10,10,11,11,12,12,6,8,8,9,9,10,10,11,11,12,12,8,9,9,10,10,11,11,12,12,13,13,8,9,9,10,10,11,11,12,12,13,13,10,10,10,11,11,13,13,13,13,15,14,9,10,10,12,11,12,13,13,13,14,15,11,12,12,13,13,13,13,15,14,15,15,11,11,12,13,13,14,14,14,15,15,15,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,3,4,4,6,6,7,7,8,8,8,8,4,5,5,7,6,8,8,8,8,8,8,4,5,5,6,7,8,8,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,7,8,8,8,8,8,8,9,9,9,9,7,8,8,8,8,8,8,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,9,8,7,10,10,8,10,10,5,8,9,7,10,10,7,10,9,4,8,8,9,11,11,8,11,11,7,11,11,10,10,13,10,13,13,7,11,11,10,13,12,10,13,13,5,9,8,8,11,11,9,11,11,7,11,11,10,13,13,10,12,13,7,11,11,10,13,13,9,13,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,7,7,9,9,4,5,4,6,6,7,7,9,9,4,4,5,6,6,7,8,9,9,5,6,6,7,7,8,8,10,10,5,6,6,7,7,8,8,10,10,7,8,7,8,8,10,9,11,11,7,7,8,8,8,9,10,10,11,9,9,9,10,10,11,11,12,11,9,9,9,10,10,11,11,11,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,8,8,10,10,4,5,5,8,7,8,8,11,11,3,5,5,7,8,8,8,11,11,6,8,7,9,9,10,9,12,11,6,7,8,9,9,9,10,11,12,8,8,8,10,9,12,11,13,13,8,8,9,9,10,11,12,13,13,10,11,11,12,12,13,13,14,14,10,10,11,11,12,13,13,14,14,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,6,7,6,9,9,6,6,7,9,9,8,9,9,11,11,8,9,9,11,11,6,7,7,9,9,7,8,8,10,10,7,7,8,9,10,9,10,10,11,11,9,9,10,11,12,6,7,7,9,9,7,8,7,10,9,7,8,8,10,10,9,10,9,12,11,9,10,10,12,11,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,11,12,13,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,11,13,12,11,12,12,13,13,5,7,7,9,9,7,8,7,10,10,7,7,8,10,10,9,10,10,12,11,9,10,10,11,12,7,8,8,10,10,8,8,9,11,11,8,9,9,11,11,10,10,11,12,13,10,10,11,12,12,6,7,7,10,10,7,9,8,11,10,8,8,9,10,11,10,11,10,13,11,10,11,11,12,12,9,10,10,12,12,10,10,11,13,13,10,11,11,12,13,12,12,12,13,14,12,12,13,14,14,9,10,10,12,12,9,10,10,13,12,10,11,11,13,13,11,12,11,14,12,12,13,13,14,14,6,7,7,9,9,7,8,7,10,10,7,8,8,10,10,9,10,10,12,11,9,10,10,11,12,6,7,7,10,10,8,9,8,11,10,7,8,9,10,11,10,11,11,12,12,10,10,11,11,13,7,8,8,10,10,8,9,9,11,11,8,9,8,11,11,10,11,10,13,12,10,11,11,13,12,9,10,10,12,12,10,11,11,13,12,9,10,10,12,13,12,13,12,14,14,11,11,12,12,14,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,12,12,12,14,14,12,13,12,14,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,12,12,13,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,12,13,14,15,12,12,13,14,14,9,10,10,12,12,9,11,10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,13,14,15,11,12,12,14,13,11,12,12,14,14,12,13,13,14,14,13,13,14,14,16,13,14,14,15,15,11,12,11,13,13,11,12,11,14,13,12,12,13,14,15,12,14,12,15,12,13,14,15,15,16,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,13,11,12,12,13,13,9,10,10,12,12,10,11,10,13,12,9,10,11,12,13,12,13,12,14,14,12,12,13,13,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,12,14,14,12,13,13,14,14,11,11,11,13,13,12,13,12,14,14,11,11,12,13,14,14,14,14,16,15,12,12,14,12,15,11,12,12,13,14,12,13,13,14,15,11,12,12,14,14,13,14,14,16,16,13,14,13,16,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,4,8,8,5,7,6,9,9,5,6,7,9,9,8,9,9,13,12,8,9,10,12,13,5,7,7,10,9,7,9,9,11,11,7,8,9,11,11,10,11,11,14,14,9,10,11,13,14,5,7,7,9,10,6,9,8,11,11,7,9,9,11,11,9,11,10,14,13,10,11,11,14,13,8,10,10,13,13,10,11,11,15,15,9,11,11,14,14,13,14,14,17,16,12,13,14,16,16,8,10,10,13,14,9,11,11,14,15,10,11,12,14,15,12,14,13,16,15,13,14,14,15,17,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,12,11,14,14,10,11,11,14,14,7,9,9,12,11,9,11,11,13,13,9,11,11,13,13,11,13,13,14,15,11,12,13,15,16,6,9,9,11,12,8,11,10,13,12,9,11,11,13,14,11,13,12,16,14,11,13,13,15,16,10,12,11,14,15,11,13,13,15,17,11,13,13,17,16,15,15,16,17,16,14,15,16,18,0,9,11,11,14,15,10,12,12,16,15,11,13,13,16,16,13,15,14,18,15,14,16,16,0,0,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,11,11,14,14,10,11,12,14,14,6,9,9,11,11,9,11,11,13,13,8,10,11,12,13,11,13,13,16,15,11,12,13,14,16,7,9,9,11,12,9,11,11,13,13,9,11,11,13,13,11,13,13,16,15,11,13,12,15,15,9,11,11,15,14,11,13,13,17,16,10,12,13,15,16,14,16,16,0,18,14,14,15,15,17,10,11,12,15,15,11,13,13,16,16,11,13,13,16,16,14,16,16,19,17,14,15,15,17,17,8,10,10,14,14,10,12,11,15,15,10,11,12,16,15,14,15,15,18,20,13,14,16,17,18,9,11,11,15,16,11,13,13,17,17,11,13,13,17,16,15,16,16,0,0,15,16,16,0,0,9,11,11,15,15,10,13,12,17,15,11,13,13,17,16,15,17,15,20,19,15,16,16,19,0,13,15,14,0,17,14,15,16,0,20,15,16,16,0,19,17,18,0,0,0,16,17,18,0,0,12,14,14,19,18,13,15,14,0,17,14,15,16,19,19,16,18,16,0,19,19,20,17,20,0,8,10,10,13,14,10,11,11,15,15,10,12,12,15,16,14,15,14,19,16,14,15,15,0,18,9,11,11,16,15,11,13,13,0,16,11,12,13,16,17,14,16,17,0,19,15,16,16,18,0,9,11,11,15,16,11,13,13,16,16,11,14,13,18,17,15,16,16,18,20,15,17,19,0,0,12,14,14,17,17,14,16,15,0,0,13,14,15,19,0,16,18,20,0,0,16,16,18,18,0,12,14,14,17,20,14,16,16,19,0,14,16,14,0,20,16,20,17,0,0,17,0,15,0,19,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,4,5,6,6,5,6,6,5,6,6,6,8,8,6,7,8,5,6,6,6,8,7,6,8,8,5,6,6,6,8,8,6,8,8,6,8,8,8,9,9,8,9,9,6,7,7,7,9,8,8,9,9,5,6,6,6,8,7,6,8,8,6,8,8,8,9,9,7,8,9,6,8,8,8,9,9,8,9,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,4,8,7,5,7,7,5,8,8,8,10,10,7,9,10,5,8,8,7,10,9,8,10,10,5,8,8,8,10,10,8,10,10,8,10,10,10,12,13,10,13,13,7,10,10,10,13,11,10,13,13,5,8,8,8,11,10,8,10,10,7,10,10,10,13,13,10,11,13,8,10,11,10,13,13,10,13,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,11,16,13,17,13,17,16,17,17,4,7,9,9,13,10,16,12,16,17,7,6,5,7,8,9,12,12,16,17,6,9,7,9,10,10,15,15,17,17,6,7,5,7,5,7,7,10,16,17,7,9,8,9,8,10,11,11,15,17,7,7,7,8,5,8,8,9,15,17,8,7,9,9,7,8,7,2,7,15,14,13,13,15,5,10,4,3,6,17,17,15,13,17,7,11,7,6,9,16,0,0,0,0,2,0,0,0,100,0,0,0,160,64,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,49,2,0,0,0,0,0,0,0,0,0,0,0,0,0,216,49,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,2,0,0,0,0,0,0,0,0,0,0,0,0,0,40,50,2,0,0,0,0,0,0,0,0,0,0,0,0,0,80,50,2,0,0,0,0,0,0,0,0,0,0,0,0,0,120,50,2,0,0,0,0,0,160,50,2,0,200,50,2,0,0,0,0,0,0,0,0,0,240,50,2,0,24,51,2,0,0,0,0,0,0,0,0,0,64,51,2,0,104,51,2,0,144,51,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,72,49,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,13,12,14,12,16,11,13,14,5,4,5,6,7,8,10,9,12,15,10,5,5,5,6,8,9,9,13,15,10,5,5,6,6,7,8,8,11,13,12,7,5,6,4,6,7,7,11,14,11,7,7,6,6,6,7,6,10,14,14,9,8,8,6,7,7,7,11,16,11,8,8,7,6,6,7,4,7,12,10,10,12,10,10,9,10,5,6,9,10,12,15,13,14,14,14,8,7,8,0,0,0,0,4,0,0,0,81,0,0,0,56,64,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,144,64,2,0,0,0,0,0,4,0,0,0,81,0,0,0,208,63,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,40,64,2,0,0,0,0,0,4,0,0,0,113,2,0,0,64,61,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,184,63,2,0,0,0,0,0,4,0,0,0,113,2,0,0,176,58,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,40,61,2,0,0,0,0,0,2,0,0,0,81,0,0,0,48,58,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,136,58,2,0,0,0,0,0,2,0,0,0,81,0,0,0,176,57,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,8,58,2,0,0,0,0,0,4,0,0,0,81,0,0,0,72,57,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,160,57,2,0,0,0,0,0,2,0,0,0,121,0,0,0,152,56,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,24,57,2,0,0,0,0,0,2,0,0,0,121,0,0,0,232,55,2,0,1,0,0,0,0,128,187,224,0,0,118,96,4,0,0,0,0,0,0,0,104,56,2,0,0,0,0,0,2,0,0,0,121,0,0,0,56,55,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,184,55,2,0,0,0,0,0,2,0,0,0,169,0,0,0,80,54,2,0,1,0,0,0,0,232,87,225,0,224,255,96,4,0,0,0,0,0,0,0,0,55,2,0,0,0,0,0,2,0,0,0,225,0,0,0,40,53,2,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,16,54,2,0,0,0,0,0,2,0,0,0,33,1,0,0,184,51,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,224,52,2,0,0,0,0,0,2,5,5,7,7,8,8,8,8,8,8,9,9,9,9,9,9,5,6,6,7,7,8,8,9,8,9,9,9,9,9,9,9,9,5,6,6,7,7,8,8,9,8,9,9,9,9,9,9,9,9,7,7,7,8,8,9,8,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,9,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,9,9,9,9,9,9,9,9,10,9,10,10,10,8,8,8,9,8,9,9,9,9,9,9,9,10,9,10,9,10,8,9,9,9,9,9,9,9,9,9,10,9,10,10,10,10,10,8,9,9,9,9,9,9,10,9,10,9,10,10,10,10,10,10,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,9,10,9,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,10,9,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,7,8,7,9,8,9,9,4,7,6,9,8,10,10,9,8,9,9,9,9,9,8,5,6,6,8,9,10,10,9,9,9,10,10,10,10,11,7,8,8,10,10,11,11,10,10,11,11,11,12,11,11,7,8,8,10,10,11,11,10,10,11,11,12,11,11,11,8,9,9,11,11,12,12,11,11,12,11,12,12,12,12,8,9,10,11,11,12,12,11,11,12,12,12,12,12,12,8,9,9,10,10,12,11,12,12,12,12,12,12,12,13,8,9,9,11,11,11,11,12,12,12,12,13,12,13,13,9,10,10,11,11,12,12,12,13,12,13,13,13],"i8",O3,_.GLOBAL_BASE+134580),C3([14,13,9,10,10,11,11,12,12,12,13,13,12,13,13,14,13,9,11,10,12,11,13,12,12,13,13,13,13,13,13,14,9,10,10,12,12,12,12,12,13,13,13,13,13,14,14,10,11,11,12,12,12,13,13,13,14,14,13,14,14,14,10,11,11,12,12,12,12,13,12,13,14,13,14,14,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,2,12,10,13,13,13,13,13,13,13,13,4,9,9,13,13,13,13,13,13,13,13,13,13,5,10,9,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,5,6,6,7,7,7,7,7,7,5,6,5,7,6,7,7,8,8,8,8,5,5,5,6,6,7,7,8,8,8,8,6,7,6,7,7,8,8,8,8,8,8,6,6,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,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,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,10,10,4,6,6,7,7,9,9,10,10,11,11,4,6,6,7,7,9,9,10,10,11,11,6,8,7,9,9,10,10,11,11,13,12,6,8,8,9,9,10,10,11,11,12,13,8,9,9,10,10,12,12,13,12,14,13,8,9,9,10,10,12,12,13,13,14,14,9,11,11,12,12,13,13,14,14,15,14,9,11,11,12,12,13,13,14,14,15,14,11,12,12,13,13,14,14,15,14,15,14,11,11,12,13,13,14,14,14,14,15,15,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,4,5,5,7,7,8,8,9,8,8,9,4,5,5,7,7,8,8,9,9,8,9,6,7,7,8,8,9,8,9,9,9,9,6,7,7,8,8,9,9,9,9,9,9,7,8,8,9,9,9,9,9,9,9,9,7,8,8,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,8,9,9,9,9,9,9,10,10,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,9,9,8,11,10,7,11,10,5,9,9,7,10,10,8,10,11,4,9,9,9,12,12,9,12,12,8,12,12,11,12,12,10,12,13,7,12,12,11,12,12,10,12,13,4,9,9,9,12,12,9,12,12,7,12,11,10,13,13,11,12,12,7,12,12,10,13,13,11,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,7,7,9,9,4,5,4,6,6,7,7,9,9,4,4,5,6,6,7,7,9,9,5,6,6,7,7,8,8,10,10,6,6,6,7,7,8,8,10,10,7,7,7,8,8,9,9,11,10,7,7,7,8,8,9,9,10,11,9,9,9,10,10,11,10,11,11,9,9,9,10,10,11,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,8,8,10,10,4,5,5,8,7,8,8,11,10,3,5,5,7,8,8,8,10,11,6,8,7,10,9,10,10,11,11,6,7,8,9,9,9,10,11,12,8,8,8,10,10,11,11,13,12,8,8,9,9,10,11,11,12,13,10,11,10,12,11,13,12,14,14,10,10,11,11,12,12,13,14,14,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,6,7,6,9,9,6,6,7,9,9,8,9,9,11,11,8,9,9,11,11,6,7,7,9,9,7,8,8,10,10,6,7,8,9,10,9,10,10,11,12,9,9,10,11,12,6,7,7,9,9,6,8,7,10,9,7,8,8,10,10,9,10,9,12,11,9,10,10,12,11,8,9,9,12,11,9,10,10,12,12,9,10,10,12,12,11,12,12,13,14,11,11,12,13,14,8,9,9,11,12,9,10,10,12,12,9,10,10,12,12,11,12,11,14,13,11,12,12,13,13,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,9,10,10,12,12,7,8,8,10,10,8,8,9,10,11,8,9,9,11,11,10,10,11,11,13,10,11,11,12,13,6,7,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,13,11,10,11,11,12,12,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,11,13,12,15,12,13,13,14,15,9,10,10,12,12,9,11,10,13,12,10,11,11,13,13,11,13,11,14,12,12,13,13,14,15,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,9,10,10,12,12,6,8,7,10,10,8,9,9,11,11,7,8,9,10,11,10,11,11,12,12,10,10,11,11,13,7,8,8,10,10,8,9,9,11,11,8,9,8,11,10,10,11,11,13,12,10,11,10,13,11,9,10,10,12,12,10,11,11,13,12,9,10,10,12,13,12,13,13,14,15,11,11,13,12,14,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13,14,14,12,13,11,14,12,8,9,9,12,12,9,10,10,12,12,9,10,10,12,12,12,12,12,14,14,11,12,12,14,13,9,10,10,12,12,10,11,11,13,13,10,11,11,13,12,12,12,13,14,15,12,13,13,15,14,9,10,10,12,12,10,11,10,13,12,10,11,11,12,13,12,13,12,15,13,12,13,13,14,15,11,12,12,14,13,11,12,12,14,15,12,13,13,15,14,13,12,14,12,16,13,14,14,15,15,11,11,12,14,14,11,12,11,14,13,12,13,13,14,15,13,14,12,16,12,14,14,15,16,16,8,9,9,11,12,9,10,10,12,12,9,10,10,12,13,11,12,12,13,13,12,12,13,14,14,9,10,10,12,12,10,11,10,13,12,10,10,11,12,13,12,13,13,15,14,12,12,13,13,15,9,10,10,12,13,10,11,11,12,13,10,11,11,13,13,12,13,13,14,15,12,13,12,15,14,11,12,11,14,13,12,13,13,15,14,11,11,12,13,14,14,15,14,16,15,13,12,14,13,16,11,12,12,13,14,12,13,13,14,15,11,12,11,14,14,14,14,14,15,16,13,15,12,16,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,5,8,8,5,7,6,9,9,5,6,7,9,9,8,10,9,13,12,8,9,10,12,12,5,7,7,10,10,7,9,9,11,11,6,8,9,11,11,10,11,11,14,14,9,10,11,13,14,5,7,7,9,10,7,9,8,11,11,7,9,9,11,11,9,11,10,14,13,10,11,11,14,14,8,10,10,13,13,10,11,11,15,14,9,11,11,14,14,13,14,14,17,16,12,13,13,15,16,8,10,10,13,13,9,11,11,14,15,10,11,11,14,15,12,14,13,16,16,13,15,14,15,17,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,11,11,14,14,10,11,12,14,14,7,9,9,12,11,9,11,11,13,13,9,11,11,13,13,12,13,13,15,16,11,12,13,15,16,6,9,9,11,11,8,11,10,13,12,9,11,11,13,14,11,13,12,16,14,11,13,13,16,17,10,12,11,15,15,11,13,13,16,16,11,13,13,17,16,14,15,15,17,17,14,16,16,17,18,9,11,11,14,15,10,12,12,15,15,11,13,13,16,17,13,15,13,17,15,14,15,16,18,0,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,11,11,14,14,10,11,12,14,15,6,9,9,12,11,9,11,11,13,13,8,10,11,12,13,11,13,13,16,15,11,12,13,14,15,7,9,9,11,12,9,11,11,13,13,9,11,11,13,13,11,13,13,15,16,11,13,13,15,14,9,11,11,15,14,11,13,13,17,15,10,12,12,15,15,14,16,16,17,17,13,13,15,15,17,10,11,12,15,15,11,13,13,16,16,11,13,13,15,15,14,15,15,18,18,14,15,15,17,17,8,10,10,13,13,10,12,11,15,15,10,11,12,15,15,14,15,15,18,18,13,14,14,18,18,9,11,11,15,16,11,13,13,17,17,11,13,13,16,16,15,15,16,17,0,14,15,17,0,0,9,11,11,15,15,10,13,12,18,16,11,13,13,15,16,14,16,15,20,20,14,15,16,17,0,13,14,14,20,16,14,15,16,19,18,14,15,15,19,0,18,16,0,20,20,16,18,18,0,0,12,14,14,18,18,13,15,14,18,16,14,15,16,18,20,16,19,16,0,17,17,18,18,19,0,8,10,10,14,14,10,11,11,14,15,10,11,12,15,15,13,15,14,19,17,13,15,15,17,0,9,11,11,16,15,11,13,13,16,16,10,12,13,15,17,14,16,16,18,18,14,15,15,18,0,9,11,11,15,15,11,13,13,16,17,11,13,13,18,17,14,18,16,18,18,15,17,17,18,0,12,14,14,18,18,14,15,15,20,0,13,14,15,17,0,16,18,17,0,0,16,16,0,17,20,12,14,14,18,18,14,16,15,0,18,14,16,15,18,0,16,19,17,0,0,17,18,16,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,4,5,6,6,5,6,6,5,6,6,6,8,8,6,7,8,5,6,6,6,8,7,6,8,8,5,6,6,6,8,8,6,8,8,6,8,8,8,9,9,8,9,9,6,8,7,7,9,8,8,9,9,5,6,6,6,8,7,6,8,8,6,8,7,8,9,9,7,8,9,6,8,8,8,9,9,8,9,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,7,5,8,8,8,10,10,7,9,10,5,8,8,7,10,9,8,10,10,5,8,8,8,10,10,8,10,10,8,10,10,10,12,13,10,13,13,7,10,10,10,13,11,10,13,13,4,8,8,8,11,10,8,10,10,7,10,10,10,13,13,10,11,13,8,10,11,10,13,13,10,13,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,10,17,13,17,13,17,17,17,17,3,6,8,9,11,9,15,12,16,17,6,5,5,7,7,8,10,11,17,17,7,8,7,9,9,10,13,13,17,17,8,6,5,7,4,7,5,8,14,17,9,9,8,9,7,9,8,10,16,17,12,10,7,8,4,7,4,7,16,17,12,11,9,10,6,9,5,7,14,17,14,13,10,15,4,8,3,5,14,17,17,14,11,15,6,10,6,8,15,17,0,0,0,0,2,0,0,0,64,0,0,0,248,78,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,66,2,0,0,0,0,0,0,0,0,0,0,0,0,0,128,66,2,0,0,0,0,0,0,0,0,0,0,0,0,0,168,66,2,0,0,0,0,0,0,0,0,0,0,0,0,0,208,66,2,0,0,0,0,0,0,0,0,0,0,0,0,0,248,66,2,0,0,0,0,0,32,67,2,0,72,67,2,0,0,0,0,0,0,0,0,0,112,67,2,0,152,67,2,0,192,67,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,24,66,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,12,12,13,12,11,13,5,4,6,7,8,8,9,13,9,5,4,5,5,7,9,13,9,6,5,6,6,7,8,12,12,7,5,6,4,5,8,13,11,7,6,6,5,5,6,12,10,8,8,7,7,5,3,8,10,12,13,12,12,9,6,7,4,0,0,0,81,0,0,0,144,78,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,232,78,2,0,0,0,0,0,4,0,0,0,81,0,0,0,40,78,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,128,78,2,0,0,0,0,0,4,0,0,0,113,2,0,0,152,75,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,16,78,2,0,0,0,0,0,4,0,0,0,113,2,0,0,8,73,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,128,75,2,0,0,0,0,0,2,0,0,0,81,0,0,0,136,72,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,224,72,2,0,0,0,0,0,2,0,0,0,169,0,0,0,160,71,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,80,72,2,0,0,0,0,0,2,0,0,0,25,0,0,0,104,71,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,71,2,0,0,0,0,0,2,0,0,0,169,0,0,0,128,70,2,0,1,0,0,0,0,232,87,225,0,224,255,96,4,0,0,0,0,0,0,0,48,71,2,0,0,0,0,0,2,0,0,0,225,0,0,0,88,69,2,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,64,70,2,0,0,0,0,0,2,0,0,0,33,1,0,0,232,67,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,16,69,2,0,0,0,0,0,2,5,5,7,7,7,7,8,8,8,8,9,9,9,9,9,9,5,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,5,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,7,7,7,8,8,8,8,9,9,9,9,10,9,10,9,10,10,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,8,9,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,8,8,8,9,9,9,9,9,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,10,10,10,10,10,10,10,10,11,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,10,10,10,10,10,10,10,10,10,10,11,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,7,9,8,10,8,10,9,11,11,4,7,6,8,7,9,9,10,10,11,10,11,10,12,10,4,6,7,8,8,9,9,10,10,11,11,11,11,12,12,6,8,8,10,9,11,10,12,11,12,12,12,12,13,13,6,8,8,10,10,10,11,11,11,12,12,13,12,13,13,8,9,9,11,11,12,11,12,12,13,13,13,13,13,13,8,9,9,11,11,11,12,12,12,13,13,13,13,13,13,9,10,10,12,11,13,13,13,13,14,13,13,14,14,14,9,10,11,11,12,12,13,13,13,13,13,14,15,14,14,10,11,11,12,12,13,13,14,14,14,14,14,15,16,16,10,11,11,12,13,13,13,13,15,14,14,15,16,15,16,10,12,12,13,13,14,14,14,15,15,15,15,15,15,16,11,12,12,13,13,14,14,14,15,15,15,16,15,17,16,11,12,12,13,13,13,15,15,14,16,16,16,16,16,17,11,12,12,13,13,14,14,15,14,15,15,17,17,16,16,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,3,12,12,12,12,12,12,12,12,12,12,3,12,11,12,12,12,12,12,12,12,12,12,12,4,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,6,5,4,5,5,5,6,5,6,5,6,6,5,5,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,11,10,13,13,4,6,5,8,8,9,9,10,10,11,11,14,14,4,6,6,8,8,9,9,10,10,11,11,14,14,6,8,8,9,9,10,10,11,11,12,12,15,15,6,8,8,9,9,10,11,11,11,12,12,15,15,8,9,9,11,10,11,11,12,12,13,13,16,16,8,9,9,10,10,11,11,12,12,13,13,16,16,10,10,10,12,11,12,12,13,13,14,14,16,16,10,10,10,11,12,12,12,13,13,13,14,16,17,11,12,11,12,12,13,13,14,14,15,14,18,17,11,11,12,12,12,13,13,14,14,14,15,19,18,14,15,14,15,15,17,16,17,17,17,17,21,0,14,15,15,16,16,16,16,17,17,18,17,20,21,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,6,6,7,7,9,9,4,5,5,7,7,8,8,10,9,4,5,5,7,7,8,8,10,10,6,7,7,8,8,9,9,11,10,6,7,7,8,8,9,9,10,11,7,8,8,9,9,10,10,11,11,7,8,8,9,9,10,10,11,11,9,10,10,11,10,11,11,12,12,9,10,10,10,11,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,5,7,6,9,9,5,6,7,9,9,9,9,9,11,11,8,9,9,11,11,5,7,7,9,9,7,8,8,10,10,7,7,8,10,10,9,10,10,11,12,9,10,10,11,12,5,7,7,9,9,7,8,7,10,10,7,8,8,10,10,9,10,10,12,11,9,10,10,12,11,9,10,9,12,12,9,10,10,13,12,9,10,10,12,12,12,12,12,14,14,11,12,12,13,14,9,9,10,12,12,9,10,10,13,13,9,10,10,12,13,11,12,12,14,13,11,12,12,14,14,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,9,10,10,12,12,7,8,8,11,10,8,8,9,11,11,8,9,9,11,11,11,11,11,12,13,10,11,11,13,13,6,8,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,13,11,10,11,11,13,13,9,11,10,13,12,10,11,11,13,14,10,11,11,14,13,12,12,13,12,15,12,13,13,15,15,9,10,10,12,13,10,11,10,13,12,10,11,11,13,14,12,13,11,15,13,13,13,13,15,15,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,10,10,11,12,13,6,8,8,10,10,8,9,9,11,11,7,8,9,10,11,10,11,11,13,13,10,10,11,11,13,7,8,8,10,11,8,9,9,11,11,8,9,8,11,11,10,11,11,13,13,11,12,11,13,12,9,10,10,13,12,10,11,11,14,13,10,10,11,12,13,12,13,13,15,15,12,11,13,13,14,9,10,11,12,13,10,11,11,13,14,10,11,11,13,13,12,13,13,15,15,12,13,12,15,12,8,9,9,12,12,9,11,10,13,13,9,10,10,13,13,12,13,13,15,15,12,12,12,14,14,9,10,10,13,13,10,11,11,13,14,10,11,11,14,13,13,13,14,14,16,13,13,13,15,15,9,10,10,13,13,10,11,10,14,13,10,11,11,13,14,12,14,13,16,14,12,13,13,14,15,11,12,12,15,14,11,12,13,14,15,12,13,13,16,15,14,12,15,12,16,14,15,15,16,16,11,12,12,14,14,11,13,12,15,14,12,13,13,15,16,13,15,13,17,13,14,15,15,16,17,8,9,9,12,12,9,10,10,12,13,9,10,10,13,13,12,12,12,14,14,12,13,13,15,15,9,10,10,13,12,10,11,11,14,13,10,10,11,13,14,13,13,13,15,15,12,13,14,14,16,9,10,10,13,13,10,11,11,13,14,10,11,11,14,14,13,13,13,15,15,13,14,13,16,14,11,12,12,15,14,12,13,13,16,15,11,12,13,14,15,14,15,15,17,16,13,13,15,13,16,11,12,13,14,15,13,13,13,15,16,11,13,12,15,14,14,15,15,16,16,14,15,12,17,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,8,8,5,7,7,9,9,5,7,7,9,9,8,10,9,12,12,8,9,10,12,12,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,12,11,14,14,9,10,11,13,14,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,9,11,10,14,13,10,11,11,14,14,8,10,10,14,13,10,12,12,15,14,9,11,11,15,14,13,14,14,17,17,12,14,14,16,16,8,10,10,14,14,9,11,11,14,15,10,12,12,14,15,12,14,13,16,16,13,14,15,15,18,4,7,7,10,10,7,9,9,12,11,7,9,9,11,12,10,12,11,15,14,10,11,12,14,15,7,9,9,12,12,9,11,12,13,13,9,11,12,13,13,12,13,13,15,16,11,13,13,15,16,7,9,9,12,12,9,11,10,13,12,9,11,12,13,14,11,13,12,16,14,12,13,13,15,16,10,12,12,16,15,11,13,13,17,16,11,13,13,17,16,14,15,15,17,17,14,16,16,18,20,9,11,11,15,16,11,13,12,16,16,11,13,13,16,17,14,15,14,18,16,14,16,16,17,20,5,7,7,10,10,7,9,9,12,11,7,9,10,11,12,10,12,11,15,15,10,12,12,14,14,7,9,9,12,12,9,12,11,14,13,9,10,11,12,13,12,13,14,16,16,11,12,13,14,16,7,9,9,12,12,9,12,11,13,13,9,12,11,13,13,11,13,13,16,16,12,13,13,16,15,9,11,11,16,14,11,13,13,16,16,11,12,13,16,16,14,16,16,17,17,13,14,15,16,17,10,12,12,15,15,11,13,13,16,17,11,13,13,16,16,14,16,15,19,19,14,15,15,17,18,8,10,10,14,14,10,12,12,15,15,10,12,12,16,16,14,16,15,20,19,13,15,15,17,16,9,12,12,16,16,11,13,13,16,18,11,14,13,16,17,16,17,16,20,0,15,16,18,18,20,9,11,11,15,15,11,14,12,17,16,11,13,13,17,17,15,17,15,20,20,14,16,16,17,0,13,15,14,18,16,14,15,16,0,18,14,16,16,0,0,18,16,0,0,20,16,18,18,0,0,12,14,14,17,18,13,15,14,20,18,14,16,15,19,19,16,20,16,0,18,16,19,17,19,0,8,10,10,14,14,10,12,12,16,15,10,12,12,16,16,13,15,15,18,17,14,16,16,19,0,9,11,11,16,15,11,14,13,18,17,11,12,13,17,18,14,17,16,18,18,15,16,17,18,18,9,12,12,16,16,11,13,13,16,18,11,14,13,17,17,15,16,16,18,20,16,17,17,20,20,12,14,14,18,17,14,16,16,0,19,13,14,15,18,0,16,0,0,0,0,16,16,0,19,20,13,15,14,0,0,14,16,16,18,19,14,16,15,0,20,16,20,18,0,20,17,20,17,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,5,6,6,5,6,6,5,6,6,7,8,8,6,8,8,5,6,6,6,8,8,7,8,8,5,7,6,6,8,8,6,8,8,6,8,8,8,9,10,8,10,10,6,8,8,8,10,8,8,10,10,5,6,6,6,8,8,6,8,8,6,8,8,8,10,10,8,8,10,6,8,8,8,10,10,8,10,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,10,11,8,10,11,5,8,8,8,11,10,8,11,11,4,8,8,8,11,11,8,11,11,8,11,11,11,13,14,11,15,14,8,11,11,10,13,12,11,14,14,4,8,8,8,11,11,8,11,11,7,11,11,11,15,14,10,12,14,8,11,11,11,14,14,11,14,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,14,17,15,17,16,14,13,16,10,7,7,10,13,10,15,16,9,4,4,6,5,7,9,16,12,8,7,8,8,8,11,16,14,7,4,6,3,5,8,15,13,8,5,7,4,5,7,16,12,9,6,8,3,3,5,16,14,13,7,10,5,5,7,15,2,0,0,0,64,0,0,0,192,92,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,80,2,0,0,0,0,0,0,0,0,0,0,0,0,0,176,80,2,0,0,0,0,0,0,0,0,0,0,0,0,0,216,80,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81,2,0,0,0,0,0,0,0,0,0,0,0,0,0,40,81,2,0,0,0,0,0,80,81,2,0,120,81,2,0,0,0,0,0,0,0,0,0,160,81,2,0,200,81,2,0,240,81,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,72,80,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,9,13,12,14,11,10,13,8,4,5,7,8,7,8,12,11,4,3,5,5,7,9,14,11,6,5,6,6,6,7,13,13,7,5,6,4,5,7,14,11,7,6,6,5,5,6,13,9,7,8,6,7,5,3,9,9,12,13,12,14,10,6,7,4,0,0,0,81,0,0,0,88,92,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,176,92,2,0,0,0,0,0,4,0,0,0,81,0,0,0,240,91,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,72,92,2,0,0,0,0,0,4,0,0,0,113,2,0,0,96,89,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,216,91,2,0,0,0,0,0,4,0,0,0,113,2,0,0,208,86,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,72,89,2,0,0,0,0,0,2,0,0,0,81,0,0,0,80,86,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,168,86,2,0,0,0,0,0,2,0,0,0,169,0,0,0,104,85,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,24,86,2,0,0,0,0,0,2,0,0,0,25,0,0,0,48,85,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,80,85,2,0,0,0,0,0,2,0,0,0,81,0,0,0,176,84,2,0,1,0,0,0,0,224,63,225,0,224,255,96,4,0,0,0,0,0,0,0,8,85,2,0,0,0,0,0,2,0,0,0,225,0,0,0,136,83,2,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,112,84,2,0,0,0,0,0,2,0,0,0,33,1,0,0,24,82,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,64,83,2,0,0,0,0,0,2,5,5,7,6,7,7,8,8,8,8,9,9,9,9,9,9,5,6,6,7,7,8,8,8,8,9,9,9,9,9,9,10,10,5,6,6,7,7,8,8,8,8,9,8,9,9,9,9,10,9,7,7,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,7,7,7,8,8,8,8,9,9,9,9,10,9,10,10,10,10,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,7,8,8,9,8,9,9,9,9,10,9,10,10,10,10,10,10,8,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,8,9,8,9,9,9,9,10,9,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,11,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,11,11,11,10,11,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,6,8,7,9,8,10,9,11,11,4,7,7,8,7,9,9,10,10,11,11,11,11,12,12,4,7,7,7,7,9,9,10,10,11,11,12,12,12,11,6,8,8,9,9,10,10,11,11,12,12,13,12,13,13,6,8,8,9,9,10,11,11,11,12,12,13,14,13,13,8,9,9,11,11,12,12,12,13,14,13,14,14,14,15,8,9,9,11,11,11,12,13,14,13,14,15,17,14,15,9,10,10,12,12,13,13,13,14,15,15,15,16,16,16,9,11,11,12,12,13,13,14,14,14,15,16,16,16,16,10,12,12,13,13,14,14,15,15,15,16,17,17,17,17,10,12,11,13,13,15,14,15,14,16,17,16,16,16,16,11,13,12,14,14,14,14,15,16,17,16,17,17,17,17,11,13,12,14,14,14,15,17,16,17,17,17,17,17,17,12,13,13,15,16,15,16,17,17,16,16,17,17,17,17,12,13,13,15,15,15,16,17,17,17,16,17,16,17,17,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,3,10,10,10,10,10,10,4,10,10,10,10,10,10,10,10,4,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,6,5,4,5,5,5,6,5,6,5,6,6,5,5,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,10,11,13,14,4,6,5,8,8,9,9,10,10,11,11,14,14,4,6,6,8,8,9,9,10,10,11,11,14,14,6,8,8,9,9,10,10,11,11,12,12,15,15,6,8,8,9,9,10,11,11,11,12,12,15,15,8,9,9,11,10,11,11,12,12,13,13,15,16,8,9,9,10,11,11,11,12,12,13,13,16,16,10,10,11,11,11,12,12,13,13,13,14,17,16,9,10,11,12,11,12,12,13,13,13,13,16,18,11,12,11,12,12,13,13,13,14,15,14,17,17,11,11,12,12,12,13,13,13,14,14,15,18,17,14,15,15,15,15,16,16,17,17,19,18,0,20,14,15,14,15,15,16,16,16,17,18,16,20,18,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,6,6,7,7,9,9,4,5,5,7,7,8,8,10,10,4,5,5,7,7,8,8,10,10,6,7,7,8,8,9,9,11,10,6,7,7,8,8,9,9,10,10,7,8,8,9,9,10,10,11,11,7,8,8,9,9,10,10,11,11,9,10,10,11,10,11,11,12,12,9,10,10,10,10,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,5,7,6,9,9,5,6,7,9,9,9,9,9,11,11,9,9,9,11,11,5,7,7,9,9,7,8,8,10,10,7,7,8,10,10,9,10,10,11,12,9,10,10,11,12,5,7,7,9,9,7,8,7,10,10,7,8,8,10,10,9,10,9,12,11,9,10,10,12,11,9,10,9,12,12,9,10,10,13,12,9,10,10,12,13,12,12,12,14,14,11,12,12,13,14,9,9,10,12,12,9,10,10,12,12,9,10,10,12,13,11,12,11,14,13,12,12,12,14,13,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,9,10,10,12,12,7,8,8,11,10,8,8,9,11,11,8,9,9,11,11,11,11,11,12,13,10,11,11,13,13,6,8,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,13,11,10,11,11,13,13,9,11,10,13,12,10,11,11,13,13,10,11,11,13,13,12,12,13,12,15,12,13,13,15,15,9,10,10,12,13,10,11,10,13,12,10,11,11,13,14,12,13,11,15,13,12,13,13,15,15,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,12,10,10,11,12,12,6,8,8,10,10,8,9,9,11,11,7,8,9,10,11,10,11,11,13,13,10,10,11,11,13,7,8,8,10,10,8,9,9,11,11,8,9,9,11,11,10,11,11,13,13,11,11,11,13,12,9,10,10,13,12,10,11,11,14,13,10,10,11,12,13,12,13,13,15,15,12,11,13,13,14,9,10,11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13,15,15,12,13,12,15,12,8,9,9,12,12,9,11,10,13,13,9,10,10,13,13,12,13,13,15,14,12,12,12,14,13,9,10,10,13,12,10,11,11,13,13,10,11,11,14,12,13,13,14,14,16,12,13,13,15,15,9,10,10,13,13,10,11,10,14,13,10,11,11,13,14,12,14,13,15,14,13,13,13,15,15,11,13,12,15,14,11,12,13,14,15,12,13,13,16,14,14,12,15,12,16,14,15,15,17,15,11,12,12,14,14,11,13,11,15,14,12,13,13,15,15,13,15,12,17,13,14,15,15,16,16,8,9,9,12,12,9,10,10,12,13,9,10,10,13,13,12,12,12,14,14,12,13,13,15,15,9,10,10,13,12,10,11,11,14,13,10,10,11,13,14,12,13,13,15,15,12,12,13,14,16,9,10,10,13,13,10,11,11,13,14,10,11,11,14,13,12,13,13,14,15,13,14,13,16,14,11,12,12,14,14,12,13,13,15,14,11,12,13,14,15,14,15,15,16,16,13,13,15,13,16,11,12,12,14,15,12,13,13,14,15,11,13,12,15,14,14,15,15,16,16,14,15,12,16,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,7,7,5,7,7,9,9,5,7,7,9,9,8,9,9,12,12,8,9,9,11,12,5,7,7,10,10,7,9,9,11,11,7,9,9,10,11,10,11,11,13,13,9,10,11,13,13,5,7,7,10,10,7,9,9,11,10,7,9,9,11,11,9,11,10,13,13,10,11,11,14,13,8,10,10,14,13,10,11,11,15,14,9,11,11,14,14,13,14,13,16,16,12,13,13,15,15,8,10,10,13,14,9,11,11,14,14,10,11,11,14,15,12,13,13,15,15,13,14,14,15,16,5,7,7,10,10,7,9,9,11,11,7,9,9,11,12,10,11,11,14,14,10,11,11,14,14,7,9,9,12,12,9,11,11,13,13,9,11,11,13,13,12,12,13,15,15,11,12,13,15,16,7,9,9,11,11,8,11,10,13,12,9,11,11,13,13,11,13,12,15,13,11,13,13,15,16,9,12,11,15,14,11,12,13,16,15,11,13,13,15,16,14,14,15,17,16,13,15,16,0,17,9,11,11,15,15,10,13,12,15,15,11,13,13,15,16,13,15,13,16,15,14,16,15,0,19,5,7,7,10,10,7,9,9,11,11,7,9,9,11,11,10,12,11,14,14,10,11,12,14,14,7,9,9,12,12,9,11,11,14,13,9,10,11,12,13,11,13,13,16,16,11,12,13,13,16,7,9,9,12,12,9,11,11,13,13,9,11,11,13,13,11,13,13,15,15,12,13,12,15,14,9,11,11,15,14,11,13,12,16,16,10,12,12,15,15,13,15,15,17,19,13,14,15,16,17,10,12,12,15,15,11,13,13,16,16,11,13,13,15,16,13,15,15,0,0,14,15,15,16,16,8,10,10,14,14,10,12,12,15,15,10,12,11,15,16,14,15,15,19,20,13,14,14,18,16,9,11,11,15,15,11,13,13,17,16,11,13,13,16,16,15,17,17,20,20,14,15,16,17,20,9,11,11,15,15,10,13,12,16,15,11,13,13,15,17,14,16,15,18,0,14,16,15,18,20,12,14,14,0,0,14,14,16,0,0,13,16,15,0,0,17,17,18,0,0,16,17,19,19,0,12,14,14,18,0,12,16,14,0,17,13,15,15,18,0,16,18,17,0,17,16,18,17,0,0,7,10,10,14,14,10,12,11,15,15,10,12,12,16,15,13,15,15,18,0,14,15,15,17,0,9,11,11,15,15,11,13,13,16,16,11,12,13,16,16,14,15,16,17,17,14,16,16,16,18,9,11,12,16,16,11,13,13,17,17,11,14,13,20,17,15,16,16,19,0,15,16,17,0,19,11,13,14,17,16,14,15,15,20,18,13,14,15,17,19,16,18,18,0,20,16,16,19,17,0,12,15,14,17,0,14,15,15,18,19,13,16,15,19,20,15,18,18,0,20,17,0,16,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,4,5,6,6,5,6,6,5,6,6,7,8,8,6,8,8,5,6,6,6,8,8,7,8,8,5,7,6,7,8,8,6,8,8,7,8,8,8,9,10,8,10,10,6,8,8,8,10,8,8,10,10,5,6,6,6,8,8,7,8,8,6,8,8,8,10,10,8,8,10,7,8,8,8,10,10,8,10,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,10,11,8,10,11,5,8,8,8,11,10,8,11,11,4,8,8,8,11,11,8,11,11,8,11,11,11,13,14,11,14,14,8,11,11,10,14,12,11,14,14,4,8,8,8,11,11,8,11,11,7,11,11,11,14,14,10,12,14,8,11,11,11,14,14,11,14,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,14,14,14,15,13,15,12,16,10,8,7,9,9,8,12,16,10,5,4,6,5,6,9,16,14,8,6,8,7,8,10,16,14,7,4,6,3,5,8,16,15,9,5,7,4,4,7,16,13,10,6,7,4,3,4,13,13,12,7,9,5,5,6,12,2,0,0,0,64,0,0,0,192,105,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,94,2,0,0,0,0,0,0,0,0,0,0,0,0,0,120,94,2,0,0,0,0,0,0,0,0,0,0,0,0,0,160,94,2,0,0,0,0,0,0,0,0,0,0,0,0,0,200,94,2,0,0,0,0,0,0,0,0,0,0,0,0,0,240,94,2,0,0,0,0,0,24,95,2,0,64,95,2,0,0,0,0,0,0,0,0,0,104,95,2,0,144,95,2,0,184,95,2],"i8",O3,_.GLOBAL_BASE+144820),C3([2,0,0,0,64,0,0,0,16,94,2,0,0,0,0,0,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,9,14,12,15,13,10,13,7,4,5,6,8,7,8,12,13,4,3,5,5,6,9,15,12,6,5,6,6,6,7,14,14,7,4,6,4,6,8,15,12,6,6,5,5,5,6,14,9,7,8,6,7,5,4,10,10,13,14,14,15,10,6,8,4,0,0,0,81,0,0,0,88,105,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,176,105,2,0,0,0,0,0,4,0,0,0,81,0,0,0,240,104,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,72,105,2,0,0,0,0,0,4,0,0,0,113,2,0,0,96,102,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,216,104,2,0,0,0,0,0,4,0,0,0,113,2,0,0,208,99,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,72,102,2,0,0,0,0,0,2,0,0,0,81,0,0,0,80,99,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,168,99,2,0,0,0,0,0,2,0,0,0,169,0,0,0,104,98,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,24,99,2,0,0,0,0,0,2,0,0,0,25,0,0,0,48,98,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,80,98,2,0,0,0,0,0,2,0,0,0,81,0,0,0,176,97,2,0,1,0,0,0,0,32,53,225,0,32,245,96,4,0,0,0,0,0,0,0,8,98,2,0,0,0,0,0,2,0,0,0,169,0,0,0,200,96,2,0,1,0,0,0,0,128,211,224,0,0,122,96,4,0,0,0,0,0,0,0,120,97,2,0,0,0,0,0,2,0,0,0,169,0,0,0,224,95,2,0,1,0,0,0,0,0,88,224,0,0,16,96,4,0,0,0,0,0,0,0,144,96,2,0,0,0,0,0,2,5,5,6,6,7,7,8,7,8,8,8,8,5,6,6,7,7,8,8,8,8,8,8,8,8,5,6,6,7,7,8,7,8,8,8,8,8,8,6,7,7,7,8,8,8,8,8,9,9,9,9,6,7,7,8,7,8,8,9,9,9,9,9,9,7,8,8,8,8,8,8,9,9,9,9,9,9,7,8,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,9,9,9,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,6,7,6,8,7,9,7,9,8,4,7,6,8,8,9,8,10,9,10,10,11,11,4,7,7,8,8,8,8,9,10,11,11,11,11,6,8,8,10,10,10,10,11,11,12,12,12,12,7,8,8,10,10,10,10,11,11,12,12,13,13,7,9,9,11,10,12,12,13,13,14,13,14,14,7,9,9,10,11,11,12,13,13,13,13,16,14,9,10,10,12,12,13,13,14,14,15,16,15,16,9,10,10,12,12,12,13,14,14,14,15,16,15,10,12,12,13,13,15,13,16,16,15,17,17,17,10,11,11,12,14,14,14,15,15,17,17,15,17,11,12,12,14,14,14,15,15,15,17,16,17,17,10,12,12,13,14,14,14,17,15,17,17,17,17,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,12,12,12,12,12,12,4,12,12,12,12,12,12,12,12,5,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,6,5,4,5,5,5,6,5,6,5,6,6,5,5,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,10,11,11,14,13,4,6,5,8,8,9,9,11,10,12,11,15,14,4,5,6,8,8,9,9,11,11,11,11,14,14,6,8,8,10,9,11,11,11,11,12,12,15,15,6,8,8,9,9,11,11,11,12,12,12,15,15,8,10,10,11,11,11,11,12,12,13,13,15,16,8,10,10,11,11,11,11,12,12,13,13,16,16,10,11,11,12,12,12,12,13,13,13,13,17,16,10,11,11,12,12,12,12,13,13,13,14,16,17,11,12,12,13,13,13,13,14,14,15,14,18,17,11,12,12,13,13,13,13,14,14,14,15,19,18,14,15,15,15,15,16,16,18,19,18,18,0,0,14,15,15,16,15,17,17,16,18,17,18,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,8,8,9,9,4,6,5,8,8,8,8,10,10,4,5,6,8,8,8,8,10,10,7,8,8,9,9,9,9,11,11,7,8,8,9,9,9,9,11,11,8,8,8,9,9,10,11,12,12,8,8,8,9,9,10,10,12,12,10,10,10,11,11,12,12,13,13,10,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,5,7,6,9,9,5,6,7,9,9,9,9,9,11,11,9,9,9,11,11,5,7,7,9,9,7,8,8,10,10,7,7,8,10,10,10,10,10,11,12,9,10,10,11,12,5,7,7,9,9,6,8,7,10,10,7,8,8,10,10,9,10,10,12,11,9,10,10,12,11,9,10,10,12,12,10,10,10,13,12,9,10,10,12,13,12,12,12,14,14,11,12,12,13,14,9,10,10,12,12,9,10,10,12,13,10,10,10,12,13,11,12,12,14,13,12,12,12,14,13,5,7,7,10,9,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,10,10,10,12,12,7,8,8,11,10,8,8,9,11,11,8,9,9,11,11,10,11,11,12,13,10,11,11,13,13,6,8,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,13,11,10,11,11,13,13,9,10,10,13,13,10,11,11,13,13,10,11,11,14,13,12,11,13,12,15,12,13,13,15,15,9,10,10,12,13,10,11,10,13,13,10,11,11,13,13,12,13,11,15,13,12,13,13,15,15,5,7,7,9,10,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,10,10,11,12,12,6,8,8,10,10,8,9,9,11,11,7,8,9,10,11,10,11,11,13,13,10,10,11,11,13,7,8,8,10,11,8,9,9,11,11,8,9,8,11,11,10,11,11,13,13,10,11,11,13,12,9,10,10,13,12,10,11,11,14,13,10,10,11,13,13,12,13,13,15,15,12,11,13,12,14,9,10,10,12,13,10,11,11,13,14,10,11,11,13,13,12,13,13,15,15,12,13,12,15,12,8,9,9,12,12,9,11,10,13,13,9,10,10,13,13,12,13,13,15,15,12,12,12,14,14,9,10,10,13,13,10,11,11,13,14,10,11,11,14,12,13,13,14,14,16,12,13,13,15,14,9,10,10,13,13,10,11,10,14,13,10,11,11,13,14,12,14,13,16,14,13,13,13,14,15,11,13,12,15,14,11,12,13,14,15,12,13,13,16,15,14,12,15,12,16,14,15,15,17,16,11,12,12,14,15,11,13,11,15,14,12,13,13,15,16,13,15,12,17,13,14,15,15,16,16,8,9,9,12,12,9,10,10,13,13,9,10,10,13,13,12,13,12,14,14,12,13,13,15,15,9,10,10,13,13,10,11,11,14,13,10,10,11,13,14,12,13,13,15,14,12,12,14,14,16,9,10,10,13,13,10,11,11,13,14,10,11,11,14,13,13,13,13,15,15,13,14,13,16,14,11,12,12,14,14,12,13,13,16,15,11,12,13,14,15,14,15,15,16,16,14,13,15,13,17,11,12,12,14,15,12,13,13,15,16,11,13,12,15,15,14,15,14,16,16,14,15,12,17,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,7,8,5,7,7,9,9,5,7,7,9,9,8,9,9,12,11,8,9,9,11,12,5,7,7,10,10,7,9,9,11,11,7,9,9,10,11,10,11,11,13,13,9,10,11,12,13,5,7,7,10,10,7,9,9,11,10,7,9,9,11,11,9,11,10,13,13,10,11,11,13,13,8,10,10,14,13,10,11,11,15,14,9,11,11,15,14,13,14,13,16,14,12,13,13,15,16,8,10,10,13,14,9,11,11,14,15,10,11,11,14,15,12,13,13,15,15,12,13,14,15,16,5,7,7,10,10,7,9,9,11,11,7,9,9,11,12,10,11,11,14,13,10,11,11,14,14,7,9,9,12,12,9,11,11,13,13,9,11,11,13,13,12,13,12,14,14,11,12,13,15,15,7,9,9,12,12,8,11,10,13,12,9,11,11,13,13,11,13,12,15,13,11,13,13,15,16,9,12,11,15,15,11,12,12,16,15,11,12,13,16,16,13,14,15,16,15,13,15,15,17,17,9,11,11,14,15,10,12,12,15,15,11,13,12,15,16,13,15,14,16,16,13,15,15,17,19,5,7,7,10,10,7,9,9,12,11,7,9,9,11,11,10,11,11,14,14,10,11,11,13,14,7,9,9,12,12,9,11,11,13,13,9,10,11,12,13,11,13,12,16,15,11,12,12,14,15,7,9,9,12,12,9,11,11,13,13,9,11,11,13,12,11,13,12,15,16,12,13,13,15,14,9,11,11,15,14,11,13,12,16,15,10,11,12,15,15,13,14,14,18,17,13,14,14,15,17,10,11,11,14,15,11,13,12,15,17,11,13,12,15,16,13,15,14,18,17,14,15,15,16,18,7,10,10,14,14,10,12,12,15,15,10,12,12,15,15,14,15,15,18,17,13,15,15,16,16,9,11,11,16,15,11,13,13,16,18,11,13,13,16,16,15,16,16,0,0,14,15,16,18,17,9,11,11,15,15,10,13,12,17,16,11,12,13,16,17,14,15,16,19,19,14,15,15,0,20,12,14,14,0,0,13,14,16,19,18,13,15,16,20,17,16,18,0,0,0,15,16,17,18,19,11,14,14,0,19,12,15,14,17,17,13,15,15,0,0,16,17,15,20,19,15,17,16,19,0,8,10,10,14,15,10,12,11,15,15,10,11,12,16,15,13,14,14,19,17,14,15,15,0,0,9,11,11,16,15,11,13,13,17,16,10,12,13,16,17,14,15,15,18,18,14,15,16,20,19,9,12,12,0,15,11,13,13,16,17,11,13,13,19,17,14,16,16,18,17,15,16,16,17,19,11,14,14,18,18,13,14,15,0,0,12,14,15,19,18,15,16,19,0,19,15,16,19,19,17,12,14,14,16,19,13,15,15,0,17,13,15,14,18,18,15,16,15,0,18,16,17,17,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,5,6,6,5,6,6,5,6,6,7,8,8,6,8,8,5,6,6,6,8,7,7,8,8,5,6,6,7,8,8,6,8,8,6,8,8,8,9,10,8,10,10,6,8,8,7,10,8,8,10,10,5,6,6,6,8,8,7,8,8,6,8,8,8,10,10,8,8,10,6,8,8,8,10,10,8,10,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,11,11,8,10,11,5,8,8,8,11,10,8,11,11,4,8,8,8,11,11,8,11,11,8,11,11,11,13,14,11,13,13,7,11,11,10,13,12,11,14,14,4,8,8,8,11,11,8,11,11,8,11,11,11,14,13,10,12,13,8,11,11,11,13,13,11,13,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,13,15,17,17,15,15,12,17,11,9,7,10,10,9,12,17,10,6,3,6,5,7,10,17,15,10,6,9,8,9,11,17,15,8,4,7,3,5,9,16,16,10,5,8,4,5,8,16,13,11,5,8,3,3,5,14,13,12,7,10,5,5,7,14,2,0,0,0,64,0,0,0,152,118,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,107,2,0,0,0,0,0,0,0,0,0,0,0,0,0,120,107,2,0,0,0,0,0,0,0,0,0,0,0,0,0,160,107,2,0,0,0,0,0,0,0,0,0,0,0,0,0,200,107,2,0,0,0,0,0,0,0,0,0,0,0,0,0,240,107,2,0,0,0,0,0,24,108,2,0,64,108,2,0,0,0,0,0,0,0,0,0,104,108,2,0,144,108,2,0,184,108,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,16,107,2,0,0,0,0,0,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,8,13,10,17,11,11,15,7,2,4,5,8,7,9,16,13,4,3,5,6,8,11,20,10,4,5,5,7,6,8,18,15,7,6,7,8,10,14,20,10,6,7,6,9,7,8,17,9,8,10,8,10,5,4,11,12,17,19,14,16,10,7,12,4,0,0,0,81,0,0,0,48,118,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,136,118,2,0,0,0,0,0,4,0,0,0,81,0,0,0,200,117,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,32,118,2,0,0,0,0,0,4,0,0,0,113,2,0,0,56,115,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,176,117,2,0,0,0,0,0,4,0,0,0,113,2,0,0,168,112,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,32,115,2,0,0,0,0,0,2,0,0,0,81,0,0,0,40,112,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,128,112,2,0,0,0,0,0,2,0,0,0,169,0,0,0,64,111,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,240,111,2,0,0,0,0,0,2,0,0,0,25,0,0,0,8,111,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,40,111,2,0,0,0,0,0,2,0,0,0,49,0,0,0,176,110,2,0,1,0,0,0,0,176,31,225,0,32,245,96,3,0,0,0,0,0,0,0,232,110,2,0,0,0,0,0,2,0,0,0,169,0,0,0,200,109,2,0,1,0,0,0,0,128,211,224,0,0,122,96,4,0,0,0,0,0,0,0,120,110,2,0,0,0,0,0,2,0,0,0,169,0,0,0,224,108,2,0,1,0,0,0,0,0,88,224,0,0,16,96,4,0,0,0,0,0,0,0,144,109,2,0,0,0,0,0,2,5,4,6,6,7,7,8,8,8,8,9,8,5,5,6,7,7,8,8,8,8,9,9,9,9,5,6,5,7,7,8,8,8,8,9,9,9,9,6,7,7,8,8,8,8,9,8,9,9,9,9,6,7,7,8,7,8,8,9,9,9,9,9,9,7,8,8,8,8,9,9,9,9,9,9,9,9,7,8,8,9,8,9,8,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,9,9,10,10,8,8,9,9,9,9,9,9,9,9,10,9,10,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,10,9,9,10,10,9,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,6,6,6,6,7,7,8,8,9,9,5,7,7,8,7,7,7,9,8,10,9,10,11,5,7,7,8,8,7,7,8,9,10,10,11,11,6,8,8,9,9,9,9,11,10,12,12,15,12,6,8,8,9,9,9,9,11,11,12,11,14,12,7,8,8,10,10,12,12,13,13,13,15,13,13,7,8,8,10,10,11,11,13,12,14,15,15,15,9,10,10,11,12,13,13,14,15,14,15,14,15,8,10,10,12,12,14,14,15,14,14,15,15,14,10,12,12,14,14,15,14,15,15,15,14,15,15,10,12,12,13,14,15,14,15,15,14,15,15,15,12,15,13,15,14,15,15,15,15,15,15,15,15,13,13,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,5,5,4,5,5,5,5,5,6,6,6,6,5,6,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,9,11,10,14,13,4,6,5,8,8,9,9,11,10,11,11,14,14,4,5,6,8,8,9,9,10,10,11,11,14,14,6,8,8,9,9,10,10,11,11,12,12,16,15,7,8,8,9,9,10,10,11,11,12,12,15,15,9,10,10,10,10,11,11,12,12,12,12,15,15,9,10,9,10,11,11,11,12,12,12,13,15,15,10,10,11,11,11,12,12,13,12,13,13,16,15,10,11,11,11,11,12,12,13,12,13,13,16,17,11,11,12,12,12,13,13,13,14,14,15,17,17,11,11,12,12,12,13,13,13,14,14,14,16,18,14,15,15,15,15,16,16,16,16,17,18,0,0,14,15,15,15,15,17,16,17,18,17,17,18,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,6,8,8,8,8,9,9,4,6,6,8,8,8,8,9,9,7,8,8,9,9,9,9,11,10,7,8,8,9,9,9,9,10,10,7,8,8,9,9,10,10,11,11,7,8,8,9,9,10,10,11,11,9,9,9,10,10,11,11,12,12,9,9,9,10,11,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,9,9,5,6,6,9,9,5,6,6,9,9,9,10,9,12,12,9,9,10,12,12,5,7,7,10,10,7,7,8,10,10,6,7,8,10,10,10,10,10,11,13,10,9,10,12,13,5,7,7,10,10,6,8,7,10,10,7,8,7,10,10,9,10,10,12,12,10,10,10,13,11,9,10,10,13,13,10,11,10,13,13,10,10,10,13,13,12,12,13,14,14,12,12,13,14,14,9,10,10,13,13,10,10,10,13,13,10,10,10,13,13,12,13,12,15,14,12,13,12,15,15,5,7,6,10,10,7,8,8,10,10,7,8,8,10,10,10,11,10,13,13,10,10,10,12,12,7,8,8,11,10,8,8,9,10,11,8,9,9,11,11,11,10,11,11,14,11,11,11,13,13,6,8,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,14,11,10,11,11,13,13,10,11,11,14,13,10,10,11,14,13,10,11,11,14,14,12,11,13,12,16,13,14,14,15,15,10,10,11,13,14,10,11,10,14,13,10,11,11,14,14,12,13,12,15,13,13,13,14,15,16,5,7,7,10,10,7,8,8,10,10,7,8,8,10,10,10,10,10,13,13,10,10,11,12,13,6,8,8,11,10,8,9,9,11,11,7,8,9,10,11,10,11,11,13,13,10,10,11,11,13,6,8,8,10,11,8,9,9,11,11,8,9,8,12,10,10,11,11,13,13,10,11,10,14,11,10,10,10,14,13,10,11,11,14,13,10,10,11,13,13,12,14,14,16,16,12,12,13,13,15,10,11,11,13,14,10,11,11,14,15,10,11,10,13,13,13,14,13,16,16,12,13,11,15,12,9,10,10,13,13,10,11,11,14,13,10,10,11,13,14,13,14,13,16,16,13,13,13,15,16,9,10,10,13,13,10,10,11,13,14,10,11,11,15,13,13,13,14,14,18,13,13,14,16,15,9,10,10,13,14,10,11,10,14,13,10,11,11,13,14,13,14,13,16,15,13,13,14,15,16,12,13,12,16,14,11,11,13,15,15,13,14,13,16,15,15,12,16,12,17,14,15,15,17,17,12,13,13,14,16,11,13,11,16,15,12,13,14,15,16,14,15,13,0,14,14,16,16,0,0,9,10,10,13,13,10,11,10,14,14,10,11,11,13,13,12,13,13,14,16,13,14,14,16,16,9,10,10,14,14,11,11,11,14,13,10,10,11,14,14,13,13,13,16,16,13,13,14,14,17,9,10,10,13,14,10,11,11,13,15,10,11,10,14,14,13,13,13,14,17,13,14,13,17,14,12,13,13,16,14,13,14,13,16,15,12,12,13,15,16,15,15,16,18,16,15,13,15,14,0,12,12,13,14,16,13,13,14,15,16,11,12,11,16,14,15,16,16,17,17,14,15,12,17,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,8,8,5,8,7,9,9,5,7,8,9,9,9,10,9,12,12,9,9,10,12,12,6,8,8,11,10,8,10,10,11,11,8,9,10,11,11,10,11,11,14,13,10,11,11,13,13,5,8,8,10,10,8,10,10,11,11,8,10,10,11,11,10,11,11,13,13,10,11,11,13,13,9,11,11,15,14,10,12,12,15,14,10,12,11,15,14,13,14,14,16,16,12,14,13,17,15,9,11,11,14,15,10,11,12,14,16,10,11,12,14,16,12,13,14,16,16,13,13,15,15,18,5,8,8,11,11,8,10,10,12,12,8,10,10,12,13,11,12,12,14,14,11,12,12,15,15,8,10,10,13,13,10,12,12,13,13,10,12,12,14,14,12,13,13,15,15,12,13,13,16,16,7,10,10,12,12,10,12,11,13,13,10,12,12,13,14,12,13,12,15,14,12,13,13,16,16,10,12,12,17,16,12,13,13,16,15,11,13,13,17,17,15,15,15,16,17,14,15,15,19,19,10,12,12,15,16,11,13,12,15,18,11,13,13,16,16,14,15,15,17,17,14,15,15,17,19,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,16,15,11,12,12,14,15,7,10,10,13,13,10,12,12,14,13,10,11,12,13,13,12,13,13,16,16,12,12,13,15,15,8,10,10,13,13,10,12,12,14,14,10,12,12,13,13,12,13,13,16,16,12,13,13,15,15,10,12,12,16,15,11,13,13,17,16,11,12,13,16,15,13,15,15,19,17,14,15,14,17,16,10,12,12,16,16,11,13,13,16,17,12,13,13,15,17,14,15,15,17,19,14,15,15,17,17,8,11,11,16,16,10,13,12,17,17,10,12,13,16,16,15,17,16,20,19,14,15,17,18,19,9,12,12,16,17,11,13,14,17,18,11,13,13,19,18,16,17,18,19,19,15,16,16,19,19,9,12,12,16,17,11,14,13,18,17,11,13,13,17,17,16,17,16,20,19,14,16,16,18,18,12,15,15,19,17,14,15,16,0,20,13,15,16,20,17,18,16,20,0,0,15,16,19,20,0,12,15,14,18,19,13,16,15,20,19,13,16,15,20,18,17,18,17,0,20,16,17,16,0,0,8,11,11,16,15,10,12,12,17,17,10,13,13,17,16,14,16,15,18,20,15,16,16,19,19,9,12,12,16,16,11,13,13,17,16,11,13,14,17,18,15,15,16,20,20,16,16,17,19,19,9,13,12,16,17,11,14,13,17,17,11,14,14,18,17,14,16,15,18,19,16,17,18,18,19,12,14,15,19,18,13,15,16,18,0,13,14,15,0,0,16,16,17,20,0,17,17,20,20,0,12,15,15,19,20,13,15,15,0,0,14,16,15,0,0,15,18,16,0,0,17,18,16,0,19,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,6,6,5,6,6,5,7,7,7,8,8,6,8,8,5,7,7,6,8,8,7,8,8,4,7,7,7,8,8,7,8,8,7,8,8,8,9,10,8,10,10,6,8,8,8,10,8,8,10,10,5,7,7,7,8,8,7,8,8,6,8,8,8,10,10,8,8,10,6,8,8,8,10,10,8,10,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,11,11,8,10,10,5,8,8,8,11,10,8,11,11,4,8,8,8,11,11,8,11,11,8,12,11,11,13,13,11,13,14,7,11,11,10,13,12,11,13,14,4,8,8,8,11,11,8,11,12,8,11,11,11,13,13,10,12,13,8,11,11,11,14,13,11,14,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,12,13,14,13,17,12,15,17,5,5,6,10,10,11,15,16,4,3,3,7,5,7,10,16,7,7,7,10,9,11,12,16,6,5,5,9,5,6,10,16,8,7,7,9,6,7,9,16,11,7,3,6,4,5,8,16,12,9,4,8,5,7,9,16,2,0,0,0,64,0,0,0,168,133,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,120,2,0,0,0,0,0,0,0,0,0,0,0,0,0,80,120,2,0,0,0,0,0,0,0,0,0,0,0,0,0,120,120,2,0,0,0,0,0,0,0,0,0,0,0,0,0,160,120,2,0,0,0,0,0,0,0,0,0,0,0,0,0,200,120,2,0,0,0,0,0,240,120,2,0,24,121,2,0,0,0,0,0,0,0,0,0,64,121,2,0,104,121,2,0,144,121,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,232,119,2,0,0,0,0,0,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,8,13,10,17,11,11,15,7,2,4,5,8,7,9,16,13,4,3,5,6,8,11,20,10,4,5,5,7,6,8,18,15,7,6,7,8,10,14,20,10,6,7,6,9,7,8,17,9,8,10,8,10,5,4,11,12,17,19,14,16,10,7,12,4,0,0,0,81,0,0,0,64,133,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,152,133,2,0,0,0,0,0,4,0,0,0,81,0,0,0,216,132,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,48,133,2,0,0,0,0,0,4,0,0,0,113,2,0,0,72,130,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,132,2,0,0,0,0,0,4,0,0,0,113,2,0,0,184,127,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,48,130,2,0,0,0,0,0,2,0,0,0,81,0,0,0,56,127,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,144,127,2,0,0,0,0,0,2,0,0,0,169,0,0,0,80,126,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,0,127,2,0,0,0,0,0,2,0,0,0,25,0,0,0,24,126,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,56,126,2,0,0,0,0,0,4,0,0,0,113,2,0,0,136,123,2,0,1,0,0,0,0,32,21,225,0,32,245,96,3,0,0,0,0,0,0,0,0,126,2,0,0,0,0,0,2,0,0,0,169,0,0,0,160,122,2,0,1,0,0,0,0,128,211,224,0,0,122,96,4,0,0,0,0,0,0,0,80,123,2,0,0,0,0,0,2,0,0,0,169,0,0,0,184,121,2,0,1,0,0,0,0,0,88,224,0,0,16,96,4,0,0,0,0,0,0,0,104,122,2,0,0,0,0,0,2,5,4,6,6,7,7,8,8,8,8,9,8,5,5,6,7,7,8,8,8,8,9,9,9,9,5,6,5,7,7,8,8,8,8,9,9,9,9,6,7,7,8,8,8,8,9,8,9,9,9,9,6,7,7,8,7,8,8,9,9,9,9,9,9,7,8,8,8,8,9,9,9,9,9,9,9,9,7,8,8,9,8,9,8,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,9,9,10,10,8,8,9,9,9,9,9,9,9,9,10,9,10,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,10,9,9,10,10,9,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,6,6,6,6,7,7,8,8,9,9,5,7,7,8,7,7,7,9,8,10,9,10,11,5,7,7,8,8,7,7,8,9,10,10,11,11,6,8,8,9,9,9,9,11,10,12,12,15,12,6,8,8,9,9,9,9,11,11,12,11,14,12,7,8,8,10,10,12,12,13,13,13,15,13,13,7,8,8,10,10,11,11,13,12,14,15,15,15,9,10,10,11,12,13,13,14,15,14,15,14,15,8,10,10,12,12,14,14,15,14,14,15,15,14,10,12,12,14,14,15,14,15,15,15,14,15,15,10,12,12,13,14,15,14,15,15,14,15,15,15,12,15,13,15,14,15,15,15,15,15,15,15,15,13,13,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,11,11,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,5,5,4,5,5,5,5,5,6,6,6,6,5,6,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,9,11,10,14,13,4,6,5,8,8,9,9,11,10,11,11,14,14,4,5,6,8,8,9,9,10,10,11,11,14,14,6,8,8,9,9,10,10,11,11,12,12,16,15,7,8,8,9,9,10,10,11,11,12,12,15,15,9,10,10,10,10,11,11,12,12,12,12,15,15,9,10,9,10,11,11,11,12,12,12,13,15,15,10,10,11,11,11,12,12,13,12,13,13,16,15,10,11,11,11,11,12,12,13,12,13,13,16,17,11,11,12,12,12,13,13,13,14,14,15,17,17,11,11,12,12,12,13,13,13,14,14,14,16,18,14,15,15,15,15,16,16,16,16,17,18,0,0,14,15,15,15,15,17,16,17,18,17,17,18,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,6,8,8,8,8,9,9,4,6,6,8,8,8,8,9,9,7,8,8,9,9,9,9,11,10,7,8,8,9,9,9,9,10,10,7,8,8,9,9,10,10,11,11,7,8,8,9,9,10,10,11,11,9,9,9,10,10,11,11,12,12,9,9,9,10,11,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,9,9,5,6,6,9,9,5,6,6,9,9,9,10,9,12,12,9,9,10,12,12,5,7,7,10,10,7,7,8,10,10,6,7,8,10,10,10,10,10,11,13,10,9,10,12,13,5,7,7,10,10,6,8,7,10,10,7,8,7,10,10,9,10,10,12,12,10,10,10,13,11,9,10,10,13,13,10,11,10,13,13,10,10,10,13,13,12,12,13,14,14,12,12,13,14,14,9,10,10,13,13,10,10,10,13,13,10,10,10,13,13,12,13,12,15,14,12,13,12,15,15,5,7,6,10,10,7,8,8,10,10,7,8,8,10,10,10,11,10,13,13,10,10,10,12,12,7,8,8,11,10,8,8,9,10,11,8,9,9,11,11,11,10,11,11,14,11,11,11,13,13,6,8,8,10,10,7,9,8,11,10,8,9,9,11,11,10,11,10,14,11,10,11,11,13,13,10,11,11,14,13,10,10,11,14,13,10,11,11,14,14,12,11,13,12,16,13,14,14,15,15,10,10,11,13,14,10,11,10,14,13,10,11,11,14,14,12,13,12,15,13,13,13,14,15,16,5,7,7,10,10,7,8,8,10,10,7,8,8,10,10,10,10,10,13,13,10,10,11,12,13,6,8,8,11,10,8,9,9,11,11,7,8,9,10,11,10,11,11,13,13,10,10,11,11,13,6,8,8,10,11,8,9,9,11,11,8,9,8,12,10,10,11,11,13,13,10,11,10,14,11,10,10,10,14,13,10,11,11,14,13,10,10,11,13,13,12,14,14,16,16,12,12,13,13,15,10,11,11,13,14,10,11,11,14,15,10,11,10,13,13,13,14,13,16,16,12,13,11,15,12,9,10,10,13,13,10,11,11,14,13,10,10,11,13,14,13,14,13,16,16,13,13,13,15,16,9,10,10,13,13,10,10,11,13,14,10,11,11,15,13,13,13,14,14,18,13,13,14,16,15,9,10,10,13,14,10,11,10,14,13,10,11,11,13,14,13,14,13,16,15,13,13,14,15,16,12,13,12,16,14,11,11,13,15,15,13,14,13,16,15,15,12,16,12,17,14,15,15,17,17,12,13,13,14,16,11,13,11,16,15,12,13,14,15,16,14,15,13,0,14,14,16,16,0,0,9,10,10,13,13,10,11,10,14,14,10,11,11,13,13,12,13,13,14,16,13,14,14,16,16,9,10,10,14,14,11,11,11,14,13,10,10,11,14,14,13,13,13,16,16,13,13,14,14,17,9,10,10,13,14,10,11,11,13,15,10,11,10,14,14,13,13,13,14,17,13,14,13,17,14,12,13,13,16,14,13,14,13,16,15,12,12,13,15,16,15,15,16,18,16,15,13,15,14,0,12,12,13,14,16,13,13,14,15,16,11,12,11,16,14,15,16,16,17,17,14,15,12,17,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,8,8,5,8,7,9,9,5,7,8,9,9,9,10,9,12,12,9,9,10,12,12,6,8,8,11,10,8,10,10,11,11,8,9,10,11,11,10,11,11,14,13,10,11,11,13,13,5,8,8,10,10,8,10,10,11,11,8,10,10,11,11,10,11,11,13,13,10,11,11,13,13,9,11,11,15,14,10,12,12,15,14,10,12,11,15,14,13,14,14,16,16,12,14,13,17,15,9,11,11,14,15,10,11,12,14,16,10,11,12,14,16,12,13,14,16,16,13,13,15,15,18,5,8,8,11,11,8,10,10,12,12,8,10,10,12,13,11,12,12,14,14,11,12,12,15,15,8,10,10,13,13,10,12,12,13,13,10,12,12,14,14,12,13,13,15,15,12,13,13,16,16,7,10,10,12,12,10,12,11,13,13,10,12,12,13,14,12,13,12,15,14,12,13,13,16,16,10,12,12,17,16,12,13,13,16,15,11,13,13,17,17,15,15,15,16,17,14,15,15,19,19,10,12,12,15,16,11,13,12,15,18,11,13,13,16,16,14,15,15,17,17,14,15,15,17,19,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,16,15,11,12,12,14,15,7,10,10,13,13,10,12,12,14,13,10,11,12,13,13,12,13,13,16,16,12,12,13,15,15,8,10,10,13,13,10,12,12,14,14,10,12,12,13,13,12,13,13,16,16,12,13,13,15,15,10,12,12,16,15,11,13,13,17,16,11,12,13,16,15,13,15,15,19,17,14,15,14,17,16,10,12,12,16,16,11,13,13,16,17,12,13,13,15,17,14,15,15,17,19,14,15,15,17,17,8,11,11,16,16,10,13,12,17,17,10,12,13,16,16,15,17,16,20,19,14,15,17,18,19,9,12,12,16,17,11,13,14,17,18,11,13,13,19,18,16,17,18,19,19,15,16,16,19,19,9,12,12,16,17,11,14,13,18,17,11,13,13,17,17,16,17,16,20,19,14,16,16,18,18,12,15,15,19,17,14,15,16,0,20,13,15,16,20,17,18,16,20,0,0,15,16,19,20,0,12,15,14,18,19,13,16,15,20,19,13,16,15,20,18,17,18,17,0,20,16,17,16,0,0,8,11,11,16,15,10,12,12,17,17,10,13,13,17,16,14,16,15,18,20,15,16,16,19,19,9,12,12,16,16,11,13,13,17,16,11,13,14,17,18,15,15,16,20,20,16,16,17,19,19,9,13,12,16,17,11,14,13,17,17,11,14,14,18,17,14,16,15,18,19,16,17,18,18,19,12,14,15,19,18,13,15,16,18,0,13,14,15,0,0,16,16,17,20,0,17,17,20,20,0,12,15,15,19,20,13,15,15,0,0,14,16,15,0,0,15,18,16,0,0,17,18,16,0,19,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,6,6,5,6,6,5,7,7,7,8,8,6,8,8,5,7,7,6,8,8,7,8,8,4,7,7,7,8,8,7,8,8,7,8,8,8,9,10,8,10,10,6,8,8,8,10,8,8,10,10,5,7,7,7,8,8,7,8,8,6,8,8,8,10,10,8,8,10,6,8,8,8,10,10,8,10,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,11,11,8,10,10,5,8,8,8,11,10,8,11,11,4,8,8,8,11,11,8,11,11,8,12,11,11,13,13,11,13,14,7,11,11,10,13,12,11,13,14,4,8,8,8,11,11,8,11,12,8,11,11,11,13,13,10,12,13,8,11,11,11,14,13,11,14,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,12,13,14,13,17,12,15,17,5,5,6,10,10,11,15,16,4,3,3,7,5,7,10,16,7,7,7,10,9,11,12,16,6,5,5,9,5,6,10,16,8,7,7,9,6,7,9,16,11,7,3,6,4,5,8,16,12,9,4,8,5,7,9,16],"i8",O3,_.GLOBAL_BASE+155104),C3([2,0,0,0,64,0,0,0,184,148,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,135,2,0,0,0,0,0,0,0,0,0,0,0,0,0,96,135,2,0,0,0,0,0,0,0,0,0,0,0,0,0,136,135,2,0,0,0,0,0,0,0,0,0,0,0,0,0,176,135,2,0,0,0,0,0,0,0,0,0,0,0,0,0,216,135,2,0,0,0,0,0,0,136,2,0,40,136,2,0,0,0,0,0,0,0,0,0,80,136,2,0,120,136,2,0,160,136,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,248,134,2,0,0,0,0,0,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,6,12,9,14,9,9,19,6,1,5,5,8,7,9,19,12,4,4,7,7,9,11,18,9,5,6,6,8,7,8,17,14,8,7,8,8,10,12,18,9,6,8,6,8,6,8,18,9,8,11,8,11,7,5,15,16,18,18,18,17,15,11,18,4,0,0,0,81,0,0,0,80,148,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,168,148,2,0,0,0,0,0,4,0,0,0,81,0,0,0,232,147,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,64,148,2,0,0,0,0,0,4,0,0,0,113,2,0,0,88,145,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,208,147,2,0,0,0,0,0,4,0,0,0,113,2,0,0,200,142,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,145,2,0,0,0,0,0,2,0,0,0,81,0,0,0,72,142,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,160,142,2,0,0,0,0,0,2,0,0,0,169,0,0,0,96,141,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,16,142,2,0,0,0,0,0,2,0,0,0,25,0,0,0,40,141,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,72,141,2,0,0,0,0,0,4,0,0,0,113,2,0,0,152,138,2,0,1,0,0,0,0,32,21,225,0,32,245,96,3,0,0,0,0,0,0,0,16,141,2,0,0,0,0,0,2,0,0,0,169,0,0,0,176,137,2,0,1,0,0,0,0,128,211,224,0,0,122,96,4,0,0,0,0,0,0,0,96,138,2,0,0,0,0,0,2,0,0,0,169,0,0,0,200,136,2,0,1,0,0,0,0,0,88,224,0,0,16,96,4,0,0,0,0,0,0,0,120,137,2,0,0,0,0,0,3,4,4,6,6,7,7,8,8,9,9,9,8,4,5,5,6,6,8,8,9,8,9,9,9,9,4,5,5,7,6,8,8,8,8,9,8,9,8,6,7,7,7,8,8,8,9,9,9,9,9,9,6,7,7,7,7,8,8,9,9,9,9,9,9,7,8,8,8,8,9,8,9,9,10,9,9,10,7,8,8,8,8,9,9,9,9,9,9,10,10,8,9,9,9,9,9,9,9,9,10,10,9,10,8,9,9,9,9,9,9,9,9,9,9,10,10,9,9,9,10,9,9,10,9,9,10,10,10,10,9,9,9,9,9,9,9,10,9,10,10,10,10,9,9,9,10,9,9,10,10,9,10,10,10,10,9,9,9,10,9,9,9,10,10,10,10,10,10,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,6,6,6,6,9,8,9,8,8,8,5,7,7,7,7,8,8,8,10,8,10,8,9,5,7,7,8,7,7,8,10,10,11,10,12,11,7,8,8,9,9,9,10,11,11,11,11,11,11,7,8,8,8,9,9,9,10,10,10,11,11,12,7,8,8,9,9,10,11,11,12,11,12,11,11,7,8,8,9,9,10,10,11,11,11,12,12,11,8,10,10,10,10,11,11,14,11,12,12,12,13,9,10,10,10,10,12,11,14,11,14,11,12,13,10,11,11,11,11,13,11,14,14,13,13,13,14,11,11,11,12,11,12,12,12,13,14,14,13,14,12,11,12,12,12,12,13,13,13,14,13,14,14,11,12,12,14,12,13,13,12,13,13,14,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,5,3,11,11,11,11,11,11,11,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,5,5,4,5,5,6,5,5,6,5,6,6,5,6,6,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,10,10,11,11,15,15,4,5,5,8,8,9,9,11,11,12,12,16,16,4,5,6,8,8,9,9,11,11,12,12,14,14,7,8,8,9,9,10,10,11,12,13,13,16,17,7,8,8,9,9,10,10,12,12,12,13,15,15,9,10,10,10,10,11,11,12,12,13,13,15,16,9,9,9,10,10,11,11,13,12,13,13,17,17,10,11,11,11,12,12,12,13,13,14,15,0,18,10,11,11,12,12,12,13,14,13,14,14,17,16,11,12,12,13,13,14,14,14,14,15,16,17,16,11,12,12,13,13,14,14,14,14,15,15,17,17,14,15,15,16,16,16,17,17,16,0,17,0,18,14,15,15,16,16,0,15,18,18,0,16,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,8,8,9,9,4,6,5,8,7,8,8,10,9,4,6,6,8,8,8,8,10,10,7,8,7,9,9,9,9,11,10,7,8,8,9,9,9,9,10,11,8,8,8,9,9,10,10,11,11,8,8,8,9,9,10,10,11,11,9,10,10,11,10,11,11,12,12,9,10,10,10,11,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,9,9,5,6,6,10,9,5,6,6,9,10,10,10,10,12,11,9,10,10,12,12,5,7,7,10,10,7,7,8,10,11,7,7,8,10,11,10,10,11,11,13,10,10,11,11,13,6,7,7,10,10,7,8,7,11,10,7,8,7,10,10,10,11,9,13,11,10,11,10,13,11,10,10,10,14,13,10,11,11,14,13,10,10,11,13,14,12,12,13,15,15,12,12,13,13,14,10,10,10,12,13,10,11,10,13,13,10,11,11,13,13,12,13,12,14,13,12,13,13,14,13,5,7,7,10,10,7,8,8,11,10,7,8,8,10,10,11,11,11,13,13,10,11,11,12,12,7,8,8,11,11,7,8,9,10,12,8,9,9,11,11,11,10,12,11,14,11,11,12,13,13,6,8,8,10,11,7,9,7,12,10,8,9,10,11,12,10,12,10,14,11,11,12,11,13,13,10,11,11,14,14,10,10,11,13,14,11,12,12,15,13,12,11,14,12,16,12,13,14,15,16,10,10,11,13,14,10,11,10,14,12,11,12,12,13,14,12,13,11,15,12,14,14,14,15,15,5,7,7,10,10,7,8,8,10,10,7,8,8,10,11,10,11,10,12,12,10,11,11,12,13,6,8,8,11,11,8,9,9,12,11,7,7,9,10,12,11,11,11,12,13,11,10,12,11,15,7,8,8,11,11,8,9,9,11,11,7,9,8,12,10,11,12,11,13,12,11,12,10,15,11,10,11,10,14,12,11,12,11,14,13,10,10,11,13,14,13,13,13,17,15,12,11,14,12,15,10,10,11,13,14,11,12,12,14,14,10,11,10,14,13,13,14,13,16,17,12,14,11,16,12,9,10,10,14,13,10,11,10,14,14,10,11,11,13,13,13,14,14,16,15,12,13,13,14,14,9,11,10,14,13,10,10,12,13,14,11,12,11,14,13,13,14,14,14,15,13,14,14,15,15,9,10,11,13,14,10,11,10,15,13,11,11,12,12,15,13,14,12,15,14,13,13,14,14,15,12,13,12,16,14,11,11,12,15,14,13,15,13,16,14,13,12,15,12,17,15,16,15,16,16,12,12,13,13,15,11,13,11,15,14,13,13,14,15,17,13,14,12,0,13,14,15,14,15,0,9,10,10,13,13,10,11,11,13,13,10,11,11,13,13,12,13,12,14,14,13,14,14,15,17,9,10,10,13,13,11,12,11,15,12,10,10,11,13,16,13,14,13,15,14,13,13,14,15,16,10,10,11,13,14,11,11,12,13,14,10,12,11,14,14,13,13,13,14,15,13,15,13,16,15,12,13,12,15,13,12,15,13,15,15,11,11,13,14,15,15,15,15,15,17,13,12,14,13,17,12,12,14,14,15,13,13,14,14,16,11,13,11,16,15,14,16,16,17,0,14,13,11,16,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,8,8,5,8,7,9,9,5,7,8,9,9,9,10,9,12,12,9,9,10,11,12,6,8,8,10,10,8,10,10,11,11,8,9,10,11,11,10,11,11,13,13,10,11,11,12,13,6,8,8,10,10,8,10,9,11,11,8,10,10,11,11,10,11,11,13,12,10,11,11,13,12,9,11,11,15,13,10,12,11,15,13,10,11,11,15,14,12,14,13,16,15,12,13,13,17,16,9,11,11,13,15,10,11,12,14,15,10,11,12,14,15,12,13,13,15,16,12,13,13,16,16,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,14,11,12,12,14,14,8,11,10,13,12,10,11,12,12,13,10,12,12,13,13,12,12,13,13,15,11,12,13,15,14,7,10,10,12,12,9,12,11,13,12,10,12,12,13,14,12,13,12,15,13,11,13,12,14,15,10,12,12,16,14,11,12,12,16,15,11,13,12,17,16,13,13,15,15,17,13,15,15,20,17,10,12,12,14,16,11,12,12,15,15,11,13,13,15,18,13,14,13,15,15,13,15,14,16,16,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,14,11,12,12,14,15,7,10,10,13,12,10,12,12,14,13,9,10,12,12,13,11,13,13,15,15,11,12,13,13,15,8,10,10,12,13,10,12,12,13,13,10,12,11,13,13,11,13,12,15,15,12,13,12,15,13,10,12,12,16,14,11,12,12,16,15,10,12,12,16,14,14,15,14,18,16,13,13,14,15,16,10,12,12,14,16,11,13,13,16,16,11,13,12,14,16,13,15,15,18,18,13,15,13,16,14,8,11,11,16,16,10,13,13,17,16,10,12,12,16,15,14,16,15,20,17,13,14,14,17,17,9,12,12,16,16,11,13,14,16,17,11,13,13,16,16,15,15,19,18,0,14,15,15,18,18,9,12,12,17,16,11,13,12,17,16,11,12,13,15,17,15,16,15,0,19,14,15,14,19,18,12,14,14,0,16,13,14,14,19,18,13,15,16,17,16,15,15,17,18,0,14,16,16,19,0,12,14,14,16,18,13,15,13,17,18,13,15,14,17,18,15,18,14,18,18,16,17,16,0,17,8,11,11,15,15,10,12,12,16,16,10,13,13,16,16,13,15,14,17,17,14,15,17,17,18,9,12,12,16,15,11,13,13,16,16,11,12,13,17,17,14,14,15,17,17,14,15,16,0,18,9,12,12,16,17,11,13,13,16,17,11,14,13,18,17,14,16,14,17,17,15,17,17,18,18,12,14,14,0,16,13,15,15,19,0,12,13,15,0,0,14,17,16,19,0,16,15,18,18,0,12,14,14,17,0,13,14,14,17,0,13,15,14,0,18,15,16,16,0,18,15,18,15,0,17,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,6,6,5,6,6,5,7,7,7,8,8,6,7,9,5,7,7,6,8,7,7,9,8,4,7,7,7,9,8,7,8,8,7,9,8,8,8,10,9,10,10,6,8,8,7,10,8,9,10,10,5,7,7,7,8,8,7,8,9,6,8,8,9,10,10,7,8,10,6,8,9,9,10,10,8,10,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,8,7,5,7,8,5,8,8,8,10,11,8,10,11,5,8,8,8,11,10,8,11,10,4,9,9,8,11,11,8,11,11,8,12,11,10,12,14,11,13,13,7,11,11,10,13,11,11,13,14,4,8,9,8,11,11,8,11,12,7,11,11,11,14,13,10,11,13,8,11,12,11,13,13,10,14,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,12,12,14,12,14,14,14,14,12,6,6,8,9,9,11,14,12,4,2,6,6,7,11,14,13,6,5,7,8,9,11,14,13,8,5,8,6,8,12,14,12,7,7,8,8,8,10,14,12,6,3,4,4,4,7,14,11,7,4,6,6,6,8,14,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,5,0,0,0,4,0,0,0,3,0,0,0,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,224,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,64,65,0,0,72,65,0,0,80,65,0,0,88,65,0,0,96,65,0,0,104,65,0,0,112,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,3,0,0,0,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,64,65,0,0,72,65,0,0,80,65,0,0,88,65,0,0,96,65,0,0,104,65,0,0,112,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,3,0,0,0,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,64,64,0,0,128,64,0,0,128,64,0,0,160,64,0,0,160,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,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,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,128,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,192,64,0,0,0,65,0,0,0,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,192,64,0,0,192,64,0,0,192,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,32,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,64,0,0,224,64,0,0,0,65,0,0,0,65,0,0,0,65,0,0,32,65,0,0,32,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,65,0,0,0,65,0,0,32,65,0,0,32,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,65,0,0,32,65,0,0,32,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,32,65,0,0,32,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,64,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,200,47,1,0,32,161,2,0,200,47,1,0,96,161,2,0,200,47,1,0,160,161,2,0,200,47,1,0,224,161,2,0,200,47,1,0,32,162,2,0,200,47,1,0,96,162,2,0,200,47,1,0,160,162,2,0,200,47,1,0,224,162,2,0,200,47,1,0,32,163,2,0,200,47,1,0,96,163,2,0,200,47,1,0,160,163,2,0,2,0,0,0,0,0,0,0,32,0,0,0,64,171,3,0,216,86,4,0,0,87,4,0,40,87,4,0,232,87,4,0,2,0,0,0,0,0,0,0,32,0,0,0,64,171,3,0,168,88,4,0,208,88,4,0,40,87,4,0,232,87,4,0,2,0,0,0,0,0,0,0,16,0,0,0,64,171,3,0,248,5,4,0,32,6,4,0,72,6,4,0,8,7,4,0,2,0,0,0,0,0,0,0,32,0,0,0,64,171,3,0,200,7,4,0,240,7,4,0,72,6,4,0,8,7,4,0,2,0,0,0,0,0,0,0,16,0,0,0,64,171,3,0,88,182,3,0,128,182,3,0,168,182,3,0,104,183,3,0,2,0,0,0,0,0,0,0,32,0,0,0,64,171,3,0,40,184,3,0,80,184,3,0,168,182,3,0,104,183,3,0,2,0,0,0,0,0,0,0,16,0,0,0,24,73,1,0,152,128,3,0,152,128,3,0,192,128,3,0,192,128,3,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,128,129,3,0,128,129,3,0,192,128,3,0,192,128,3,0,2,0,0,0,0,0,0,0,16,0,0,0,24,73,1,0,176,85,3,0,176,85,3,0,216,85,3,0,216,85,3,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,152,86,3,0,152,86,3,0,216,85,3,0,216,85,3,0,2,0,0,0,0,0,0,0,16,0,0,0,24,73,1,0,32,42,3,0,32,42,3,0,72,42,3,0,72,42,3,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,8,43,3,0,8,43,3,0,72,42,3,0,72,42,3,0,2,0,0,0,0,0,0,0,16,0,0,0,24,73,1,0,8,254,2,0,8,254,2,0,48,254,2,0,48,254,2,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,240,254,2,0,240,254,2,0,48,254,2,0,48,254,2,0,2,0,0,0,0,0,0,0,16,0,0,0,224,163,2,0,8,235,2,0,8,235,2,0,48,235,2,0,48,235,2,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,240,235,2,0,240,235,2,0,48,235,2,0,48,235,2,0,2,0,0,0,0,0,0,0,16,0,0,0,224,163,2,0,8,216,2,0,8,216,2,0,48,216,2,0,48,216,2,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,240,216,2,0,240,216,2,0,48,216,2,0,48,216,2,0,2,0,0,0,0,0,0,0,16,0,0,0,224,163,2,0,168,195,2,0,168,195,2,0,208,195,2,0,208,195,2,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,144,196,2,0,144,196,2,0,208,195,2,0,208,195,2,0,2,0,0,0,0,0,0,0,16,0,0,0,224,163,2,0,248,174,2,0,248,174,2,0,32,175,2,0,32,175,2,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,224,175,2,0,224,175,2,0,32,175,2,0,32,175,2,0,0,0,0,0,255,255,255,255,255,255,255,255,10,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+165344),C3([1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,71,0,0,0,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,71,0,0,0,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,64,195,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,176,2,0,0,0,0,0,0,0,0,0,0,0,0,0,152,176,2,0,0,0,0,0,0,0,0,0,0,0,0,0,192,176,2,0,0,0,0,0,0,0,0,0,0,0,0,0,232,176,2,0,0,0,0,0,16,177,2,0,56,177,2,0,0,0,0,0,0,0,0,0,96,177,2,0,136,177,2,0,0,0,0,0,0,0,0,0,176,177,2,0,216,177,2,0,0,0,0,0,0,0,0,0,0,178,2,0,40,178,2,0,0,0,0,0,0,0,0,0,80,178,2,0,120,178,2,0,160,178,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,8,176,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,12,14,15,15,15,13,15,15,6,5,8,10,12,12,13,12,14,13,10,6,5,6,8,9,11,11,13,13,13,8,5,4,5,6,8,10,11,13,14,10,7,5,4,5,7,9,11,12,13,11,8,6,5,4,5,7,9,11,12,11,10,8,7,5,4,5,9,10,13,13,11,10,8,6,5,4,7,9,15,14,13,12,10,9,8,7,8,9,12,12,14,13,12,11,10,9,8,9,0,0,0,0,4,0,0,0,81,0,0,0,216,194,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,48,195,2,0,0,0,0,0,4,0,0,0,113,2,0,0,72,192,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,194,2,0,0,0,0,0,2,0,0,0,81,0,0,0,200,191,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,32,192,2,0,0,0,0,0,2,0,0,0,33,1,0,0,88,190,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,128,191,2,0,0,0,0,0,4,0,0,0,81,0,0,0,240,189,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,72,190,2,0,0,0,0,0,2,0,0,0,121,0,0,0,64,189,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,192,189,2,0,0,0,0,0,2,0,0,0,169,0,0,0,88,188,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,8,189,2,0,0,0,0,0,2,0,0,0,25,0,0,0,32,188,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,188,2,0,0,0,0,0,2,0,0,0,169,0,0,0,56,187,2,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,232,187,2,0,0,0,0,0,2,0,0,0,121,0,0,0,136,186,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,8,187,2,0,0,0,0,0,2,0,0,0,225,0,0,0,96,185,2,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,72,186,2,0,0,0,0,0,2,0,0,0,185,1,0,0,72,183,2,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,8,185,2,0,0,0,0,0,2,0,0,0,105,1,0,0,136,181,2,0,1,0,0,0,128,93,176,225,0,24,61,97,5,0,0,0,0,0,0,0,248,182,2,0,0,0,0,0,2,0,0,0,105,1,0,0,200,179,2,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,56,181,2,0,0,0,0,0,1,0,0,0,49,0,0,0,200,178,2,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,0,179,2,0,0,0,0,0,2,4,4,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,7,7,8,7,9,8,9,9,10,10,11,11,11,11,6,5,5,8,8,9,9,9,8,10,9,11,10,12,12,13,12,13,13,5,5,5,8,8,9,9,9,9,10,10,11,11,12,12,13,12,13,13,17,8,8,9,9,9,9,9,9,10,10,12,11,13,12,13,13,13,13,18,8,8,9,9,9,9,9,9,11,11,12,12,13,13,13,13,13,13,17,13,12,9,9,10,10,10,10,11,11,12,12,12,13,13,13,14,14,18,13,12,9,9,10,10,10,10,11,11,12,12,13,13,13,14,14,14,17,18,18,10,10,10,10,11,11,11,12,12,12,14,13,14,13,13,14,18,18,18,10,9,10,9,11,11,12,12,12,12,13,13,15,14,14,14,18,18,16,13,14,10,11,11,11,12,13,13,13,13,14,13,13,14,14,18,18,18,14,12,11,9,11,10,13,12,13,13,13,14,14,14,13,14,18,18,17,18,18,11,12,12,12,13,13,14,13,14,14,13,14,14,14,18,18,18,18,17,12,10,12,9,13,11,13,14,14,14,14,14,15,14,18,18,17,17,18,14,15,12,13,13,13,14,13,14,14,15,14,15,14,18,17,18,18,18,15,15,12,10,14,10,14,14,13,13,14,14,14,14,18,16,18,18,18,18,17,14,14,13,14,14,13,13,14,14,14,15,15,18,18,18,18,17,17,17,14,14,14,12,14,13,14,14,15,14,15,14,18,18,18,18,18,18,18,17,16,13,13,13,14,14,14,14,15,16,15,18,18,18,18,18,18,18,17,17,13,13,13,13,14,13,14,15,15,15,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,4,3,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,5,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,6,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,4,6,6,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,7,7,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,10,9,9,9,10,10,10,10,10,10,10,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,9,9,10,9,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,9,9,10,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,10,10,9,9,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,10,9,9,9,9,9,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,6,8,8,8,8,9,9,10,10,11,10,6,5,5,7,7,9,9,8,9,10,10,11,11,12,12,6,5,5,7,7,9,9,9,9,10,10,11,11,12,12,21,7,8,8,8,9,9,9,9,10,10,11,11,12,12,21,8,8,8,8,9,9,9,9,10,10,11,11,12,12,21,11,12,9,9,10,10,10,10,10,11,11,12,12,12,21,12,12,9,8,10,10,10,10,11,11,12,12,13,13,21,21,21,9,9,9,9,11,11,11,11,12,12,12,13,21,20,20,9,9,9,9,10,11,11,11,12,12,13,13,20,20,20,13,13,10,10,11,11,12,12,13,13,13,13,20,20,20,13,13,10,10,11,11,12,12,13,13,13,13,20,20,20,20,20,12,12,12,12,12,12,13,13,14,14,20,20,20,20,20,12,12,12,11,13,12,13,13,14,14,20,20,20,20,20,15,16,13,12,13,13,14,13,14,14,20,20,20,20,20,16,15,12,12,13,12,14,13,14,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,5,6,6,6,6,7,7,7,7,7,7,7,6,6,6,6,7,7,7,7,7,7,7,6,6,6,6,7,7,7,7,7,7,8,6,6,6,6,7,7,7,7,7,7,8,8,8,6,6,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,10,10,11,11,6,4,4,6,6,8,8,9,9,10,10,12,12,6,4,5,6,6,8,8,9,9,10,10,12,12,20,6,6,6,6,8,8,9,10,11,11,12,12,20,6,6,6,6,8,8,10,10,11,11,12,12,20,10,10,7,7,9,9,10,10,11,11,12,12,20,11,11,7,7,9,9,10,10,11,11,12,12,20,20,20,9,9,9,9,11,11,12,12,13,13,20,20,20,9,9,9,9,11,11,12,12,13,13,20,20,20,13,13,10,10,11,11,12,13,13,13,20,20,20,13,13,10,10,11,11,12,13,13,13,20,20,20,20,19,12,12,12,12,13,13,14,15,19,19,19,19,19,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,4,4,4,5,5,5,4,4,5,5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,8,8,9,9,5,4,4,6,6,8,8,9,9,9,9,10,10,6,4,4,6,6,8,8,9,9,9,9,10,10,0,6,6,7,7,8,8,9,9,10,10,11,11,0,6,6,7,7,8,8,9,9,10,10,11,11,0,10,10,8,8,9,9,10,10,11,11,12,12,0,11,11,8,8,9,9,10,10,11,11,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,4,5,5,6,6,7,7,7,7,7,7,11,5,5,6,6,7,7,7,7,8,8,11,5,5,6,6,7,7,7,7,8,8,11,5,5,6,6,7,7,8,8,8,8,11,11,11,6,6,7,7,7,8,8,8,11,11,11,6,6,7,7,7,8,8,8,11,11,11,6,6,7,7,7,7,8,8,11,11,11,7,7,7,7,7,7,8,8,11,11,11,10,10,7,7,7,7,8,8,11,11,11,11,11,7,7,7,7,7,7,11,11,11,11,11,7,7,7,7,7,7,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,6,7,7,4,7,6,9,10,10,10,10,9,4,6,7,9,10,10,10,9,10,5,9,9,9,11,11,10,11,11,7,10,9,11,12,11,12,12,12,7,9,10,11,11,12,12,12,12,6,10,10,10,12,12,10,12,11,7,10,10,11,12,12,11,12,12,7,10,10,11,12,12,12,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,10,10,0,5,4,5,5,7,7,8,8,8,8,9,9,10,10,11,11,0,5,5,6,6,7,7,8,8,8,8,9,9,10,10,11,11,0,6,5,6,6,7,7,8,8,9,9,10,10,11,11,11,12,0,0,0,6,6,7,7,8,8,9,9,10,10,11,11,12,12,0,0,0,7,7,7,7,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,7,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,8,8,9,9,10,10,11,11,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,3,4,4,5,5,6,6,8,8,0,4,4,5,5,6,7,8,8,0,4,4,5,5,7,7,8,8,0,5,5,6,6,7,7,9,9,0,0,0,6,6,7,7,9,9,0,0,0,7,7,8,8,9,9,0,0,0,7,7,8,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,0,5,5,8,8,0,5,5,8,8,0,7,7,9,9,0,0,0,9,9,6,7,7,9,8,0,8,8,9,9,0,8,7,9,9,0,9,10,10,10,0,0,0,11,10,6,7,7,8,9,0,8,8,9,9,0,7,8,9,9,0,10,9,11,10,0,0,0,10,10,8,9,8,10,10,0,10,10,12,11,0,10,10,11,11,0,12,13,13,13,0,0,0,13,12,8,8,9,10,10,0,10,10,11,12,0,10,10,11,11,0,13,12,13,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,7,10,10,0,7,7,10,9,0,7,7,10,10,0,9,9,10,10,0,0,0,10,10,6,7,8,10,10,0,7,7,9,10,0,7,7,10,10,0,9,9,10,10,0,0,0,10,10,8,9,9,11,11,0,10,10,11,11,0,10,10,11,11,0,12,12,12,12,0,0,0,12,12,8,9,10,11,11,0,9,10,11,11,0,10,10,11,11,0,12,12,12,12,0,0,0,12,12,0,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,8,7,10,10,0,7,7,10,10,0,7,7,10,9,0,9,9,10,10,0,0,0,10,10,6,7,8,10,10,0,7,7,10,10,0,7,7,9,10,0,9,9,10,10,0,0,0,10,10,8,10,9,12,11,0,10,10,12,11,0,10,9,11,11,0,11,12,12,12,0,0,0,12,12,8,9,10,11,12,0,10,10,11,11,0,9,10,11,11,0,12,11,12,12,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,9,12,12,0,9,9,12,11,0,9,9,11,11,0,10,10,12,11,0,0,0,11,12,7,9,10,12,12,0,9,9,11,12,0,9,9,11,11,0,10,10,11,12,0,0,0,11,11,9,11,10,13,12,0,10,10,12,12,0,10,10,12,12,0,11,11,12,12,0,0,0,13,12,9,10,11,12,13,0,10,10,12,12,0,10,10,12,12,0,11,12,12,12,0,0,0,12,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,11,10,13,13,0,10,10,12,12,0,10,10,12,12,0,11,12,12,12,0,0,0,12,12,9,10,11,13,13,0,10,10,12,12,0,10,10,12,12,0,12,11,13,12,0,0,0,12,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,5,5,0,5,5,6,8,8,0,9,8,0,9,8,6,8,8,0,8,9,0,8,9,0,0,0,0,0,0,0,0,0,5,8,8,0,7,7,0,8,8,5,8,8,0,7,8,0,8,8,0,0,0,0,0,0,0,0,0,5,9,8,0,8,8,0,7,7,5,8,9,0,8,8,0,7,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,13,18,16,17,17,19,18,19,19,5,7,10,11,12,12,13,16,17,18,6,6,7,7,9,9,10,14,17,19,8,7,6,5,6,7,9,12,19,17,8,7,7,6,5,6,8,11,15,19,9,8,7,6,5,5,6,8,13,15,11,10,8,8,7,5,4,4,10,14,12,13,11,9,7,6,4,2,6,12,18,16,16,13,8,7,7,5,8,13,16,17,18,15,11,9,9,8,10,13,0,0,0,0,2,0,0,0,100,0,0,0,160,215,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,197,2,0,0,0,0,0,0,0,0,0,0,0,0,0,72,197,2,0,0,0,0,0,0,0,0,0,0,0,0,0,112,197,2,0,0,0,0,0,0,0,0,0,0,0,0,0,152,197,2,0,0,0,0,0,192,197,2,0,232,197,2,0,0,0,0,0,0,0,0,0,16,198,2,0,56,198,2,0,0,0,0,0,0,0,0,0,96,198,2,0,136,198,2,0,0,0,0,0,0,0,0,0,176,198,2,0,216,198,2,0,0,0,0,0,0,0,0,0,0,199,2,0,40,199,2,0,80,199,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,184,196,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,12,13,14,14,14,13,14,14,6,4,5,8,10,10,11,11,14,13,9,5,4,5,7,8,9,10,13,13,12,7,5,4,5,6,8,9,12,13,13,9,6,5,5,5,7,9,11,14,12,10,7,6,5,4,6,7,10,11,12,11,9,8,7,5,5,6,10,10,13,12,10,9,8,6,6,5,8,10,14,13,12,12,11,10,9,7,8,10,12,13,14,14,13,12,11,9,9,10,0,0,0,0,4,0,0,0,81,0,0,0,56,215,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,144,215,2,0,0,0,0,0,4,0,0,0,113,2,0,0,168,212,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,32,215,2,0,0,0,0,0,2,0,0,0,81,0,0,0,40,212,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,128,212,2,0,0,0,0,0,2,0,0,0,33,1,0,0,184,210,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,224,211,2,0,0,0,0,0,4,0,0,0,81,0,0,0,80,210,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,168,210,2,0,0,0,0,0,2,0,0,0,121,0,0,0,160,209,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,32,210,2,0,0,0,0,0,2,0,0,0,169,0,0,0,184,208,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,104,209,2,0,0,0,0,0,2,0,0,0,25,0,0,0,128,208,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,208,2,0,0,0,0,0,2,0,0,0,169,0,0,0,152,207,2,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,72,208,2,0,0,0,0,0,2,0,0,0,121,0,0,0,232,206,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,104,207,2,0,0,0,0,0,2,0,0,0,225,0,0,0,192,205,2,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,168,206,2,0,0,0,0,0,2,0,0,0,185,1,0,0,168,203,2,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,104,205,2,0,0,0,0,0,2,0,0,0,33,1,0,0,56,202,2,0,1,0,0,0,0,24,157,225,0,24,61,97,5,0,0,0,0,0,0,0,96,203,2,0,0,0,0,0,2,0,0,0,105,1,0,0,120,200,2,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,232,201,2,0,0,0,0,0,1,0,0,0,49,0,0,0,120,199,2,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,176,199,2,0,0,0,0,0,2,4,4,4,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,6,7,7,7,7,8,8,9,9,10,10,10,10,11,11,6,6,6,8,8,9,8,8,7,10,8,11,10,12,11,12,12,13,13,5,5,6,8,8,9,9,8,8,10,9,11,11,12,12,13,13,13,13,17,8,8,9,9,9,9,9,9,10,9,12,10,12,12,13,12,13,13,17,9,8,9,9,9,9,9,9,10,10,12,12,12,12,13,13,13,13,17,13,13,9,9,10,10,10,10,11,11,12,11,13,12,13,13,14,15,17,13,13,9,8,10,9,10,10,11,11,12,12,14,13,15,13,14,15,17,17,17,9,10,9,10,11,11,12,12,12,12,13,13,14,14,15,15,17,17,17,9,8,9,8,11,11,12,12,12,12,14,13,14,14,14,15,17,17,17,12,14,9,10,11,11,12,12,14,13,13,14,15,13,15,15,17,17,17,13,11,10,8,11,9,13,12,13,13,13,13,13,14,14,14,17,17,17,17,17,11,12,11,11,13,13,14,13,15,14,13,15,16,15,17,17,17,17,17,11,11,12,8,13,12,14,13,17,14,15,14,15,14,17,17,17,17,17,15,15,12,12,12,12,13,14,14,14,15,14,17,14,17,17,17,17,17,16,17,12,12,13,12,13,13,14,14,14,14,14,14,17,17,17,17,17,17,17,14,14,13,12,13,13,15,15,14,13,15,17,17,17,17,17,17,17,17,13,14,13,13,13,13,14,15,15,15,14,15,17,17,17,17,17,17,17,16,15,13,14,13,13,14,14,15,14,14,16,17,17,17,17,17,17,17,16,16,13,14,13,13,14,14,15,14,15,14,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,4,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,7,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,4,5,5,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,6,6,7,7,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,10,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,9,9,9,9,9,9,10,10,10,10,10,10,10,9,10,10,9,10,10,10,10,9,10,9,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,9,9,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,9,9,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,10,9,10,9,9,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,6,8,8,8,7,9,8,10,10,11,10,6,5,5,7,7,9,9,8,8,10,10,11,11,12,11,6,5,5,7,7,9,9,9,9,10,10,11,11,12,12,20,8,8,8,8,9,9,9,9,10,10,11,11,12,12,20,8,8,8,8,10,9,9,9,10,10,11,11,12,12,20,12,12,9,9,10,10,10,10,10,11,12,12,12,12,20,12,12,9,9,10,10,10,10,11,11,12,12,13,13,20,20,20,9,9,9,9,11,10,11,11,12,12,12,13,20,19,19,9,9,9,9,11,11,11,12,12,12,13,13,19,19,19,13,13,10,10,11,11,12,12,13,13,13,13,19,19,19,14,13,11,10,11,11,12,12,12,13,13,13,19,19,19,19,19,12,12,12,12,13,13,13,13,14,13,19,19,19,19,19,12,12,12,11,12,12,13,14,14,14,19,19,19,19,19,16,15,13,12,13,13,13,14,14,14,19,19,19,19,19,17,17,13,12,13,11,14,13,15,15,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,4,5,6,6,6,7,7,7,7,7,7,8,6,6,6,7,7,7,7,7,7,7,8,6,6,6,6,7,7,7,7,7,7,8,6,6,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,7,9,9,10,10,12,12,6,5,5,7,7,8,8,10,10,11,11,12,12,7,5,5,7,7,8,8,10,10,11,11,12,12,21,7,7,7,7,8,9,10,10,11,11,12,12,21,7,7,7,7,9,9,10,10,12,12,13,13,21,11,11,8,8,9,9,11,11,12,12,13,13,21,11,11,8,8,9,9,11,11,12,12,13,13,21,21,21,10,10,10,10,11,11,12,13,13,13,21,21,21,10,10,10,10,11,11,13,13,14,13,21,21,21,13,13,11,11,12,12,13,13,14,14,21,21,21,14,14,11,11,12,12,13,13,14,14,21,21,21,21,20,13,13,13,12,14,14,16,15,20,20,20,20,20,13,13,13,13,14,13,15,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,4,4,5,5,5,4,4,5,5,5,4,4,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,9,9,10,10,6,5,5,7,7,8,8,9,9,10,10,11,11,6,5,5,7,7,8,8,9,9,10,10,11,11,0,7,7,7,7,9,9,10,10,10,10,11,11,0,7,7,7,7,9,9,10,10,10,10,11,11,0,11,11,9,9,10,10,11,11,11,11,12,12,0,12,12,9,9,10,10,11,11,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,5,6,6,7,7,8,8,8,8,11,4,5,6,6,7,7,8,8,8,8,11,5,5,6,6,7,7,8,8,8,9,12,5,5,6,6,7,7,8,8,9,9,12,12,12,6,6,7,7,8,8,9,9,11,11,11,6,6,7,7,8,8,8,8,11,11,11,6,6,7,7,8,8,8,8,11,11,11,7,7,7,8,8,8,8,8,11,11,11,11,11,7,7,8,8,8,8,11,11,11,11,11,7,7,7,7,8,8,11,11,11,11,11,7,7,7,7,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,6,7,7,4,7,6,10,10,10,10,10,10,4,6,6,10,10,10,10,9,10,5,10,10,9,11,11,10,11,11,7,10,10,11,12,12,12,12,12,7,10,10,11,12,12,12,12,12,6,10,10,10,12,12,10,12,12,7,10,10,11,12,12,12,12,12,7,10,10,11,12,12,12,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,7,7,8,8,8,8,9,9,10,10,11,11,0,4,4,6,6,7,7,8,8,9,8,10,10,11,11,11,11,0,4,4,6,6,7,7,8,8,9,9,10,10,11,11,11,11,0,6,5,6,6,7,7,9,9,9,9,10,10,11,11,12,12,0,0,0,6,6,7,7,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,11,12,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,11,12,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,4,4,5,5,7,7,9,9,0,4,4,6,6,7,7,9,9,0,4,4,6,6,7,7,9,9,0,5,5,6,6,8,8,10,10,0,0,0,6,6,8,8,10,10,0,0,0,7,7,9,9,10,10,0,0,0,7,7,8,8,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,0,5,5,8,8,0,5,5,8,8,0,7,7,9,9,0,0,0,9,9,5,7,7,9,9,0,8,7,10,9,0,8,7,10,9,0,10,10,11,11,0,0,0,11,11,5,7,7,9,9,0,7,8,9,10,0,7,8,9,10,0,10,10,11,11,0,0,0,11,11,8,9,9,11,10,0,11,10,12],"i8",O3,_.GLOBAL_BASE+175348),C3([11,0,11,10,12,12,0,13,13,14,14,0,0,0,14,13,8,9,9,10,11,0,10,11,12,12,0,10,11,12,12,0,13,13,14,14,0,0,0,13,14,0,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,8,7,11,10,0,7,7,10,10,0,7,7,10,10,0,9,9,10,10,0,0,0,11,10,5,7,8,10,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,10,0,0,0,10,10,8,10,9,12,12,0,10,10,12,11,0,10,10,12,12,0,12,12,13,12,0,0,0,13,12,8,9,10,12,12,0,10,10,11,12,0,10,10,11,12,0,12,12,13,13,0,0,0,12,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,7,11,10,0,7,7,10,10,0,7,7,10,10,0,9,9,10,11,0,0,0,10,10,6,7,8,10,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,10,0,0,0,10,10,9,10,9,12,12,0,10,10,12,12,0,10,10,12,11,0,12,12,13,13,0,0,0,13,12,8,9,10,12,12,0,10,10,12,12,0,10,10,11,12,0,12,12,13,13,0,0,0,12,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,13,13,0,9,9,12,12,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,7,10,10,13,13,0,9,9,12,12,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,9,11,11,14,13,0,10,10,13,12,0,11,10,13,12,0,12,12,13,12,0,0,0,13,13,9,11,11,13,14,0,10,11,12,13,0,10,11,13,13,0,12,12,12,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,11,11,14,14,0,10,11,13,13,0,11,10,13,13,0,11,12,13,13,0,0,0,13,12,9,11,11,14,14,0,11,10,13,13,0,10,11,13,13,0,12,12,13,13,0,0,0,12,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,5,5,0,5,5,5,7,7,0,9,8,0,9,8,6,7,7,0,8,9,0,8,9,0,0,0,0,0,0,0,0,0,5,9,8,0,8,8,0,8,8,5,8,9,0,8,8,0,8,8,0,0,0,0,0,0,0,0,0,5,9,8,0,8,8,0,8,8,5,8,9,0,8,8,0,8,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,11,13,14,15,15,18,17,19,17,5,6,8,9,10,10,12,15,19,19,6,6,6,6,8,8,11,14,18,19,8,6,5,4,6,7,10,13,16,17,9,7,6,5,6,7,9,12,15,19,10,8,7,6,6,6,7,9,13,15,12,10,9,8,7,6,4,5,10,15,13,13,11,8,6,6,4,2,7,12,17,15,16,10,8,8,7,6,9,12,19,18,17,13,11,10,10,9,11,14,0,0,0,0,2,0,0,0,100,0,0,0,160,234,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,217,2,0,0,0,0,0,0,0,0,0,0,0,0,0,168,217,2,0,0,0,0,0,0,0,0,0,0,0,0,0,208,217,2,0,0,0,0,0,0,0,0,0,0,0,0,0,248,217,2,0,0,0,0,0,32,218,2,0,72,218,2,0,0,0,0,0,0,0,0,0,112,218,2,0,152,218,2,0,0,0,0,0,0,0,0,0,192,218,2,0,232,218,2,0,0,0,0,0,0,0,0,0,16,219,2,0,56,219,2,0,0,0,0,0,0,0,0,0,96,219,2,0,136,219,2,0,176,219,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,24,217,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,11,13,15,14,14,13,15,14,6,4,5,7,9,10,11,11,14,13,10,4,3,5,7,8,9,10,13,13,12,7,4,4,5,6,8,9,12,14,13,9,6,5,5,6,8,9,12,14,12,9,7,6,5,5,6,8,11,11,12,11,9,8,7,6,6,7,10,11,13,11,10,9,8,7,6,6,9,11,13,13,12,12,12,10,9,8,9,11,12,14,15,15,14,12,11,10,10,12,0,0,0,0,4,0,0,0,81,0,0,0,56,234,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,144,234,2,0,0,0,0,0,4,0,0,0,113,2,0,0,168,231,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,32,234,2,0,0,0,0,0,2,0,0,0,81,0,0,0,40,231,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,128,231,2,0,0,0,0,0,2,0,0,0,33,1,0,0,184,229,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,224,230,2,0,0,0,0,0,4,0,0,0,81,0,0,0,80,229,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,168,229,2,0,0,0,0,0,2,0,0,0,121,0,0,0,160,228,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,32,229,2,0,0,0,0,0,2,0,0,0,169,0,0,0,184,227,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,104,228,2,0,0,0,0,0,2,0,0,0,25,0,0,0,128,227,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,227,2,0,0,0,0,0,2,0,0,0,169,0,0,0,152,226,2,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,72,227,2,0,0,0,0,0,2,0,0,0,121,0,0,0,232,225,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,104,226,2,0,0,0,0,0,2,0,0,0,225,0,0,0,192,224,2,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,168,225,2,0,0,0,0,0,2,0,0,0,185,1,0,0,168,222,2,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,104,224,2,0,0,0,0,0,2,0,0,0,169,0,0,0,192,221,2,0,1,0,0,0,0,220,125,225,0,232,51,97,4,0,0,0,0,0,0,0,112,222,2,0,0,0,0,0,2,0,0,0,169,0,0,0,216,220,2,0,1,0,0,0,0,96,18,225,0,128,184,96,4,0,0,0,0,0,0,0,136,221,2,0,0,0,0,0,1,0,0,0,49,0,0,0,216,219,2,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,16,220,2,0,0,0,0,0,2,4,3,4,5,5,5,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,7,7,7,6,8,8,8,8,6,6,6,8,8,9,8,8,7,9,8,11,10,5,6,6,8,8,9,8,8,8,10,9,11,11,16,8,8,9,8,9,9,9,8,10,9,11,10,16,8,8,9,9,10,10,9,9,10,10,11,11,16,13,13,9,9,10,10,9,10,11,11,12,11,16,13,13,9,8,10,9,10,10,10,10,11,11,16,14,16,8,9,9,9,11,10,11,11,12,11,16,16,16,9,7,10,7,11,10,11,11,12,11,16,16,16,12,12,9,10,11,11,12,11,12,12,16,16,16,12,10,10,7,11,8,12,11,12,12,16,16,15,16,16,11,12,10,10,12,11,12,12,16,16,16,15,15,11,11,10,10,12,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,11,11,11,11,11,11,11,11,11,11,4,6,6,11,11,11,11,11,11,11,11,11,11,4,7,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,5,7,6,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,11,10,10,10,9,9,9,9,9,9,9,9,9,9,10,9,9,10,9,9,10,11,10,11,10,9,9,9,9,9,9,9,10,10,10,9,10,9,9,9,9,11,10,11,10,10,9,9,9,9,9,9,10,9,9,10,9,9,10,9,9,10,11,10,10,11,10,9,9,9,9,9,10,10,9,10,10,10,10,9,10,10,10,10,10,10,11,11,11,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,9,10,11,11,10,11,10,11,10,9,10,10,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,10,11,11,10,10,10,10,10,10,9,10,9,10,10,9,10,9,10,10,10,11,10,11,10,11,11,10,10,10,10,10,10,9,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,10,11,11,10,10,10,10,9,9,10,10,9,9,10,9,10,10,10,10,11,11,10,10,10,10,10,10,10,9,9,10,10,10,9,9,10,10,10,10,10,11,10,11,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,7,9,8,9,9,10,10,6,5,5,7,7,9,9,8,8,10,9,11,10,12,11,6,5,5,8,7,9,9,8,8,10,10,11,11,12,11,19,8,8,8,8,10,10,9,9,10,10,11,11,12,11,19,8,8,8,8,10,10,9,9,10,10,11,11,12,12,19,12,12,9,9,10,10,9,10,10,10,11,11,12,12,19,12,12,9,9,10,10,10,10,10,10,12,12,12,12,19,19,19,9,9,9,9,11,10,11,11,12,11,13,13,19,19,19,9,9,9,9,11,10,11,11,11,12,13,13,19,19,19,13,13,10,10,11,11,12,12,12,12,13,12,19,19,19,14,13,10,10,11,11,12,12,12,13,13,13,19,19,19,19,19,12,12,12,11,12,13,14,13,13,13,19,19,19,19,19,12,12,12,11,12,12,13,14,13,14,19,19,19,19,19,16,16,12,13,12,13,13,14,15,14,19,18,18,18,18,16,15,12,11,12,11,14,12,14,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,4,5,5,6,6,7,7,7,7,7,7,8,6,6,7,7,7,7,7,7,7,7,8,6,6,6,7,7,7,7,7,7,7,8,6,6,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,8,8,8,8,8,7,7,7,7,7,7,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,7,8,9,9,10,10,12,11,6,5,5,7,7,8,8,9,10,11,11,12,12,7,5,5,7,7,8,8,10,10,11,11,12,12,20,7,7,7,7,8,9,10,10,11,11,12,13,20,7,7,7,7,9,9,10,10,11,12,13,13,20,11,11,8,8,9,9,11,11,12,12,13,13,20,11,11,8,8,9,9,11,11,12,12,13,13,20,20,20,10,10,10,10,12,12,13,13,13,13,20,20,20,10,10,10,10,12,12,13,13,13,14,20,20,20,14,14,11,11,12,12,13,13,14,14,20,20,20,14,14,11,11,12,12,13,13,14,14,20,20,20,20,19,13,13,13,13,14,14,15,14,19,19,19,19,19,13,13,13,13,14,14,15,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,4,4,5,5,5,4,4,5,5,5,4,4,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,7,9,8,10,10,6,5,5,7,7,8,8,9,9,9,10,11,11,7,5,5,7,7,8,8,9,9,10,10,11,11,0,7,7,7,7,9,8,9,9,10,10,11,11,0,8,8,7,7,8,9,9,9,10,10,11,11,0,11,11,9,9,10,10,11,10,11,11,12,12,0,12,12,9,9,10,10,11,11,11,11,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,5,6,6,7,7,8,8,8,8,11,4,4,6,6,7,7,8,8,9,9,11,4,4,6,6,7,7,8,8,9,9,12,5,5,6,6,7,7,9,9,9,9,12,12,12,6,6,7,7,9,9,9,9,11,11,11,7,7,7,7,8,8,9,9,11,11,11,7,7,7,7,8,8,9,9,11,11,11,7,7,8,8,8,8,9,9,11,11,11,11,11,8,8,8,8,8,9,11,11,11,11,11,8,8,8,8,8,8,11,11,11,11,11,7,7,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,6,7,7,4,6,7,10,10,10,10,10,9,4,6,6,10,10,10,10,9,10,5,10,10,9,11,12,10,11,12,7,10,10,11,12,12,12,12,12,7,10,10,11,12,12,12,12,12,6,10,10,10,12,12,11,12,12,7,10,10,12,12,12,12,11,12,7,10,10,11,12,12,12,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,7,7,8,8,8,8,9,9,10,10,11,11,0,4,4,6,6,7,7,8,8,9,9,10,10,11,11,12,12,0,4,4,6,6,7,7,8,8,9,9,10,10,11,11,12,12,0,5,5,6,6,8,8,9,9,9,9,10,10,11,12,12,12,0,0,0,6,6,8,7,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,13,12,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,12,13,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,4,4,5,5,7,7,9,9,0,4,4,6,6,7,7,9,9,0,4,4,6,6,7,7,9,9,0,5,5,6,6,8,8,10,10,0,0,0,6,6,8,8,10,10,0,0,0,7,7,9,9,10,10,0,0,0,7,7,8,8,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,0,5,5,8,8,0,5,5,8,8,0,7,7,9,9,0,0,0,9,9,5,7,7,9,9,0,8,8,10,10,0,8,7,10,9,0,10,10,11,11,0,0,0,11,11,5,7,7,9,9,0,8,8,10,10,0,7,8,9,10,0,10,10,11,11,0,0,0,11,11,8,9,9,11,10,0,11,11,12,12,0,11,10,12,12,0,13,14,14,14,0,0,0,14,13,8,9,9,10,11,0,11,11,12,12,0,10,11,12,12,0,13,13,14,14,0,0,0,13,14,0,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,8,7,11,10,0,7,7,10,10,0,7,7,10,10,0,9,9,11,10,0,0,0,11,11,5,7,8,10,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,11,0,0,0,11,11,8,10,9,12,12,0,10,10,12,12,0,10,10,12,12,0,12,12,13,13,0,0,0,13,13,8,9,10,12,12,0,10,10,12,12,0,10,10,11,12,0,12,12,13,13,0,0,0,13,13,0,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,8,8,11,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,11,0,0,0,11,10,5,8,8,10,11,0,7,7,10,10,0,7,7,10,10,0,9,9,11,10,0,0,0,10,11,9,10,10,12,12,0,10,10,12,12,0,10,10,12,12,0,12,13,13,13,0,0,0,13,12,9,10,10,12,12,0,10,10,12,12,0,10,10,12,12,0,13,12,13,13,0,0,0,12,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,14,13,0,9,9,12,12,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,7,10,10,13,14,0,9,9,12,13,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,9,11,11,14,13,0,11,10,13,12,0,11,11,13,13,0,12,12,13,13,0,0,0,13,13,9,11,11,13,14,0,10,11,12,13,0,11,11,13,13,0,12,12,13,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,11,11,14,14,0,10,11,13,13,0,11,10,13,13,0,12,12,13,13,0,0,0,13,12,9,11,11,14,14,0,11,10,13,13,0,10,11,13,13,0,12,12,14,13,0,0,0,13,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,5,5,0,5,5,5,8,7,0,9,9,0,9,8,5,7,8,0,9,9,0,8,9,0,0,0,0,0,0,0,0,0,5,9,9,0,8,8,0,8,8,5,8,9,0,8,8,0,8,8,0,0,0,0,0,0,0,0,0,5,9,9,0,8,8,0,8,8,5,8,9,0,8,8,0,8,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,11,12,14,15,15,17,17,18,18,5,6,6,8,9,10,13,17,18,19,7,5,4,6,8,9,11,15,19,19,8,6,5,5,6,7,11,14,16,17,9,7,7,6,7,7,10,13,15,19,10,8,7,6,7,6,7,9,14,16,12,10,9,7,7,6,4,5,10,15,14,13,11,7,6,6,4,2,7,13,16,16,15,9,8,8,8,6,9,13,19,19,17,12,11,10,10,9,11,14,0,0,0,0,2,0,0,0,100,0,0,0,160,253,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,236,2,0,0,0,0,0,0,0,0,0,0,0,0,0,168,236,2,0,0,0,0,0,0,0,0,0,0,0,0,0,208,236,2,0,0,0,0,0,0,0,0,0,0,0,0,0,248,236,2,0,0,0,0,0,32,237,2,0,72,237,2,0,0,0,0,0,0,0,0,0,112,237,2,0,152,237,2,0,0,0,0,0,0,0,0,0,192,237,2,0,232,237,2,0,0,0,0,0,0,0,0,0,16,238,2,0,56,238,2,0,0,0,0,0,0,0,0,0,96,238,2,0,136,238,2,0,176,238,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,24,236,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,11,13,14,14,13,13,16,14,6,3,4,7,9,9,10,11,14,13,10,4,3,5,7,7,9,10,13,15,12,7,4,4,6,6,8,10,13,15,12,8,6,6,6,6,8,10,13,14,11,9,7,6,6,6,7,8,12,11,13,10,9,8,7,6,6,7,11,11,13,11,10,9,9,7,7,6,10,11,13,13,13,13,13,11,9,8,10,12,12,15,15,16,15,12,11,10,10,12,0,0,0,0,4,0,0,0,81,0,0,0,56,253,2,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,144,253,2,0,0,0,0,0,4,0,0,0,113,2,0,0,168,250,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,32,253,2,0,0,0,0,0,2,0,0,0,81,0,0,0,40,250,2,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,128,250,2,0,0,0,0,0,2,0,0,0,33,1,0,0,184,248,2,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,224,249,2,0,0,0,0,0,4,0,0,0,81,0,0,0,80,248,2,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,168,248,2,0,0,0,0,0,2,0,0,0,121,0,0,0,160,247,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,32,248,2,0,0,0,0,0,2,0,0,0,169,0,0,0,184,246,2,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,104,247,2,0,0,0,0,0,2,0,0,0,25,0,0,0,128,246,2,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,246,2,0,0,0,0,0,2,0,0,0,169,0,0,0,152,245,2,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,72,246,2,0,0,0,0,0,2,0,0,0,121,0,0,0,232,244,2,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,104,245,2,0,0,0,0,0,2,0,0,0,225,0,0,0,192,243,2,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,168,244,2,0,0,0,0,0,2,0,0,0,185,1,0,0,168,241,2,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,104,243,2,0,0,0,0,0,2,0,0,0,169,0,0,0,192,240,2,0,1,0,0,0,0,220,125,225,0,232,51,97,4,0,0,0,0,0,0,0,112,241,2,0,0,0,0,0,2,0,0,0,169,0,0,0,216,239,2,0,1,0,0,0,0,96,18,225,0,128,184,96,4,0,0,0,0,0,0,0,136,240,2,0,0,0,0,0,1,0,0,0,49,0,0,0,216,238,2,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,16,239,2,0,0,0,0,0,2,4,3,4,5,5,5,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,7,7,7,6,8,8,8,8,6,6,6,8,8,8,8,8,7,9,8,10,10,5,6,6,8,8,9,9,8,8,10,10,10,10,16,9,9,9,9,9,9,9,8,10,9,11,11,16,8,9,9,9,9,9,9,9,10,10,11,11,16,13,13,9,9,10,9,9,10,11,11,11,12,16,13,14,9,8,10,8,9,9,10,10,12,11,16,14,16,9,9,9,9,11,11,12,11,12,11,16,16,16,9,7,9,6,11,11,11,10,11,11,16,16,16,11,12,9,10,11,11,12,11,13,13,16,16,16,12,11,10,7,12,10,12,12,12,12,16,16,15,16,16,10,11,10,11,13,13,14,12,16,16,16,15,15,12,10,11,11,13,11,12,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,11,11,11,11,11,11,11,11,11,11,4,7,7,11,11,11,11,11,11,11,11,11,11,5,8,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,5,6,6,7,7,7,7,8,7,8,8,8,8,8,8,8,8,8,8,10,6,6,7,7,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,10,6,6,7,7,8,8,8,8,8,8,9,8,9,9,9,9,9,9,9,9,10,7,7,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,10,11,11,8,7,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,9,11,11,11,11,11,9,9,9,9,9,9,10,9,9,10,9,10,9,9,10,9,11,11,11,11,11,9,9,9,9,9,9,9,10,10,10,10,9,10,10,9,10,11,11,11,11,11,9,9,9,9,10,10,10,9,10,10,10,10,9,10,10,9,11,11,11,11,11,11,11,9,9,9,9,10,10,10,10,9,10,10,10,10,10,11,11,11,11,11,11,11,10,9,10,10,10,10,10,10,10,9,10,9,10,10,11,11,11,11,11,11,11,10,9,10,9,10,10,9,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,9,10,10,10,10,10,9,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,9,10,10,11,11,11,11,11,11,11,11,11,10,10,10,9,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,10,11,9,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,7,8,8,7,7,8,7,9,8,10,9,6,5,5,8,8,9,9,8,8,9,9,11,10,11,10,6,5,5,8,8,9,9,8,8,9,9,10,10,11,11,18,8,8,9,8,10,10,9,9,10,10,10,10,11,10,18,8,8,9,9,10,10,9,9,10,10,11,11,12,12,18,12,13,9,10,10,10,9,10,10,10,11,11,12,11,18,13,13,9,9,10,10,10,10,10,10,11,11,12,12,18,18,18,10,10,9,9,11,11,11,11,11,12,12,12,18,18,18,10,9,10,9,11,10,11,11,11,11,13,12,18,18,18,14,13,10,10,11,11,12,12,12,12,12,12,18,18,18,14,13,10,10,11,10,12,12,12,12,12,12,18,18,18,18,18,12,12,11,11,12,12,13,13,13,14,18,18,18,18,18,12,12,11,11,12,11,13,13,14,13,18,18,18,18,18,16,16,11,12,12,13,13,13,14,13,18,18,18,18,18,16,15,12,11,12,11,13,11,15,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,3,5,5,6,6,7,7,7,7,7,7,9,5,5,6,6,7,7,7,7,8,7,8,5,5,6,6,7,7,7,7,7,7,9,6,6,7,7,7,7,8,7,7,8,9,9,9,7,7,7,7,7,7,7,8,9,9,9,7,7,7,7,8,8,8,8,9,9,9,7,7,7,7,7,7,8,8,9,9,9,8,8,8,8,7,7,8,8,9,9,9,9,8,8,8,7,7,8,8,9,9,9,8,8,8,8,7,7,8,8,9,9,9,8,8,7,7,7,7,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,8,8,8,8,10,10,11,10,6,5,5,7,7,8,8,9,9,10,10,12,11,6,5,5,7,7,8,8,9,9,10,10,12,11,21,7,7,7,7,9,9,10,10,11,11,12,12,21,7,7,7,7,9,9,10,10,11,11,12,12,21,12,12,9,9,10,10,11,11,11,11,12,12,21,12,12,9,9,10,10,11,11,12,12,12,12,21,21,21,11,11,10,10,11,12,12,12,13,13,21,21,21,11,11,10,10,12,12,12,12,13,13,21,21,21,15,15,11,11,12,12,13,13,13,13,21,21,21,15,16,11,11,12,12,13,13,14,14,21,21,21,21,20,13,13,13,13,13,13,14,14,20,20,20,20,20,13,13,13,13,13,13,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,4,4,5,5,5,4,4,5,5,5,4,4,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,8,8,8,10,9,10,10,6,5,5,7,7,9,9,9,9,10,10,11,11,6,5,5,7,7,9,9,10,9,11,10,11,11,0,6,6,7,7,9,9,10,10,11,11,12,12,0,7,7,7,7,9,9,10,10,11,11,12,12,0,11,11,8,8,10,10,11,11,12,12,12,12,0,11,12,9,8,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,5,4,6,6,7,7,8,8,8,8,11,4,4,6,6,7,7,8,8,8,8,11,4,4,6,6,7,7,8,8,8,8,11,6,6,6,6,8,8,8,8,9,9,11,11,11,6,6,7,8,8,8,8,9,11,11,11,7,7,8,8,8,8,8,8,11,11,11,7,7,8,8,8,8,8,8,11,11,11,8,8,8,8,8,8,8,8,11,11,11,10,10,8,8,8,8,8,8,11,11,11,10,10,8,8,8,8,8,8,11,11,11,10,10,7,7,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,6,7,7,4,6,6,9,9,10,10,10,9,4,6,6,9,10,9,10,9,10,6,9,9,10,12,11,10,11,11,7,10,9,11,12,12,12,12,12,7,10,10,11,12,12,12,12,12,6,10,10,10,12,12,11,12,12,7,9,10,11,12,12,12,12,12,7,10,9,12,12,12,12,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,9,9,9,10,10,10,0,4,4,6,6,8,8,9,9,9,9,10,10,10,10,11,11,0,4,4,6,6,8,8,9,9,9,9,10,10,10,10,11,11,0,6,6,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,7,7,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,12,12,12,12,0,0,0,0,0,8,8,9,9,10,10,11,11,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,3,4,6,6,7,7,9,9,0,4,4,6,6,7,7,9,10,0,4,4,6,6,7,7,10,9,0,5,5,7,7,8,8,10,10,0,0,0,7,6,8,8,10,10,0,0,0,7,7,9,9,11,11,0,0,0,7,7,9,9,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,0,5,5,8,8,0,5,5,8,8,0,7,7,9,9,0,0,0,9,9,5,7,7,9,9,0,8,8,10,10,0,8,7,10,9,0,10,10,11,11,0,0,0,11,11,5,7,7,9,9,0,8,8,10,10,0,7,8,9,10,0,10,10,11,11,0,0,0,11,11,8,9,9,11,11,0,11,11,12,12,0,11,10,12,12,0,13,14,14,14,0,0,0,14,13,8,9,9,11,11,0,11,11,12,12,0,10,11,12,12,0,14,13,14,14,0,0,0,13,14,0,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,8,7,11,10,0,7,7,10,10,0,7,7,10,10,0,9,9,11,10,0,0,0,11,11,5,7,8,10,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,11,0,0,0,11,11,8,10,9,12,12,0,10,10,12,12,0,10,10,12,12,0,12,12,13,13,0,0,0,13,13,8,9,10,12,12,0,10,10,11,12,0,10,10,12,12,0,12,12,13,13,0,0,0,13,13,0,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,8,8,11,11,0,7,7,10,10,0,7,7,10,10,0,9,9,10,11,0,0,0,11,10,5,8,8,11,11,0,7,7,10,10,0,7,7,10,10,0,9,9,11,11,0,0,0,10,11,8,10,10,12,12,0,10,10,12,12,0,10,10,12,12,0,12,13,13,13,0,0,0,14,13,8,10,10,12,12,0,10,10,12,12,0,10,10,12,12,0,13,12,13,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,14,13,0,9,9,13,12,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,7,10,10,13,14,0,9,9,12,13,0,9,9,12,12,0,10,10,12,12,0,0,0,12,12,9,11,11,14,13,0,11,10,14,13,0,11,11,13,13,0,12,12,13,13,0,0,0,13,13,9,11,11,13,14,0,10,11,13,14,0,11,11,13,13,0,12,12,13,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,11,11,14,14,0,11,11,13,13,0,11,10,13,13,0,12,12,13,13],"i8",O3,_.GLOBAL_BASE+185588),C3([13,13,9,11,11,14,14,0,11,11,13,13,0,10,11,13,13,0,12,12,14,13,0,0,0,13,13,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,5,5,0,5,5,5,8,7,0,9,9,0,9,8,5,7,8,0,9,9,0,8,9,0,0,0,0,0,0,0,0,0,5,9,8,0,8,8,0,8,8,5,8,9,0,8,8,0,8,8,0,0,0,0,0,0,0,0,0,5,9,9,0,8,8,0,8,8,5,9,9,0,8,8,0,8,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,9,11,11,13,14,19,17,17,19,5,4,5,8,10,10,13,16,18,19,7,4,4,5,8,9,12,14,17,19,8,6,5,5,7,7,10,13,16,18,10,8,7,6,5,5,8,11,17,19,11,9,7,7,5,4,5,8,17,19,13,11,8,7,7,5,5,7,16,18,14,13,8,6,6,5,5,7,16,18,18,16,10,8,8,7,7,9,16,18,18,18,12,10,10,9,9,10,17,18,0,0,0,0,2,0,0,0,100,0,0,0,184,41,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,168,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,208,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,248,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,72,0,3,0,0,0,0,0,112,0,3,0,152,0,3,0,0,0,0,0,0,0,0,0,192,0,3,0,232,0,3,0,0,0,0,0,0,0,0,0,16,1,3,0,56,1,3,0,96,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,24,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,9,13,10,12,12,12,12,12,6,4,6,8,6,8,10,10,11,12,8,5,4,10,4,7,8,9,10,11,13,8,10,8,9,9,11,12,13,14,10,6,4,9,3,5,6,8,10,11,11,8,6,9,5,5,6,7,9,11,12,9,7,11,6,6,6,7,8,10,12,11,9,12,7,7,6,6,7,9,13,12,10,13,9,8,7,7,7,8,11,15,11,15,11,10,9,8,7,7,0,0,0,0,8,0,0,0,161,25,0,0,0,16,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,168,41,3,0,0,0,0,0,4,0,0,0,113,2,0,0,112,13,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,15,3,0,0,0,0,0,4,0,0,0,113,2,0,0,224,10,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,13,3,0,0,0,0,0,2,0,0,0,81,0,0,0,96,10,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,184,10,3,0,0,0,0,0,2,0,0,0,81,0,0,0,224,9,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,56,10,3,0,0,0,0,0,2,0,0,0,33,1,0,0,112,8,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,152,9,3,0,0,0,0,0,4,0,0,0,81,0,0,0,8,8,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,96,8,3,0,0,0,0,0,2,0,0,0,121,0,0,0,88,7,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,216,7,3,0,0,0,0,0,2,0,0,0,169,0,0,0,112,6,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,32,7,3,0,0,0,0,0,2,0,0,0,25,0,0,0,56,6,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,6,3,0,0,0,0,0,2,0,0,0,225,0,0,0,16,5,3,0,1,0,0,0,0,134,115,225,0,80,22,97,4,0,0,0,0,0,0,0,248,5,3,0,0,0,0,0,2,0,0,0,33,1,0,0,160,3,3,0,1,0,0,0,0,0,245,224,0,0,149,96,5,0,0,0,0,0,0,0,200,4,3,0,0,0,0,0,2,0,0,0,185,1,0,0,136,1,3,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,72,3,3,0,0,0,0,0,3,5,5,6,6,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,9,11,5,6,7,7,8,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,11,5,5,7,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,11,7,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,10,9,10,11,11,11,7,7,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,11,11,11,8,8,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,11,11,11,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,10,9,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,5,5,7,7,9,8,10,9,10,10,11,10,11,11,6,5,5,7,7,8,9,10,10,11,10,12,11,12,11,13,12,6,5,5,7,7,9,9,10,10,11,11,12,12,13,12,13,13,18,8,8,8,8,9,9,10,11,11,11,12,11,13,11,13,12,18,8,8,8,8,10,10,11,11,12,12,13,13,13,13,13,14,18,12,12,9,9,11,11,11,11,12,12,13,12,13,12,13,13,20,13,12,9,9,11,11,11,11,12,12,13,13,13,14,14,13,20,18,19,11,12,11,11,12,12,13,13,13,13,13,13,14,13,18,19,19,12,11,11,11,12,12,13,12,13,13,13,14,14,13,18,17,19,14,15,12,12,12,13,13,13,14,14,14,14,14,14,19,19,19,16,15,12,11,13,12,14,14,14,13,13,14,14,14,19,18,19,18,19,13,13,13,13,14,14,14,13,14,14,14,14,18,17,19,19,19,13,13,13,11,13,11,13,14,14,14,14,14,19,17,17,18,18,16,16,13,13,13,13,14,13,15,15,14,14,19,19,17,17,18,16,16,13,11,14,10,13,12,14,14,14,14,19,19,19,19,19,18,17,13,14,13,11,14,13,14,14,15,15,19,19,19,17,19,18,18,14,13,12,11,14,11,15,15,15,15,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,13,13,13,13,13,13,13,13,13,13,13,13,4,7,7,13,13,13,13,13,13,13,13,13,13,13,13,3,8,6,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,2,4,4,5,5,6,5,5,5,5,6,4,5,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,9,9,10,10,6,5,5,7,7,8,8,8,9,10,10,10,10,7,5,5,7,7,8,8,9,9,10,10,10,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,10,10,10,10,10,11,11,0,13,13,9,9,9,9,10,10,11,11,11,11,0,0,0,10,10,10,10,10,10,11,11,11,11,0,0,0,10,10,10,10,10,10,11,11,12,12,0,0,0,14,14,11,11,11,11,12,12,12,12,0,0,0,14,14,11,11,11,11,12,12,12,12,0,0,0,0,0,12,12,12,12,12,12,13,13,0,0,0,0,0,12,12,12,12,12,12,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,6,6,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,9,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,7,10,10,11,11,10,11,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,7,11,11,12,11,11,12,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,4,4,6,6,8,8,9,9,9,9,10,10,10,10,11,11,0,4,4,6,6,8,8,9,9,9,9,10,10,11,11,12,12,0,4,4,6,6,8,8,9,9,9,9,10,10,11,11,12,12,0,6,6,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,7,7,8,9,10,10,10,10,11,11,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,9,10,10,10,11,11,12,12,12,12,0,0,0,0,0,10,10,10,10,11,11,11,12,12,12,13,13,0,0,0,0,0,0,0,10,10,11,11,11,11,12,12,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,12,13,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,12,12,12,12,13,12,13,13,13,13,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,4,3,6,6,7,7,9,9,0,4,4,6,6,7,7,9,9,0,4,4,6,6,7,7,9,9,0,6,6,7,7,7,7,9,9,0,0,0,7,6,7,7,9,9,0,0,0,8,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,9,9,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,5,5,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,7,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,3,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,6,6,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,5,5,0,0,0,5,5,0,0,0,8,7,0,0,0,0,0,0,0,4,6,6,0,0,0,8,8,0,0,0,8,7,0,0,0,10,10,0,0,0,0,0,0,0,4,6,6,0,0,0,8,8,0,0,0,7,8,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,8,8,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,5,7,8,0,0,0,8,8,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,8,8,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,5,8,8,0,0,0,8,8,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,10,10,0,0,0,10,10,0,0,0,9,10,0,0,0,11,10,0,0,0,0,0,0,0,8,10,10,0,0,0,10,10,0,0,0,10,10,0,0,0,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,4,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,11,10],"i8",O3,_.GLOBAL_BASE+195830),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,8,10,14,11,11,12,16,15,17,5,5,7,9,7,8,10,13,17,17,7,5,5,10,5,7,8,11,13,15,10,8,10,8,8,8,11,15,18,18,8,5,5,8,3,4,6,10,14,16,9,7,6,7,4,3,5,9,14,18,10,9,8,10,6,5,6,9,14,18,12,12,11,12,8,7,8,11,14,18,14,13,12,10,7,5,6,9,14,18,14,14,13,10,6,5,6,8,11,16,0,0,0,0,2,0,0,0,100,0,0,0,72,85,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,43,3,0,0,0,0,0,0,0,0,0,0,0,0,0,192,43,3,0,0,0,0,0,0,0,0,0,0,0,0,0,232,43,3,0,0,0,0,0,0,0,0,0,0,0,0,0,16,44,3,0,0,0,0,0,0,0,0,0,0,0,0,0,56,44,3,0,0,0,0,0,0,0,0,0,0,0,0,0,96,44,3,0,0,0,0,0,136,44,3,0,176,44,3,0,0,0,0,0,0,0,0,0,216,44,3,0,0,45,3,0,0,0,0,0,0,0,0,0,40,45,3,0,80,45,3,0,120,45,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,48,43,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,11,11,11,11,10,11,12,11,5,2,11,5,6,6,7,9,11,12,11,9,6,10,6,7,8,9,10,11,11,5,11,7,8,8,9,11,13,14,11,6,5,8,4,5,7,8,10,11,10,6,7,7,5,5,6,8,9,11,10,7,8,9,6,6,6,7,8,9,11,9,9,11,7,7,6,6,7,9,12,12,10,13,9,8,7,7,7,8,11,13,11,14,11,10,9,8,7,7,0,0,0,0,8,0,0,0,161,25,0,0,144,59,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,56,85,3,0,0,0,0,0,4,0,0,0,113,2,0,0,0,57,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,120,59,3,0,0,0,0,0,4,0,0,0,113,2,0,0,112,54,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,56,3,0,0,0,0,0,2,0,0,0,81,0,0,0,240,53,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,72,54,3,0,0,0,0,0,2,0,0,0,81,0,0,0,112,53,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,200,53,3,0,0,0,0,0,2,0,0,0,33,1,0,0,0,52,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,40,53,3,0,0,0,0,0,4,0,0,0,81,0,0,0,152,51,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,240,51,3,0,0,0,0,0,2,0,0,0,121,0,0,0,232,50,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,104,51,3,0,0,0,0,0,2,0,0,0,169,0,0,0,0,50,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,176,50,3,0,0,0,0,0,2,0,0,0,25,0,0,0,200,49,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,49,3,0,0,0,0,0,2,0,0,0,169,0,0,0,224,48,3,0,1,0,0,0,0,136,93,225,0,176,19,97,4,0,0,0,0,0,0,0,144,49,3,0,0,0,0,0,2,0,0,0,225,0,0,0,184,47,3,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,160,48,3,0,0,0,0,0,2,0,0,0,185,1,0,0,160,45,3,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,96,47,3,0,0,0,0,0,2,5,5,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,11,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,11,6,6,7,7,8,8,8,8,9,9,9,9,9,9,10,9,10,10,10,10,11,7,7,7,7,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,12,11,11,7,7,8,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,12,11,12,8,8,8,8,9,9,9,9,9,10,10,10,10,10,10,10,10,10,11,11,11,8,8,8,8,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,12,9,9,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,11,11,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,12,12,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,12,11,11,11,9,10,10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,12,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,12,11,11,12,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,12,12,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,12,12,12,11,11,11,12,11,11,11,10,10,10,10,10,10,10,10,10,10,10,12,11,12,12,12,12,12,11,12,11,11,10,10,10,10,10,10,10,10,10,10,12,12,12,12,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,5,5,7,7,9,8,10,9,10,10,10,10,6,5,5,7,7,9,8,10,9,11,10,12,12,13,13,6,5,5,7,7,9,9,10,10,11,11,12,12,12,13,19,8,8,8,8,9,9,10,10,12,11,12,12,13,13,19,8,8,8,8,9,9,11,11,12,12,13,13,13,13,19,12,12,9,9,11,11,11,11,12,11,13,12,13,13,18,12,12,9,9,11,10,11,11,12,12,12,13,13,14,19,18,18,11,11,11,11,12,12,13,12,13,13,14,14,16,18,18,11,11,11,10,12,11,13,13,13,13,13,14,17,18,18,14,15,11,12,12,13,13,13,13,14,14,14,18,18,18,15,15,12,10,13,10,13,13,13,13,13,14,18,17,18,17,18,12,13,12,13,13,13,14,14,16,14,18,17,18,18,17,13,12,13,10,12,12,14,14,14,14,17,18,18,18,18,14,15,12,12,13,12,14,14,15,15,18,18,18,17,18,15,14,12,11,12,12,14,14,14,15,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,3,3,12,12,12,12,12,12,12,12,12,12,4,7,7,12,12,12,12,12,12,12,12,12,12,3,8,8,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,5,5,6,5,5,5,5,6,5,4,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,9,9,10,10,6,5,5,7,7,8,8,8,8,9,10,11,11,7,5,5,7,7,8,8,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,9,10,10,10,10,11,11,0,13,13,9,9,10,9,10,10,11,11,11,12,0,0,0,10,10,10,10,10,10,11,11,12,12,0,0,0,10,10,10,10,10,10,11,11,12,12,0,0,0,14,14,11,11,11,11,12,12,12,12,0,0,0,14,14,11,11,11,11,12,12,12,13,0,0,0,0,0,12,12,12,12,12,12,13,13,0,0,0,0,0,13,12,12,12,12,12,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,8,8,10,5,5,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,6,6,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,9,8,10,10,10,10,10,8,8,8,8,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,7,10,10,11,11,10,11,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,7,11,11,12,11,11,12,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,4,4,6,6,8,8,9,9,8,8,9,9,10,10,11,11,0,4,4,6,6,8,8,9,9,9,9,10,10,11,11,11,11,0,4,4,7,6,8,8,9,9,9,9,10,10,11,11,11,11,0,6,6,7,7,8,8,9,9,9,9,10,10,11,11,11,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,9,9,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,9,9,9,10,10,11,11,11,12,12,12,0,0,0,0,0,10,10,10,10,11,11,11,11,12,12,13,12,0,0,0,0,0,0,0,10,10,11,11,11,11,12,12,12,12,0,0,0,0,0,0,0,11,11,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,12,12,12,12,12,12,13,13,13,13,0,0,0,0,0,0,0,0,0,12,12,12,12,12,13,13,13,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,3,3,6,6,7,7,9,9,0,4,4,6,6,7,7,9,9,0,4,5,6,6,7,7,9,9,0,6,6,7,7,8,8,10,10,0,0,0,7,7,8,8,10,9,0,0,0,9,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,10,10,9,9,11,11,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,5,5,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,8,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,0,0,0,5,5,0,0,0,5,5,0,0,0,7,7,0,0,0,0,0,0,0,5,6,6,0,0,0,7,7,0,0,0,7,7,0,0,0,10,10,0,0,0,0,0,0,0,5,6,6,0,0,0,7,7,0,0,0,7,7,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,5,7,8,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,5,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,9,9,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,8,10,10,0,0,0,9,9,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,5,6,6,0,0,0,0,0,0,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,6,8,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,0,0,0,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,7,7,0,0,0,0,0,0,6,8,7,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9],"i8",O3,_.GLOBAL_BASE+207264),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,14,10,15,10,12,15,16,15,4,2,11,5,10,6,8,11,14,14,14,10,7,11,6,8,10,11,13,15,9,4,11,5,9,6,9,12,14,15,14,9,6,9,4,5,7,10,12,13,9,5,7,6,5,5,7,10,13,13,10,8,9,8,7,6,8,10,14,14,13,11,10,10,7,7,8,11,14,15,13,12,9,9,6,5,7,10,14,17,15,13,11,10,6,6,7,9,12,17,0,0,0,0,2,0,0,0,100,0,0,0,48,128,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,87,3,0,0,0,0,0,0,0,0,0,0,0,0,0,80,87,3,0,0,0,0,0,0,0,0,0,0,0,0,0,120,87,3,0,0,0,0,0,0,0,0,0,0,0,0,0,160,87,3,0,0,0,0,0,0,0,0,0,0,0,0,0,200,87,3,0,0,0,0,0,0,0,0,0,0,0,0,0,240,87,3,0,0,0,0,0,24,88,3,0,64,88,3,0,0,0,0,0,0,0,0,0,104,88,3,0,144,88,3,0,0,0,0,0,0,0,0,0,184,88,3,0,224,88,3,0,8,89,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,192,86,3,0,0,0,0,0,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,6,11,11,11,11,10,10,12,11,5,2,11,5,6,6,7,9,11,13,13,10,7,11,6,7,8,9,10,12,11,5,11,6,8,7,9,11,14,15,11,6,6,8,4,5,7,8,10,13,10,5,7,7,5,5,6,8,10,11,10,7,7,8,6,5,5,7,9,9,11,8,8,11,8,7,6,6,7,9,12,11,10,13,9,9,7,7,7,9,11,13,12,15,12,11,9,8,8,8,0,0,0,0,8,0,0,0,161,25,0,0,120,102,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,32,128,3,0,0,0,0,0,4,0,0,0,113,2,0,0,232,99,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,96,102,3,0,0,0,0,0,4,0,0,0,113,2,0,0,88,97,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,208,99,3,0,0,0,0,0,2,0,0,0,81,0,0,0,216,96,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,48,97,3,0,0,0,0,0,2,0,0,0,81,0,0,0,88,96,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,176,96,3,0,0,0,0,0,2,0,0,0,33,1,0,0,232,94,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,16,96,3,0,0,0,0,0,4,0,0,0,81,0,0,0,128,94,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,216,94,3,0,0,0,0,0,2,0,0,0,121,0,0,0,208,93,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,80,94,3,0,0,0,0,0,2,0,0,0,169,0,0,0,232,92,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,152,93,3,0,0,0,0,0,2,0,0,0,25,0,0,0,176,92,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,208,92,3,0,0,0,0,0,2,0,0,0,169,0,0,0,200,91,3,0,1,0,0,0,0,232,87,225,0,224,255,96,4,0,0,0,0,0,0,0,120,92,3,0,0,0,0,0,2,0,0,0,225,0,0,0,160,90,3,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,136,91,3,0,0,0,0,0,2,0,0,0,33,1,0,0,48,89,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,88,90,3,0,0,0,0,0,2,5,5,6,6,7,7,7,7,7,7,8,8,8,8,8,8,10,6,6,7,7,8,7,8,8,8,8,8,9,9,9,9,9,10,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9,9,10,7,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,8,9,9,9,9,9,9,9,9,9,11,11,11,8,8,8,8,9,9,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,9,9,10,10,10,8,9,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,10,11,11,11,9,9,9,9,9,9,10,10,9,9,10,9,11,10,11,11,11,9,9,9,9,9,9,9,9,10,10,10,9,11,11,11,11,11,9,9,9,9,10,10,9,9,9,9,10,9,11,11,11,11,11,11,11,9,9,9,9,9,9,10,10,10,10,11,11,11,11,11,11,11,10,9,10,10,9,10,9,9,10,9,11,10,10,11,11,11,11,9,10,9,9,9,9,10,10,10,10,11,11,11,11,11,11,10,10,10,9,9,10,9,10,9,10,10,10,10,11,11,11,11,11,11,11,9,9,9,9,9,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,7,9,9,10,10,10,10,6,5,5,7,7,8,8,10,8,11,10,12,12,13,13,6,5,5,7,7,8,8,10,9,11,11,12,12,13,12,18,8,8,8,8,9,9,10,9,11,10,12,12,13,13,18,8,8,8,8,9,9,10,10,11,11,13,12,14,13,18,11,11,9,9,10,10,11,11,11,12,13,12,13,14,18,11,11,9,8,11,10,11,11,11,11,12,12,14,13,18,18,18,10,11,10,11,12,12,12,12,13,12,14,13,18,18,18,10,11,11,9,12,11,12,12,12,13,13,13,18,18,17,14,14,11,11,12,12,13,12,14,12,14,13,18,18,18,14,14,11,10,12,9,12,13,13,13,13,13,18,18,17,16,18,13,13,12,12,13,11,14,12,14,14,17,18,18,17,18,13,12,13,10,12,11,14,14,14,14,17,18,18,18,18,15,16,12,12,13,10,14,12,14,15,18,18,18,16,17,16,14,12,11,13,10,13,13,14,15,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,4,4,12,12,12,12,12,12,12,12,12,12,4,9,8,12,12,12,12,12,12,12,12,12,12,2,9,7,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,5,5,6,5,5,5,5,6,4,5,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,9,9,10,10,6,5,5,7,7,8,8,8,8,9,9,10,10,7,5,5,7,7,8,8,8,8,9,9,11,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,10,10,10,10,11,11,11,12,0,13,13,9,9,10,10,10,10,11,11,12,12,0,0,0,10,10,10,10,11,11,12,12,12,12,0,0,0,10,10,10,10,11,11,12,12,12,12,0,0,0,14,14,11,11,11,11,12,12,13,13,0,0,0,14,14,11,11,11,11,12,12,13,13,0,0,0,0,0,12,12,12,12,13,13,14,13,0,0,0,0,0,13,13,12,12,13,12,14,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,8,8,10,5,5,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,6,6,7,7,8,8,8,8,8,8,10,10,10,7,7,8,7,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,7,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,9,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,7,10,10,11,11,10,12,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,7,11,11,11,11,11,12,11,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,6,6,7,7,8,8,8,8,9,9,10,10,11,10,0,5,5,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,5,5,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,6,6,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,10,11,11,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,8,9,9,10,10,11,11,12,12,12,12,0,0,0,0,0,8,8,9,9,10,10,11,11,12,11,12,12,0,0,0,0,0,9,10,10,10,11,11,11,11,12,12,13,13,0,0,0,0,0,0,0,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,13,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,4,6,6,7,7,9,9,0,5,5,7,7,7,8,9,9,0,5,5,7,7,8,8,9,9,0,7,7,8,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,9,9,9,9,10,10,0,0,0,9,9,9,9,10,10,0,0,0,10,10,10,10,11,11,0,0,0,0,0,10,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,3,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,4,4,6,6,0,0,0,0,0,5,5,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,8,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,3,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,0,0,0,5,5,0,0,0,5,5,0,0,0,7,8,0,0,0,0,0,0,0,5,6,6,0,0,0,7,7,0,0,0,7,7,0,0,0,10,10,0,0,0,0,0,0,0,5,6,6,0,0,0,7,7,0,0,0,7,7,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,5,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,5,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,10,10,0,0,0,9,9,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,8,10,10,0,0,0,9,9,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,5,6,6,0,0,0,0,0,0,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,6,7,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,0,0,0,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,7,7,0,0,0,0,0,0,6,8,7,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,8,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,8],"i8",O3,_.GLOBAL_BASE+218416),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,10,9,13,11,14,10,12,13,13,14,7,2,12,5,10,5,7,10,12,14,12,6,9,8,7,7,9,11,13,16,10,4,12,5,10,6,8,12,14,16,12,6,8,7,6,5,7,11,12,16,10,4,8,5,6,4,6,9,13,16,10,6,10,7,7,6,7,9,13,15,12,9,11,9,8,6,7,10,12,14,14,11,10,9,6,5,6,9,11,13,15,13,11,10,6,5,6,8,9,11,0,0,0,0,2,0,0,0,100,0,0,0,216,170,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,130,3,0,0,0,0,0,0,0,0,0,0,0,0,0,56,130,3,0,0,0,0,0,0,0,0,0,0,0,0,0,96,130,3,0,0,0,0,0,0,0,0,0,0,0,0,0,136,130,3,0,0,0,0,0,0,0,0,0,0,0,0,0,176,130,3,0,0,0,0,0,0,0,0,0,0,0,0,0,216,130,3,0,0,0,0,0,0,131,3,0,40,131,3,0,0,0,0,0,0,0,0,0,80,131,3,0,120,131,3,0,0,0,0,0,0,0,0,0,160,131,3,0,200,131,3,0,240,131,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,168,129,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,12,10,10,10,9,10,12,12,6,1,10,5,6,6,7,9,11,14,12,9,8,11,7,8,9,11,13,15,10,5,12,7,8,7,9,12,14,15,10,6,7,8,5,6,7,9,12,14,9,6,8,7,6,6,7,9,12,12,9,7,9,9,7,6,6,7,10,10,10,9,10,11,8,7,6,6,8,10,12,11,13,13,11,10,8,8,8,10,11,13,15,15,14,13,10,8,8,9,0,0,0,0,8,0,0,0,161,25,0,0,32,145,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,200,170,3,0,0,0,0,0,4,0,0,0,113,2,0,0,144,142,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,8,145,3,0,0,0,0,0,4,0,0,0,113,2,0,0,0,140,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,120,142,3,0,0,0,0,0,2,0,0,0,81,0,0,0,128,139,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,216,139,3,0,0,0,0,0,2,0,0,0,81,0,0,0,0,139,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,88,139,3,0,0,0,0,0,2,0,0,0,33,1,0,0,144,137,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,184,138,3,0,0,0,0,0,4,0,0,0,81,0,0,0,40,137,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,128,137,3,0,0,0,0,0,2,0,0,0,121,0,0,0,120,136,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,248,136,3,0,0,0,0,0,2,0,0,0,169,0,0,0,144,135,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,64,136,3,0,0,0,0,0,2,0,0,0,25,0,0,0,88,135,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,120,135,3,0,0,0,0,0,2,0,0,0,169,0,0,0,112,134,3,0,1,0,0,0,0,184,84,225,0,160,251,96,4,0,0,0,0,0,0,0,32,135,3,0,0,0,0,0,2,0,0,0,169,0,0,0,136,133,3,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,56,134,3,0,0,0,0,0,2,0,0,0,33,1,0,0,24,132,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,64,133,3,0,0,0,0,0,2,4,4,6,6,7,7,7,7,7,7,8,8,8,8,8,8,10,7,7,7,7,7,7,8,8,8,8,9,9,9,9,9,9,10,7,7,7,7,8,8,8,8,8,8,9,9,9,9,9,9,10,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,8,7,8,8,8,8,9,9,9,9,9,9,9,9,10,11,11,8,8,8,8,9,9,9,9,9,9,10,9,9,9,10,11,10,8,8,8,8,9,9,9,9,9,9,9,10,10,10,10,11,10,8,8,9,9,9,9,9,9,10,9,9,10,9,10,11,10,11,11,11,8,8,9,9,9,9,9,9,9,9,10,10,11,11,11,11,11,9,9,9,9,9,9,10,9,9,9,10,10,11,11,11,11,11,9,9,9,9,9,9,9,9,9,10,9,10,11,11,11,11,11,9,9,9,9,10,10,9,9,9,10,10,10,11,11,11,11,11,11,11,9,9,9,10,9,9,10,10,10,10,11,11,10,11,11,11,11,10,9,10,10,9,9,9,9,10,10,11,10,11,11,11,11,11,9,9,9,9,10,9,10,10,10,10,11,10,11,11,11,11,11,10,10,9,9,10,9,10,10,10,10,10,10,10,11,11,11,11,11,11,9,9,10,9,10,9,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,6,8,8,10,9,10,10,6,5,5,7,7,8,7,10,9,11,11,12,13,6,5,5,7,7,8,8,10,10,11,11,13,13,18,8,8,8,8,9,9,10,10,12,12,12,13,18,8,8,8,8,9,9,10,10,12,12,13,13,18,11,11,8,8,10,10,11,11,12,11,13,12,18,11,11,9,7,10,10,11,11,11,12,12,13,17,17,17,10,10,11,11,12,12,12,10,12,12,17,17,17,11,10,11,10,13,12,11,12,12,12,17,17,17,15,14,11,11,12,11,13,10,13,12,17,17,17,14,14,12,10,11,11,13,13,13,13,17,17,16,17,16,13,13,12,10,13,10,14,13,17,16,17,16,17,13,12,12,10,13,11,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,5,4,12,12,12,12,12,12,12,12,12,12,4,9,8,11,11,11,11,11,11,11,11,11,11,2,8,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,5,4,6,5,5,5,5,6,5,5,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,6,5,5,7,7,8,8,8,8,9,9,10,10,7,6,5,7,7,8,8,8,8,9,9,10,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,10,10,10,10,11,11,11,11,0,13,13,9,9,10,10,10,10,11,11,12,12,0,0,0,10,10,10,10,11,11,12,12,12,13,0,0,0,10,10,10,10,11,11,12,12,12,12,0,0,0,14,14,10,11,11,11,12,12,13,13,0,0,0,14,14,11,10,11,11,13,12,13,13,0,0,0,0,0,12,12,11,12,13,12,14,14,0,0,0,0,0,12,12,12,12,13,12,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,4,6,6,7,7,7,7,7,7,9,7,7,6,6,7,7,8,8,8,8,9,6,6,6,6,7,7,8,8,8,8,10,7,7,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,10,9,9,7,10,10,11,10,11,11,10,11,6,9,9,11,10,10,11,10,10,6,9,9,11,10,11,11,10,10,7,11,10,11,11,11,12,11,11,6,9,9,11,10,10,11,11,10,6,9,9,11,10,10,12,10,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,3,6,6,8,8,9,9,9,9,9,9,10,10,11,11,0,7,7,7,7,8,8,9,9,9,9,10,10,11,11,12,11,0,7,7,7,7,8,8,9,9,9,9,10,10,11,11,11,12,0,8,8,7,7,9,9,10,10,9,9,10,10,11,11,12,12,0,0,0,7,7,9,9,10,10,10,9,10,10,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,11,11,12,12,13,13,0,0,0,0,0,10,10,10,10,11,11,12,12,13,12,13,13,0,0,0,0,0,0,0,10,10,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,14,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,14,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,6,7,7,9,9,0,7,7,7,7,7,7,9,9,0,7,7,7,7,7,7,9,9,0,8,8,7,7,8,8,10,10,0,0,0,7,7,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,10,10,9,9,11,11,0,0,0,0,0,9,9,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,3,6,6,0,0,0,0,0,6,6,6,6,0,0,0,0,0,6,6,6,6,0,0,0,0,0,7,7,6,6,0,0,0,0,0,0,0,6,7,0,0,0,0,0,0,0,7,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,3,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,0,0,0,7,7,0,0,0,7,7,0,0,0,8,8,0,0,0,0,0,0,0,4,6,6,0,0,0,8,8,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,4,6,6,0,0,0,8,8,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,11,11,0,0,0,11,11,0,0,0,12,11,0,0,0,0,0,0,0,7,8,8,0,0,0,10,11,0,0,0,11,11,0,0,0,11,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,11,11,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,6,8,8,0,0,0,10,11,0,0,0,10,11,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,9,0,0,0,11,12,0,0,0,11,12,0,0,0,12,11,0,0,0,0,0,0,0,8,10,9,0,0,0,12,11,0,0,0,12,11,0,0,0,11,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,5,6,6,0,0,0,0,0,0,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,6,8,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,0,0,0,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,7,7,0,0,0,0,0,0,6,8,7,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9],"i8",O3,_.GLOBAL_BASE+229400),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,11,9,13,12,12,11,12,12,13,15,8,2,11,4,8,5,7,10,12,15,13,7,10,9,8,8,10,13,17,17,11,4,12,5,9,5,8,11,14,16,12,6,8,7,6,6,8,11,13,16,11,4,9,5,6,4,6,10,13,16,11,6,11,7,7,6,7,10,13,15,13,9,12,9,8,6,8,10,12,14,14,10,10,8,6,5,6,9,11,13,15,11,11,9,6,5,6,8,9,12,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,9,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+240320),C3([1,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,231,3,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,81,0,0,0,160,5,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,2,0,0,0,81,0,0,0,72,5,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,56,223,3,0,0,0,0,0,0,0,0,0,0,0,0,0,96,223,3,0,0,0,0,0,0,0,0,0,0,0,0,0,136,223,3,0,0,0,0,0,0,0,0,0,0,0,0,0,176,223,3,0,0,0,0,0,0,0,0,0,0,0,0,0,216,223,3,0,0,0,0,0,0,224,3,0,40,224,3,0,0,0,0,0,0,0,0,0,80,224,3,0,120,224,3,0,0,0,0,0,0,0,0,0,160,224,3,0,200,224,3,0,240,224,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,185,3,0,0,0,0,0,0,0,0,0,0,0,0,0,80,185,3,0,0,0,0,0,0,0,0,0,0,0,0,0,120,185,3,0,0,0,0,0,0,0,0,0,0,0,0,0,160,185,3,0,0,0,0,0,0,0,0,0,0,0,0,0,200,185,3,0,0,0,0,0,240,185,3,0,24,186,3,0,0,0,0,0,0,0,0,0,64,186,3,0,104,186,3,0,0,0,0,0,0,0,0,0,144,186,3,0,184,186,3,0,224,186,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,81,0,0,0,208,184,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,81,0,0,0,120,184,3,0,0,0,0,0,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,4,8,10,9,9,10,11,12,4,2,5,6,6,8,10,11,13,8,4,6,8,7,9,12,12,14,10,6,8,4,5,6,9,11,12,9,5,6,5,5,6,9,11,11,9,7,9,6,5,5,7,10,10,10,9,11,8,7,6,7,9,11,11,12,13,10,10,9,8,9,11,11,15,15,12,13,11,9,10,11,0,0,0,0,0,0,0,5,5,9,10,9,9,10,11,12,5,1,5,6,6,7,10,12,14,9,5,6,8,8,10,12,14,14,10,5,8,5,6,8,11,13,14,9,5,7,6,6,8,10,12,11,9,7,9,7,6,6,7,10,10,10,9,12,9,8,7,7,10,12,11,11,13,12,10,9,8,9,11,11,14,15,15,13,11,9,9,11,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,128,197,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,40,223,3,0,0,0,0,0,4,0,0,0,113,2,0,0,240,194,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,104,197,3,0,0,0,0,0,2,0,0,0,81,0,0,0,112,194,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,200,194,3,0,0,0,0,0,2,0,0,0,81,0,0,0,240,193,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,72,194,3,0,0,0,0,0,2,0,0,0,33,1,0,0,128,192,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,168,193,3,0,0,0,0,0,4,0,0,0,81,0,0,0,24,192,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,112,192,3,0,0,0,0,0,2,0,0,0,121,0,0,0,104,191,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,232,191,3,0,0,0,0,0,2,0,0,0,169,0,0,0,128,190,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,48,191,3,0,0,0,0,0,2,0,0,0,25,0,0,0,72,190,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,104,190,3,0,0,0,0,0,2,0,0,0,169,0,0,0,96,189,3,0,1,0,0,0,0,184,84,225,0,160,251,96,4,0,0,0,0,0,0,0,16,190,3,0,0,0,0,0,2,0,0,0,169,0,0,0,120,188,3,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,40,189,3,0,0,0,0,0,2,0,0,0,33,1,0,0,8,187,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,48,188,3,0,0,0,0,0,2,5,5,6,6,7,6,7,7,8,8,8,8,8,8,8,8,10,6,6,7,7,7,7,8,8,9,9,9,9,9,9,9,9,10,6,6,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,7,7,7,7,8,8,8,9,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,9,9,9,9,9,9,9,9,9,9,10,11,11,8,8,8,8,9,9,9,9,9,9,10,10,9,10,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,10,10,11,10,10,8,8,9,9,9,9,9,9,9,9,9,9,10,9,10,10,10,11,11,8,8,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,9,9,9,9,9,9,9,9,10,9,10,9,11,11,11,11,11,9,8,9,9,9,9,9,9,9,10,10,9,11,11,10,11,11,9,9,9,9,9,9,9,9,9,10,10,9,11,11,11,11,11,11,11,9,9,10,9,9,9,9,10,9,10,10,11,10,11,11,11,11,9,10,10,10,9,9,9,9,9,9,10,11,11,11,11,11,11,9,9,9,9,9,9,9,9,10,9,11,11,10,11,11,11,11,10,10,9,9,9,9,9,9,10,9,10,11,10,11,11,11,11,11,11,9,9,10,9,9,9,9,9,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,7,9,9,10,11,12,12,6,5,5,7,7,8,7,10,10,11,11,12,12,6,5,5,7,7,8,8,10,10,11,11,12,12,16,7,7,8,8,9,9,11,11,12,12,13,13,17,7,7,8,7,9,9,11,10,12,12,13,13,19,11,10,8,8,10,10,11,11,12,12,13,13,19,11,11,9,7,11,10,11,11,12,12,13,12,19,19,19,10,10,10,10,11,12,12,12,13,14,18,19,19,11,9,11,9,13,12,12,12,13,13,19,20,19,13,15,11,11,12,12,13,13,14,13,18,19,20,15,13,12,10,13,10,13,13,13,14,20,20,20,20,20,13,14,12,12,13,12,13,13,20,20,20,20,20,13,12,12,12,14,12,14,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,13,13,13,13,13,13,13,13,13,13,3,6,6,13,13,13,13,13,13,13,13,13,13,4,8,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,4,5,6,5,5,5,5,6,5,5,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,7,5,5,7,7,8,8,8,8,9,9,10,10,7,5,6,7,7,8,8,8,8,9,9,11,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,10,10,10,10,11,11,11,11,0,13,13,9,9,9,9,10,10,11,11,12,12,0,0,0,9,10,9,10,11,11,12,11,13,12,0,0,0,10,10,9,9,11,11,12,12,13,12,0,0,0,13,13,10,10,11,11,12,12,13,13,0,0,0,14,14,10,10,11,11,12,12,13,13,0,0,0,0,0,11,12,11,11,12,13,14,13,0,0,0,0,0,12,12,11,11,13,12,14,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,8,8,10,5,5,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,7,7,7,7,8,8,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,9,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,7,10,10,10,11,11,11,10,10,6,9,9,11,11,10,11,10,10,6,9,9,11,10,11,11,10,10,7,11,11,11,11,11,11,11,11,6,9,9,11,10,10,11,11,10,6,9,9,10,10,10,11,10,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,6,6,7,7,8,8,8,8,9,9,10,10,11,11,0,5,5,6,6,8,8,9,9,9,9,10,10,10,10,11,11,0,5,5,6,6,8,8,9,9,9,9,10,10,10,10,11,11,0,7,7,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,10,10,10,11,11,11,12,12,0,0,0,8,8,8,8,9,9,10,10,10,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,6,7,7,9,9,0,6,6,7,7,8,8,9,9,0,6,6,7,7,8,8,9,9,0,7,7,8,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,8,8,9,9,11,11,0,0,0,9,9,9,9,11,11,0,0,0,10,10,10,10,11,11,0,0,0,0,0,9,9,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,3,7,7,0,0,0,0,0,5,5,6,6,0,0,0,0,0,5,5,7,7,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,9,10,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,10,9],"i8",O3,_.GLOBAL_BASE+242772),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,144,235,3,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,56,5,4,0,0,0,0,0,4,0,0,0,113,2,0,0,0,233,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,120,235,3,0,0,0,0,0,2,0,0,0,81,0,0,0,128,232,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,216,232,3,0,0,0,0,0,2,0,0,0,81,0,0,0,0,232,3,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,88,232,3,0,0,0,0,0,2,0,0,0,33,1,0,0,144,230,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,184,231,3,0,0,0,0,0,4,0,0,0,81,0,0,0,40,230,3,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,128,230,3,0,0,0,0,0,2,0,0,0,121,0,0,0,120,229,3,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,248,229,3,0,0,0,0,0,2,0,0,0,169,0,0,0,144,228,3,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,64,229,3,0,0,0,0,0,2,0,0,0,25,0,0,0,88,228,3,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,120,228,3,0,0,0,0,0,2,0,0,0,169,0,0,0,112,227,3,0,1,0,0,0,0,184,84,225,0,160,251,96,4,0,0,0,0,0,0,0,32,228,3,0,0,0,0,0,2,0,0,0,169,0,0,0,136,226,3,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,56,227,3,0,0,0,0,0,2,0,0,0,33,1,0,0,24,225,3,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,64,226,3,0,0,0,0,0,2,4,4,6,6,6,6,7,7,8,8,8,8,8,8,8,8,10,10,10,7,7,7,7,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,8,7,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,8,9,9,9,9,9,9,10,9,9,10,10,10,7,7,8,8,9,8,9,9,9,9,10,9,9,10,10,11,11,8,8,8,8,9,9,9,9,9,9,10,9,9,10,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,10,10,11,11,11,8,8,9,9,9,9,9,9,9,9,9,9,10,10,10,10,11,11,11,8,8,9,9,9,9,10,9,9,9,9,9,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,10,10,11,11,9,9,9,9,9,9,9,9,9,10,10,10,10,11,10,11,11,9,9,9,9,9,9,9,9,9,10,10,9,10,10,11,11,11,11,11,9,9,9,10,9,9,9,9,9,9,10,11,11,11,11,11,11,10,10,10,10,9,9,9,9,9,9,10,11,11,11,11,11,11,9,10,9,9,9,9,10,9,9,9,11,11,11,11,11,11,11,10,10,9,9,9,9,9,9,10,9,11,11,10,11,11,11,11,10,11,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,5,7,7,9,9,10,10,12,12,6,5,5,7,7,8,8,10,10,12,11,12,12,6,5,5,7,7,8,8,10,10,11,11,12,12,15,7,7,8,8,9,9,11,11,12,12,13,12,15,8,8,8,7,9,9,10,10,12,12,13,13,16,11,10,8,8,10,10,11,11,12,12,13,13,16,11,11,9,8,11,10,11,11,12,12,13,12,16,16,16,10,11,10,11,12,12,12,12,13,13,16,16,16,11,9,11,9,14,12,12,12,13,13,16,16,16,12,14,11,12,12,12,13,13,14,13,16,16,16,15,13,12,10,13,10,13,14,13,13,16,16,16,16,16,13,14,12,13,13,12,13,13,16,16,16,16,16,13,12,12,11,14,12,15,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,3,10,10,10,10,10,10,10,10,10,10,4,8,6,10,10,10,10,10,10,10,10,10,10,4,8,7,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,10,9,7,5,6,7,7,8,8,8,8,9,9,10,10,7,5,5,7,7,8,8,8,8,9,9,10,10,0,8,8,8,8,9,9,9,9,10,10,11,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,10,10,10,11,11,11,11,0,13,13,9,9,9,9,10,10,11,11,11,11,0,0,0,10,10,10,10,11,11,12,11,12,12,0,0,0,10,10,10,9,11,11,12,11,13,12,0,0,0,13,13,10,10,11,11,12,12,13,13,0,0,0,14,14,10,10,11,11,12,12,13,13,0,0,0,0,0,11,12,11,11,12,12,14,13,0,0,0,0,0,12,11,11,11,13,10,14,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,6,6,7,7,7,7,8,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,6,10,10,11,11,11,11,10,10,6,9,9,11,10,10,11,10,10,6,9,9,11,10,11,11,10,10,7,11,10,11,11,11,12,11,11,7,9,9,11,10,10,11,11,10,6,9,9,10,10,10,12,10,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,3,6,6,7,7,8,8,8,8,9,9,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,11,0,0,0,8,8,9,9,9,10,10,10,10,10,11,11,12,12,0,0,0,8,8,9,9,10,9,10,10,10,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,11,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,10,10,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,12,12,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,5,6,6,8,8,0,0,0,7,7,7,7,9,9,0,0,0,7,7,7,7,9,9,0,0,0,7,7,8,8,10,10,0,0,0,7,7,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,10,10,9,9,11,11,0,0,0,0,0,9,9,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,2,7,7,0,0,0,0,0,13,13,6,6,0,0,0,0,0,12,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,11,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,3,4,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,5,7,6,0,0,0,0,0,0,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,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,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,9,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,7,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,8,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9],"i8",O3,_.GLOBAL_BASE+253728),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,13,14,14,15,16,18,18,4,2,5,8,7,9,12,15,15,10,4,5,10,6,8,11,15,17,12,5,7,5,6,8,11,14,17,11,5,6,6,5,6,9,13,17,12,6,7,6,5,6,8,12,14,14,7,8,6,6,7,9,11,14,14,8,9,6,5,6,9,11,13,16,10,10,7,6,7,8,10,11,0,0,0,0,0,0,0,6,8,13,12,13,14,15,16,16,4,2,4,7,6,8,11,13,15,10,4,4,8,6,8,11,14,17,11,5,6,5,6,8,12,14,17,11,5,5,6,5,7,10,13,16,12,6,7,8,7,8,10,13,15,13,8,8,7,7,8,10,12,15,15,7,7,5,5,7,9,12,14,15,8,8,6,6,7,8,10,11,0,0,0,0,0,0,0,2,0,0,0,81,0,0,0,128,86,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,2,0,0,0,81,0,0,0,40,86,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,112,46,4,0,0,0,0,0,0,0,0,0,0,0,0,0,152,46,4,0,0,0,0,0,0,0,0,0,0,0,0,0,192,46,4,0,0,0,0,0,0,0,0,0,0,0,0,0,232,46,4,0,0,0,0,0,0,0,0,0,0,0,0,0,16,47,4,0,0,0,0,0,56,47,4,0,96,47,4,0,0,0,0,0,0,0,0,0,136,47,4,0,176,47,4,0,0,0,0,0,0,0,0,0,216,47,4,0,0,48,4,0,40,48,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,200,8,4,0,0,0,0,0,0,0,0,0,0,0,0,0,240,8,4,0,0,0,0,0,0,0,0,0,0,0,0,0,24,9,4,0,0,0,0,0,0,0,0,0,0,0,0,0,64,9,4,0,0,0,0,0,0,0,0,0,0,0,0,0,104,9,4,0,0,0,0,0,144,9,4,0,184,9,4,0,0,0,0,0,0,0,0,0,224,9,4,0,8,10,4,0,0,0,0,0,0,0,0,0,48,10,4,0,88,10,4,0,128,10,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,2,0,0,0,81,0,0,0,112,8,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,2,0,0,0,81,0,0,0,24,8,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,5,4,9,10,9,10,11,12,13,4,1,5,7,7,9,11,12,14,8,5,7,9,8,10,13,13,13,10,7,9,4,6,7,10,12,14,9,6,7,6,6,7,10,12,12,9,8,9,7,6,7,8,11,12,11,11,11,9,8,7,8,10,12,12,13,14,12,11,9,9,9,12,12,17,17,15,16,12,10,11,13,0,0,0,0,0,0,0,5,4,8,9,8,9,10,12,15,4,1,5,5,6,8,11,12,12,8,5,8,9,9,11,13,12,12,9,5,8,5,7,9,12,13,13,8,6,8,7,7,9,11,11,11,9,7,9,7,7,7,7,10,12,10,10,11,9,8,7,7,9,11,11,12,13,12,11,9,8,9,11,13,16,16,15,15,12,10,11,12,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,184,20,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,96,46,4,0,0,0,0,0,4,0,0,0,113,2,0,0,40,18,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,20,4,0,0,0,0,0,2,0,0,0,81,0,0,0,168,17,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,0,18,4,0,0,0,0,0,2,0,0,0,81,0,0,0,40,17,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,128,17,4,0,0,0,0,0,2,0,0,0,33,1,0,0,184,15,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,224,16,4,0,0,0,0,0,4,0,0,0,81,0,0,0,80,15,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,168,15,4,0,0,0,0,0,2,0,0,0,121,0,0,0,160,14,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,32,15,4,0,0,0,0,0,2,0,0,0,169,0,0,0,184,13,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,104,14,4,0,0,0,0,0,2,0,0,0,25,0,0,0,128,13,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,13,4,0,0,0,0,0,2,0,0,0,81,0,0,0,0,13,4,0,1,0,0,0,0,160,59,225,0,160,251,96,4,0,0,0,0,0,0,0,88,13,4,0,0,0,0,0,2,0,0,0,169,0,0,0,24,12,4,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,200,12,4,0,0,0,0,0,2,0,0,0,33,1,0,0,168,10,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,208,11,4,0,0,0,0,0,2,5,5,6,6,7,7,7,7,8,8,8,8,8,8,8,8,10,6,6,7,7,7,7,8,8,9,9,9,9,9,9,9,9,10,6,6,7,7,8,7,8,8,9,9,9,9,9,9,9,9,10,7,7,7,7,8,8,8,9,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,9,8,9,9,9,9,10,9,9,10,10,10,11,8,8,8,8,9,9,9,9,9,9,9,10,9,10,10,10,10,8,8,8,8,9,9,9,9,9,9,9,9,10,10,11,10,10,8,8,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,11,11,8,8,9,9,9,9,9,9,9,9,9,10,11,11,11,11,11,9,9,9,9,9,9,9,9,10,9,10,9,11,11,10,11,11,9,9,9,9,9,9,9,9,9,9,10,9,11,11,10,11,11,9,9,9,9,9,9,9,9,9,9,10,9,11,10,11,11,11,11,11,9,9,10,9,9,9,9,9,9,9,10,11,10,11,11,11,11,10,10,10,10,9,9,9,9,9,9,10,11,11,11,11,11,11,9,10,9,9,9,9,9,9,9,9,11,11,10,11,11,11,10,10,10,9,9,9,9,9,9,9,9,10,11,10,11,11,11,11,11,11,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,7,9,9,10,11,12,12,6,5,5,7,7,8,8,10,10,12,11,12,12,6,5,5,7,7,8,8,10,10,12,11,12,12,17,7,7,8,8,9,9,10,10,12,12,13,13,18,7,7,8,7,9,9,10,10,12,12,12,13,19,10,10,8,8,10,10,11,11,12,12,13,14,19,11,10,8,7,10,10,11,11,12,12,13,12,19,19,19,10,10,10,10,11,11,12,12,13,13,19,19,19,11,9,11,9,14,12,13,12,13,13,19,20,18,13,14,11,11,12,12,13,13,14,13,20,20,20,15,13,11,10,13,11,13,13,14,13,20,20,20,20,20,13,14,12,12,13,13,13,13,20,20,20,20,20,13,13,12,12,16,13,15,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,3,11,11,11,11,11,11,3,7,6,11,11,11,11,11,11,4,8,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,4,4,6,5,5,5,5,6,5,5,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,7,5,5,7,7,8,8,8,8,9,9,10,10,7,6,5,7,7,8,8,8,8,9,9,10,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,10,10,10,10,11,11,11,11,0,13,13,9,9,9,9,10,10,11,11,11,12,0,0,0,9,10,10,10,11,11,12,11,12,12,0,0,0,10,10,9,9,11,11,12,12,12,12,0,0,0,13,13,10,10,11,11,12,12,13,13,0,0,0,14,14,10,10,11,11,12,12,13,13,0,0,0,0,0,11,12,11,11,13,12,13,13,0,0,0,0,0,12,12,11,11,13,12,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,7,8,9,5,5,6,6,7,7,8,8,8,8,9,5,5,6,6,7,7,8,8,8,8,10,7,7,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,11,9,9,4,7,7,10,9,9,11,9,9,7,10,10,10,11,11,11,10,10,6,9,9,11,11,10,11,10,10,6,9,9,11,10,11,11,10,10,7,11,10,11,11,11,11,11,11,6,9,9,11,10,10,11,11,10,6,9,9,11,10,10,11,10,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,6,6,8,8,8,8,8,8,9,9,10,10,11,11,0,6,6,7,7,8,8,9,9,9,9,10,10,10,11,11,11,0,5,6,7,7,8,8,9,9,9,9,10,10,10,11,11,11,0,7,7,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,12,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,10,11,11,12,12,13,13,0,0,0,0,0,10,10,10,10,11,11,12,12,12,13,13,13,0,0,0,0,0,0,0,10,10,11,11,12,12,12,13,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,11,11,12,11,12,12,13,13,13,13,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,3,6,6,7,7,9,9,0,5,5,7,7,8,7,9,9,0,5,5,7,7,8,8,9,9,0,7,7,8,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,9,9,9,9,11,11,0,0,0,9,9,9,9,11,11,0,0,0,10,10,10,10,11,11,0,0,0,0,0,9,9,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,3,7,7,0,0,0,0,0,5,4,7,7,0,0,0,0,0,5,5,7,7,0,0,0,0,0,6,7,8,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,10,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,10,10],"i8",O3,_.GLOBAL_BASE+263472),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,112,60,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,24,86,4,0,0,0,0,0,4,0,0,0,113,2,0,0,224,57,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,60,4,0,0,0,0,0,2,0,0,0,81,0,0,0,96,57,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,184,57,4,0,0,0,0,0,2,0,0,0,81,0,0,0,224,56,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,56,57,4,0,0,0,0,0,2,0,0,0,33,1,0,0,112,55,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,152,56,4,0,0,0,0,0,4,0,0,0,81,0,0,0,8,55,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,96,55,4,0,0,0,0,0,2,0,0,0,121,0,0,0,88,54,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,216,54,4,0,0,0,0,0,2,0,0,0,169,0,0,0,112,53,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,32,54,4,0,0,0,0,0,2,0,0,0,25,0,0,0,56,53,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,88,53,4,0,0,0,0,0,4,0,0,0,113,2,0,0,168,50,4,0,1,0,0,0,0,160,27,225,0,160,251,96,3,0,0,0,0,0,0,0,32,53,4,0,0,0,0,0,2,0,0,0,169,0,0,0,192,49,4,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,112,50,4,0,0,0,0,0,2,0,0,0,33,1,0,0,80,48,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,120,49,4,0,0,0,0,0,2,4,4,6,6,7,7,7,7,8,8,8,8,8,8,8,8,10,10,10,7,7,7,8,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,7,7,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,8,8,9,9,9,9,9,10,9,9,10,10,10,7,7,8,8,9,8,9,9,9,9,10,9,9,10,10,10,10,8,8,8,8,9,8,9,9,9,9,9,10,9,10,10,10,10,7,7,8,8,9,9,9,9,9,9,10,9,10,10,10,10,10,8,8,8,9,9,9,9,9,9,9,10,10,10,9,11,10,10,10,10,8,8,9,9,9,9,9,10,9,9,9,10,10,10,10,11,11,9,9,9,9,9,9,9,9,10,9,9,10,11,10,10,11,11,9,9,9,9,9,9,9,9,9,9,10,9,11,11,10,11,11,9,9,9,9,9,9,9,9,9,9,10,9,11,10,10,11,11,11,11,9,9,9,9,9,9,9,9,9,9,10,10,10,11,11,11,11,9,10,9,10,9,9,9,9,10,9,10,11,10,11,10,10,10,10,10,9,9,9,10,9,9,9,10,11,11,10,11,11,10,11,10,10,10,9,9,9,9,10,9,9,10,11,10,11,11,11,11,10,11,10,10,9,10,9,9,9,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,7,7,9,9,11,12,13,12,6,5,5,7,7,8,8,10,9,12,12,12,12,6,5,5,7,7,8,8,10,9,12,11,11,13,16,7,7,8,8,9,9,10,10,12,12,13,12,16,7,7,8,7,9,9,10,10,11,12,12,13,16,10,10,8,8,10,10,11,12,12,12,13,13,16,11,10,8,7,11,10,11,11,12,11,13,13,16,16,16,10,10,10,10,11,11,13,12,13,13,16,16,16,11,9,11,9,15,13,12,13,13,13,16,16,16,15,13,11,11,12,13,12,12,14,13,16,16,16,14,13,11,11,13,12,14,13,13,13,16,16,16,16,16,13,13,13,12,14,13,14,14,16,16,16,16,16,13,13,12,12,14,14,15,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,5,5,10,10,6,9,8,10,10,6,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,8,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,7,5,5,7,7,8,8,8,8,9,9,10,10,7,5,6,7,7,8,8,8,8,9,9,10,10,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,10,10,10,10,11,11,11,11,0,13,13,9,9,9,9,10,10,11,11,11,12,0,0,0,10,10,10,10,11,11,11,11,12,12,0,0,0,10,10,9,9,11,11,11,12,12,12,0,0,0,13,13,10,10,11,11,12,12,13,13,0,0,0,14,14,10,10,11,11,12,12,13,13,0,0,0,0,0,11,11,11,11,13,12,13,13,0,0,0,0,0,12,12,11,11,12,12,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,6,6,7,7,7,7,7,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,8,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,10,10,10,10,10,9,9,8,8,8,8,10,10,10,10,10,8,8,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,7,10,9,9,10,9,9,4,6,7,10,9,9,11,9,9,7,10,10,11,11,11,12,10,11,6,9,9,11,10,11,11,10,10,6,9,9,11,10,11,11,10,10,7,11,10,12,11,11,11,11,11,7,9,9,10,10,10,11,11,10,6,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,3,6,6,8,7,8,8,8,8,9,9,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,9,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,8,8,9,9,9,9,10,10,10,10,11,11,12,12,0,0,0,8,8,9,9,9,9,10,10,10,10,11,11,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,11,12,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,10,10,11,11,11,11,11,12,12,12,13,13,0,0,0,0,0,0,0,11,10,11,11,11,11,12,12,13,13,0,0,0,0,0,0,0,11,11,12,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,11,12,12,12,12,13,13,13,0,0,0,0,0,0,0,12,12,12,12,12,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,6,6,6,8,8,0,0,0,7,7,7,7,9,9,0,0,0,7,7,7,7,9,9,0,0,0,7,7,7,8,9,9,0,0,0,7,7,7,7,9,9,0,0,0,9,9,8,8,10,10,0,0,0,8,9,8,8,10,10,0,0,0,10,10,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,2,8,7,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,6,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,11,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,9,11,10],"i8",O3,_.GLOBAL_BASE+274008),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,6,6,12,13,13,14,16,17,17,4,2,5,8,7,9,12,15,15,9,4,5,9,7,9,12,16,18,11,6,7,4,6,8,11,14,18,10,5,6,5,5,7,10,14,17,10,5,7,7,6,7,10,13,16,11,5,7,7,7,8,10,12,15,13,6,7,5,5,7,9,12,13,16,8,9,6,6,7,9,10,12,0,0,0,0,0,0,0,9,8,12,11,12,13,14,14,16,6,1,5,6,6,9,12,14,17,9,4,5,9,7,9,13,15,16,8,5,8,6,8,10,13,17,17,9,6,7,7,8,9,13,15,17,11,8,9,9,9,10,12,16,16,13,7,8,7,7,9,12,14,15,13,6,7,5,5,7,10,13,13,14,7,8,5,6,7,9,10,12,0,0,0,0,0,0,0,2,0,0,0,81,0,0,0,96,167,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,2,0,0,0,81,0,0,0,8,167,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,80,127,4,0,0,0,0,0,0,0,0,0,0,0,0,0,120,127,4,0,0,0,0,0,0,0,0,0,0,0,0,0,160,127,4,0,0,0,0,0,0,0,0,0,0,0,0,0,200,127,4,0,0,0,0,0,0,0,0,0,0,0,0,0,240,127,4,0,0,0,0,0,24,128,4,0,64,128,4,0,0,0,0,0,0,0,0,0,104,128,4,0,144,128,4,0,0,0,0,0,0,0,0,0,184,128,4,0,224,128,4,0,8,129,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,168,89,4,0,0,0,0,0,0,0,0,0,0,0,0,0,208,89,4,0,0,0,0,0,0,0,0,0,0,0,0,0,248,89,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,90,4,0,0,0,0,0,0,0,0,0,0,0,0,0,72,90,4,0,0,0,0,0,112,90,4,0,152,90,4,0,0,0,0,0,0,0,0,0,192,90,4,0,232,90,4,0,0,0,0,0,0,0,0,0,16,91,4,0,56,91,4,0,96,91,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,2,0,0,0,81,0,0,0,80,89,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,2,0,0,0,81,0,0,0,248,88,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,3,3,8,8,8,8,10,12,14,3,2,6,7,7,8,10,12,16,7,6,7,9,8,10,12,14,16,8,6,8,4,5,7,9,11,13,7,6,8,5,6,7,9,11,14,8,8,10,7,7,6,8,10,13,9,11,12,9,9,7,8,10,12,10,13,15,11,11,10,9,10,13,13,16,17,14,15,14,13,14,17,0,0,0,0,0,0,0,4,4,7,8,7,8,10,12,17,3,1,6,6,7,8,10,12,15,7,6,9,9,9,11,12,14,17,8,6,9,6,7,9,11,13,17,7,6,9,7,7,8,9,12,15,8,8,10,8,7,7,7,10,14,9,10,12,10,8,8,8,10,14,11,13,15,13,12,11,11,12,16,17,18,18,19,20,18,16,16,20,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,152,101,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,64,127,4,0,0,0,0,0,4,0,0,0,113,2,0,0,8,99,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,128,101,4,0,0,0,0,0,2,0,0,0,81,0,0,0,136,98,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,224,98,4,0,0,0,0,0,2,0,0,0,81,0,0,0,8,98,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,96,98,4,0,0,0,0,0,2,0,0,0,33,1,0,0,152,96,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,192,97,4,0,0,0,0,0,4,0,0,0,81,0,0,0,48,96,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,136,96,4,0,0,0,0,0,2,0,0,0,121,0,0,0,128,95,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,0,96,4,0,0,0,0,0,2,0,0,0,169,0,0,0,152,94,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,72,95,4,0,0,0,0,0,2,0,0,0,25,0,0,0,96,94,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,128,94,4,0,0,0,0,0,2,0,0,0,81,0,0,0,224,93,4,0,1,0,0,0,0,160,59,225,0,160,251,96,4,0,0,0,0,0,0,0,56,94,4,0,0,0,0,0,2,0,0,0,169,0,0,0,248,92,4,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,168,93,4,0,0,0,0,0,2,0,0,0,33,1,0,0,136,91,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,176,92,4,0,0,0,0,0,3,4,4,6,6,7,7,8,8,8,8,9,9,9,9,9,9,10,6,6,6,6,7,7,8,8,8,9,9,9,9,9,9,9,10,6,6,6,6,7,7,8,8,8,8,9,9,9,9,9,9,10,7,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,7,8,8,8,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,8,8,8,8,8,8,9,9,9,9,9,9,9,9,11,10,11,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,11,11,8,8,8,8,9,9,9,9,9,9,9,9,11,10,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,10,11,10,11,11,9,9,9,9,9,9,9,9,9,9,9,10,11,11,10,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,10,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,10,11,11,11,11,11,11,9,10,10,10,9,9,9,9,9,9,11,10,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,11,11,10,10,9,9,9,9,9,9,9,9,10,11,11,11,11,11,11,11,11,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,10,11,11,11,6,5,5,7,7,8,8,10,10,10,11,11,11,6,5,5,7,7,8,8,10,10,11,12,12,12,14,7,7,7,8,9,9,11,11,11,12,11,12,17,7,7,8,7,9,9,11,11,12,12,12,12,14,11,11,8,8,10,10,11,12,12,13,11,12,14,11,11,8,8,10,10,11,12,12,13,13,12,14,15,14,10,10,10,10,11,12,12,12,12,11,14,13,16,10,10,10,9,12,11,12,12,13,14,14,15,14,14,13,10,10,11,11,12,11,13,11,14,12,15,13,14,11,10,12,10,12,12,13,13,13,13,14,15,15,12,12,11,11,12,11,13,12,14,14,14,14,17,12,12,11,10,13,11,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,12,11,13,13,14,14,4,7,7,11,13,14,14,14,14,3,8,3,14,14,14,14,14,14,14,10,12,14,14,14,14,14,14,14,14,5,14,8,14,14,14,14,14,12,14,13,14,14,14,14,14,14,14,13,14,10,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,4,5,6,5,5,5,5,6,5,5,5,5,6,5,5,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,9,9,10,10,7,5,5,7,7,8,8,8,8,10,9,11,10,7,5,5,7,7,8,8,8,8,9,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,10,10,10,11,11,12,12,0,13,13,9,9,9,9,10,10,11,11,12,12,0,0,0,10,10,10,10,11,11,12,12,12,13,0,0,0,10,10,10,10,11,11,12,12,12,12,0,0,0,14,14,11,11,11,11,12,13,13,13,0,0,0,14,14,11,10,11,11,12,12,13,13,0,0,0,0,0,12,12,12,12,13,13,13,14,0,0,0,0,0,13,12,12,12,13,13,13,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,4,4,5,5,7,7,7,7,8,8,10,5,5,6,6,7,7,8,8,8,8,10,5,5,6,6,7,7,8,8,8,8,10,7,7,7,7,8,8,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,9,9,10,10,10,10,10,8,8,8,8,9,9,10,10,10,10,10,9,9,9,9,8,9,10,10,10,10,10,8,9,8,8,9,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,7,6,10,9,9,11,9,9,4,6,7,10,9,9,11,9,9,7,10,10,10,11,11,11,11,10,6,9,9,11,10,10,11,10,10,6,9,9,11,10,11,11,10,10,7,11,11,11,11,11,12,11,11,7,9,9,11,10,10,12,10,10,7,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,9,8,8,9,9,10,10,11,11,0,6,6,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,6,5,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,7,7,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,13,13,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,12,13,13,13,0,0,0,0,0,10,10,11,11,11,11,12,12,13,13,14,14,0,0,0,0,0,0,0,11,11,11,11,12,12,13,13,14,14,0,0,0,0,0,0,0,11,11,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,11,11,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,12,12,12,13,13,13,14,14,14,14,0,0,0,0,0,0,0,0,0,12,12,13,13,14,14,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,3,6,6,7,7,9,9,0,5,5,7,7,8,7,9,9,0,5,5,7,7,8,8,9,9,0,7,7,8,8,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,9,9,9,9,10,10,0,0,0,9,9,9,9,10,10,0,0,0,10,10,10,10,11,11,0,0,0,0,0,10,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,4,7,7,0,0,0,0,0,4,4,7,7,0,0,0,0,0,4,5,7,7,0,0,0,0,0,6,7,8,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,10,9,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,9,0,0,0,0,0,0,9,9,10,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,9,10,10,0,0,0,0,0,0,9,10,9],"i8",O3,_.GLOBAL_BASE+284176),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,8,0,0,0,161,25,0,0,80,141,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,248,166,4,0,0,0,0,0,4,0,0,0,113,2,0,0,192,138,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,56,141,4,0,0,0,0,0,2,0,0,0,81,0,0,0,64,138,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,152,138,4,0,0,0,0,0,2,0,0,0,81,0,0,0,192,137,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,24,138,4,0,0,0,0,0,2,0,0,0,33,1,0,0,80,136,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,120,137,4,0,0,0,0,0,4,0,0,0,81,0,0,0,232,135,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,64,136,4,0,0,0,0,0,2,0,0,0,121,0,0,0,56,135,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,184,135,4,0,0,0,0,0,2,0,0,0,169,0,0,0,80,134,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,0,135,4,0,0,0,0,0,2,0,0,0,25,0,0,0,24,134,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,56,134,4,0,0,0,0,0,4,0,0,0,113,2,0,0,136,131,4,0,1,0,0,0,0,160,27,225,0,160,251,96,3,0,0,0,0,0,0,0,0,134,4,0,0,0,0,0,2,0,0,0,169,0,0,0,160,130,4,0,1,0,0,0,0,128,217,224,0,0,145,96,4,0,0,0,0,0,0,0,80,131,4,0,0,0,0,0,2,0,0,0,33,1,0,0,48,129,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,88,130,4,0,0,0,0,0,3,4,3,6,6,7,7,8,8,9,9,9,9,9,9,9,9,10,11,11,6,6,7,7,8,8,9,9,9,9,9,9,9,9,10,10,10,6,6,7,7,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,7,8,8,8,9,9,9,9,9,9,10,9,10,11,10,7,6,7,7,8,8,9,9,9,9,9,9,9,10,10,10,11,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,7,7,8,8,8,8,9,9,9,9,9,9,9,10,11,11,11,8,8,8,8,8,8,9,9,9,9,9,9,9,9,11,10,10,11,11,8,8,8,9,9,9,9,9,9,10,9,10,10,10,10,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,11,10,11,11,9,9,9,9,9,9,9,9,9,10,10,10,10,11,10,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,10,10,11,11,11,11,9,9,9,9,9,9,9,9,10,10,10,11,11,10,11,11,11,9,10,10,9,9,9,9,9,9,9,10,11,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,11,11,10,10,9,9,9,9,9,9,9,9,11,11,11,10,11,11,11,11,11,9,9,9,10,9,9,9,9,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,4,4,6,6,8,8,9,10,10,11,11,11,6,5,5,7,7,8,8,9,10,9,11,11,12,5,5,5,7,7,8,9,10,10,12,12,14,13,15,7,7,8,8,9,10,11,11,10,12,10,11,15,7,8,8,8,9,9,11,11,13,12,12,13,15,10,10,8,8,10,10,12,12,11,14,10,10,15,11,11,8,8,10,10,12,13,13,14,15,13,15,15,15,10,10,10,10,12,12,13,12,13,10,15,15,15,10,10,11,10,13,11,13,13,15,13,15,15,15,13,13,10,11,11,11,12,10,14,11,15,15,14,14,13,10,10,12,11,13,13,14,14,15,15,15,15,15,11,11,11,11,12,11,15,12,15,15,15,15,15,12,12,11,11,14,12,13,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,7,7,11,11,8,11,11,11,11,4,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,9,9,10,10,6,5,5,7,7,8,8,8,8,9,9,11,11,7,5,5,7,7,8,8,8,8,9,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,8,8,8,8,9,9,9,9,10,10,11,11,0,12,12,9,9,9,10,10,10,11,11,11,12,0,13,13,9,9,9,9,10,10,11,11,11,12,0,0,0,10,10,10,10,11,11,12,12,12,13,0,0,0,10,10,10,10,11,11,12,12,13,12,0,0,0,14,14,11,10,11,12,12,13,13,14,0,0,0,15,15,11,11,12,11,12,12,14,13,0,0,0,0,0,12,12,12,12,13,13,14,14,0,0,0,0,0,13,13,12,12,13,13,13,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,6,6,7,7,8,8,8,8,10,10,10,7,6,8,8,8,8,8,8,10,10,10,7,6,7,7,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,9,9,9,9,10,10,10,8,8,8,8,9,9,9,9,10,10,10,9,9,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,10,10,10,10,10,9,9,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,6,6,7,6,6,4,6,6,10,9,9,11,9,9,4,6,6,10,9,9,10,9,9,7,10,10,11,11,11,12,11,11,7,9,9,11,11,10,11,10,10,7,9,9,11,10,11,11,10,10,7,10,10,11,11,11,12,11,11,7,9,9,11,10,10,11,10,10,7,9,9,11,10,10,11,10,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,3,6,6,7,7,8,8,8,8,9,9,10,10,10,10,0,0,0,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,8,8,9,9,9,9,10,10,10,10,11,11,12,12,0,0,0,8,8,9,9,9,9,10,10,10,11,11,11,12,12,0,0,0,9,9,10,9,10,10,10,10,11,11,11,11,12,12,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,0,0,9,9,10,10,10,11,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,10,10,11,10,11,11,11,12,13,12,13,13,0,0,0,0,0,0,0,11,10,11,11,12,12,12,12,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,14,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,13,14,0,0,0,0,0,0,0,12,12,12,13,13,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,13,12,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,6,6,6,8,8,0,0,0,6,6,7,7,9,9,0,0,0,6,6,7,7,9,9,0,0,0,7,7,8,8,10,10,0,0,0,7,7,8,8,10,10,0,0,0,9,9,9,9,10,10,0,0,0,9,9,9,9,10,10,0,0,0,10,10,10,10,11,11,0,0,0,0,0,10,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,2,3,7,7,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,9,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,7,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,7,10,9,0,0,0,0,0,0,8,10,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,10,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,9,11,9,0,0,0,0,0,0,10,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,10,11,11,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,10,11,11,0,0,0,0,0,0,9,11,9],"i8",O3,_.GLOBAL_BASE+294712),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,6,12,14,12,14,16,17,18,4,2,5,11,7,10,12,14,15,9,4,5,11,7,10,13,15,18,15,6,7,5,6,8,11,13,16,11,5,6,5,5,6,9,13,15,12,5,7,6,5,6,9,12,14,12,6,7,8,6,7,9,12,13,14,8,8,7,5,5,8,10,12,16,9,9,8,6,6,7,9,9,0,0,0,0,0,0,0,10,9,12,15,12,13,16,14,16,7,1,5,14,7,10,13,16,16,9,4,6,16,8,11,16,16,16,14,4,7,16,9,12,14,16,16,10,5,7,14,9,12,14,15,15,13,8,9,14,10,12,13,14,15,13,9,9,7,6,8,11,12,12,14,8,8,5,4,5,8,11,12,16,10,10,6,5,6,8,9,10,0,0,0,0,0,0,0,0,0,0,0,0,64,191,64,0,0,0,0,0,88,203,64,0,0,0,0,0,130,228,64,0,0,0,0,0,112,183,64,0,0,0,0,0,148,193,64,0,0,0,0,0,64,223,64,0,0,0,0,0,112,199,64,0,0,0,0,0,136,211,64,0,0,0,0,0,106,232,64,154,153,153,153,153,153,185,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,2,0,0,0,2,0,0,30,0,0,0,25,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,25,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,242,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,2,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,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,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,0,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,12,0,0,0,12,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,10,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,12,0,0,0,12,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,99,0,0,0,99,0,0,0,99,0,0,0,0,0,0,0,51,51,51,51,51,51,211,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,18,64,0,0,0,0,0,0,22,64,0,0,0,0,0,0,62,64,208,171,4,0,0,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,0,64,191,64,0,0,0,0,0,100,201,64,0,0,0,0,0,124,229,64,0,0,0,0,0,64,207,64,0,0,0,0,0,88,219,64,0,0,0,0,0,64,239,64,0,0,0,0,0,106,248,64,154,153,153,153,153,153,185,191,154,153,153,153,153,153,169,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,4,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,30,0,0,0,25,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,22,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,242,255,255,255,0,0,0,0,0,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,246,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,236,255,255,255,246,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,10,0,0,0,255,255,255,255,10,0,0,0,10,0,0,0,255,255,255,255,20,0,0,0,20,0,0,0,255,255,255,255,20,0,0,0,20,0,0,0,255,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,4,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,15,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,10,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,10,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,244,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,249,255,255,255,251,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,238,255,255,255,238,255,255,255,238,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,4,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,12,0,0,0,14,0,0,0,20,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,4,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,20,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,4,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,12,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,244,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,250,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,14,0,0,0,20,0,0,0,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,254,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,20,0,0,0,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,15,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,232,255,255,255,236,255,255,255,242,255,255,255,246,255,255,255,250,255,255,255,248,255,255,255,248,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,250,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,8,0,0,0,12,0,0,0,236,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,240,255,255,255,244,255,255,255,236,255,255,255,246,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,241,255,255,255,244,255,255,255,246,255,255,255,248,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,251,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,234,255,255,255,236,255,255,255,242,255,255,255,244,255,255,255,244,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,246,255,255,255,250,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,226,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,230,255,255,255,232,255,255,255,236,255,255,255,236,255,255,255,236,255,255,255,0,0,0,0,0,0,0,0,154,153,153,153,153,153,233,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,1,0,0,0,1,0,0,15,39,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,51,51,51,51,51,51,211,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,156,255,255,255,156,255,255,255,156,255,255,255,151,255,255,255,126,255,255,255,126,255,255,255,126,255,255,255,116,255,255,255,0,0,0,0,0,0,26,64,0,0,0,0,0,0,32,64,0,0,0,0,0,0,62,64,0,0,0,0,0,192,88,64,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,8,64,0,0,0,0,0,0,16,64,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,64,64,0,0,64,64,0,0,128,64,0,0,128,64,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,64,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,0,65,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,0,0,198,66,200,239,4,0,216,239,4,0,8,181,0,0,16,188,4,0,8,181,0,0,48,188,4,0,8,181,0,0,112,188,4,0,1,0,0,0,0,0,0,0,32,0,0,0,240,233,0,0,216,225,4,0,216,225,4,0,0,226,4,0,0,226,4,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,200,208,4,0,200,208,4,0,240,208,4,0,240,208,4,0,1,0,0,0,0,0,0,0,32,0,0,0,88,206,0,0,176,209,4,0,176,209,4,0,240,208,4,0,240,208,4,0,1,0,0,0,0,0,0,0,32,0,0,0,160,220,1,0,176,188,4,0,176,188,4,0,216,188,4,0,216,188,4,0,1,0,0,0,0,0,0,0,32,0,0,0,160,220,1,0,152,189,4,0,152,189,4,0,216,188,4,0,216,188,4,0,2,0,0,0,100,0,0,0,96,208,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,40,190,4,0,0,0,0,0,0,0,0,0,0,0,0,0,80,190,4,0,0,0,0,0,0,0,0,0,0,0,0,0,120,190,4,0,0,0,0,0,0,0,0,0,0,0,0,0,160,190,4,0,0,0,0,0,200,190,4,0,240,190,4,0,0,0,0,0,0,0,0,0,24,191,4,0,64,191,4,0,0,0,0,0,0,0,0,0,104,191,4,0,144,191,4,0,0,0,0,0,0,0,0,0,184,191,4,0,224,191,4,0,0,0,0,0,0,0,0,0,8,192,4,0,48,192,4,0,88,192,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,2,0,0,0,100,0,0,0,192,189,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,5,8,10,10,10,11,11,12,14,18,7,5,5,6,8,9,10,12,14,17,9,5,4,5,6,8,10,11,13,19,9,5,4,4,5,6,9,10,12,17,8,6,5,4,4,5,7,10,11,15,8,7,7,6,5,5,6,9,11,14,8,9,8,7,6,5,6,7,11,14,9,11,11,9,7,6,6,6,9,14,11,14,15,13,9,8,7,7,9,14,13,15,19,17,12,11,10,9,10,14,0,0,0,0,4,0,0,0,81,0,0,0,248,207,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,80,208,4,0,0,0,0,0,4,0,0,0,113,2,0,0,104,205,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,224,207,4,0,0,0,0,0,2,0,0,0,81,0,0,0,232,204,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,64,205,4,0,0,0,0,0,2,0,0,0,33,1,0,0,120,203,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,160,204,4,0,0,0,0,0,4,0,0,0,81,0,0,0,16,203,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,104,203,4,0,0,0,0,0,2,0,0,0,121,0,0,0,96,202,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,224,202,4,0,0,0,0,0,2,0,0,0,169,0,0,0,120,201,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,40,202,4,0,0,0,0,0,2,0,0,0,25,0,0,0,64,201,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,96,201,4,0,0,0,0,0,2,0,0,0,169,0,0,0,88,200,4,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,8,201,4,0,0,0,0,0,2,0,0,0,121,0,0,0,168,199,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,40,200,4,0,0,0,0,0,2,0,0,0,225,0,0,0,128,198,4,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,104,199,4,0,0,0,0,0,2,0,0,0,185,1,0,0,104,196,4,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,40,198,4,0,0,0,0,0,2,0,0,0,225,0,0,0,64,195,4,0,1,0,0,0,0,117,153,225,0,24,61,97,4,0,0,0,0,0,0,0,40,196,4,0,0,0,0,0,2,0,0,0,105,1,0,0,128,193,4,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,240,194,4,0,0,0,0,0,1,0,0,0,49,0,0,0,128,192,4,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,184,192,4,0,0,0,0,0,2,3,4,4,4,5,5,6,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,7,8,8,8,8,8,8,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,7,7,7,6,9,7,10,8,12,12,13,13,14,14,4,7,7,9,9,9,8,9,8,10,9,11,9,14,9,14,10,13,11,4,7,7,9,9,9,9,8,9,10,10,11,11,12,13,12,13,14,15,7,9,9,10,11,10,10,10,10,11,12,13,13,13,14,17,14,15,16,7,9,9,10,10,10,10,10,10,11,12,13,13,14,14,15,15,18,18,8,9,9,11,10,11,11,11,12,13,12,14,14,16,15,15,17,18,15,8,9,9,10,10,11,11,11,11,13,13,14,14,15,15,15,16,16,18,7,9,8,10,10,11,11,12,12,14,14,15,15,16,16,15,17,16,18,8,9,9,10,10,11,12,12,12,13,13,16,15,17,16,17,18,17,18,9,10,10,12,11,13,13,14,13,14,14,15,17,16,18,17,18,17,18,9,10,10,12,11,12,13,13,14,15,16,14,15,16,18,18,18,18,17,11,11,11,13,13,14,14,16,15,15,15,16,15,15,18,18,18,17,16,11,11,12,13,13,15,14,15,16,16,16,17,16,15,18,17,18,16,18,12,13,13,15,15,15,16,18,16,17,16,17,16,17,17,17,18,18,17,13,13,13,15,13,16,15,17,16,16,16,18,18,18,18,16,17,17,18,13,15,14,15,15,18,17,18,18,18,16,18,17,18,17,18,16,17,17,14,14,14,15,16,17,16,18,18,18,17,18,17,18,18,18,16,16,16,14,17,16,17,15,16,18,18,17,18,17,18,17,18,18,18,17,18,17,15,16,15,18,15,18,17,16,18,18,18,18,18,18,17,18,16,18,17,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,5,3,9,8,9,9,9,9,9,9,9,9,9,9,5,7,8,9,9,9,9,9,9,9,9,9,9,9,9,5,7,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,3,5,5,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,5,6,6,7,7,8,8,9,9,9,9,9,9,9,9,9,9,10,10,10,10,5,6,6,7,7,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,8,8,9,8,9,9,9,9,9,9,10,10,10,10,10,10,10,10,7,7,7,8,8,9,9,9,9,9,9,9,9,10,9,10,10,10,9,10,9,8,8,8,9,8,9,9,9,9,10,9,10,10,10,10,10,10,10,10,10,10,8,8,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,7,7,8,8,7,7,9,8,10,9,11,11,4,7,6,9,8,9,9,9,9,10,9,11,9,12,9,4,6,7,8,8,9,9,9,9,10,10,10,11,11,12,7,9,8,10,10,11,11,10,10,11,11,12,12,13,12,7,8,8,10,10,10,11,10,10,11,11,11,12,12,13,8,9,9,11,11,11,11,11,11,12,12,13,13,13,13,8,9,9,11,11,11,11,11,11,12,12,13,13,13,14,8,9,9,10,10,11,11,12,11,13,13,14,13,14,14,8,9,9,10,10,11,11,12,12,12,12,13,13,14,14,9,10,10,11,11,12,12,13,12,13,13,14,14,15,15,9,10,10,11,11,12,12,12,13,13,13,14,14,14,15,10,11,11,12,12,13,13,14,13,14,14,15,14,15,15,10,11,11,12,12,13,12,13,14,14,14,14,14,15,15,11,12,12,13,13,13,13,14,14,15,14,15,15,16,16,11,12,12,13,13,13,13,14,14,14,15,15,15,16,16,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,2,5,5,7,7,7,7,7,7,8,8,5,6,6,7,7,7,7,8,8,8,8,5,6,6,7,7,7,7,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,7,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,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,8,9,9,10,10,4,6,6,8,8,9,9,9,9,10,10,11,10,4,6,6,8,8,9,9,9,9,10,10,11,11,7,8,8,10,9,10,10,10,10,11,11,12,12,7,8,8,10,10,10,10,10,10,11,11,12,12,8,9,9,10,10,11,11,11,11,12,12,13,13,8,9,9,10,10,11,11,11,11,12,12,13,13,8,9,9,11,10,11,11,12,12,13,13,14,13,8,9,9,10,10,11,11,12,12,13,13,13,13,9,10,10,11,11,12,12,13,13,13,13,14,14,9,10,10,11,11,12,12,13,13,13,13,14,14,10,11,11,12,12,13,13,14,13,14,14,15,14,10,11,11,12,12,13,13,14,13,14,14,15,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,4,7,7,8,8,8,8,10,10,11,11,4,6,6,7,7,9,9,9,9,10,10,11,11,4,6,6,7,7,9,9,9,9,10,10,11,11,7,8,8,9,9,9,9,10,10,11,11,12,12,7,7,7,9,8,10,9,10,10,11,11,12,12,8,9,9,9,10,10,10,11,11,12,12,13,13,8,9,9,10,9,10,10,11,11,12,12,13,13,8,9,9,10,10,11,11,11,11,12,12,13,13,8,9,9,10,10,11,11,12,11,12,12,13,13,10,10,10,11,11,12,12,12,12,13,13,14,14,10,10,10,11,11,12,12,12,12,13,13,14,14,11,11,11,12,12,13,13,13,13,14,14,14,14,11,11,11,12,12,13,13,13,13,14,14,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,5,5,6,6,7,7,8,8,8,8,5,6,6,7,7,7,7,8,8,8,8,5,6,6,6,7,7,7,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,6,7,7,7,7,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,8,8,8,8,8,8,8,8,9,9,8,8,8,8,8,8,8,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,8,7,9,9,7,9,10,5,8,8,7,10,9,7,10,9,5,8,8,8,11,10,8,10,10,7,10,10,9,9,12,10,12,12,7,10,10,9,12,10,10,11,12,5,8,8,8,10,10,8,11,11,7,11,10,10,12,11,9,10,12,7,10,11,10,12,12,9,12,9,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,5,6,6,7,7,8,8,9,9,10,10,11,11,11,11,5,5,5,7,6,8,7,9,9,9,9,10,10,11,11,12,12,5,5,5,6,6,7,8,8,9,9,9,10,10,11,11,12,12,6,7,6,7,7,8,8,9,9,9,9,10,10,11,11,12,12,6,6,7,7,7,8,8,9,9,9,9,10,10,11,11,12,12,7,8,8,8,8,9,9,9,9,10,10,11,11,11,11,12,12,7,7,8,8,8,9,9,9,9,10,10,11,11,11,11,12,12,8,9,9,9,9,9,9,10,10,10,10,11,11,12,12,12,12,8,9,9,9,9,9,9,10,10,10,10,11,11,12,12,12,12,9,9,9,9,9,10,10,10,10,10,11,11,11,12,12,13,13,9,9,9,9,9,10,10,10,10,11,10,11,11,12,12,13,13,10,10,10,10,10,11,11,11,11,11,11,11,12,12,12,13,13,10,10,10,10,10,11,11,11,11,11,11,12,11,12,12,13,13,11,11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,11,11,11,11,11,11,11,12,12,12,12,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,13,13,13,13,13,14,14,11,12,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,4,4,6,6,7,7,9,9,4,5,5,6,6,8,7,9,9,4,5,5,6,6,7,8,9,9,6,6,6,7,7,8,8,10,10,6,6,6,7,7,8,8,10,10,7,8,7,8,8,9,9,11,10,7,7,8,8,8,9,9,10,11,9,9,9,10,10,11,10,11,11,9,9,9,10,10,10,11,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,5,7,7,9,9,5,7,7,9,9,9,10,9,11,11,9,9,9,11,11,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,9,10,10,11,12,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,9,10,10,12,11,10,10,10,12,12,9,10,10,12,12,10,10,10,12,12,9,10,10,12,12,12,12,12,14,14,11,12,12,13,14,9,10,10,12,12,9,10,10,12,12,10,10,10,12,12,11,12,12,14,13,12,12,12,14,13,5,7,7,9,9,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,10,10,10,12,12,7,8,8,11,10,8,9,9,11,11,8,9,9,11,11,10,11,11,12,13,10,11,11,12,13,7,8,8,10,10,8,9,8,11,10,8,9,9,11,11,10,11,10,13,12,10,11,11,13,13,10,11,10,13,12,10,11,11,13,13,10,11,11,13,13,12,12,13,13,14,12,13,13,14,14,9,10,10,12,12,10,11,10,13,12,10,11,11,13,13,12,13,12,14,13,12,13,13,14,15,5,7,7,9,10,7,8,8,10,10,7,8,8,10,10,10,10,10,12,12,10,10,11,12,12,7,8,8,10,10,8,9,9,11,11,8,8,9,10,11,10,11,11,13,13,10,10,11,12,13,7,8,8,10,10,8,9,9,11,11,8,9,9,11,11,10,11,11,13,12,10,11,11,13,12,9,10,10,12,12,10,11,11,13,13,10,10,11,12,13,12,13,13,15,14,12,12,13,12,14,9,10,11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13,14,14,12,13,12,14,13,8,10,10,12,12,9,11,10,13,12,9,10,10,12,13,12,13,13,14,14,12,12,12,14,14],"i8",O3,_.GLOBAL_BASE+304880),C3([9,10,10,13,13,10,11,11,13,13,10,11,11,13,13,13,13,13,14,15,12,13,13,14,15,9,10,10,12,13,10,11,10,13,13,10,11,11,12,13,12,13,12,15,14,12,13,13,14,15,11,12,12,15,14,12,12,13,14,15,12,13,13,15,14,13,13,15,14,16,14,14,14,16,15,11,12,12,14,14,11,12,12,14,14,12,13,13,14,15,13,14,13,15,13,14,14,14,15,16,8,9,10,12,12,9,10,10,13,12,9,10,11,12,13,12,12,12,14,14,12,13,13,14,14,9,10,10,13,12,10,11,11,13,13,10,10,11,13,13,12,13,13,15,14,12,12,13,14,15,9,10,10,13,13,10,11,11,13,13,10,11,11,13,13,12,13,13,14,14,13,13,13,15,15,11,12,12,14,13,12,13,13,15,14,11,12,12,14,14,14,14,14,16,15,13,13,14,13,16,11,12,12,14,14,12,13,13,14,15,12,13,12,14,14,14,14,14,16,16,14,15,13,16,14,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,5,7,7,5,7,7,5,7,7,7,9,9,7,9,9,5,7,7,7,9,9,8,9,9,5,7,7,8,9,9,7,9,9,7,9,9,9,10,11,9,10,10,7,9,9,9,10,9,9,10,11,5,8,7,7,9,9,8,9,9,7,9,9,9,11,10,9,9,10,7,9,9,9,10,10,9,11,10,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,8,11,13,13,15,16,19,19,19,19,11,8,8,9,9,11,13,15,19,20,14,8,7,7,8,9,12,13,15,20,15,9,6,5,5,7,10,12,14,18,14,9,7,5,3,4,7,10,12,16,13,10,8,6,3,3,5,8,11,14,11,10,9,7,5,4,4,6,11,14,10,10,10,8,6,5,5,6,10,14,10,10,10,9,8,7,7,7,10,14,11,12,12,12,11,10,10,10,12,16,0,0,0,0,2,0,0,0,100,0,0,0,112,225,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,64,210,4,0,0,0,0,0,0,0,0,0,0,0,0,0,104,210,4,0,0,0,0,0,0,0,0,0,0,0,0,0,144,210,4,0,0,0,0,0,0,0,0,0,0,0,0,0,184,210,4,0,0,0,0,0,0,0,0,0,0,0,0,0,224,210,4,0,0,0,0,0,0,0,0,0,0,0,0,0,8,211,4,0,0,0,0,0,48,211,4,0,88,211,4,0,0,0,0,0,0,0,0,0,128,211,4,0,168,211,4,0,0,0,0,0,0,0,0,0,208,211,4,0,248,211,4,0,32,212,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,2,0,0,0,100,0,0,0,216,209,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,3,6,10,8,12,8,14,8,14,19,5,3,5,5,7,6,11,7,16,19,7,5,6,7,7,9,11,12,19,19,6,4,7,5,7,6,10,7,18,18,8,6,7,7,7,7,8,9,18,18,7,5,8,5,7,5,8,6,18,18,12,9,10,9,9,9,8,9,18,18,8,7,10,6,8,5,6,4,11,18,11,15,16,12,11,8,8,6,9,18,14,18,18,18,16,16,16,13,16,18,0,0,0,0,4,0,0,0,81,0,0,0,8,225,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,96,225,4,0,0,0,0,0,4,0,0,0,81,0,0,0,160,224,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,248,224,4,0,0,0,0,0,4,0,0,0,113,2,0,0,16,222,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,224,4,0,0,0,0,0,4,0,0,0,113,2,0,0,128,219,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,248,221,4,0,0,0,0,0,2,0,0,0,81,0,0,0,0,219,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,88,219,4,0,0,0,0,0,2,0,0,0,81,0,0,0,128,218,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,216,218,4,0,0,0,0,0,4,0,0,0,81,0,0,0,24,218,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,112,218,4,0,0,0,0,0,2,0,0,0,121,0,0,0,104,217,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,232,217,4,0,0,0,0,0,2,0,0,0,121,0,0,0,184,216,4,0,1,0,0,0,0,128,187,224,0,0,118,96,4,0,0,0,0,0,0,0,56,217,4,0,0,0,0,0,2,0,0,0,121,0,0,0,8,216,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,136,216,4,0,0,0,0,0,2,0,0,0,225,0,0,0,224,214,4,0,1,0,0,0,0,228,91,225,0,224,255,96,4,0,0,0,0,0,0,0,200,215,4,0,0,0,0,0,2,0,0,0,225,0,0,0,184,213,4,0,1,0,0,0,0,192,221,224,0,0,145,96,4,0,0,0,0,0,0,0,160,214,4,0,0,0,0,0,2,0,0,0,33,1,0,0,72,212,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,112,213,4,0,0,0,0,0,1,6,6,7,8,8,11,10,9,9,11,9,10,9,11,11,9,6,7,6,11,8,11,9,10,10,11,9,11,10,10,10,11,9,5,7,7,8,8,10,11,8,8,11,9,9,10,11,9,10,11,8,9,6,8,8,9,9,10,10,11,11,11,9,11,10,9,11,8,8,8,9,8,9,10,11,9,9,11,11,10,9,9,11,10,8,11,8,9,8,11,9,10,9,10,11,11,10,10,9,10,10,8,8,9,10,10,10,9,11,9,10,11,11,11,11,10,9,11,9,9,11,11,10,8,11,11,11,9,10,10,11,10,11,11,9,11,10,9,11,10,10,10,10,9,11,10,11,10,9,9,10,11,9,8,10,11,11,10,10,11,9,11,10,11,11,10,11,9,9,8,10,8,9,11,9,8,10,10,9,11,10,11,10,11,9,11,8,10,11,11,11,11,10,10,11,11,11,11,10,11,11,10,9,8,10,10,9,11,10,11,11,11,9,9,9,11,11,11,10,10,9,9,10,9,11,11,11,11,8,10,11,10,11,11,10,11,11,9,9,9,10,9,11,9,11,11,11,11,11,10,11,11,10,11,10,11,11,9,11,10,11,10,9,10,9,10,10,11,11,11,11,9,10,9,10,11,11,10,11,11,11,11,11,11,10,11,11,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,6,5,9,9,10,10,6,7,9,9,10,10,10,10,5,10,8,10,8,10,10,8,8,10,9,10,10,10,10,5,8,9,10,10,10,10,8,10,10,10,10,10,10,10,9,10,10,10,10,10,10,9,9,10,10,10,10,10,10,9,9,8,9,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,8,10,10,10,10,10,10,10,10,10,10,10,10,10,6,8,8,10,10,10,8,10,10,10,10,10,10,10,10,5,8,8,10,10,10,9,9,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,2,5,5,6,6,7,7,8,8,8,8,4,6,6,7,7,8,7,8,8,8,8,4,6,6,7,7,7,7,8,8,8,8,6,7,7,7,7,8,8,8,8,8,9,6,7,7,7,7,8,8,8,8,9,9,7,7,7,8,8,8,8,9,9,9,9,7,7,7,8,8,8,8,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,8,8,9,9,9,9,9,9,8,8,8,9,8,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,5,8,8,10,10,12,12,4,7,7,8,8,9,9,12,11,14,13,4,7,7,7,8,9,10,11,11,13,12,5,8,8,9,9,11,11,12,13,15,14,5,7,8,9,9,11,11,13,13,17,15,8,9,10,11,11,12,13,17,14,17,16,8,10,9,11,11,12,12,13,15,15,17,10,11,11,12,13,14,15,15,16,16,17,9,11,11,12,12,14,15,17,15,15,16,11,14,12,14,15,16,15,16,16,16,15,11,13,13,14,14,15,15,16,16,15,16,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,4,6,5,7,7,8,8,8,8,8,8,4,5,6,7,7,8,8,8,8,8,8,6,7,7,8,8,8,8,9,9,9,9,6,7,7,8,8,8,8,9,9,9,9,7,8,8,8,8,9,9,9,10,9,10,7,8,8,8,8,9,9,9,9,10,9,8,8,8,9,9,10,10,10,10,10,10,8,8,8,9,9,9,9,10,10,10,10,8,8,8,9,9,9,10,10,10,10,10,8,8,8,9,9,10,10,10,10,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,4,8,8,4,8,8,5,11,9,8,12,11,8,12,11,5,10,11,8,11,12,8,11,12,4,11,11,11,14,13,10,13,13,8,14,13,12,14,16,12,16,15,8,14,14,13,16,14,12,15,16,4,11,11,10,14,13,11,14,14,8,15,14,12,15,15,12,14,16,8,14,14,11,16,15,12,15,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,6,6,7,7,9,9,4,4,4,6,6,8,8,9,9,4,4,4,6,6,7,7,9,9,6,6,6,7,7,8,8,10,9,6,6,6,7,7,8,8,9,10,7,8,7,8,8,9,9,10,10,7,8,8,8,8,9,9,10,10,9,9,9,10,10,10,10,11,11,9,9,9,10,10,10,10,11,11,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,6,8,8,8,8,10,10,4,5,6,8,8,8,8,10,10,7,8,8,9,9,9,9,11,11,7,8,8,9,9,9,9,11,11,7,8,8,10,9,11,11,12,11,7,8,8,9,9,11,11,12,12,9,10,10,11,11,12,12,13,12,9,10,10,11,11,12,12,12,13,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,5,5,8,8,6,6,7,9,9,6,6,6,9,9,9,10,9,11,11,9,9,10,11,11,6,7,7,10,9,7,7,8,9,10,7,7,8,10,10,10,10,10,10,12,9,9,10,11,12,6,7,7,9,9,7,8,7,10,10,7,8,7,10,10,9,10,9,12,11,10,10,9,12,10,9,10,10,12,11,10,10,10,12,12,9,10,10,12,12,12,11,12,13,13,11,11,12,12,13,9,10,10,11,12,9,10,10,12,12,10,10,10,12,12,11,12,11,14,13,11,12,12,14,13,5,7,7,10,10,7,8,8,10,10,7,8,7,10,10,10,10,10,12,12,10,10,10,12,12,6,8,7,10,10,7,7,9,10,11,8,9,9,11,10,10,10,11,11,13,10,10,11,12,13,6,8,8,10,10,7,9,8,11,10,8,9,9,10,11,10,11,10,13,11,10,11,10,12,12,10,11,10,12,11,10,10,10,12,13,10,11,11,13,12,11,11,13,11,14,12,12,13,14,14,9,10,10,12,13,10,11,10,13,12,10,11,11,12,13,11,12,11,14,12,12,13,13,15,14,5,7,7,10,10,7,7,8,10,10,7,8,8,10,10,10,10,10,11,12,10,10,10,12,12,7,8,8,10,10,8,9,8,11,10,7,8,9,10,11,10,11,11,12,12,10,10,11,11,13,7,7,8,10,10,8,8,9,10,11,7,9,7,11,10,10,11,11,13,12,11,11,10,13,11,9,10,10,12,12,10,11,11,13,12,10,10,11,12,12,12,13,13,14,14,11,11,12,12,14,10,10,11,12,12,10,11,11,12,13,10,10,10,13,12,12,13,13,15,14,12,13,10,14,11,8,10,10,12,12,10,11,10,13,13,9,10,10,12,12,12,13,13,15,14,11,12,12,13,13,9,10,10,13,12,10,10,11,13,13,10,11,10,13,12,12,12,13,14,15,12,13,12,15,13,9,10,10,12,13,10,11,10,13,12,10,10,11,12,13,12,14,12,15,13,12,12,13,14,15,11,12,11,14,13,11,11,12,14,15,12,13,12,15,14,13,11,15,11,16,13,14,14,16,15,11,12,12,14,14,11,12,11,14,13,12,12,13,14,15,13,14,12,16,12,14,14,14,15,15,8,10,10,12,12,9,10,10,12,12,10,10,11,13,13,11,12,12,13,13,12,13,13,14,15,9,10,10,13,12,10,11,11,13,12,10,10,11,13,13,12,13,12,15,14,12,12,13,13,16,9,9,10,12,13,10,10,11,12,13,10,11,10,13,13,12,12,13,13,15,13,13,12,15,13,11,12,12,14,14,12,13,12,15,14,11,11,12,13,14,14,14,14,16,15,13,12,15,12,16,11,11,12,13,14,12,13,13,14,15,10,12,11,14,13,14,15,14,16,16,13,14,11,15,11,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,8,8,6,7,7,9,9,5,7,7,9,9,9,10,9,11,11,9,9,10,11,11,6,8,8,10,10,8,9,10,11,11,8,9,10,11,11,10,11,11,12,13,10,11,11,13,13,6,8,8,10,10,8,10,9,11,11,8,10,9,11,11,10,11,11,13,13,10,11,11,13,12,9,11,11,14,13,10,12,12,15,14,10,12,11,14,13,12,13,13,15,15,12,13,13,16,14,9,11,11,13,14,10,11,12,14,14,10,12,12,14,15,12,13,13,14,15,12,13,14,15,16,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,14,11,12,12,14,14,8,10,10,12,12,9,11,12,12,13,10,12,12,13,13,12,12,13,14,15,11,13,13,15,15,7,10,10,12,12,9,12,11,13,12,10,11,12,13,13,12,13,12,15,14,11,12,13,15,15,10,12,12,15,14,11,13,13,16,15,11,13,13,16,15,14,13,14,15,16,13,15,15,17,17,10,12,12,14,15,11,12,12,15,15,11,13,13,15,16,13,15,13,16,15,13,15,15,16,17,5,8,8,11,11,8,10,10,12,12,8,10,10,12,12,11,12,12,14,14,11,12,12,14,14,7,10,10,12,12,10,12,12,14,13,9,11,12,12,13,12,13,13,15,15,12,12,13,13,15,7,10,10,12,13,10,11,12,13,13,10,12,11,13,13,11,13,13,15,15,12,13,12,15,14,9,12,12,15,14,11,13,13,15,15,11,12,13,15,15,13,14,14,17,19,13,13,14,16,16,10,12,12,14,15,11,13,13,15,16,11,13,12,16,15,13,15,15,17,18,14,15,13,16,15,8,11,11,15,14,10,12,12,16,15,10,12,12,16,16,14,15,15,18,17,13,14,15,16,18,9,12,12,15,15,11,12,14,16,17,11,13,13,16,15,15,15,15,17,18,14,15,16,17,17,9,12,12,15,15,11,14,13,16,16,11,13,13,16,16,15,16,15,17,18,14,16,15,17,16,12,14,14,17,16,12,14,15,18,17,13,15,15,17,17,15,15,18,16,20,15,16,17,18,18,11,14,14,16,17,13,15,14,18,17,13,15,15,17,17,15,17,15,18,17,15,17,16,19,18,8,11,11,14,15,10,12,12,15,15,10,12,12,16,16,13,14,14,17,16,14,15,15,17,17,9,12,12,15,16,11,13,13,16,16,11,12,13,16,16,14,16,15,20,17,14,16,16,17,17,9,12,12,15,16,11,13,13,16,17,11,13,13,17,16,14,15,15,17,18,15,15,15,18,18,11,14,14,17,16,13,15,15,17,17,13,14,14,18,17,15,16,16,18,19,15,15,17,17,19,11,14,14,16,17,13,15,14,17,19,13,15,14,18,17,15,17,16,18,18,15,17,15,18,16,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,4,5,6,6,5,6,6,5,6,6,6,7,8,6,7,8,5,6,6,6,8,7,6,8,7,5,6,6,6,8,8,6,8,8,6,8,8,7,7,10,8,9,9,6,8,8,7,9,8,8,9,10,5,6,6,6,8,8,7,8,8,6,8,8,8,10,9,7,8,9,6,8,8,8,9,9,7,10,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,7,5,8,7,7,10,10,7,9,10,5,7,8,7,10,9,7,10,10,5,8,8,8,10,10,8,10,10,7,10,10,10,11,12,10,12,13,7,10,10,9,13,11,10,12,13,5,8,8,8,10,10,8,10,10,7,10,10,10,12,12,9,11,12,7,10,11,10,12,12,10,13,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,7,10,9,11,10,15,11,13,16,6,4,6,6,7,7,10,9,12,16,10,6,5,6,6,7,10,11,16,16,9,6,7,6,7,7,10,8,14,16,11,6,5,4,5,6,8,9,15,16,9,6,6,5,6,6,9,8,14,16,12,7,6,6,5,6,6,7,13,16,8,6,7,6,5,5,4,4,11,16,9,8,9,9,7,7,6,5,13,16,14,14,16,15,16,15,16,16,16,16,0,0,0,0,2,0,0,0,64,0,0,0,136,239,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,192,226,4,0,0,0,0,0,0,0,0,0,0,0,0,0,232,226,4,0,0,0,0,0,0,0,0,0,0,0,0,0,16,227,4,0,0,0,0,0,0,0,0,0,0,0,0,0,56,227,4,0,0,0,0,0,0,0,0,0,0,0,0,0,96,227,4,0,0,0,0,0,136,227,4,0,176,227,4,0,0,0,0,0,0,0,0,0,216,227,4,0,0,228,4,0,40,228,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,4,0,0,0,81,0,0,0,32,239,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,120,239,4,0,0,0,0,0,4,0,0,0,81,0,0,0,184,238,4,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,16,239,4,0,0,0,0,0,4,0,0,0,113,2,0,0,40,236,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,238,4,0,0,0,0,0,4,0,0,0,113,2,0,0,152,233,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,16,236,4,0,0,0,0,0,2,0,0,0,81,0,0,0,24,233,4,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,112,233,4,0,0,0,0,0,2,0,0,0,169,0,0,0,48,232,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,224,232,4,0,0,0,0,0,2,0,0,0,25,0,0,0,248,231,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,24,232,4,0,0,0,0,0,4,0,0,0,81,0,0,0,144,231,4,0,1,0,0,0,0,176,19,225,0,176,19,97,2,0,0,0,0,0,0,0,232,231,4,0,0,0,0,0,2,0,0,0,225,0,0,0,104,230,4,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,80,231,4,0,0,0,0,0,2,0,0,0,185,1,0,0,80,228,4,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,16,230,4,0,0,0,0,0,1,6,6,7,8,7,7,10,9,10,9,11,10,9,11,10,9,9,9,9,10,6,8,7,9,9,8,8,10,10,9,11,11,12,12,10,9,11,9,12,10,9,6,9,8,9,12,8,8,11,9,11,11,12,11,12,12,10,11,11,10,10,11,7,10,9,9,9,9,9,10,9,10,9,10,10,12,10,10,10,11,12,10,10,7,9,9,9,10,9,9,10,10,9,9,9,11,11,10,10,10,10,9,9,12,7,9,10,9,11,9,10,9,10,11,11,11,10,11,12,9,12,11,10,10,10,7,9,9,9,9,10,12,10,9,11,12,10,11,12,12,11,9,10,11,10,11,7,9,10,10,11,10,9,10,11,11,11,10,12,12,12,11,11,10,11,11,12,8,9,10,12,11,10,10,12,12,12,12,12,10,11,11,9,11,10,12,11,11,8,9,10,10,11,12,11,11,10,10,10,12,12,12,9,10,12,12,12,12,12,8,10,11,10,10,12,9,11,12,12,11,12,12,12,12,10,12,10,10,10,10,8,12,11,11,11,10,10,11,12,12,12,12,11,12,12,12,11,11,11,12,10,9,10,10,12,10,12,10,12,12,10,10,10,11,12,12,12,11,12,12,12,11,10,11,12,12,12,11,12,12,11,12,12,11,12,12,12,12,11,12,12,10,10,10,10,11,11,12,11,12,12,12,12,12,12,12,11,12,11,10,11,11,12,11,11,9,10,10,10,12,10,10,11,9,11,12,11,12,11,12,12,10,11,10,12,9,9,9,12,11,10,11,10,12,10,12,10,12,12,12,11,11,11,11,11,10,9,10,10,11,10,11,11,12,11,10,11,12,12,12,11,11,9,12,10,12,9,10,12,10,10,11,10,11,11,12,11,10,11,10,11,11,11,11,12,11,11,10,9,10,10,10,9,11,11,10,9,12,10,11,12,11,12,12,11,12,11,12,11,10,11,10,12,11,12,11,12,11,12,10,11,10,10,12,11,10,11,11,11,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,5,5,6,5,9,10,11,11,10,10,10,10,10,10,5,8,8,8,10,10,10,10,10,10,10,10,10,10,10,5,8,9,9,9,10,10,10,10,10,10,10,10,10,10,5,10,8,10,10,10,10,10,10,10,10,10,10,10,10,4,8,9,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,5,6,6,4,6,6,6,6,4,6,6,6,6,6,6,6,7,7,6,6,6,7,7,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,10,10,12,12,13,13,18,17,3,6,6,9,9,11,11,13,13,14,14,18,17,3,6,6,9,9,11,11,13,13,14,14,17,18,7,9,9,11,11,13,13,14,14,15,15,0,0,7,9,9,11,11,13,13,14,14,15,16,19,18,10,11,11,13,13,14,14,16,15,17,18,0,0,10,11,11,13,13,14,14,15,15,16,18,0,0,11,13,13,14,14,15,15,17,17,0,19,0,0,11,13,13,14,14,14,15,16,18,0,19,0,0,13,14,14,15,15,18,17,18,18,0,19,0,0,13,14,14,15,16,16,16,18,18,19,0,0,0,16,17,17,0,17,19,19,0,19,0,0,0,0,16,19,16,17,18,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,4,4,7,7,7,7,9,9,4,6,6,8,8,8,8,9,9,4,6,6,8,8,8,8,9,9,7,8,8,9,9,9,9,11,10,7,8,8,9,9,9,9,10,11,7,8,8,9,9,10,10,11,11,7,8,8,9,9,10,10,11,11,9,9,9,10,10,11,11,12,12,9,9,9,10,10,11,11,12,12,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3,5,5,8,8,6,6,6,9,9,6,6,6,9,9,9,10,9,11,11,9,9,9,11,11,6,7,7,10,10,7,7,8,10,10,7,7,8,10,10,10,10,10,11,12,9,10,10,11,12,6,7,7,10,10,7,8,7,10,10,7,8,7,10,10,10,11,10,12,11,10,10,10,13,10,9,10,10,12,12,10,11,10,14,12,9,11,11,13,13,11,12,13,13,13,11,12,12,15,13,9,10,10,12,13,9,11,10,12,13,10,10,11,12,13,11,12,12,12,13,11,12,12,13,13,5,7,7,10,10,7,8,8,10,10,7,8,8,10,10,10,11,10,12,13,10,10,11,12,12,6,8,8,11,10,7,8,9,10,12,8,9,9,11,11,11,10,11,11,12,10,11,11,13,12,7,8,8,10,11,8,9,8,11,10,8,9,9,11,11,10,12,10,13,11,10,11,11,13,13,10,11,10,14,13,10,10,11,13,13,10,12,11,14,13,12,11,13,12,13,13,12,13,14,14,10,11,11,13,13,10,11,10,12,13,10,12,12,12,14,12,12,12,14,12,12,13,12,17,15,5,7,7,10,10,7,8,8,10,10,7,8,8,11,10,10,10,11,12,12,10,11,11,12,13,6,8,8,11,10,8,9,9,11,11,7,8,9,10,11,11,11,11,12,12,10,10,11,12,13,6,8,8,10,11,8,9,9,11,11,7,9,7,11,10,10,12,12,13,13,11,11,10,13,11,9,11,10,14,13,11,11,11,15,13,10,10,11,13,13,12,13,13,14,14,12,11,12,12,13,10,11,11,12,13,10,11,12,13,13,10,11,10,13,12,12,12,13,14,0,12,13,11,13,11,8,10,10,13,13,10,11,11,14,13,10,11,11,13,12,13,14,14,14,15,12,12,12,15,14,9,11,10,13,12,10,10,11,13,14,11,11,11,15,12,13,12,14,15,16,13,13,13,14,13,9,11,11,12,12,10,12,11,13,13,10,11,11,13,14,13,13,13,15,15,13,13,14,17,15,11,12,12,14,14,10,11,12,13,15,12,13,13,0,15,13,11,14,12,16,14,16,14,0,15,11,12,12,14,16,11,13,12,16,15,12,13,13,14,15,12,14,12,15,13,15,14,14,16,16,8,10,10,13,13,10,11,10,13,14,10,11,11,13,13,13,13,12,14,14,14,13,13,16,17,9,10,10,12,14,10,12,11,14,13,10,11,12,13,14,12,12,12,15,15,13,13,13,14,14,9,10,10,13,13,10,11,12,12,14,10,11,10,13,13,13,13,13,14,16,13,13,13,14,14,11,12,13,15,13,12,14,13,14,16,12,12,13,13,14,13,14,14,17,15,13,12,17,13,16,11,12,13,14,15,12,13,14,14,17,11,12,11,14,14,13,16,14,16,0,14,15,11,15,11,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,7,7,6,7,7,8,8,6,7,8,8,8,8,9,9,11,11,8,9,9,11,11,6,9,8,10,10,8,10,10,11,11,8,10,10,11,11,10,11,10,13,12,9,11,10,13,13,6,8,9,10,10,8,10,10,11,11,8,10,10,11,11,9,10,11,13,12,10,10,11,12,12,8,11,11,14,13,10,12,11,15,13,9,12,11,15,14,12,14,13,16,14,12,13,13,17,14,8,11,11,13,14,9,11,12,14,15,10,11,12,13,15,11,13,13,14,16,12,13,14,14,16,5,9,9,11,11,9,11,11,12,12,8,11,11,12,12,11,12,12,15,14,10,12,12,15,15,8,11,11,13,12,10,12,12,13,13,10,12,12,14,13,12,12,13,14,15,11,13,13,17,16,7,11,11,13,13,10,12,12,14,13,10,12,12,13,14,12,13,12,15,14,11,13,13,15,14,9,12,12,16,15,11,13,13,17,16,10,13,13,16,16,13,14,15,15,16,13,15,14,19,17,9,12,12,14,16,11,13,13,15,16,10,13,13,17,16,13,14,13,17,15,12,15,15,16,17,5,9,9,11,11,8,11,11,13,12,9,11,11,12,12,10,12,12,14,15,11,12,12,14,14,7,11,10,13,12,10,12,12,14,13,10,11,12,13,13,11,13,13,15,16,12,12,13,15,15,7,11,11,13,13,10,13,13,14,14,10,12,12,13,13,11,13,13,16,15,12,13,13,15,14,9,12,12,15,15,10,13,13,17,16,11,12,13,15,15,12,15,14,18,18,13,14,14,16,17,9,12,12,15,16,10,13,13,15,16,11,13,13,15,16,13,15,15,17,17,13,15,14,16,15,7,11,11,15,16,10,13,12,16,17,10,12,13,15,17,15,16,16,18,17,13,15,15,17,18,8,12,12,16,16,11,13,14,17,18,11,13,13,18,16,15,17,16,17,19,14,15,15,17,16,8,12,12,16,15,11,14,13,18,17,11,13,14,18,17,15,16,16,18,17,13,16,16,18,18,11,15,14,18,17,13,14,15,18,0,12,15,15,0,17,17,16,17,17,18,14,16,18,18,0,11,14,14,17,0,12,15,14,17,19,12,15,14,18,0,15,18,16,0,17,14,18,16,18,0,7,11,11,16,15,10,12,12,18,16,10,13,13,16,15,13,15,14,17,17,14,16,16,19,18,8,12,12,16,16,11,13,13,18,16,11,13,14,17,16,14,15,15,19,18,15,16,16,0,19,8,12,12,16,17,11,13,13,17,17,11,14,13,17,17,13,15,15,17,19,15,17,17,19,0,11,14,15,19,17,12,15,16,18,18,12,14,15,19,17,14,16,17,0,18,16,16,19,17,0,11,14,14,18,19,12,15,14,17,17,13,16,14,17,16,14,17,16,18,18,15,18,15,0,18,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,5,6,6,5,6,6,5,7,7,7,8,9,7,8,9,5,7,7,7,9,8,7,9,7,4,7,7,7,9,9,7,8,8,6,9,8,7,8,11,9,11,10,6,8,9,8,11,8,9,10,11,4,7,7,7,8,8,7,9,9,6,9,8,9,11,10,8,8,11,6,8,9,9,10,11,8,11,8,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,5,7,7,5,7,8,5,8,8,8,10,10,8,10,11,5,8,8,8,10,10,8,10,10,4,9,9,9,12,11,8,11,11,8,12,11,10,12,14,10,13,13,7,11,11,10,14,12,11,14,14,4,9,9,8,11,11,9,11,12,7,11,11,10,13,14,10,12,14,8,11,12,10,14,14,10,13,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,5,8,7,14,8,9,19,5,2,5,5,9,6,9,19,8,4,5,7,8,9,13,19,7,4,6,5,9,6,9,19,12,8,7,9,10,11,13,19,8,5,8,6,9,6,7,19,8,8,10,7,7,4,5,19,12,17,19,15,18,13,11,18,9,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,112,199,64,0,0,0,0,0,136,211,64,0,0,0,0,0,124,229,64,0,0,0,0,0,255,244,64,200,47,1,0,32,240,4,0,200,47,1,0,64,240,4,0,200,47,1,0,128,240,4,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,248,45,5,0,248,45,5,0,32,46,5,0,32,46,5,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,32,5,5,0,32,5,5,0,72,5,5,0,72,5,5,0,2,0,0,0,0,0,0,0,32,0,0,0,24,73,1,0,8,6,5,0,8,6,5,0,72,5,5,0,72,5,5,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,192,240,4,0,192,240,4,0,232,240,4,0,232,240,4,0,2,0,0,0,0,0,0,0,32,0,0,0,224,163,2,0,168,241,4,0,168,241,4,0,232,240,4,0,232,240,4,0,2,0,0,0,100,0,0,0,184,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,242,4,0,0,0,0,0,0,0,0,0,0,0,0,0,96,242,4,0,0,0,0,0,0,0,0,0,0,0,0,0,136,242,4,0,0,0,0,0,0,0,0,0,0,0,0,0,176,242,4,0,0,0,0,0,216,242,4,0,0,243,4,0,0,0,0,0,0,0,0,0,40,243,4,0,80,243,4,0,0,0,0,0,0,0,0,0,120,243,4,0,160,243,4,0,0,0,0,0,0,0,0,0,200,243,4,0,240,243,4,0,0,0,0,0,0,0,0,0,24,244,4,0,64,244,4,0,104,244,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,2,0,0,0,100,0,0,0,208,241,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,4,7,9,9,9,8,9,10,13,16,5,4,5,6,7,7,8,9,12,16,6,5,5,5,7,7,9,10,12,15,7,6,5,4,5,6,8,9,10,13,8,7,7,5,5,5,7,9,10,12,7,7,7,6,5,5,6,7,10,12,8,8,8,7,7,5,5,6,9,11,8,9,9,8,8,6,6,5,8,11,10,11,12,12,11,9,9,8,9,12,13,14,15,15,14,12,12,11,11,13,0,0,0,0,4,0,0,0,81,0,0,0,80,4,5,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,168,4,5,0,0,0,0,0,4,0,0,0,113,2,0,0,192,1,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,56,4,5,0,0,0,0,0,2,0,0,0,81,0,0,0,64,1,5,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,152,1,5,0,0,0,0,0,2,0,0,0,33,1,0,0,208,255,4,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,248,0,5,0,0,0,0,0,4,0,0,0,81,0,0,0,104,255,4,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,192,255,4,0,0,0,0,0,2,0,0,0,121,0,0,0,184,254,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,56,255,4,0,0,0,0,0,2,0,0,0,169,0,0,0,208,253,4,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,128,254,4,0,0,0,0,0,2,0,0,0,25,0,0,0,152,253,4,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,184,253,4,0,0,0,0,0,2,0,0,0,169,0,0,0,176,252,4,0,1,0,0,0,0,128,208,224,0,0,118,96,4,0,0,0,0,0,0,0,96,253,4,0,0,0,0,0,2,0,0,0,121,0,0,0,0,252,4,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,128,252,4,0,0,0,0,0,2,0,0,0,225,0,0,0,216,250,4,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,192,251,4,0,0,0,0,0,2,0,0,0,185,1,0,0,192,248,4,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,128,250,4,0,0,0,0,0,2,0,0,0,33,1,0,0,80,247,4,0,1,0,0,0,0,24,157,225,0,24,61,97,5,0,0,0,0,0,0,0,120,248,4,0,0,0,0,0,2,0,0,0,105,1,0,0,144,245,4,0,1,0,0,0,0,144,27,225,0,128,184,96,5,0,0,0,0,0,0,0,0,247,4,0,0,0,0,0,1,0,0,0,49,0,0,0,144,244,4,0,1,0,0,0,0,0,152,224,0,0,16,96,6,0,0,0,0,0,0,0,200,244,4,0,0,0,0,0,2,4,4,4,4,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,24,0,0,0,23,0,0,0,25,0,0,0,22,0,0,0,26,0,0,0,21,0,0,0,27,0,0,0,20,0,0,0,28,0,0,0,19,0,0,0,29,0,0,0,18,0,0,0,30,0,0,0,17,0,0,0,31,0,0,0,16,0,0,0,32,0,0,0,15,0,0,0,33,0,0,0,14,0,0,0,34,0,0,0,13,0,0,0,35,0,0,0,12,0,0,0,36,0,0,0,11,0,0,0,37,0,0,0,10,0,0,0,38,0,0,0,9,0,0,0,39,0,0,0,8,0,0,0,40,0,0,0,7,0,0,0,41,0,0,0,6,0,0,0,42,0,0,0,5,0,0,0,43,0,0,0,4,0,0,0,44,0,0,0,3,0,0,0,45,0,0,0,2,0,0,0,46,0,0,0,1,0,0,0,47,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,1,4,4,7,7,7,7,7,7,8,8,10,9,11,10,13,11,14,13,6,6,6,8,8,8,8,8,7,9,8,11,9,13,11,14,12,14,13,5,6,6,8,8,8,8,8,8,9,9,11,11,13,11,14,13,15,15,17,8,8,8,8,9,9,9,8,11,9,12,10,13,11,14,12,14,13,17,8,8,8,8,9,9,9,9,10,10,11,11,13,13,13,14,16,15,17,12,12,8,8,9,9,10,10,11,11,12,11,13,12,13,12,14,13,16,12,12,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,17,17,17,9,9,9,9,11,11,12,12,12,13,13,13,16,14,14,14,17,17,17,9,8,9,8,11,10,12,12,13,13,14,14,15,15,16,16,17,17,17,12,12,10,10,11,12,12,13,13,14,13,15,15,14,16,15,17,17,17,12,12,10,8,12,9,13,12,14,14,15,14,15,16,16,16,17,17,17,17,17,11,11,12,12,14,14,14,16,15,16,15,16,15,17,17,17,17,17,17,11,9,12,10,13,11,15,14,16,16,17,16,16,15,17,17,17,17,17,15,15,12,12,14,14,15,16,16,15,16,16,17,17,17,17,17,17,17,14,14,12,10,14,11,15,12,17,16,15,16,17,16,17,17,17,17,17,17,17,13,13,14,14,14,16,17,17,16,17,17,17,17,17,17,17,17,17,17,13,9,13,12,15,13,16,16,17,17,17,17,17,17,17,17,17,17,17,15,17,14,14,15,16,16,17,16,17,16,17,17,17,17,17,17,17,17,17,17,14,13,15,16,16,17,16,17,17],"i8",O3,_.GLOBAL_BASE+315120),C3([17,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,6,0,0,0,12,0,0,0,5,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,3,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,4,3,10,8,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,2,4,4,6,6,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,11,11,11,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,10,11,10,7,7,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,8,8,8,8,9,9,9,9,9,9,9,9,10,9,10,10,10,10,11,11,11,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,8,8,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,11,11,11,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,10,10,6,6,6,8,8,9,9,8,8,9,9,10,10,11,11,6,5,5,8,7,9,9,8,8,9,9,10,10,11,11,20,8,8,8,8,9,9,9,9,10,10,11,10,12,11,20,8,8,8,8,9,9,9,9,10,10,11,11,12,12,20,12,12,9,9,10,10,10,10,11,11,12,12,13,12,20,13,13,9,9,10,10,10,10,11,11,12,12,13,13,20,20,20,9,9,9,9,10,10,11,11,12,12,13,12,20,20,20,9,9,9,8,10,10,12,11,12,12,13,13,20,20,20,13,13,10,10,11,11,12,12,13,13,13,13,20,20,20,13,13,10,10,11,10,12,11,13,13,14,14,20,20,20,20,20,11,11,11,11,12,12,13,13,14,14,20,20,20,20,20,11,10,11,11,13,11,13,13,14,14,20,20,21,21,21,14,14,11,12,13,13,13,13,14,14,21,21,21,21,21,15,15,12,11,13,12,14,13,15,14,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,2,4,4,6,6,7,7,7,7,7,7,9,9,9,6,7,7,7,7,7,8,8,9,9,9,6,6,7,7,7,7,8,8,9,9,9,7,7,7,7,8,8,8,8,9,9,9,7,7,7,7,8,8,8,8,9,9,9,7,7,7,7,8,8,8,8,9,9,9,7,7,7,7,7,7,8,8,9,9,9,7,7,8,8,7,7,8,8,9,9,9,9,9,8,8,7,7,8,8,9,9,9,9,9,8,8,7,7,8,8,9,9,9,9,9,7,7,7,7,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,7,7,8,8,8,8,10,9,10,10,5,5,5,7,7,9,9,10,10,11,10,12,11,6,5,5,7,7,9,9,10,10,11,11,12,12,20,7,7,7,7,9,9,10,10,11,11,12,12,20,7,7,7,7,9,9,11,10,12,11,12,12,20,11,11,8,8,10,10,11,11,12,12,13,13,20,12,12,8,8,9,9,11,11,12,12,13,13,20,20,21,10,10,10,10,11,11,12,12,13,13,21,21,21,10,10,10,10,11,11,12,12,13,13,21,21,21,14,14,11,11,12,12,13,13,13,14,21,21,21,16,15,11,11,12,11,13,13,14,14,21,21,21,21,21,13,13,12,12,13,13,14,14,21,21,21,21,21,13,13,12,12,13,13,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,8,7,8,8,9,9,10,10,5,5,5,7,7,9,9,9,9,11,11,12,12,6,5,5,7,7,9,9,10,9,11,11,12,12,0,7,7,7,7,9,9,10,10,11,11,12,12,0,7,7,7,7,9,9,10,10,11,11,12,12,0,11,11,8,8,10,10,11,11,12,12,13,13,0,12,12,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,6,6,6,6,7,7,7,7,11,10,10,6,6,7,7,8,8,8,8,10,10,10,6,6,7,7,8,8,8,8,11,11,11,7,7,8,8,8,8,9,9,11,11,11,6,7,8,8,8,8,9,9,11,11,11,7,7,8,8,8,8,8,8,11,11,11,7,7,8,8,8,8,9,9,11,11,11,8,8,8,8,8,8,8,8,11,11,11,11,11,8,8,8,8,8,8,12,11,11,11,11,8,8,8,8,8,8,12,11,11,11,11,7,7,8,8,8,8,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,5,7,7,6,7,7,4,6,6,10,11,10,10,10,11,4,6,6,10,10,11,10,11,10,5,10,10,9,12,11,10,12,12,7,10,10,12,12,12,12,13,13,7,11,10,11,12,12,12,13,13,6,11,10,10,12,12,11,12,12,7,11,10,12,13,13,12,12,12,7,10,11,12,13,13,12,12,12,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,6,7,7,8,8,8,8,9,9,0,0,0,6,6,7,7,8,8,8,8,9,9,10,10,11,10,0,0,0,6,6,7,7,8,8,8,8,9,9,10,10,10,10,0,0,0,6,6,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,6,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,10,10,11,11,11,11,12,12,0,0,0,7,7,8,8,9,9,10,10,11,11,11,11,12,12,0,0,0,7,8,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,8,8,9,9,10,10,11,11,12,12,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,5,5,7,7,8,8,0,0,0,6,6,8,8,9,9,0,0,0,6,6,8,8,9,9,0,0,0,7,7,8,9,10,10,0,0,0,7,7,9,9,10,10,0,0,0,8,8,9,9,11,11,0,0,0,7,7,9,9,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,4,4,7,7,0,0,0,8,8,0,0,0,8,8,0,0,0,8,8,0,0,0,8,8,4,4,4,8,7,0,0,0,8,8,0,0,0,8,8,0,0,0,9,9,0,0,0,9,9,4,4,4,7,8,0,0,0,8,8,0,0,0,8,8,0,0,0,9,9,0,0,0,9,9,7,8,8,10,9,0,0,0,12,11,0,0,0,11,12,0,0,0,14,13,0,0,0,14,14,7,8,8,9,10,0,0,0,11,12,0,0,0,11,11,0,0,0,14,14,0,0,0,14,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,11,11,0,0,0,12,11,0,0,0,12,12,0,0,0,13,12,0,0,0,13,13,8,8,8,11,11,0,0,0,11,11,0,0,0,12,12,0,0,0,13,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,8,12,11,0,0,0,12,12,0,0,0,12,11,0,0,0,13,13,0,0,0,13,13,8,8,8,11,12,0,0,0,11,12,0,0,0,11,12,0,0,0,13,14,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,9,14,14,0,0,0,13,13,0,0,0,13,13,0,0,0,13,12,0,0,0,13,13,8,9,9,14,14,0,0,0,13,13,0,0,0,13,13,0,0,0,12,13,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,9,14,14,0,0,0,13,13,0,0,0,13,13,0,0,0,13,13,0,0,0,13,12,8,9,9,14,14,0,0,0,13,13,0,0,0,13,13,0,0,0,13,13,0,0,0,12,12,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,3,3,0,0,0,0,0,0,4,5,5,0,0,0,0,0,0,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,7,10,12,11,12,13,15,16,18,15,10,8,8,8,9,10,12,13,14,17,10,7,7,7,7,8,10,12,15,18,10,7,7,5,5,6,8,10,13,15,10,7,6,5,4,4,6,9,12,15,11,7,7,5,4,3,4,7,11,13,12,9,8,7,5,4,4,5,10,13,11,11,11,9,7,5,5,5,9,12,13,12,13,12,10,8,8,7,9,13,14,14,14,14,13,11,11,10,10,13,0,0,0,0,2,0,0,0,100,0,0,0,144,45,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,232,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,16,7,5,0,0,0,0,0,0,0,0,0,0,0,0,0,56,7,5,0,0,0,0,0,96,7,5,0,136,7,5,0,0,0,0,0,0,0,0,0,176,7,5,0,216,7,5,0,0,0,0,0,0,0,0,0,0,8,5,0,40,8,5,0,80,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,100,0,0,0,48,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,5,20,7,10,7,8,10,11,11,4,2,20,5,8,6,7,9,10,10,20,20,20,20,19,19,19,19,19,19,7,5,19,6,10,7,9,11,13,17,11,8,19,10,7,7,8,10,11,15,7,5,19,7,7,5,6,9,11,16,7,6,19,8,7,6,6,7,9,13,9,9,19,11,9,8,6,7,8,13,12,14,19,16,13,10,9,8,9,13,14,17,19,18,18,17,12,11,11,13,0,0,0,0,8,0,0,0,161,25,0,0,216,19,5,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,128,45,5,0,0,0,0,0,4,0,0,0,113,2,0,0,72,17,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,19,5,0,0,0,0,0,2,0,0,0,81,0,0,0,200,16,5,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,32,17,5,0,0,0,0,0,2,0,0,0,81,0,0,0,72,16,5,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,160,16,5,0,0,0,0,0,2,0,0,0,33,1,0,0,216,14,5,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,0,16,5,0,0,0,0,0,4,0,0,0,81,0,0,0,112,14,5,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,200,14,5,0,0,0,0,0,2,0,0,0,121,0,0,0,192,13,5,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,64,14,5,0,0,0,0,0,2,0,0,0,169,0,0,0,216,12,5,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,136,13,5,0,0,0,0,0,2,0,0,0,25,0,0,0,160,12,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,12,5,0,0,0,0,0,2,0,0,0,169,0,0,0,184,11,5,0,1,0,0,0,0,136,93,225,0,176,19,97,4,0,0,0,0,0,0,0,104,12,5,0,0,0,0,0,2,0,0,0,225,0,0,0,144,10,5,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,120,11,5,0,0,0,0,0,2,0,0,0,185,1,0,0,120,8,5,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,56,10,5,0,0,0,0,0,1,4,4,6,6,7,7,8,7,8,8,9,9,9,9,10,10,10,9,10,10,11,12,12,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,10,12,11,11,13,11,7,7,8,8,8,8,9,9,9,10,10,10,10,9,10,10,11,11,12,11,11,8,8,8,8,9,9,10,10,10,10,11,11,11,11,11,11,11,12,11,12,12,8,8,9,9,9,9,9,10,10,10,10,10,10,11,11,11,11,11,11,12,11,9,9,9,9,10,10,10,10,11,10,11,11,11,11,11,11,12,12,12,12,11,9,9,9,9,10,10,10,10,11,11,11,11,11,11,11,11,11,12,12,12,13,9,10,10,9,11,10,10,10,10,11,11,11,11,11,10,11,12,11,12,12,11,12,11,10,9,10,10,11,10,11,11,11,11,11,11,11,11,11,12,12,11,12,12,12,10,10,10,11,10,11,11,11,11,11,11,11,11,11,11,11,12,13,12,12,11,9,10,10,11,11,10,11,11,11,12,11,11,11,11,11,12,12,13,13,12,13,10,10,12,10,11,11,11,11,11,11,11,11,11,12,12,11,13,12,12,12,12,13,12,11,11,11,11,11,11,12,11,12,11,11,11,11,12,12,13,12,11,12,12,11,11,11,11,11,12,11,11,11,11,12,11,11,12,11,12,13,13,12,12,12,12,11,11,11,11,11,12,11,11,12,11,12,11,11,11,11,13,12,12,12,12,13,11,11,11,12,12,11,11,11,12,11,12,12,12,11,12,13,12,11,11,12,12,11,12,11,11,11,12,12,11,12,11,11,11,12,12,12,12,13,12,13,12,12,12,12,11,11,12,11,11,11,11,11,11,12,12,12,13,12,11,13,13,12,12,11,12,10,11,11,11,11,12,11,12,12,11,12,12,13,12,12,13,12,12,12,12,12,11,12,12,12,11,12,11,11,11,12,13,12,13,13,13,13,13,12,13,13,12,12,13,11,11,11,11,11,12,11,11,12,11,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,4,4,4,4,8,8,12,13,14,14,14,14,14,14,6,6,6,6,6,10,9,14,14,14,14,14,14,14,14,7,6,5,6,6,10,9,12,13,13,13,13,13,13,13,13,7,7,9,9,11,11,12,13,13,13,13,13,13,13,13,7,7,8,8,11,12,13,13,13,13,13,13,13,13,13,12,12,10,10,13,12,13,13,13,13,13,13,13,13,13,12,12,10,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,6,6,6,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,6,6,7,7,7,7,8,8,9,9,6,5,5,7,8,8,9,8,8,9,9,10,11,6,5,5,8,8,9,9,8,8,9,10,10,11,0,8,8,8,9,9,9,9,9,10,10,11,11,0,9,9,9,8,9,9,9,9,10,10,11,11,0,13,13,9,9,10,10,10,10,11,11,12,12,0,14,13,9,9,10,10,10,10,11,11,12,12,0,0,0,10,10,9,9,11,11,12,12,13,12,0,0,0,10,10,9,9,10,10,12,12,13,13,0,0,0,13,14,11,10,11,11,12,12,13,14,0,0,0,14,14,10,10,11,11,12,12,13,13,0,0,0,0,0,12,12,12,12,13,13,14,15,0,0,0,0,0,12,12,12,12,13,13,14,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,3,5,6,7,7,7,7,8,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,6,6,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,7,7,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,7,7,8,8,8,8,8,8,10,10,10,8,8,8,8,8,8,9,9,10,10,10,10,10,8,8,8,8,9,9,10,10,10,10,10,9,9,8,8,9,9,10,10,10,10,10,8,8,8,8,9,9,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,6,7,6,6,4,7,7,10,9,10,10,10,9,4,7,7,10,10,10,11,10,10,6,10,10,11,11,11,11,10,10,6,10,9,11,11,11,11,10,10,6,10,10,11,11,11,11,10,10,7,11,11,11,11,11,12,12,11,6,10,10,11,10,10,11,11,11,6,10,10,10,11,10,11,11,11,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,6,6,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,8,9,10,9,10,10,10,10,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,11,12,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,12,12,13,13,0,0,0,0,0,10,10,11,10,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,10,10,11,11,12,12,13,13,13,13,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,11,11,12,12,12,12,13,13,14,14,0,0,0,0,0,0,0,12,12,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,0,0,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,5,5,6,6,8,8,0,0,0,7,7,7,7,9,9,0,0,0,7,7,7,7,9,9,0,0,0,8,8,8,8,9,9,0,0,0,8,8,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,9,9,8,8,10,10,0,0,0,10,10,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,2,3,7,7,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,8,0,0,0,0,0,0,7,9,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,7,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,11,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,8,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,11,10,0,0,0,0,0,0,8,9,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,9,10,11,0,0,0,0,0,0,9,11,9],"i8",O3,_.GLOBAL_BASE+325360),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,6,17,8,12,9,10,10,12,13,5,2,17,4,9,5,7,8,11,13,16,16,16,16,16,16,16,16,16,16,6,4,16,5,10,5,7,10,14,16,13,9,16,11,8,7,8,9,13,16,7,4,16,5,7,4,6,8,11,13,8,6,16,7,8,5,5,7,9,13,9,8,16,9,8,6,6,7,9,13,11,11,16,10,10,7,7,7,9,13,13,13,16,13,13,9,9,9,10,13,0,0,0,0,2,0,0,0,100,0,0,0,88,85,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,46,5,0,0,0,0,0,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,47,5,0,0,0,0,0,0,0,0,0,0,0,0,0,48,47,5,0,0,0,0,0,0,0,0,0,0,0,0,0,88,47,5,0,0,0,0,0,0,0,0,0,0,0,0,0,128,47,5,0,0,0,0,0,168,47,5,0,208,47,5,0,0,0,0,0,0,0,0,0,248,47,5,0,32,48,5,0,0,0,0,0,0,0,0,0,72,48,5,0,112,48,5,0,152,48,5,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,161,25,0,0,160,59,5,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,72,85,5,0,0,0,0,0,4,0,0,0,113,2,0,0,16,57,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,59,5,0,0,0,0,0,2,0,0,0,81,0,0,0,144,56,5,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,232,56,5,0,0,0,0,0,2,0,0,0,81,0,0,0,16,56,5,0,1,0,0,0,0,0,80,224,0,0,16,96,4,0,0,0,0,0,0,0,104,56,5,0,0,0,0,0,2,0,0,0,33,1,0,0,160,54,5,0,1,0,0,0,0,0,112,224,0,0,16,96,5,0,0,0,0,0,0,0,200,55,5,0,0,0,0,0,4,0,0,0,81,0,0,0,56,54,5,0,1,0,0,0,0,0,118,224,0,0,118,96,2,0,0,0,0,0,0,0,144,54,5,0,0,0,0,0,2,0,0,0,121,0,0,0,136,53,5,0,1,0,0,0,0,0,84,224,0,0,16,96,4,0,0,0,0,0,0,0,8,54,5,0,0,0,0,0,2,0,0,0,169,0,0,0,160,52,5,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,80,53,5,0,0,0,0,0,2,0,0,0,25,0,0,0,104,52,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,52,5,0,0,0,0,0,4,0,0,0,81,0,0,0,0,52,5,0,1,0,0,0,0,176,19,225,0,176,19,97,2,0,0,0,0,0,0,0,88,52,5,0,0,0,0,0,2,0,0,0,225,0,0,0,216,50,5,0,1,0,0,0,0,96,242,224,0,0,149,96,4,0,0,0,0,0,0,0,192,51,5,0,0,0,0,0,2,0,0,0,185,1,0,0,192,48,5,0,1,0,0,0,0,0,116,224,0,0,16,96,5,0,0,0,0,0,0,0,128,50,5,0,0,0,0,0,1,5,5,7,8,8,7,9,9,9,12,12,11,12,12,10,10,11,12,12,12,11,12,12,8,9,8,7,9,10,10,11,11,10,11,12,10,12,10,12,12,12,11,12,11,9,8,8,9,10,9,8,9,10,12,12,11,11,12,11,10,11,12,11,12,12,8,9,9,9,10,11,12,11,12,11,11,11,11,12,12,11,11,12,12,11,11,9,9,8,9,9,11,9,9,10,9,11,11,11,11,12,11,11,10,12,12,12,9,12,11,10,11,11,11,11,12,12,12,11,11,11,12,10,12,12,12,10,10,9,10,9,10,10,9,9,9,10,10,12,10,11,11,9,11,11,10,11,11,11,10,10,10,9,9,10,10,9,9,10,11,11,10,11,10,11,10,11,11,10,11,11,11,10,9,10,10,9,10,9,9,11,9,9,11,10,10,11,11,10,10,11,10,11,8,9,11,11,10,9,10,11,11,10,11,11,10,10,10,11,10,9,10,10,11,9,10,10,9,11,10,10,10,10,11,10,11,11,9,11,10,11,10,10,11,11,10,10,10,9,10,10,11,11,11,9,10,10,10,10,10,11,10,10,10,9,10,10,11,10,10,10,10,10,9,10,11,10,10,10,10,11,11,11,10,10,10,10,10,11,10,11,10,11,10,10,10,9,11,11,10,10,10,11,11,10,10,10,10,10,10,10,10,11,11,9,10,10,10,11,10,11,10,10,10,11,9,10,11,10,11,10,10,9,10,10,10,11,10,11,10,10,10,10,10,11,11,10,11,11,10,10,11,11,10,9,9,10,10,10,10,10,9,11,9,10,10,10,11,11,10,10,10,10,11,11,11,10,9,9,10,10,11,10,10,10,10,10,11,11,11,10,10,10,11,11,11,9,10,10,10,10,9,10,9,10,11,10,11,10,10,11,11,10,11,11,11,11,11,10,11,10,10,10,9,11,11,10,11,11,11,11,11,11,11,11,11,10,11,10,10,10,10,11,10,10,11,9,10,10,10,0,0,0,0,0,0,0,10,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,7,0,0,0,13,0,0,0,6,0,0,0,14,0,0,0,5,0,0,0,15,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,17,0,0,0,2,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,1,5,5,5,5,9,11,11,10,10,10,10,10,10,10,7,6,6,6,6,10,10,10,10,10,10,10,10,10,10,7,6,6,6,6,10,9,10,10,10,10,10,10,10,10,10,7,7,8,9,10,10,10,10,10,10,10,10,10,10,10,8,7,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,4,0,0,0,10,0,0,0,3,0,0,0,11,0,0,0,2,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,1,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,3,5,5,7,7,7,6,6,7,7,7,5,5,7,7,7,6,6,7,7,7,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,7,7,7,6,8,8,10,10,6,5,6,8,8,8,8,8,8,8,9,10,10,7,6,6,8,8,8,8,8,8,8,8,10,10,0,8,8,8,8,9,8,9,9,9,10,10,10,0,9,8,8,8,9,9,8,8,9,9,10,10,0,12,11,8,8,9,9,9,9,10,10,11,10,0,12,13,8,8,9,10,9,9,11,11,11,12,0,0,0,8,8,8,8,10,9,12,13,12,14,0,0,0,8,8,8,9,10,10,12,12,13,14,0,0,0,13,13,9,9,11,11,0,0,14,0,0,0,0,14,14,10,10,12,11,12,14,14,14,0,0,0,0,0,11,11,13,13,14,13,14,14,0,0,0,0,0,12,13,13,12,13,14,14,14,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,4,6,6,7,7,8,8,8,8,10,10,10,7,7,8,8,8,9,9,9,10,10,10,6,7,8,8,8,8,9,8,10,10,10,7,7,8,8,9,9,9,9,10,10,10,7,7,8,8,9,9,8,9,10,10,10,8,8,9,9,9,9,9,9,11,11,11,8,8,9,9,9,9,9,10,10,11,11,9,9,9,9,9,9,9,10,11,11,11,10,11,9,9,9,9,10,9,11,11,11,10,11,10,10,9,9,10,10,11,11,11,11,11,9,9,9,9,10,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,3,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,1,4,4,6,6,6,7,6,6,4,7,7,11,10,10,11,11,10,4,7,7,10,10,10,11,10,10,6,10,10,11,11,11,11,11,10,6,9,9,11,12,12,11,9,9,6,9,10,11,12,12,11,9,10,7,11,11,11,11,11,12,13,12,6,9,10,11,10,10,12,13,13,6,10,9,11,10,10,11,12,13,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,4,6,6,7,7,8,8,8,8,9,9,10,10,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,10,11,11,11,0,0,0,6,6,8,8,9,9,9,9,10,10,11,11,11,11,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,7,7,8,8,9,9,9,9,10,10,11,11,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,12,0,0,0,8,8,9,9,10,10,10,10,11,11,12,12,12,13,0,0,0,9,9,9,9,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,10,10,10,10,10,10,11,11,12,12,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,13,13,13,13,0,0,0,0,0,9,9,10,10,11,11,12,12,13,13,13,14,0,0,0,0,0,10,10,10,11,11,11,12,12,13,13,13,14,0,0,0,0,0,0,0,10,10,11,11,12,12,13,13,14,14,0,0,0,0,0,0,0,11,11,12,12,13,13,13,13,14,14,0,0,0,0,0,0,0,11,11,12,12,12,13,13,14,15,14,0,0,0,0,0,0,0,12,12,12,12,13,13,13,14,14,15,0,0,0,0,0,0,0,0,0,12,12,13,13,14,13,14,14,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,1,3,3,6,6,6,6,8,8,0,0,0,7,7,7,7,8,8,0,0,0,7,7,7,7,8,8,0,0,0,7,7,8,8,9,9,0,0,0,7,7,8,8,9,9,0,0,0,8,9,8,8,10,10,0,0,0,8,8,8,8,10,10,0,0,0,10,10,9,9,10,10,0,0,0,0,0,9,9,10,10,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,3,2,7,8,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,4,4,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,6,6,7,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,5,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,9,10,0,0,0,0,0,0,7,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,9,9,12,0,0,0,0,0,0,10,12,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,9,12,10,0,0,0,0,0,0,10,11,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,8,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,8,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,10,12,11,0,0,0,0,0,0,9,10,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,10,0,0,0,0,0,0,10,11,12,0,0,0,0,0,0,9,12,9],"i8",O3,_.GLOBAL_BASE+339320),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,19,7,9,7,8,11,9,12,4,1,19,6,7,7,8,10,11,13,18,18,18,18,18,18,18,18,18,18,8,6,18,8,9,9,11,12,14,18,9,6,18,9,7,8,9,11,12,18,7,6,18,8,7,7,7,9,11,17,8,8,18,9,7,6,6,8,11,17,10,10,18,12,9,8,7,9,12,18,13,15,18,15,13,11,10,11,15,18,14,18,18,18,18,18,16,16,18,18,0,0,0,0,0,0,0,0,0,64,207,64,0,0,0,0,0,88,219,64,0,0,0,0,0,106,232,64,0,0,0,0,0,249,245,64,0,0,0,0,0,0,35,64,0,0,0,0,0,0,38,64,0,0,0,0,0,0,62,64,0,0,0,0,0,192,88,64,0,0,0,0,0,76,205,64,0,0,0,0,0,136,211,64,0,0,0,0,0,124,229,64,0,0,0,0,0,255,244,64,0,0,0,0,0,76,221,64,0,0,0,0,0,130,228,64,0,0,0,0,0,100,233,64,0,0,0,0,0,64,239,64,0,0,0,0,0,148,241,64,0,0,0,0,0,11,243,64,0,0,0,0,0,255,244,64,0,0,0,0,0,118,246,64,0,0,0,0,0,219,250,64,0,0,0,0,0,76,253,64,0,0,0,0,0,23,1,65,0,0,0,0,128,49,7,65,154,153,153,153,153,153,40,64,0,0,0,0,0,0,42,64,0,0,0,0,0,0,42,64,0,0,0,0,0,0,44,64,0,0,0,0,0,0,46,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,192,88,64,0,0,0,0,0,148,209,64,0,0,0,0,0,88,219,64,0,0,0,0,0,23,225,64,0,0,0,0,0,249,229,64,0,0,0,0,0,88,235,64,0,0,0,0,0,76,237,64,0,0,0,0,128,79,242,64,0,0,0,0,0,249,245,64,0,0,0,0,0,106,248,64,0,0,0,0,128,19,252,64,0,0,0,0,128,79,2,65,0,0,0,0,128,49,7,65,0,0,0,0,0,64,223,64,0,0,0,0,0,112,231,64,0,0,0,0,0,76,237,64,0,0,0,0,0,23,241,64,0,0,0,0,0,136,243,64,0,0,0,0,0,255,244,64,0,0,0,0,0,112,247,64,0,0,0,0,0,219,250,64,0,0,0,0,0,76,253,64,0,0,0,0,0,23,1,65,0,0,0,0,0,136,3,65,0,0,0,0,8,76,13,65,0,0,0,0,0,88,203,64,0,0,0,0,0,136,211,64,0,0,0,0,0,88,219,64,0,0,0,0,0,142,226,64,0,0,0,0,0,118,230,64,0,0,0,0,0,94,234,64,0,0,0,0,128,79,242,64,0,0,0,0,0,112,247,64,0,0,0,0,0,76,253,64,0,0,0,0,0,23,1,65,0,0,0,0,0,249,5,65,0,0,0,0,8,76,13,65,88,88,5,0,104,113,5,0,88,88,5,0,200,113,5,0,88,88,5,0,40,114,5,0,88,88,5,0,136,114,5,0,88,88,5,0,232,114,5,0,88,88,5,0,72,115,5,0,168,115,5,0,184,140,5,0,168,115,5,0,24,141,5,0,168,115,5,0,120,141,5,0,168,115,5,0,216,141,5,0,168,115,5,0,56,142,5,0,2,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,30,0,0,0,208,111,7,0,24,201,7,0,24,201,7,0,64,201,7,0,64,201,7,0,2,0,0,0,0,0,0,0,30,0,0,0,208,111,7,0,0,202,7,0,0,202,7,0,64,201,7,0,64,201,7,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,40,202,7,0,40,202,7,0,80,202,7,0,80,202,7,0,2,0,0,0,0,0,0,0,15,0,0,0,208,111,7,0,0,162,7,0,0,162,7,0,40,162,7,0,40,162,7,0,2,0,0,0,0,0,0,0,30,0,0,0,208,111,7,0,232,162,7,0,232,162,7,0,40,162,7,0,40,162,7,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,16,163,7,0,16,163,7,0,56,163,7,0,56,163,7,0,2,0,0,0,0,0,0,0,15,0,0,0,208,111,7,0,232,122,7,0,232,122,7,0,16,123,7,0,16,123,7,0,2,0,0,0,0,0,0,0,30,0,0,0,208,111,7,0,208,123,7,0,208,123,7,0,16,123,7,0,16,123,7,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,248,123,7,0,248,123,7,0,32,124,7,0,32,124,7,0,2,0,0,0,0,0,0,0,15,0,0,0,72,198,6,0,0,59,7,0,0,59,7,0,40,59,7,0,40,59,7,0,2,0,0,0,0,0,0,0,30,0,0,0,72,198,6,0,232,59,7,0,232,59,7,0,40,59,7,0,40,59,7,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,16,60,7,0,16,60,7,0,56,60,7,0,56,60,7,0,2,0,0,0,0,0,0,0,15,0,0,0,72,198,6,0,48,6,7,0,48,6,7,0,88,6,7,0,88,6,7,0,2,0,0,0,0,0,0,0,30,0,0,0,72,198,6,0,24,7,7,0,24,7,7,0,88,6,7,0,88,6,7,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,64,7,7,0,64,7,7,0,104,7,7,0,104,7,7,0,2,0,0,0,0,0,0,0,15,0,0,0,72,198,6,0,96,209,6,0,96,209,6,0,136,209,6,0,136,209,6,0,2,0,0,0,0,0,0,0,30,0,0,0,72,198,6,0,72,210,6,0,72,210,6,0,136,209,6,0,136,209,6,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,112,210,6,0,112,210,6,0,152,210,6,0,152,210,6,0,2,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],"i8",O3,_.GLOBAL_BASE+349504),C3([2,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2],"i8",O3,_.GLOBAL_BASE+360488),C3([2,0,0,0,0,0,0,0,15,0,0,0,152,142,5,0,120,145,6,0,120,145,6,0,160,145,6,0,160,145,6,0,2,0,0,0,0,0,0,0,30,0,0,0,152,142,5,0,96,146,6,0,96,146,6,0,160,145,6,0,160,145,6,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,136,146,6,0,136,146,6,0,176,146,6,0,176,146,6,0,2,0,0,0,0,0,0,0,15,0,0,0,152,142,5,0,176,96,6,0,176,96,6,0,216,96,6,0,216,96,6,0,2,0,0,0,0,0,0,0,30,0,0,0,152,142,5,0,152,97,6,0,152,97,6,0,216,96,6,0,216,96,6,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,216,165,5,0,216,165,5,0,0,166,5,0,0,166,5,0,2,0,0,0,0,0,0,0,15,0,0,0,152,142,5,0,136,46,6,0,136,46,6,0,176,46,6,0,176,46,6,0,2,0,0,0,0,0,0,0,30,0,0,0,152,142,5,0,112,47,6,0,112,47,6,0,176,46,6,0,176,46,6,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,216,165,5,0,216,165,5,0,0,166,5,0,0,166,5,0,2,0,0,0,0,0,0,0,15,0,0,0,152,142,5,0,24,241,5,0,24,241,5,0,64,241,5,0,64,241,5,0,2,0,0,0,0,0,0,0,30,0,0,0,152,142,5,0,0,242,5,0,0,242,5,0,64,241,5,0,64,241,5,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,216,165,5,0,216,165,5,0,0,166,5,0,0,166,5,0,2,0,0,0,0,0,0,0,15,0,0,0,152,142,5,0,176,153,5,0,176,153,5,0,216,153,5,0,216,153,5,0,2,0,0,0,0,0,0,0,30,0,0,0,152,142,5,0,152,154,5,0,152,154,5,0,216,153,5,0,216,153,5,0,1,0,0,0,2,0,0,0,6,0,0,0,192,154,5,0,216,165,5,0,216,165,5,0,0,166,5,0,0,166,5,0,0,0,0,0,255,255,255,255,255,255,255,255,8,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+363696),C3([1,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,16,241,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,169,5,0,0,0,0,0,0,0,0,0,16,170,5,0,0,0,0,0,0,0,0,0,56,170,5,0,96,170,5,0,0,0,0,0,0,0,0,0,136,170,5,0,176,170,5,0,0,0,0,0,0,0,0,0,216,170,5,0,0,171,5,0,0,0,0,0,0,0,0,0,40,171,5,0,80,171,5,0,0,171,5,0,0,0,0,0,120,171,5,0,160,171,5,0,200,171,5,0,240,171,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,224,169,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,2,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+366508),C3([32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,216,169,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,166,5,0,232,166,5,0,0,0,0,0,0,0,0,0,16,167,5,0,56,167,5,0,96,167,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,240,168,5,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,160,169,5,0,0,0,0,0,2,0,0,0,25,0,0,0,184,168,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,216,168,5,0,0,0,0,0,2,0,0,0,9,0,0,0,152,168,5,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,168,168,5,0,0,0,0,0,1,0,0,0,25,0,0,0,16,168,5,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,48,168,5,0,0,0,0,0,1,0,0,0,25,0,0,0,136,167,5,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,168,167,5,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,2,3,4,5,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,5,6,6,6,6,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,4,4,5,5,4,5,5,5,5,4,5,5,5,5,5,5,5,4,5,5,5,5,5,4,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,10,10,12,12,12,12,13,12,5,5,5,8,6,11,9,12,12,13,12,12,12,4,5,5,6,8,9,11,12,12,13,12,12,12,7,7,8,9,9,11,8,12,9,12,12,12,12,7,8,8,9,9,8,11,9,12,12,12,11,12,10,10,10,11,11,11,11,11,10,11,11,12,11,10,10,10,11,11,11,11,10,11,11,11,11,12,11,11,11,12,11,12,11,12,11,13,11,13,11,11,11,11,11,12,11,12,10,13,11,12,11,13,12,12,12,13,12,13,13,13,12,14,12,14,13,12,12,12,12,13,13,13,12,14,12,14,13,14,13,14,14,14,14,14,14,14,14,15,14,15,14,13,14,13,14,14,14,14,14,15,14,14,14,15,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,2,3,1,3,0,0,0,0,3,3,3,3,3,3,3,3,5,0,0,0,243,0,0,0,8,240,5,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,0,241,5,0,0,0,0,0,5,0,0,0,53,12,0,0,184,227,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,240,239,5,0,0,0,0,0,5,0,0,0,243,0,0,0,176,226,5,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,168,227,5,0,0,0,0,0,5,0,0,0,243,0,0,0,168,225,5,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,160,226,5,0,0,0,0,0,5,0,0,0,243,0,0,0,160,224,5,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,152,225,5,0,0,0,0,0,5,0,0,0,53,12,0,0,80,212,5,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,224,5,0,0,0,0,0,5,0,0,0,53,12,0,0,0,200,5,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,56,212,5,0,0,0,0,0,1,0,0,0,7,0,0,0,216,199,5,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,224,199,5,0,0,0,0,0,5,0,0,0,243,0,0,0,208,198,5,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,200,199,5,0,0,0,0,0,5,0,0,0,243,0,0,0,200,197,5,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,192,198,5,0,0,0,0,0,5,0,0,0,53,12,0,0,120,185,5,0,1,0,0,0,0,106,152,225,0,106,120,97,3,0,0,0,0,0,0,0,176,197,5,0,0,0,0,0,5,0,0,0,53,12,0,0,40,173,5,0,1,0,0,0,0,136,83,225,0,136,51,97,3,0,0,0,0,0,0,0,96,185,5,0,0,0,0,0,1,0,0,0,25,0,0,0,160,172,5,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,192,172,5,0,0,0,0,0,1,0,0,0,25,0,0,0,24,172,5,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,56,172,5,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,10,10,10,11,11,11,12,12,12,13,13,13,13,13,13,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,16,16,4,9,11,15,16,4,12,8,16,16,12,16,16,16,16,13,16,16,16,16,5,8,10,16,16,9,9,14,15,16,12,14,14,16,16,16,16,16,16,16,16,16,16,16,16,5,11,8,16,15,12,14,16,16,16,9,15,9,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,6,11,11,16,16,12,13,16,16,16,12,16,14,16,16,16,16,16,16,16,16,16,16,16,16,11,15,15,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12,15,16,16,16,16,16,16,16,16,14,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,5,11,11,16,16,12,15,16,16,16,12,16,14,16,16,16,16,16,16,16,16,16,16,16,16,12,15,15,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,11,15,15,16,16,16,16,16,16,16,15,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,6,11,12,16,16,11,15,16,16,16,13,16,14,16,16,16,16,16,16,16,16,16,16,16,16,11,16,14,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12,14,14,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,8,13,15,16,16,15,15,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,7,12,12,16,16,13,12,16,16,16,14,16,14,16,16,16,16,16,16,16,16,16,16,16,16,13,16,16,16,16,14,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12,14,16,16,16,16,16,16,16,16,14,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,6,11,11,16,16,13,15,16,16,16,11,15,14,16,16,16,16,16,16,16,14,16,16,16,16,11,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,11,16,14,16,16,14,16,16,16,16,13,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,7,11,11,16,16,13,13,16,16,16,13,16,13,16,16,16,16,16,16,16,16,16,16,16,16,12,16,15,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12,14,16,16,16,16,16,16,16,16,14,16,13,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,8,13,14,16,16,15,16,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,15,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,6,7,7,7,7,7,7,7,7,7,7,8,7,8,8,7,8,8,7,8,7,7,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,7,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,9,8,8,9,8,8,8,8,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,8,8,9,8,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,5,5,7,7,5,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,5,7,8,8,9,10,8,9,10,8,9,10,10,10,12,10,11,11,8,10,10,10,11,12,10,11,10,5,8,7,8,10,10,8,10,9,8,10,10,10,10,11,10,12,11,8,10,9,10,11,11,10,12,10,5,8,8,7,9,10,8,10,9,7,9,10,9,10,11,9,11,11,8,10,9,10,11,11,9,11,10,7,9,9,9,10,11,9,11,11,9,9,11,10,10,13,11,12,12,9,11,11,11,12,13,11,13,11,7,9,9,9,10,11,9,11,10,9,11,10,10,10,12,11,13,12,9,11,11,11,12,12,10,12,10,5,8,8,8,9,10,7,10,9,8,9,10,9,10,11,10,11,11,7,10,9,9,11,11,9,11,10,7,9,9,9,10,11,9,11,10,9,11,11,10,10,12,11,12,12,9,10,11,11,12,13,10,12,10,7,9,9,9,11,11,9,11,10,9,11,11,11,11,13,11,13,12,9,11,9,11,12,12,10,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,4,6,6,9,9,6,7,8,10,11,6,8,7,10,10,8,10,10,12,12,8,10,10,12,12,6,7,8,10,10,7,8,9,10,11,8,9,9,11,11,10,10,11,12,13,10,11,11,13,13,6,8,7,10,10,8,9,9,11,11,7,9,8,11,10,10,11,11,13,13,10,11,10,13,12,9,10,10,11,12,10,10,11,12,13,10,11,11,12,13,12,12,13,12,14,12,13,13,14,14,9,10,10,12,11,10,11,11,13,12,10,11,10,13,12,12,13,13,14,14,12,13,12,14,12,7,8,8,10,11,8,9,10,11,12,8,9,9,11,12,10,11,12,13,14,10,11,11,13,13,8,9,10,11,12,9,10,11,12,13,10,10,11,12,12,11,12,12,13,14,11,12,12,14,14,8,9,9,11,12,10,10,11,12,13,9,10,10,12,12,11,12,12,14,14,11,12,12,14,13,11,11,12,12,13,11,12,12,13,14,12,12,13,14,14,13,13,14,14,16,13,14,14,15,15,11,12,11,13,13,12,12,12,14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,15,14,7,8,8,11,10,8,10,9,12,11,8,10,9,12,11,10,11,11,13,13,10,12,11,14,13,8,9,9,12,11,9,10,10,12,12,10,11,10,13,12,11,12,12,13,14,11,12,12,14,14,8,10,9,12,11,10,11,10,12,12,9,11,10,13,11,11,12,12,14,14,11,12,12,14,13,11,11,12,13,13,11,12,12,13,14,12,12,12,14,14,13,13,14,14,15,13,14,14,15,15,11,12,11,13,12,12,12,12,14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,15,14,10,11,11,12,13,11,12,12,13,14,11,12,12,13,14,13,13,14,14,16,13,14,14,15,15,11,12,12,12,14,12,12,13,13,15,12,13,13,13,15,14,14,15,15,16,14,14,15,15,16,11,12,12,13,14,12,13,13,14,15,12,13,13,14,14,14,14,15,15,16,14,14,14,15,15,13,14,14,14,15,14,14,15,15,16,14,15,15,15,16,15,15,16,16,18,16,16,16,17,17,13,14,14,15,15,14,14,15,16,16,14,14,14,16,15,16,16,16,17,17,15,16,16,17,16,10,11,11,13,12,11,12,12,14,13,11,12,12,14,13,13,14,14,15,15,13,14,13,16,14,11,12,12,14,13,12,13,13,14,14,12,13,13,15,14,14,14,14,15,15,14,15,14,16,15,11,12,12,14,12,12,13,13,15,14,12,13,12,15,13,14,15,14,16,15,14,15,14,16,15,13,14,14,15,15,14,14,14,15,16,14,15,14,16,16,15,16,16,16,17,16,16,16,17,17,13,14,14,15,14,14,15,15,16,15,14,15,14,16,15,16,16,16,17,17,15,16,15,18,16,6,8,8,11,11,8,9,10,11,12,8,10,9,12,12,10,11,11,13,13,10,12,11,14,13,8,9,9,11,12,9,10,10,12,12,9,10,10,12,12,11,11,12,13,14,11,12,12,14,14,8,10,9,12,11,10,11,11,12,12,9,11,10,13,12,11,12,12,14,14,11,12,12,14,13,10,11,11,13,13,11,12,12,13,14,11,12,12,14,14,13,13,14,13,15,13,14,14,15,15,11,12,11,13,13,12,12,12,14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,15,14,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,13,14,11,12,12,14,14,9,9,10,11,12,10,10,11,12,13,10,10,11,12,13,12,12,13,13,15,12,12,13,14,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,14,15,12,13,12,14,14,11,11,12,12,14,12,12,13,13,14,12,12,13,13,14,13,13,14,14,16,14,14,14,15,15,11,12,12,14,13,12,13,13,14,14,12,13,13,15,14,14,14,14,16,16,13,14,14,16,14,7,9,9,12,11,9,10,10,12,12,9,11,10,13,12,11,12,12,13,14,11,13,12,14,13,9,10,10,12,12,10,10,11,12,13,10,12,11,13,13,12,12,13,13,14,12,13,13,15,14,9,10,10,12,12,11,11,11,13,13,10,12,10,13,12,12,13,13,14,15,12,13,12,15,13,11,12,12,14,13,12,12,13,13,14,12,13,13,15,14,13,13,14,13,16,14,15,14,16,15,12,12,12,14,14,13,13,13,14],"i8",O3,_.GLOBAL_BASE+369616),C3([14,12,13,12,14,13,14,15,15,16,16,13,14,13,16,13,10,11,12,13,14,11,12,13,13,15,12,12,13,14,14,13,14,14,15,16,13,14,14,16,15,12,12,13,12,14,12,12,13,13,15,13,13,13,13,15,14,14,15,14,16,14,15,15,15,16,12,13,12,14,14,13,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,15,16,16,13,14,14,13,16,14,14,15,14,16,14,14,15,14,16,15,15,16,15,18,16,16,16,16,17,14,14,14,16,15,14,15,15,16,16,14,15,15,16,16,16,16,16,17,17,15,16,16,17,16,10,12,11,14,13,12,13,13,14,14,12,13,12,15,14,14,14,14,15,15,14,15,14,16,15,12,13,12,14,13,12,13,13,15,14,13,14,13,15,14,14,15,15,16,16,14,15,15,17,15,12,13,12,14,14,13,14,14,15,15,13,14,13,15,14,15,15,15,16,16,14,15,15,17,15,14,14,14,16,15,14,15,15,16,16,14,15,15,16,15,16,16,16,16,17,16,17,16,18,17,14,14,14,16,15,15,15,15,16,16,14,15,14,16,15,16,16,17,17,17,15,16,15,17,16,6,8,8,11,11,8,9,10,12,12,8,10,9,12,11,10,11,12,13,13,10,11,11,13,13,8,9,10,11,12,9,10,11,12,13,10,11,11,12,12,11,12,12,13,14,11,12,12,14,14,8,9,9,12,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,14,11,12,11,14,13,11,11,12,13,13,11,12,12,13,14,12,12,12,14,14,13,13,14,14,15,13,14,14,15,15,10,11,11,13,13,11,12,12,14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,15,13,7,9,9,11,12,9,10,11,12,13,9,10,10,12,12,11,12,13,13,14,11,12,12,14,14,9,10,10,12,12,10,10,11,12,13,11,12,11,13,13,12,12,13,13,15,12,13,13,15,14,9,10,10,12,12,10,11,12,13,13,10,11,10,13,12,12,13,13,14,15,12,13,12,14,13,12,12,12,14,14,12,12,13,13,14,13,13,13,15,14,14,13,14,13,16,14,15,15,16,16,11,12,12,13,14,12,13,13,14,15,12,13,12,14,13,14,14,15,15,16,13,14,13,15,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,14,11,12,11,14,13,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,12,13,14,15,12,13,13,15,14,9,10,9,12,11,10,11,10,13,12,10,11,10,13,12,12,13,12,14,14,12,13,12,15,13,11,12,12,13,14,12,13,13,14,14,12,13,13,14,14,14,14,14,14,16,14,14,14,16,15,11,12,11,14,12,12,13,12,15,13,12,13,12,15,13,14,14,14,16,15,13,14,13,16,14,10,11,12,13,14,12,12,13,13,15,12,13,13,14,14,14,14,15,15,16,14,14,14,15,16,12,12,13,14,14,12,13,14,14,15,13,14,14,15,15,14,15,15,15,17,15,15,15,16,16,12,12,13,13,14,13,13,14,14,15,12,13,13,14,15,15,15,15,15,17,14,15,15,15,15,14,14,14,16,16,14,15,15,15,16,15,15,15,16,16,16,15,16,16,18,16,16,17,17,17,14,14,14,15,16,15,15,15,16,17,14,15,14,16,16,16,16,17,17,18,16,16,15,17,16,10,12,11,14,13,12,12,12,14,14,11,13,12,14,13,13,14,14,15,15,13,14,13,16,15,12,12,13,14,14,12,13,13,15,15,13,13,13,15,15,14,15,15,16,16,14,15,15,17,16,12,13,12,14,12,13,13,13,15,13,12,13,12,15,13,14,15,15,16,15,14,15,14,16,14,14,14,14,16,16,14,15,15,16,16,14,15,15,16,16,15,16,16,16,17,16,17,16,18,17,13,14,14,16,13,14,15,15,16,14,14,15,14,16,14,16,16,16,17,16,15,16,15,18,15,9,11,11,13,13,11,12,12,14,14,11,12,12,14,14,13,14,14,15,15,13,14,14,15,15,11,12,12,14,14,11,12,13,14,15,12,13,13,15,14,13,14,14,15,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,14,14,14,14,16,16,14,15,14,16,15,12,13,13,14,15,12,13,14,15,16,13,14,14,16,16,14,14,15,16,17,15,15,15,17,17,13,14,14,15,15,14,15,14,16,16,14,15,14,16,15,15,16,16,17,17,15,16,15,17,16,10,12,12,13,14,11,12,13,14,14,12,13,12,14,14,13,14,14,15,16,13,14,14,16,15,11,12,12,14,14,12,12,13,14,15,12,13,13,15,15,13,13,15,15,17,14,14,15,16,16,12,13,12,14,14,12,13,13,15,15,12,13,13,15,14,14,15,15,16,16,14,15,14,16,16,13,12,14,13,16,13,13,15,14,16,14,13,15,15,16,14,14,16,15,17,15,15,16,16,17,13,14,14,16,15,14,15,15,16,16,14,15,14,16,15,16,16,16,17,17,15,16,16,18,16,10,12,12,14,14,12,12,13,14,14,12,13,12,15,14,13,14,14,15,16,14,15,14,16,15,11,12,12,14,14,12,13,13,14,15,13,14,13,15,15,14,14,15,15,16,14,15,15,17,16,12,13,13,14,14,13,13,14,15,15,12,14,13,15,15,14,15,15,16,16,14,15,15,17,15,13,14,13,15,15,13,14,14,15,16,14,15,14,17,16,15,15,15,15,17,16,16,16,18,17,14,14,14,16,16,15,15,15,16,16,14,15,14,16,16,16,16,17,17,17,16,16,16,17,16,11,12,13,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,15,17,16,12,13,13,14,15,13,13,14,14,16,13,14,14,15,16,15,14,16,15,17,15,15,16,16,17,12,13,13,15,15,13,14,14,16,16,13,14,14,16,15,15,15,16,17,17,15,16,15,17,16,14,14,15,13,16,15,14,16,14,17,15,15,16,14,17,16,15,17,15,18,16,16,17,16,18,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,16,17,17,18,18,16,17,15,18,16,11,12,12,14,14,13,13,14,14,15,13,14,13,16,14,15,15,15,16,16,15,16,15,17,16,12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,16,15,16,16,16,16,18,16,12,13,13,15,15,14,14,15,15,16,13,14,13,16,15,16,16,16,17,17,15,16,15,17,15,14,15,14,16,15,14,15,15,16,16,15,16,15,17,16,16,15,16,15,17,17,18,17,18,17,15,15,15,16,16,16,16,16,17,17,14,15,15,17,16,17,17,18,18,18,16,17,15,18,15,9,11,11,13,13,11,12,12,14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,15,15,11,12,12,14,14,12,13,13,14,15,12,13,13,14,14,14,14,15,15,16,14,14,14,16,16,11,12,12,14,14,12,13,13,14,15,11,13,12,14,14,13,14,14,16,16,13,14,14,16,15,13,14,14,15,15,14,14,15,15,16,14,15,14,16,16,15,15,16,16,17,15,16,16,17,17,12,13,13,15,15,13,14,14,16,15,12,14,13,16,15,15,16,15,17,17,14,15,15,17,15,10,12,12,14,14,12,12,13,14,15,12,13,12,14,14,14,14,15,15,16,13,14,14,16,16,12,13,13,14,14,13,13,14,14,15,13,14,13,15,15,14,15,15,15,17,14,15,15,16,16,11,12,12,14,14,13,13,14,15,15,12,13,13,15,14,14,15,15,16,17,14,15,14,16,15,14,14,14,16,16,14,15,15,16,16,15,15,15,16,16,15,16,16,16,18,16,17,16,18,17,13,13,14,15,15,14,14,15,16,16,13,14,14,16,15,16,16,17,17,17,15,15,15,17,15,10,12,12,14,13,12,12,13,14,14,11,13,12,14,14,13,14,14,16,16,13,14,14,16,15,12,12,13,14,14,12,13,13,14,15,13,13,13,15,15,14,14,15,16,16,14,15,15,16,16,11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14,15,14,16,16,13,15,13,16,15,13,14,14,15,16,14,15,15,15,17,14,15,15,16,16,16,15,16,16,17,16,16,16,17,17,13,14,12,16,13,14,15,13,16,15,13,15,13,16,14,15,16,15,17,16,15,16,14,17,15,11,12,12,14,15,13,13,14,14,16,13,14,13,15,14,15,15,16,16,17,15,15,15,16,16,12,13,13,15,15,13,13,14,15,16,14,15,14,16,15,15,15,16,15,17,16,16,16,17,17,12,13,13,14,15,14,14,15,15,16,13,14,13,15,15,16,16,16,17,17,15,16,15,16,15,15,15,15,16,16,14,15,15,16,17,16,16,16,17,17,16,15,17,15,18,17,18,17,18,18,14,14,15,15,17,15,15,16,16,17,14,15,15,16,16,17,17,17,17,18,16,16,15,17,15,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,14,17,16,13,13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,15,16,16,17,15,16,16,17,17,12,13,13,15,14,13,14,14,16,15,13,14,13,16,14,15,16,16,17,16,15,16,14,17,15,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,15,17,16,18,16,17,17,18,18,14,15,14,16,13,15,16,15,17,14,15,16,14,17,14,16,17,16,18,16,16,17,15,18,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,6,8,8,10,9,8,9,9,10,10,8,9,9,10,10,8,10,10,10,10,8,10,10,10,10,9,9,9,10,10,9,10,10,10,11,9,10,10,11,11,10,10,10,11,11,10,10,10,11,11,9,9,9,10,10,9,10,10,11,11,9,10,10,11,10,10,10,10,11,11,10,10,10,11,11,10,10,10,10,11,10,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,11,10,10,11,11,11,11,10,11,10,11,11,11,11,11,11,11,10,11,11,11,11,9,10,10,10,11,10,10,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,12,11,11,11,12,12,10,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,9,10,10,11,10,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11,11,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,7,10,10,11,11,10,10,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,10,10,11,11,10,11,11,11,11,11,11,11,11,12,11,11,11,12,12,11,11,11,12,12,10,11,11,11,11,11,11,11,12,11,11,11,11,12,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,11,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,10,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,12,11,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,7,10,10,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,12,12,11,11,11,12,12,10,10,10,11,11,11,11,11,12,11,10,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,11,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,10,10,10,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,11,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,13,12,13,12,12,13,13,13,13,12,13,13,13,13,8,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,12,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,8,11,11,11,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,12,12,13,12,13,13,13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,4,7,7,4,7,6,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,6,7,8,8,9,10,8,10,10,8,9,10,10,11,12,10,11,12,8,10,10,10,11,12,10,12,11,6,8,7,8,10,10,8,10,9,8,10,10,10,11,12,10,12,12,8,10,9,10,12,11,10,12,11,5,8,8,8,10,10,8,10,10,7,9,10,9,10,11,10,11,11,8,10,10,10,12,12,10,12,11,7,9,9,9,11,11,9,11,11,9,10,11,11,11,12,11,12,12,9,11,11,11,12,12,11,12,12,7,9,9,10,11,12,10,12,11,9,11,10,11,11,12,12,13,13,9,11,11,12,13,13,11,13,11,5,8,8,8,10,10,8,10,10,8,10,10,10,11,12,10,12,12,7,9,9,9,11,11,9,11,10,7,9,9,10,11,12,10,12,11,9,11,11,11,11,13,12,13,13,9,10,11,12,13,13,11,12,11,7,9,9,9,11,11,9,11,11,9,11,11,11,12,12,11,12,12,9,11,10,11,12,12,10,12,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,6,7,7,6,7,7,6,7,7,7,7,8,7,7,8,6,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,9,5,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,9,8,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,7,8,8,8,9,9,8,9,9,8,9,8,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,6,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,9,7,8,8,8,9,9,8,9,9,8,8,9,9,9,9,9,9,9,8,8,8,9,9,9,9,9,9,8,8,8,8,9,9,8,9,9,8,9,9,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,4,4,7,7,4,7,6,5,6,7,7,8,9,7,9,9,5,7,6,7,9,9,7,9,8,6,8,8,8,10,10,8,10,10,8,9,10,10,11,12,10,12,12,8,10,10,10,12,12,10,12,11,6,8,8,8,10,10,8,10,10,8,10,10,10,11,12,10,12,12,8,10,9,10,12,11,10,12,11,5,8,8,8,10,10,8,10,10,8,9,10,10,11,11,10,11,11,8,10,10,10,11,12,10,12,11,8,10,10,10,11,11,10,11,11,10,11,11,11,12,13,11,12,13,10,11,11,11,13,13,11,13,13,7,9,9,10,11,12,10,12,11,9,11,11,11,12,13,12,14,13,9,11,11,12,13,14,11,13,12,5,8,8,8,10,10,8,10,10,8,10,10,10,11,12,10,12,12,8,10,9,10,12,11,9,11,11,7,9,9,10,11,12,10,12,11,9,11,11,11,12,13,12,14,13,9,11,11,12,13,14,11,13,12,8,10,10,10,11,11,10,11,11,10,11,11,11,13,13,11,13,13,10,11,10,11,13,12,11,13,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,8,8,5,7,7,9,9,5,7,7,9,9,6,8,8,11,11,6,8,8,11,11,6,7,7,9,9,7,8,9,10,11,7,9,9,11,10,8,9,10,12,12,8,10,10,12,12,6,7,7,9,9,7,9,9,10,10,7,9,8,11,10,8,10,10,12,12,8,10,9,12,12,8,9,9,11,11,9,10,10,12,12,9,11,11,12,13,11,12,12,13,14,11,12,12,14,14,8,9,9,11,11,9,11,10,13,12,9,10,10,13,12,11,12,12,14,14,11,12,12,14,13,7,8,9,10,10,8,10,10,11,11,8,10,10,11,11,10,11,11,13,13,10,11,11,13,13,8,9,10,10,11,10,11,11,12,13,10,11,11,12,12,11,11,12,13,14,11,12,12,14,14,8,10,10,11,11,10,11,11,12,13,10,11,11,12,12,11,12,12,14,14,11,12,12,14,14,10,11,11,12,13,11,12,12,13,14,12,13,13,14,14,13,13,14,14,16,13,14,14,15,16,10,11,11,13,13,12,12,12,14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,16,15,7,8,8,10,10,8,10,10,11,11,8,10,10,12,11,10,11,11,13,13,10,11,11,13,13,8,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,11,12,12,14,14,8,10,9,11,10,10,11,11,13,12,10,11,10,13,12,11,12,12,14,14,11,12,11,14,13,10,11,11,13,13,11,12,12,14,14,12,12,12,14,14,13,14,14,15,16,13,14,14,15,15,10,11,11,13,12,12,12,12,14,14,11,12,12,14,13,13,14,14,16,15,13,14,13,16,14,10,11,11,13,13,12,12,13,14,15,12,13,13,14,15,13,14,15,15,16,13,14,14,16,16,11,12,13,14,14,13,13,14,15,16,13,14,14,15,16,14,15,15,16,17,14,15,16,17,17,11,12,12,14,14,13,14,14,15,16,13,14,14,15,15,14,15,15,16,18,14,15,15,17,16,13,14,15,15,16,15,15,16,16,18,15,15,15,17,17,16,16,17,17,18,16,16,16,18,18,14,14,14,16,16,15,15,15,16,17,15,15,15,16,17,16,17,17,18,18,16,16,17,18,17,10,11,11,14,13,12,13,13,15,14,11,13,13,15,14,13,15,15,16,16,13,14,14,16,16,11,12,12,14,14,13,13,13,15,15,13,14,13,15,15,15,15,15,17,16,14,15,15,17,16,11,13,12,14,14,13,14,13,15,15,13,14,13,15,15,14,15,15,17,17,14,15,15,17,16,14,14,14,16,16,14,15,15,17,17,15,15,16,17,16,17,16,17,18,18,16,17,17,18,18,13,14,14,16,15,15,15,15,17,17,14,16,15,16,16,17,17,17,18,18,16,17,16,20,19,6,8,8,10,10,8,10,10,11,11,8,10,10,12,11,10,11,11,13,13,10,11,11,13,13,8,9,10,11,11,10,11,11,12,12,10,11,11,13,12,11,12,12,14,14,11,12,12,14,14,9,10,10,11,11,10,11,11,12,12,10,11,11,13,12,11,12,12,14,14,11,12,12,14,14,10,10,11,12,13,11,12,12,14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,15,16,10,11,11,13,13,12,12,12,14,14,12,13,12,14,14,13,14,14,16,16,13,14,14,15,15,9,10,10,11,12,10,11,11,12,13,10,11,11,13,12,11,12,12,14,14,11,12,12,14,14,10,10,11,12,13,11,12,12,13,14,11,12,12,13,14,12,13,14,14,15,12,13,13,15,15,10,11,11,13,13,11,12,12,13,14,11,12,12,14,13,12,13,13,15,15,12,13,13,15,15,12,11,13,12,14,13,13,14,14,15,13,13,14,14,15,14,15,15,16,17,14,15,15,16,17,12,13,12,14,14,13,14,14,15,15,13,14,14,15,15,14,15,15,16,17,14,15,15,16,17,8,9,9,11,11,10,11,11,12,13,10,11,11,13,12,12,13,13,14,15,11,13,12,15,14,9,11,10,12,12,11,12,12,13,14,11,12,12,14,13,13,13,14,15,15,13,14,13,15,15,9,11,11,12,12,11,12,12,14,14,11,12,12,14,13,13,14,14,15,16,13,14,13,15,14,11,12,12,14,13,12,13,13,14,15,13,14,14,16,15,15,15,15,15,16,15,16,15,17,17,11,12,12,14,14,13,14,14,15,15,12,13,13,15,14,15,15,15,17,17,14,15,15,17,15,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,16,16,12,13,13,14,15,13,14,14,16,16,14,14,14,15,16,15,16,16,17,17,15,16,16,17,17,12,13,13,15,15,14,14,14,16,16,14,14,15,16,16,15,16,16,17,17,15,16,16,17,17,14,15,15,15,16,15,15,16,16,18,15,16,16,17,17,17,17,17,18,18,16,17,17,19,18,14,15,15,16,17,15,16,16,17,17,15,16,16,18,17,16,17,17,19,18,17,17,17,19,18,10,12,12,14,14,13,13,14,15,15,12,14,13,16,15,15,15,15,17,17,14,15,15,17,16,12,13,13,15,14,13,14,14,16,16,14,14,15,17,16,15,16,16,17,17,15,16,16,18,17,12,13,13,15,14,14,15,15,16,16,13,15,14,16,15,16,17,16,19,17,15,16,16,17,17,14,15,15,17,15,15,16,15,17,17,16,17,16,18,17,17,17,18,18,18,17,17,18,19,18,14,15,15,16,16,15,16,16,17,18,15,16,16,18,16,17,18,18,19,19,17,18,17,18,19,6,8,8,10,10,8,10,10,11,11,8,10,10,12,11,10,11,11,13,13,9,11,11,13,13,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,11,12,12,14,14,8,10,9,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,11,12,12,14,14,10,11,11,13,13,11,12,13,14,14,12,12,12,14,14,13,14,14,15,16,13,14,14,16,16,10,11,10,13,12,11,12,12,14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,16,15,8,9,9,11,11,10,11,11,12,13,10,11,11,13,12,12,13,13,14,15,12,13,13,15,14,10,11,11,12,12,11,11,12,13,14,11,12,12,14,14,13,13,14,15,16,13,14,14,15,15,9,10,11,12,12,11,12,12,13,14,11,12,12,14,13,13,14,14,15,16,12,14,13,15,15,11,12,12,14,14,12,13,13,14,15,13,14,14,16,15,14,15,15,15,17,15,15,16,16,17,11,12,12,13,14,13,14,14,15,15,12,13,13,15,14,15,16,15,16,17,14,16,15,17,15,9,10,10,12,11,10,11,11,13,13,10,11,11,13,12,11,12,12,14,14,11,12,12,14,14,10,11,11,12,13,11,12,12,13,14,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,10,11,10,13,12,11,12,12,13,13,11,12,12,14,13,12,13,13,15,15,12,13,13,15,14,12,13,12,14,14,13,14,14,15,15,13,14,14,15,15,14,15,15,16,16,14,15,15,16,16,11,13,11,14,12,13,13,13,15,14,12,14,13,15,14,15,15,15,17,16,14,15,14,17,15,10,12,12,14,14,13,13,14,15,16,12,14,13,15,15,14,15,16,17,17,14,15,16,17,17,12,13,13,14,15,13,14,14,16,16,14,14,15,16,16,16,16,16,17,17,16,16,16,18,18,12,13,13,14,15,14,14,15,16,16,13,14,14,16,15,16,16,16,17,18,15,16,16,17,17,14,15,15,16,16,15,15,16,17,17,15,16,16,17,18,17,18,18,18,19,17,18,18,19,19,14,15,15,16,16,15,16,16,17,17,15,16,16,17,17,17,17,18,20,18,17,18,17,18,18,11,12,12,14,14,12,13,14,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,16,17,12,13,13,15,15,14,14,14,16,16,14,14,14,16,16,15,16,16,17,17,15,16,16,17,17,12,13,13,15,14,13,14,14,16,15,14,15,14,16,15,15,16,16,17,17,15,16,16,17,16,14,15,15,16,16,15,16,16,17,17,16,16,16,17,17,17,17,17,19,18,17,17,17,18,19,14,15,14,17,15,15,16,16,17,17,15,16,15,17,17,16,17,17,18,18,16,17,17,18,17,6,11,11,13,13,11,12,12,14,14,11,12,12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,17,18,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,16,16,13,14,14,15,16,14,15,15,16,17,14,15,15,17,16,15,16,17,18,17,16,16,16,18,17,14,14,15,16,16,14,15,15,18,16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,16,16,12,13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,16,16,17,17,15,15,16,17,17,12,13,13,15,15,14,14,14,16,16,13,14,14,16,16,15,16,16,17,17,15,16,16,17,17,14,14,15,15,16,15,15,16,16,17,15,15,16,16,17,16,17,17,17,18,16,17,17,18,18,14,15,15,16,16,15,16,16,17,17,15,16,16,17,17,17,17,17,18,19,17,17,17,18,18,10,12,12,14,14,12,13,14,15,16,13,14,13,15,15,14,15,15,17,17,14,15,16,17,17,12,13,13,15,15,13,14,14,15,15,14,15,14,16,16,15,16,16,17,18,15,17,16,18,17,12,13,13,15,15,14,14,14,16,16,13,14,14,16,15,15,16,16,17,18,15,16,16,17,17,14,14,14,16,16,15,15,16,17,17,15,16,16,17,17,17,17,17,18,20,17,17,17,19,19,14,15,15,16,16,15,17,16,18,18,15,16,15,17,16,17,18,19,19,19,17,17,17,18,17,13,14,14,16,16,14,15,15,17,17,14,15,15,16,17,15,17,17,18,18,16,16,17,18,17,14,15,15,16,17,15,16,16,17,17,15,16,16,17,17,16,17,17,18,18,17,17,17,18,19,14,15,15,16,17,15,16,16,17,17,15,16,16,17,17,16,17,17,18,18,17,17,17,19,19,16,16,16,16,18,16,17,17,17,18,17,17,17,17,19,18,18,18,19,19,18,18,18,19,20,16,16,17,18,18,16,18,17,18,18,17,17,17,20,19,18,18,19,21,20,18,20,18,18,19,10,12,12,14,14,14,14,15,15,17,14,15,14,17,15,16,16,17,18,18,16,18,17,19,18,12,14,13,16,15,14,14,15,15,17,15,16,16,18,17,16,17,18,17,19,17,19,18,20,19,12,13,13,15,15,15,16,17,17,18,14,16,14,17,16,17,18,18,19,19,17,17,17,18,18,15,15,15,17,16,15,16,16,17,17,17,19,17,18,18,18,18,18,18,21,19,20,19,20,19,15,15,16,16,17,17,17,18,20,20,15,16,16,18,17,18,19,19,19,20,18,19,18,19,17,6,11,11,13,13,11,12,12,14,14,11,12,12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,17,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,15,16,16,13,14,14,16,16,15,15,15,16,16,14,15,15,17,16,16,17,17,19,18,16,17,17,18,18,13,14,14,15,15,14,15,15,17,16,14,15,15,17,16,16,17,16,17,18,15,16,16,18,18,10,12,12,14,14,12,13,14,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,17,16,12,13,13,15,15,14,14,14,15,16,14,15,15,16,16,15,16,16,17,18,16,16,16,18,18,12,13,13,14,14,14,14,15,16,16,13,14,14,16,16,15,16,16,18,18,15,16,16,19,17,14,15,15,16,17,15,15,16,17,17,16,17,16,17,18,17,17,18,17,19,17,17,18,18,19,14,14,14,16,16,15,16,16,17,17,15,16,15,17,17,17,17,17,19,20,16,17,17,18,18,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,14,16,16,12,13,13,15,15,14,14,14,16,16,13,14,14,16,16,15,16,16,18,17,15,16,16,17,17,12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,15,16,15,18,18,15,16,15,17,16,14,15,15,16,16,15,16,16,17,17,15,16,16,18,17,16,17,17,18,18,16,17,17,18,18,14,15,14,16,15,15,16,15,17,17,15,16,15,17,16,16,17,17,18,18,17,17,16,19,17,10,12,12,14,15,14,14,15,15,17,14,15,14,17,15,16,17,17,17,18,16,17,17,18,18,12,14,13,16,15,14,14,16,15,17,15,17,16,18,17,17,17,18,17,19,18,18,18,19,18,12,13,14,15,15,15,16,16,16,17,14,15,14,18,16,18,17,18,19,19,17,18,17,20,18,15,15,15,17,17,15,16,16,17,18,18,18,18,19,18,18,18,19,18,20,18,19,19,21,21,15,15,16,16,17,17,18,18,18,18,15,16,16,17,17,17,19,20,19,20,17,18,18,19,17,13,14,14,16,16,14,15,15,16,17,14,15,15,17,17,16,16,17,17,18,15,17,16,17,17,14,15,15,16,16,15,16,16,17,17,16,16,16,17,17,17,17,18,17,18,17,17,17,18,20,14,15,15,17,16,15,16,16,17,17,15,16,16,17,17,17,17,17,18,18,16,17,17,19,18,16,16,17,17,17,17,18,17,19,18,17,17,17,18,19,17,20,18,19,21,17,19,18,19,20,15,17,15,17,16,16,17,17,18,18,17,17,17,18,17,18,19,18,19,21,18,18,17,19,19,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,4,8,8,4,8,8,5,7,8,8,9,10,8,10,10,5,8,7,8,10,10,8,10,9,7,9,9,9,11,11,9,11,11,9,11,11,11,12,13,11,13,13,9,11,11,11,13,13,11,13,13,7,9,9,9,11,11,9,11,11,9,11,11,11,13,13,11,13,13,9,11,11,11,13,13,11,13,12,5,9,9,9,11,11,9,11,11,9,11,11,11,12,13,11,13,13,9,11,11,11,13,13,11,13,13,9,11,12,11,13,13,12,13,13,11,12,13,13,14,15,13,14,14,12,13,13,13,15,15,13,15,14,8,10,10,11,13,13,12,14,13,11,12,12,13,14,15,13,15,15,11,12,12,13,15,15,13,15,14,5,9,9,9,11,11,9,11,11,9,11,11,11,13,13,11,13,13,9,11,10,11,13,13,11,13,12,8,10,10,11,13,13,12,13,13,11,12,12,13,14,15,14,15,15,10,12,12,13,14,15,13,15,14,9,12,11,12,13,13,11,13,13,12,13,13,13,15,15,13,14,15,11,13,12,13,15,14,13,15,14,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,2,0,0,0,64,0,0,0,72,46,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,242,5,0,0,0,0,0,0,0,0,0,144,242,5,0,0,0,0,0,0,0,0,0,184,242,5,0,224,242,5,0,0,0,0,0,0,0,0,0,8,243,5,0,48,243,5,0,0,0,0,0,0,0,0,0,88,243,5,0,128,243,5,0,0,0,0,0,0,0,0,0,168,243,5,0,208,243,5,0,128,243,5,0,0,0,0,0,248,243,5,0,32,244,5,0,72,244,5,0,112,244,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,40,242,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,14,16,17,18,20,21,7,4,6,8,11,12,14,16,13,5,4,4,8,9,11,13,15,8,4,3,5,7,9,10,17,11,8,4,4,6,9,9,17,11,9,7,6,5,7,8,19,13,11,9,9,7,8,8,21,15,13,11,10,8,8,7,5,0,0,0,243,0,0,0,64,45,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,56,46,6,0,0,0,0,0,5,0,0,0,53,12,0,0,240,32,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,40,45,6,0,0,0,0,0,5,0,0,0,243,0,0,0,232,31,6,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,224,32,6,0,0,0,0,0,5,0,0,0,243,0,0,0,224,30,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,216,31,6,0,0,0,0,0,5,0,0,0,243,0,0,0,216,29,6,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,208,30,6,0,0,0,0,0,5,0,0,0,53,12,0,0,136,17,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,29,6,0,0,0,0,0,5,0,0,0,53,12,0,0,56,5,6,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,112,17,6,0,0,0,0,0,1,0,0,0,7,0,0,0,16,5,6,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,24,5,6,0,0,0,0,0,5,0,0,0,243,0,0,0,8,4,6,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,0,5,6,0,0,0,0,0,5,0,0,0,243],"i8",O3,_.GLOBAL_BASE+379856),C3([3,6,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,248,3,6,0,0,0,0,0,5,0,0,0,243,0,0,0,248,1,6,0,1,0,0,0,0,106,120,225,0,106,120,97,2,0,0,0,0,0,0,0,240,2,6,0,0,0,0,0,5,0,0,0,53,12,0,0,168,245,5,0,1,0,0,0,0,136,83,225,0,136,51,97,3,0,0,0,0,0,0,0,224,1,6,0,0,0,0,0,1,0,0,0,25,0,0,0,32,245,5,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,64,245,5,0,0,0,0,0,1,0,0,0,25,0,0,0,152,244,5,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,184,244,5,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,4,5,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,7,7,12,12,5,11,12,12,12,5,12,11,12,12,12,12,12,12,12,12,13,13,13,13,7,11,11,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,7,13,10,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,7,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,7,7,7,8,7,8,7,7,7,8,7,8,8,8,8,8,7,8,7,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,9,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,9,9,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,8,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,8,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,8,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,5,7,7,5,7,7,5,7,7,7,7,9,7,9,9,6,7,7,8,9,9,7,9,7,6,8,8,8,9,10,8,9,9,8,9,10,9,9,10,10,10,10,8,9,9,10,10,11,9,10,10,6,8,8,8,9,9,8,10,9,8,9,9,9,10,10,10,11,10,8,10,9,10,11,10,9,11,9,6,8,8,7,9,9,7,9,9,7,9,9,8,9,10,9,10,10,8,9,9,9,10,10,9,10,9,7,9,9,9,9,10,9,10,10,9,9,10,10,9,11,10,11,11,9,10,10,10,11,11,10,11,10,6,9,8,9,9,10,9,10,9,8,10,10,9,9,10,10,11,11,9,10,10,10,11,11,9,11,9,6,8,8,7,9,9,7,9,9,8,9,9,9,9,10,9,10,10,7,9,9,9,10,10,8,10,9,6,8,9,9,9,10,9,10,9,9,10,10,9,9,11,10,11,11,8,9,10,10,11,11,9,10,9,7,9,9,9,10,10,9,10,9,9,10,10,10,10,11,10,11,11,9,10,9,10,11,11,10,11,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,9,9,5,7,8,10,11,5,8,7,11,10,8,10,11,12,13,8,11,10,13,12,6,7,8,10,11,7,8,10,10,12,8,9,9,12,12,10,10,12,12,14,10,12,12,14,13,6,8,7,11,10,8,9,9,12,12,7,10,8,12,11,10,12,12,13,14,10,12,10,14,12,9,10,11,11,13,10,10,11,11,13,11,12,12,13,14,12,12,13,11,15,13,14,14,15,14,9,11,10,13,11,11,12,12,13,13,10,11,10,13,11,13,14,14,15,15,12,13,12,15,11,6,8,9,11,12,8,9,11,12,13,8,10,10,13,13,11,12,13,14,15,11,12,13,14,14,9,9,10,12,13,10,10,12,12,14,10,11,11,13,14,12,12,14,14,15,13,13,14,15,15,9,10,10,13,13,10,11,11,13,14,10,11,10,14,13,13,13,14,15,15,12,14,13,15,14,12,12,13,13,14,12,13,14,13,15,13,14,14,15,15,14,14,15,14,16,15,15,15,16,16,12,13,13,14,14,13,14,14,15,15,12,14,13,15,14,14,15,15,16,16,14,15,14,16,14,6,9,8,12,11,8,10,10,13,13,8,11,9,13,12,11,12,12,14,14,11,13,12,15,14,9,10,10,13,13,10,10,11,13,14,10,12,11,14,13,12,13,14,14,15,13,13,13,15,14,9,10,9,13,12,10,11,11,14,13,10,12,10,14,12,13,14,13,15,15,12,14,12,15,14,12,13,13,14,14,13,13,13,14,15,13,14,14,15,15,14,14,15,14,16,14,15,15,16,16,12,13,12,14,13,13,14,14,15,15,12,14,13,15,13,15,15,15,16,16,14,15,14,16,14,11,12,12,13,14,12,13,14,14,16,12,13,13,15,15,14,14,16,15,17,14,15,15,16,16,12,13,14,14,15,13,13,15,15,16,14,14,14,15,16,15,15,16,16,17,15,15,16,16,17,13,13,13,15,15,14,14,15,15,16,13,14,14,15,16,15,15,16,16,17,15,16,15,17,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17,17,16,16,17,16,18,16,17,17,17,17,15,15,15,16,16,15,16,16,17,17,15,16,16,17,16,16,17,17,18,18,16,17,16,17,16,11,12,12,15,13,13,13,13,15,15,12,14,13,16,14,14,15,15,16,16,14,15,14,17,15,13,13,13,15,14,13,14,14,16,15,14,14,14,16,15,15,15,16,16,17,15,16,15,17,16,12,14,13,15,14,14,14,14,16,15,13,14,13,16,15,15,16,16,17,16,15,16,15,17,16,15,15,15,16,16,15,15,16,16,17,15,16,16,17,17,16,16,17,17,17,17,17,17,18,17,14,15,15,16,16,15,16,16,17,16,15,16,15,17,16,17,17,17,18,17,16,17,16,18,16,6,9,9,12,12,8,10,10,12,13,8,10,10,13,12,10,12,12,14,15,11,13,12,15,14,8,9,10,12,13,9,10,11,13,14,10,11,11,14,13,12,12,13,14,15,12,13,13,15,15,8,10,10,13,13,10,11,11,13,14,10,12,10,14,13,12,13,13,15,15,12,14,13,15,14,11,12,12,13,14,12,12,13,13,15,12,13,13,15,15,14,13,15,14,16,14,15,15,16,16,12,13,13,14,14,13,13,14,15,14,12,14,13,15,14,14,15,15,16,15,14,15,14,16,14,7,9,10,12,12,9,10,11,13,14,9,11,10,13,13,11,12,13,14,15,12,13,13,15,14,9,10,11,12,13,10,10,12,13,14,11,11,12,14,14,12,12,14,14,15,13,13,14,15,15,9,11,11,13,13,11,12,12,14,14,10,12,10,14,13,13,14,14,15,15,13,14,13,16,14,12,12,13,14,15,13,13,14,14,16,13,14,14,15,15,14,14,15,14,17,14,15,15,16,16,12,13,13,15,14,13,14,14,15,15,13,14,13,16,14,15,15,15,16,16,14,15,14,16,14,7,10,9,13,12,10,11,12,12,14,10,12,11,14,12,12,13,13,14,15,12,14,13,15,14,9,11,10,13,13,10,11,12,13,14,12,13,12,15,13,13,13,14,13,15,13,14,14,16,15,10,11,11,13,13,12,12,13,14,14,11,12,11,14,13,14,14,14,15,16,13,14,13,16,13,12,13,13,14,14,12,13,13,14,15,14,14,14,15,15,14,13,15,13,16,15,15,15,17,16,13,13,13,14,14,14,14,14,15,15,12,13,13,15,14,15,16,16,16,16,14,15,14,16,13,11,12,13,14,15,12,13,14,15,16,13,14,14,15,15,14,14,15,15,17,14,15,15,16,16,13,13,14,14,15,13,13,15,14,16,14,14,15,15,16,15,14,16,15,17,15,16,16,16,17,13,14,14,15,15,14,14,15,16,16,13,15,14,16,16,15,16,16,17,17,15,16,15,17,16,14,15,15,15,17,15,15,16,15,17,15,16,16,16,17,16,16,17,16,18,17,17,17,17,18,15,15,15,17,16,15,16,16,17,17,15,16,16,17,16,16,17,17,18,18,16,17,16,18,17,11,13,12,15,14,13,13,14,15,15,13,14,13,16,14,15,15,15,16,16,15,16,15,17,16,13,14,13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,16,16,16,15,16,15,18,16,13,14,14,15,15,14,15,15,15,16,13,15,13,16,15,15,16,16,17,17,15,16,15,17,16,15,15,15,16,16,15,15,15,16,17,16,16,16,17,16,16,16,17,16,17,17,17,17,18,17,15,15,15,16,16,16,16,16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16,17,15,6,9,9,12,12,8,10,10,12,13,8,10,10,13,12,11,12,13,14,15,10,12,12,14,14,9,10,10,13,13,10,10,12,13,14,10,11,11,14,13,12,13,14,14,15,12,13,13,15,15,8,10,9,13,12,10,11,11,13,14,9,11,10,14,13,12,13,13,15,15,12,13,12,15,14,12,13,13,14,14,12,13,13,14,15,13,14,14,14,15,14,14,15,14,16,14,15,15,16,16,11,12,12,14,13,13,13,13,15,15,12,13,12,15,13,14,15,15,16,16,14,15,14,16,14,7,9,10,12,13,10,10,12,12,14,10,12,11,14,13,12,13,14,14,15,12,13,13,15,14,10,11,11,13,13,11,11,12,13,14,12,13,12,14,14,13,13,14,13,16,14,14,14,15,15,9,10,11,13,14,12,12,13,13,15,10,12,10,14,13,13,14,14,15,16,13,14,13,15,13,13,14,13,14,15,12,13,13,14,15,14,14,14,15,15,14,13,15,13,16,15,16,16,16,16,12,13,13,14,14,14,14,14,15,15,12,13,13,15,14,15,15,16,16,16,14,15,13,16,13,7,10,9,12,12,9,10,11,13,13,9,11,10,14,13,12,13,13,14,15,11,13,12,15,14,9,11,11,13,13,10,10,12,13,14,11,12,12,14,14,13,13,14,14,16,13,14,14,16,15,9,11,10,13,12,11,12,11,14,14,10,12,10,14,13,13,14,13,15,15,12,14,12,16,14,12,13,13,14,15,13,13,14,14,16,13,14,14,15,15,14,14,15,14,16,15,15,15,16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,16,14,14,15,15,16,16,14,15,14,17,14,11,12,13,14,15,13,13,14,14,16,13,14,13,15,15,15,15,16,16,17,15,15,15,16,16,13,14,13,15,15,13,13,15,15,16,14,15,15,16,16,15,15,16,15,17,16,16,16,17,17,13,13,14,14,15,14,14,15,15,16,13,14,13,15,15,15,16,16,16,17,15,16,15,16,16,15,15,15,16,16,15,15,16,16,17,16,16,16,17,17,16,16,17,16,18,17,17,17,18,18,15,15,15,16,16,16,16,16,17,17,15,15,15,16,16,17,17,17,17,18,16,16,16,17,15,11,13,12,15,14,13,13,14,15,15,12,14,13,16,14,14,15,15,16,16,14,15,14,16,15,13,14,14,15,15,13,14,14,16,16,14,15,14,16,16,15,15,16,17,17,15,16,16,17,17,13,14,13,15,14,14,14,14,16,15,13,15,13,16,14,15,16,15,17,16,15,16,14,17,15,14,16,15,16,17,15,16,16,16,17,15,16,16,17,17,16,16,17,17,18,16,17,17,18,17,14,15,15,17,15,15,16,16,17,16,15,16,15,17,15,16,17,17,18,17,16,17,16,18,15,10,12,12,14,14,12,13,13,15,15,12,13,13,15,15,13,14,14,15,16,14,15,14,16,16,12,13,13,15,15,12,13,14,15,15,13,14,14,15,15,14,14,15,16,17,14,15,15,17,16,12,13,13,15,15,13,14,14,15,16,13,14,14,16,15,14,15,15,16,17,14,15,15,17,16,13,14,14,15,16,14,14,15,15,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17,17,14,15,15,16,16,15,15,15,16,16,15,15,15,16,16,16,17,16,17,17,16,16,16,18,16,11,12,12,14,14,12,13,14,15,15,12,13,13,15,15,13,14,15,16,16,14,15,15,16,16,12,13,13,15,15,13,13,14,15,16,13,14,14,15,16,14,14,15,16,17,15,15,15,16,17,12,13,13,15,15,13,14,14,15,16,13,14,14,16,15,15,15,15,16,17,15,16,15,17,16,14,14,15,15,16,14,14,15,15,17,15,15,16,16,17,15,15,16,15,18,16,16,16,17,17,14,15,15,16,16,15,16,16,17,17,15,15,15,17,16,16,17,16,17,17,16,16,16,18,16,11,12,12,14,14,13,13,14,15,15,13,14,13,15,15,14,15,15,16,16,14,15,15,16,16,12,13,13,15,15,13,13,14,15,15,14,14,14,16,15,15,15,15,15,16,15,16,15,17,16,12,13,13,15,15,14,14,15,15,16,13,14,13,16,15,15,15,16,16,17,15,16,15,17,15,14,15,14,16,16,14,15,15,16,16,15,16,15,17,16,15,15,16,15,17,16,17,16,17,17,14,15,15,16,16,15,16,16,16,17,14,15,15,16,16,16,17,17,17,18,16,16,16,17,16,12,13,13,15,15,13,13,14,15,16,13,14,14,16,15,14,15,15,16,17,14,15,15,17,16,13,14,14,15,16,14,14,15,15,17,14,15,15,16,16,15,14,16,15,17,15,16,16,17,17,13,14,14,16,16,14,15,15,16,16,14,15,14,16,16,15,16,16,17,17,15,16,15,17,16,15,15,16,15,17,15,15,16,15,17,15,16,16,16,17,16,15,17,15,18,17,17,17,17,17,15,15,15,17,17,16,16,16,17,17,15,16,15,17,17,16,17,17,18,18,16,17,15,18,15,11,12,12,15,15,13,13,15,14,16,13,14,13,16,14,15,15,16,16,17,15,16,15,17,15,12,14,13,16,14,13,13,14,14,16,14,15,14,16,15,15,15,16,15,17,16,16,16,17,16,12,13,14,15,16,15,15,15,15,16,13,15,13,16,14,16,16,16,17,17,15,16,15,17,15,15,16,15,16,15,14,14,15,16,16,16,16,16,17,16,15,15,16,15,17,17,17,17,18,17,15,15,15,16,16,16,16,16,16,17,14,15,15,17,16,17,17,17,17,18,15,16,15,18,14,10,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,14,15,15,16,13,15,14,16,16,12,13,13,15,15,13,14,14,15,16,13,14,14,15,15,14,15,15,16,17,14,15,15,17,16,12,13,13,15,15,13,14,14,15,15,12,14,13,15,15,14,15,15,16,17,14,15,14,17,15,14,15,15,16,16,14,15,15,16,17,15,15,15,17,16,16,16,16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15,16,16,14,15,14,16,16,15,16,16,17,17,15,16,15,17,16,11,12,12,14,15,13,13,14,14,15,13,14,13,15,15,14,15,15,16,16,14,15,15,16,16,12,14,13,15,15,13,13,14,15,16,14,15,14,16,15,15,15,16,15,17,15,16,16,17,16,12,13,13,15,15,14,14,15,15,16,13,14,13,16,15,15,15,16,16,17,15,15,15,16,16,14,15,15,16,16,14,15,15,16,16,15,16,16,17,17,16,16,16,16,17,16,17,17,18,17,14,14,15,15,16,15,15,16,16,17,14,15,15,16,16,16,16,16,17,17,15,16,15,17,15,11,12,12,14,14,12,13,14,15,15,12,13,13,15,15,14,15,15,16,16,13,15,14,16,16,12,13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,15,15,16,17,15,15,15,17,16,12,13,13,15,15,13,14,14,16,15,13,14,13,16,15,15,16,15,17,17,14,15,14,17,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17,17,16,16,16,16,18,16,17,16,18,17,14,15,14,16,15,15,15,15,17,16,14,15,14,17,15,16,17,16,17,17,15,16,15,17,15,11,12,12,15,15,13,13,15,14,16,13,15,13,16,14,15,15,16,15,17,15,16,15,17,16,12,14,13,15,15,13,13,15,15,16,15,15,15,16,15,15,15,16,15,17,16,16,16,17,16,12,13,14,15,16,14,14,15,15,16,13,14,13,16,14,16,16,16,16,17,15,16,15,17,15,15,16,15,16,16,14,15,15,16,16,16,16,16,17,16,15,15,16,15,17,17,17,17,18,17,15,15,15,15,16,16,16,16,16,17,14,15,14,16,15,17,17,17,17,18,15,16,15,17,15,12,13,13,15,15,13,14,14,15,16,13,14,14,16,15,14,15,15,16,17,14,15,15,17,16,13,14,14,16,15,13,14,15,16,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17,17,13,14,13,16,15,14,15,15,16,16,13,15,14,16,15,15,16,16,17,17,15,16,14,17,15,15,15,16,17,17,15,15,16,16,17,16,16,16,17,17,16,15,17,16,18,17,17,17,18,18,15,15,15,17,14,16,16,16,17,16,15,16,15,17,15,16,17,17,18,17,16,17,15,18,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,7,9,9,10,10,9,10,10,10,11,9,10,10,11,10,9,10,10,11,11,9,10,10,11,11,9,10,10,11,11,10,10,10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11,11,11,9,10,10,11,11,10,10,10,11,11,9,10,10,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,9,10,10,11,11,10,10,11,11,11,10,10,11,11,11,10,11,11,11,12,10,11,11,12,12,10,10,11,11,11,10,11,11,11,12,11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10,11,11,11,11,11,11,11,12,12,10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,10,11,11,10,11,10,11,11,10,11,11,12,12,10,11,11,12,11,10,11,11,11,11,10,11,11,11,12,11,11,11,12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,10,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,12,13,12,9,10,10,11,11,10,10,11,11,11,10,11,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,11,11,11,10,11,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,10,11,11,11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,10,11,11,11,12,11,11,12,12,12,11,11,12,12,12,11,11,12,12,12,11,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,11,12,10,11,11,12,11,11,12,11,12,12,11,12,11,12,12,10,11,11,12,11,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,9,10,10,11,11,10,10,11,11,11,10,11,10,11,11,10,11,11,12,12,10,11,11,12,12,10,11,11,11,11,10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10,11,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11,11,11,12,12,11,11,11,11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,9,10,10,11,11,10,11,11,11,12,10,11,11,12,11,11,11,12,12,12,11,11,12,12,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,12,11,11,12,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12,13,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,13,12,13,12,12,12,12,13,12,12,13,12,13,12,13,13,12,13,12,12,12,12,12,12,13,13,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,13,13,13,12,12,12,12,12,12,12,13,12,13,12,12,12,12,13,12,12,13,13,13,12,12,13,12,13,12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,11],"i8",O3,_.GLOBAL_BASE+390097),C3([12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12,13,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13,13,13,12,12,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,13,12,13,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,13,12,13,12,12,12,12,12,12,12,12,12,12,13,12,13,12,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,13,12,13,12,12,13,12,13,12,12,13,12,13,12,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,4,7,8,4,8,7,5,7,8,7,7,10,8,9,9,5,7,7,8,9,9,7,10,7,5,7,8,8,9,11,8,10,10,8,9,10,10,10,12,11,12,12,8,10,10,10,12,12,10,12,11,5,8,7,8,10,10,8,11,9,8,10,10,10,11,12,10,12,12,8,10,9,11,12,12,10,12,10,5,8,8,7,10,10,8,11,10,7,9,10,9,10,12,10,12,12,8,10,10,10,12,12,10,12,11,7,9,10,9,11,12,10,12,11,9,9,12,10,10,13,12,12,13,10,12,11,12,13,13,11,13,11,7,10,9,10,11,12,10,13,11,9,11,11,11,11,13,12,14,13,10,11,11,12,14,14,11,14,11,5,8,8,8,10,11,7,10,10,8,10,10,10,11,12,10,12,12,7,10,9,10,12,12,9,12,10,7,9,10,10,11,13,10,12,11,10,11,11,11,11,14,12,14,14,9,11,11,12,13,14,11,13,11,7,10,9,10,11,12,9,12,10,10,11,12,11,11,13,12,13,13,9,12,9,12,13,12,10,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,6,7,7,7,7,8,7,8,7,7,7,8,7,8,8,8,8,8,7,8,7,7,8,8,7,8,8,7,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,7,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,7,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,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,9,9,8,9,8,7,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,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,8,8,9,8,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,5,5,7,7,5,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,5,7,8,7,9,10,8,9,9,8,9,10,9,10,12,10,11,11,8,10,9,10,11,12,9,11,10,5,8,7,8,10,9,7,10,9,8,9,10,9,10,11,10,12,11,8,10,9,10,11,11,9,12,10,5,8,8,7,9,10,8,10,9,7,9,10,9,10,11,9,11,11,8,10,9,10,11,11,10,12,10,7,9,10,9,10,12,9,11,11,9,9,12,11,10,13,11,11,13,10,12,11,11,13,13,11,13,12,7,9,9,9,11,11,9,12,11,9,11,10,10,11,12,11,13,12,9,11,11,12,13,13,11,13,11,5,8,8,8,9,10,7,10,9,8,9,10,10,10,12,10,11,11,7,10,9,9,11,11,9,11,10,7,9,9,9,11,12,9,11,11,9,11,11,11,11,13,12,13,13,9,10,11,11,12,13,10,12,11,7,10,9,9,11,11,9,12,10,10,11,12,11,12,13,12,13,13,9,12,9,11,13,11,10,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,9,9,6,8,8,10,10,6,8,8,10,10,8,9,10,12,12,8,10,9,12,12,6,8,8,10,10,8,8,9,10,11,8,9,9,11,11,9,10,11,12,13,10,11,11,13,13,6,8,8,10,10,8,9,9,11,11,8,9,8,11,10,10,11,11,13,13,9,11,10,13,12,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,12,13,13,15,14,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13,14,15,12,13,12,15,12,7,8,8,10,11,8,9,10,11,12,8,9,9,11,11,10,11,11,13,14,10,11,11,13,13,8,9,9,11,12,9,10,11,11,13,9,10,10,12,12,11,11,12,13,15,11,12,12,14,14,8,9,9,11,11,9,10,11,12,13,9,10,10,12,12,11,12,12,14,15,11,12,12,14,14,10,11,12,13,13,11,12,12,13,14,12,12,12,14,14,13,13,14,14,16,14,14,14,16,15,10,11,11,13,13,12,12,12,14,14,11,12,12,14,13,14,14,14,15,16,13,14,13,16,14,7,8,8,11,10,8,9,9,11,11,8,10,9,12,11,10,11,11,13,13,10,11,11,14,13,8,9,9,12,11,9,10,10,12,12,9,11,10,13,12,11,12,12,13,14,11,12,12,15,14,8,9,9,12,11,9,10,10,12,12,9,11,10,13,11,11,12,12,14,14,11,12,12,14,13,10,11,11,13,13,11,12,12,13,14,12,13,12,14,14,13,13,14,14,16,13,14,14,16,15,10,11,11,13,13,12,12,12,14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,16,14,9,10,11,12,13,11,11,12,12,14,11,11,12,13,14,13,13,14,14,16,13,13,14,15,15,11,11,12,12,14,12,12,13,13,15,12,12,13,13,15,14,14,15,15,16,14,14,14,15,16,11,12,12,13,14,12,12,13,14,15,12,13,12,14,14,14,14,15,15,16,14,14,14,16,16,13,13,14,15,16,14,14,15,15,16,14,15,15,16,16,15,15,16,16,18,16,16,16,17,17,13,14,14,15,15,14,14,15,16,16,14,15,14,16,16,16,16,16,17,18,15,16,16,17,16,9,11,10,13,12,11,12,11,14,13,11,12,11,14,12,13,14,13,15,14,13,14,13,16,14,11,12,12,14,13,12,12,13,14,14,12,13,12,15,14,14,14,14,16,16,14,15,14,17,15,11,12,11,14,12,12,13,12,15,13,12,13,12,15,13,14,14,14,16,15,14,15,14,16,15,13,14,14,15,15,14,14,15,16,16,14,15,14,16,16,15,15,16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15,16,16,14,15,14,17,15,16,16,16,17,17,15,16,15,18,16,7,8,8,10,11,8,9,9,11,12,8,9,9,12,11,10,11,11,13,14,10,11,11,14,13,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,13,14,11,12,12,14,14,8,9,9,12,11,9,10,11,12,13,9,11,10,13,12,11,12,12,14,14,11,12,12,14,13,10,11,11,13,13,11,12,12,13,14,11,12,12,14,14,13,13,14,14,16,13,14,14,16,15,10,12,11,13,13,12,12,12,14,14,11,12,12,14,13,14,14,14,15,16,13,14,14,16,14,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,11,12,13,14,11,12,12,14,14,9,9,10,11,12,10,10,11,12,13,10,10,11,12,13,12,12,13,14,15,12,12,13,14,15,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,15,15,12,13,13,15,14,11,11,12,13,14,12,12,13,13,15,12,12,13,14,15,14,14,15,14,16,14,14,15,15,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,14,14,15,15,16,16,14,15,14,17,15,8,9,9,11,11,9,10,10,12,12,9,11,10,13,12,11,12,12,14,14,11,13,12,15,13,9,10,10,12,12,10,10,11,12,13,10,12,11,13,13,12,12,13,13,15,12,13,13,15,14,9,10,10,12,12,11,11,12,13,13,10,12,10,13,12,12,13,13,15,15,12,13,13,15,13,11,12,12,14,14,12,12,13,14,14,12,13,13,15,14,13,13,14,13,16,14,15,14,16,16,11,12,12,14,14,13,13,13,15,15,12,13,12,15,14,14,15,15,16,17,14,15,13,16,13,10,11,11,13,14,11,12,12,13,15,11,12,12,14,14,13,14,14,15,16,13,14,14,16,16,11,11,12,12,14,12,12,13,13,15,12,13,13,13,15,14,14,15,14,17,14,14,15,15,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,16,16,13,14,14,14,16,14,14,15,14,17,14,15,15,14,17,16,16,17,15,18,16,16,17,16,18,13,14,14,16,16,14,15,15,17,16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11,13,12,15,14,14,14,14,16,15,14,15,14,16,15,11,12,12,14,13,12,13,13,15,14,13,14,13,15,14,14,15,15,16,16,14,15,15,17,15,11,12,12,14,14,13,13,13,15,15,12,13,13,15,14,15,15,15,17,17,14,15,15,17,15,13,14,14,16,15,14,15,15,16,16,15,15,15,17,16,16,16,16,16,17,16,17,16,18,17,14,14,14,16,16,15,15,15,16,16,14,15,14,17,16,16,17,17,17,18,16,17,16,18,16,7,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,11,13,14,10,11,11,14,13,8,9,9,11,12,9,10,11,12,13,9,11,10,13,12,11,12,12,13,14,11,12,12,14,14,8,9,9,11,11,9,10,10,12,12,9,10,10,13,12,11,12,12,14,14,11,12,11,14,13,10,11,12,13,13,11,12,12,13,14,12,13,12,14,14,13,13,14,14,16,13,14,14,16,15,10,11,11,13,13,11,12,12,14,14,11,12,12,14,13,13,14,14,15,16,13,14,13,16,14,8,9,9,11,11,9,10,11,12,13,9,10,10,12,12,11,12,13,13,14,11,12,12,14,14,9,10,10,12,12,10,10,11,12,13,11,12,11,13,13,12,12,13,13,15,12,13,13,15,15,9,10,10,12,12,10,11,12,13,14,10,11,10,13,12,12,13,13,14,15,12,13,12,15,13,12,12,12,14,14,12,12,13,14,15,13,13,13,15,15,14,14,15,13,16,14,15,15,16,16,11,12,12,14,14,12,13,13,14,15,12,13,12,14,14,14,14,15,16,16,13,14,13,16,14,8,9,9,11,11,9,10,10,12,12,9,10,10,12,12,11,12,12,14,14,11,12,11,14,14,9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13,14,15,12,13,13,15,14,9,10,9,12,11,10,11,10,13,12,10,11,10,13,12,12,13,12,15,14,12,13,12,15,14,11,12,12,14,14,12,13,13,14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16,16,11,12,11,14,13,12,13,12,15,14,12,13,12,15,13,14,15,14,16,15,13,15,14,17,14,10,11,11,13,14,11,12,13,13,15,11,12,12,14,14,14,14,15,15,17,13,14,14,15,16,11,12,12,14,14,12,12,13,14,15,13,13,13,15,15,14,15,15,15,17,15,15,15,16,16,11,12,12,13,14,13,13,14,14,15,12,13,13,14,15,14,15,15,16,17,14,15,15,16,16,14,14,14,16,16,14,14,15,15,17,15,15,15,17,16,16,16,17,16,18,16,17,17,18,17,13,14,14,15,16,14,15,15,16,17,14,15,15,16,16,16,17,17,17,18,16,16,16,17,16,10,11,11,14,13,11,12,12,14,14,11,12,12,15,13,13,14,14,16,15,13,14,14,16,15,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,17,16,11,12,11,14,12,12,13,13,15,13,12,13,12,15,13,14,15,15,16,15,14,15,14,17,14,13,14,14,16,16,14,15,15,16,17,14,15,15,16,17,16,16,17,17,18,16,17,17,18,18,13,14,14,16,13,14,15,15,17,14,14,15,14,17,14,16,17,16,17,16,16,17,16,18,15,8,11,11,13,13,10,12,12,14,14,11,12,12,14,14,13,13,14,15,16,13,14,14,16,15,10,11,11,14,14,11,12,12,14,15,11,12,12,15,14,13,14,14,15,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14,14,15,16,16,14,15,14,16,16,12,13,13,15,15,12,13,14,15,16,13,14,14,16,16,14,15,15,16,17,15,15,16,17,17,13,14,14,16,15,14,15,15,16,16,14,15,14,16,16,16,16,16,17,17,15,16,16,18,16,10,11,11,13,14,11,12,12,14,15,11,12,12,15,14,13,14,14,16,16,13,14,14,16,16,11,11,12,14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,15,17,14,14,15,16,16,11,12,12,15,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,17,16,13,12,14,14,16,13,13,15,14,17,14,13,15,15,17,15,14,16,15,18,16,15,16,16,18,13,14,14,16,16,14,15,15,17,17,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11,13,12,15,14,13,14,14,15,16,13,14,14,16,16,11,12,12,14,14,12,13,13,14,15,12,13,13,15,15,14,14,15,15,16,14,15,15,17,16,11,12,12,14,14,13,13,13,15,15,12,13,13,15,14,14,15,15,16,17,14,15,14,17,15,13,14,13,16,15,14,14,14,15,16,14,15,14,16,16,15,15,16,16,17,16,16,16,18,17,14,14,14,16,16,15,15,15,17,16,14,15,14,17,16,16,16,17,17,18,16,17,16,18,16,11,13,13,15,15,12,13,14,15,16,12,14,14,15,15,14,15,15,16,17,14,15,15,17,17,12,13,14,14,16,13,14,14,14,16,14,14,14,15,16,15,15,16,15,18,15,16,16,17,17,13,14,14,16,16,14,14,15,16,16,14,15,14,16,16,15,16,16,17,18,15,16,16,18,17,14,14,16,13,17,15,15,16,14,18,15,15,16,14,18,16,16,18,15,19,17,17,18,16,18,15,16,15,17,17,15,16,17,18,18,16,16,16,18,17,17,18,18,19,19,17,18,17,19,18,11,12,12,15,14,13,13,14,15,16,13,14,13,16,14,15,15,15,16,17,15,16,15,17,16,12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,16,16,17,16,16,16,18,17,12,13,13,15,15,14,14,15,16,16,13,14,13,16,15,16,16,16,17,18,15,16,15,17,16,14,15,14,17,15,14,15,15,16,16,15,16,15,17,16,16,15,16,15,17,17,18,17,18,17,15,15,15,16,17,16,16,16,17,17,15,16,15,17,16,17,18,18,18,18,16,17,16,18,15,8,11,11,13,13,11,12,12,14,14,10,12,12,14,14,13,14,14,15,16,13,14,13,16,15,11,12,12,14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,15,16,14,14,14,16,16,10,11,11,14,14,11,12,12,14,15,11,12,12,15,14,13,14,14,16,16,13,14,14,16,15,13,14,14,15,16,14,14,15,16,16,14,15,15,16,16,15,16,16,16,18,16,16,16,17,17,12,13,13,15,15,13,14,14,16,16,12,14,13,16,15,15,16,15,17,17,14,16,15,17,16,10,11,11,13,14,11,12,13,14,15,11,13,12,14,14,14,14,15,16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,14,15,13,14,13,15,15,14,15,15,16,17,14,15,15,17,16,11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14,15,15,16,17,14,15,15,16,16,14,14,14,16,16,14,14,15,16,16,15,15,15,16,16,16,16,17,16,18,16,17,17,18,18,13,13,14,15,16,14,14,15,16,17,13,14,14,16,16,16,16,17,17,18,15,16,15,17,16,10,11,11,14,13,11,12,12,14,14,11,12,12,15,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,17,16,11,12,11,14,14,12,13,13,15,15,12,13,12,15,14,14,15,14,16,16,14,15,14,17,16,14,14,14,16,16,14,15,15,16,17,14,15,15,17,17,16,16,17,17,18,16,17,17,18,18,13,14,12,16,14,14,15,13,17,15,13,15,13,17,14,16,16,15,18,16,15,17,14,18,15,11,12,12,14,15,13,13,14,14,16,13,14,13,15,14,15,15,16,16,17,15,16,15,17,16,12,13,13,15,15,13,13,14,15,16,14,15,14,16,16,15,15,16,15,18,16,16,16,18,17,12,13,13,15,15,14,14,15,15,16,13,14,13,15,15,16,16,16,16,18,15,16,15,17,16,15,15,15,17,16,15,15,16,16,17,16,16,16,18,17,16,16,17,15,18,17,18,17,19,18,14,14,15,15,17,15,15,16,16,17,14,15,15,16,16,17,17,18,17,19,16,17,15,17,15,11,13,12,15,15,12,14,14,15,15,12,14,13,16,15,15,15,15,17,17,14,15,15,17,16,12,14,14,16,16,14,14,15,16,16,14,14,14,16,16,15,16,17,17,18,15,16,16,18,17,12,14,13,16,14,13,14,14,16,15,13,15,14,16,14,15,16,16,17,17,15,16,15,18,15,15,15,16,17,17,15,16,16,17,18,16,16,16,18,18,17,17,18,18,19,17,17,18,19,19,14,15,14,17,13,15,16,15,18,14,15,16,15,18,14,17,18,17,18,16,16,18,16,19,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,4,7,7,4,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,6,7,8,8,9,10,8,9,10,8,9,10,10,10,12,10,11,12,8,10,10,10,11,12,10,11,11,6,8,7,8,10,9,8,10,9,8,10,10,10,11,11,10,12,11,8,10,9,10,12,11,10,12,10,5,8,8,8,10,10,8,10,10,7,9,10,9,10,11,9,11,11,8,10,10,10,12,12,10,12,11,7,9,9,9,10,11,9,11,11,9,9,11,10,11,12,10,11,12,9,11,11,11,12,12,11,12,12,7,9,9,10,11,11,10,12,11,9,11,10,11,11,12,11,13,12,10,11,11,12,13,13,11,13,11,5,8,8,8,10,10,8,10,10,8,10,10,10,11,12,10,12,11,7,10,9,9,11,11,9,11,10,7,9,9,10,11,12,10,11,11,10,11,11,11,11,13,12,13,13,9,10,11,12,12,13,11,12,11,7,9,9,9,11,11,9,11,10,9,11,11,11,12,12,11,12,12,9,11,9,10,12,11,10,12,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,9,15,17,20,21,22,23,5,5,7,9,11,13,17,20,9,5,5,6,8,10,15,18,11,7,5,4,6,9,13,17,14,9,7,5,6,7,10,14,17,10,8,6,6,4,5,8,20,14,13,10,8,4,3,4,23,17,16,14,12,6,4,4,2,0,0,0,64,0,0,0,112,96,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,47,6,0,0,0,0,0,0,0,0,0,0,48,6,0,0,0,0,0,0,0,0,0,40,48,6,0,80,48,6,0,0,0,0,0,0,0,0,0,120,48,6,0,160,48,6,0,0,0,0,0,0,0,0,0,200,48,6,0,240,48,6,0,0,0,0,0,0,0,0,0,24,49,6,0,64,49,6,0,240,48,6,0,0,0,0,0,104,49,6,0,144,49,6,0,184,49,6,0,224,49,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,152,47,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,14,16,17,17,18,20,6,3,5,8,10,11,13,15,13,5,3,5,8,9,11,12,15,7,4,3,5,7,9,11,16,10,7,5,6,7,9,10,17,11,8,7,7,6,8,8,19,13,11,9,9,8,8,9,20,14,13,11,10,8,9,9,5,0,0,0,243,0,0,0,104,95,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,96,96,6,0,0,0,0,0,5,0,0,0,53,12,0,0,24,83,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,80,95,6,0,0,0,0,0,5,0,0,0,243,0,0,0,16,82,6,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,8,83,6,0,0,0,0,0,5,0,0,0,243,0,0,0,8,81,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,0,82,6,0,0,0,0,0,5,0,0,0,243,0,0,0,0,80,6,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,248,80,6,0,0,0,0,0,5,0,0,0,53,12,0,0,176,67,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,79,6,0,0,0,0,0,5,0,0,0,53,12,0,0,96,55,6,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,152,67,6,0,0,0,0,0,1,0,0,0,7,0,0,0,56,55,6,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,64,55,6,0,0,0,0,0,5,0,0,0,243,0,0,0,48,54,6,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,40,55,6,0,0,0,0,0,5,0,0,0,243,0,0,0,40,53,6,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,32,54,6,0,0,0,0,0,5,0,0,0,243,0,0,0,32,52,6,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,24,53,6,0,0,0,0,0,5,0,0,0,243,0,0,0,24,51,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,16,52,6,0,0,0,0,0,1,0,0,0,25,0,0,0,144,50,6,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,176,50,6,0,0,0,0,0,1,0,0,0,25,0,0,0,8,50,6,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,40,50,6,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,4,5,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,5,5,4,10,10,5,10,10,5,10,10,10,10,10,10,10,10,5,10,10,10,10,10,9,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,7,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,7,6,7,8,6,8,7,7,7,8,7,7,8,8,8,8,7,7,7,8,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,9,8,9,8,8,8,8,8,8,9,8,9,9,8,8,8,9,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,9,9,9,8,9,8,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,6,5,7,8,5,8,7,5,7,7,7,7,9,8,9,9,5,7,7,8,9,9,7,9,7,6,8,8,8,9,10,8,9,9,8,9,10,9,9,11,10,10,11,8,10,9,10,10,11,9,10,10,6,8,8,8,9,9,8,10,9,8,9,10,9,10,10,10,11,10,8,10,9,10,11,10,9,11,9,6,8,8,7,9,9,8,9,9,7,9,9,9,9,10,9,10,10,8,9,9,9,10,10,9,10,9,7,9,9,9,10,10,9,10,10,9,9,10,10,9,11,10,11,11,9,10,10,10,11,11,10,11,10,6,9,8,9,10,10,9,10,9,8,10,10,9,9,10,10,11,11,9,10,10,10,11,11,9,11,9,6,8,8,8,9,9,7,9,9,8,9,9,9,9,10,9,10,10,7,9,9,9,10,10,9,10,9,6,8,9,9,9,10,9,10,10,9,10,10,9,9,11,10,11,11,8,10,10,10,11,11,9,10,9,7,9,9,9,10,10,9,10,10,9,10,10,10,10,11,10,11,11,9,10,9,10,11,11,10,11,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,9,9,5,7,8,10,11,5,8,7,11,10,8,10,11,12,13,8,11,10,13,12,6,7,8,10,11,7,8,10,10,12,8,9,9,12,11,10,10,12,11,14,10,11,12,14,13,6,8,7,11,10,8,9,9,11,12,7,10,8,12,10,10,12,12,13,14,10,12,10,14,11,9,10,11,11,12,10,10,11,11,13,11,12,12,13,13,12,11,13,11,15,13,14,13,14,14,9,11,10,12,11,11,12,12,13,13,10,11,10,13,11,13,13,14,14,14,12,13,11,14,11,7,8,9,11,12,9,9,11,12,13,9,10,10,13,12,11,12,13,13,15,11,12,12,14,14,9,10,10,12,13,10,10,12,12,14,11,11,11,13,13,12,12,13,13,15,12,13,13,15,14,9,10,10,12,13,10,11,11,13,14,10,12,11,14,13,12,13,13,14,15,12,13,13,15,14,12,12,13,13,14,12,13,13,13,15,13,14,14,14,15,14,14,15,14,16,14,15,15,16,16,12,13,13,14,14,13,13,14,15,14,12,13,13,15,14,14,15,15,15,16,14,15,14,16,14,7,9,8,12,11,9,10,10,12,13,9,11,9,13,12,11,12,12,14,14,11,13,12,15,13,9,10,10,13,12,10,11,12,13,14,10,12,11,14,13,12,13,13,14,15,13,13,13,15,14,9,10,10,13,12,11,11,11,13,13,10,12,10,14,12,13,13,13,14,15,12,13,12,15,13,12,13,13,14,14,12,13,13,14,15,13,14,13,15,15,14,14,15,14,16,14,15,15,16,15,12,13,12,14,13,13,13,13,15,14,12,13,13,15,13,14,15,15,16,15,14,15,14,16,14,11,12,12,13,14,12,13,14,14,15,12,13,13,14,15,14,14,15,15,16,14,15,15,16,16,12,13,13,14,15,13,13,14,14,16,13,14,14,15,15,15,15,16,15,17,15,15,15,16,16,12,13,13,14,15,13,14,14,15,16,13,14,14,15,15,15,15,16,16,17,15,15,15,17,16,14,15,15,16,16,15,15,16,15,16,15,16,16,16,17,16,16,17,16,18,16,16,17,18,17,14,15,15,16,16,15,16,16,16,17,15,16,15,17,16,16,17,17,17,18,16,16,16,17,16,11,12,12,14,13,12,13,13,15,14,12,14,13,15,14,14,15,15,16,16,14,15,14,16,15,12,13,13,15,14,13,14,14,15,15,13,14,14,16,15,15,15,15,16,16,15,16,15,17,16,12,13,13,15,14,13,14,14,15,15,13,14,13,16,14,15,15,15,16,16,15,15,15,17,15,14,15,15,16,16,15,15,15,16,16,15,16,16,17,17,16,16,17,17,17,16,17,17,18,17,14,15,15,16,15,15,15,16,16,16,15,15,15,17,15,17,17,17,18,17,16,17,16,18,16,6,9,9,12,12,8,10,10,12,13,9,11,10,13,12,10,12,12,14,14,11,13,12,14,14,8,10,10,12,12,9,10,11,12,14,10,11,11,13,13,12,12,13,13,15,12,13,13,15,14,9,10,10,13,13,10,11,11,13,13,10,12,10,14,13,12,13,13,14,15,12,13,13,15,14,11,12,12,13,14,12,12,13,13,15,12,13,13,14,14,13,13,14,13,16,14,15,15,16,15,11,12,12,14,14,13,13,13,15,14,12,13,13,15,14,14,15,15,16,15,14,14,14,16,14,7,9,10,12,12,9,10,11,13,13,9,11,10,13,13,11,12,13,14,15,12,13,13,15,14,9,10,11,12,13,10,10,12,13,14,11,11,12,14,14,12,12,14,14,15,13,13,13,15,15,9,11,11,13,13,11,12,12,14,14,10,12,10,14,13,13,14,13,15,15,12,14,13,15,14,12,12,13,13,15,12,12,14,13,15,13,14,14,15,15,14,14,15,14,17,14,15,15,16,16,12,13,13,15,14,13,14,14,15,15,12,14,13,15,14,14,15,15,16,16,14,15,14,16,14,7,10,10,12,12,10,11,11,12,13,10,12,10,14,12,12,13,13,14,15,12,13,13,15,14,9,11,10,13,12,10,10,12,12,14,11,13,12,14,13,13,13,14,13,15,13,14,14,15,14,10,11,11,13,13,12,12,12,13,14,10,12,10,14,12,13,14,14,15,15,13,14,13,15,13,12,13,13,14,14,12,12,13,14,15,13,14,14,15,15,13,13,14,13,15,14,15,15,16,16,12,13,13,14,14,13,14,14,15,15,12,13,13,15,13,15,15,15,16,16,13,14,13,16,13,11,12,13,14,14,12,13,14,14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16,16,12,13,14,14,15,13,13,14,14,16,13,14,14,15,16,14,14,16,15,17,15,15,16,16,16,12,13,13,15,15,13,14,14,15,16,13,14,14,15,16,15,15,16,17,17,15,16,15,17,16,14,15,15,15,16,15,15,16,15,17,15,15,16,16,17,16,16,16,16,18,16,16,17,17,17,14,15,15,16,16,15,16,16,16,17,15,16,15,17,16,16,17,17,17,17,16,17,16,18,17,11,12,12,14,14,13,13,14,14,15,13,14,13,15,14,14,15,15,15,16,14,15,15,17,15,12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,15,15,16,15,16,15,17,16,12,13,13,15,15,14,14,14,15,16,13,14,13,16,15,15,15,16,16,17,15,16,15,17,15,14,15,15,16,16,14,15,15,16,16,15,16,16,17,16,15,15,16,15,17,16,17,17,18,17,14,15,15,16,16,15,16,16,16,17,14,15,15,17,16,17,17,17,17,18,15,16,16,18,15,6,9,9,12,12,9,10,11,12,13,8,10,10,13,12,11,12,13,14,14,10,12,12,14,13,9,10,10,12,13,10,10,12,13,14,10,11,11,13,13,12,13,13,14,15,12,13,13,15,14,8,10,10,12,12,10,11,11,13,13,9,11,10,13,13,12,13,13,14,15,12,13,12,15,13,11,12,12,14,14,12,13,13,13,15,13,13,13,14,15,14,14,15,14,16,14,15,15,15,15,11,12,12,14,13,12,13,13,15,14,12,13,12,15,13,14,14,15,16,16,13,14,13,16,13,7,10,10,12,12,10,10,12,12,14,10,11,11,13,12,12,13,13,13,15,12,13,13,15,14,10,11,11,13,13,10,10,12,12,14,12,12,12,14,13,13,13,14,13,15,13,14,14,15,14,9,10,11,13,13,11,12,12,13,14,10,12,10,14,12,13,13,14,14,15,13,13,12,15,13,12,13,13,14,14,12,13,13,14,15,13,14,14,15,15,13,13,15,13,16,15,15,15,16,16,12,13,13,14,14,13,14,14,15,15,12,13,12,15,14,15,15,15,16,16,13,14,13,15,13,7,10,9,12,12,9,10,11,13,13,9,11,10,13,13,11,13,13,14,15,11,13,12,15,14,9,11,11,13,13,10,10,12,13,14,11,12,12,14,14,12,13,14,14,15,13,13,13,15,15,9,11,10,13,12,11,12,11,14,14,10,12,10,14,13,13,14,13,15,15,12,14,12,15,14,12,13,13,14,15,13,13,14,14,15,13,14,14,15,15,14,14,15,14,17,14,15,15,16,16,12,13,12,15,13,13,14,14,15,15,12,14,13,15,13,14,15,15,16,16,14,15,14,16,14,11,12,12,14,14,13,13,14,14,15,13,14,13,15,15,14,15,15,16,17,14,15,15,16,15,12,13,13,15,15,13,13,14,15,16,14,14,14,16,15,15,15,16,15,17,15,16,15,17,16,12,13,13,14,15,14,14,15,15,16,13,14,13,15,15,15,15,16,16,17,15,15,15,16,15,14,15,15,16,16,14,15,15,16,17,15,16,16,17,17,16,15,16,15,17,16,17,17,17,17,14,15,15,15,16,15,15,16,16,17,14,15,15,16,16,16,16,17,17,18,15,16,15,17,15,11,13,12,14,14,12,13,13,15,15,12,14,13,15,14,14,15,15,16,16,14,15,14,16,15,12,13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,15,16,16,17,15,16,15,17,16,12,13,13,15,14,13,14,14,16,15,13,14,13,16,14,15,16,15,17,16,15,15,14,18,15,14,15,15,16,16,15,15,16,16,17,15,16,15,17,16,16,16,17,17,18,16,17,17,18,17,14,15,15,16,15,15,16,15,17,16,15,15,15,17,15,16,17,17,18,17,16,17,16,18,15,10,12,12,14,14,12,13,13,14,14,12,13,13,14,14,13,14,14,15,15,13,14,14,16,15,11,12,13,14,14,12,13,13,15,15,12,13,13,15,15,13,14,15,15,16,14,15,15,16,16,12,13,13,14,14,13,13,14,15,15,13,14,13,15,15,14,15,15,16,16,14,15,14,16,15,13,14,14,15,15,13,14,14,15,16,14,14,15,16,16,14,15,15,15,17,15,16,16,17,17,13,14,14,15,15,14,15,15,16,16,14,15,15,16,16,15,16,16,16,17,15,16,15,17,16,11,12,12,14,14,12,13,13,14,15,12,13,13,15,14,13,14,14,15,16,13,14,14,16,15,12,13,13,14,15,13,13,14,15,15,13,14,14,15,15,14,14,15,15,17,14,15,15,16,16,12,13,13,15,15,13,14,14,15,15,13,14,13,15,15,14,15,15,16,17,14,15,15,16,16,13,13,14,15,16,14,14,15,15,16,14,15,15,16,16,15,15,16,15,18,15,16,16,17,17,14,15,15,16,16,15,15,15,16,16,14,15,15,17,16,16,16,16,17,17,15,16,16,17,16,10,12,12,14,14,12,13,13,14,15,12,13,13,15,14,14,14,15,15,16,14,15,14,16,15,12,13,13,15,14,13,13,14,15,15,13,14,14,15,15,14,14,15,15,16,14,15,15,16,16,12,13,13,15,15,13,14,14,15,16,13,14,13,15,14,15,15,15,16,16,14,15,15,16,15,13,14,14,16,15,14,14,14,15,16,14,15,15,16,16,15,15,16,15,17,16,17,16,17,17,14,14,15,15,16,15,15,16,16,16,14,15,14,16,15,16,16,16,17,17,15,16,15,17,15,11,13,13,14,15,13,13,14,15,15,13,14,13,15,15,14,15,15,15,16,14,15,15,17,15,13,13,14,15,15,13,14,15,15,16,14,14,14,16,16,15,14,16,15,17,15,16,16,17,16,13,14,14,15,15,14,14,14,16,16,13,15,14,16,15,15,15,16,17,17,15,16,15,17,16,14,15,15,15,16,15,15,16,15,17,15,16,16,16,17,16,16,17,15,18,16,17,17,17,17,14,15,15,16,16,15,16,16,17,17,15,16,15,17,16,16,17,17,18,18,16,17,15,18,16,10,12,12,14,14,13,13,14,14,15,13,14,13,15,14,14,15,15,15,16,15,15,15,16,15,12,13,13,15,14,12,12,14,14,15,14,15,14,16,15,15,14,15,14,17,15,16,16,17,16,12,13,13,14,15,14,14,15,15,16,13,14,12,16,14,15,16,16,16,17,15,16,14,17,15,14,15,14,16,15,14,14,15,15,15,15,16,15,17,16,15,14,16,14,16,16,17,17,18,17,14,14,15,15,16,15,16,16,16,17,14,15,14,16,15,16,16,17,17,17,15,16,14,17,14,10,12,12,14,13,12,13,13,14,14,11,13,12,14,14,13,14,14,15,16,13,14,14,16,15,12,13,13,14,14,13,13,14,15,15,13,14,13,15,15,14,14,15,15,16,14,15,15,16,16,11,13,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,13,14,14,16,15,13,14,14,15,15,14,15,15,15,16,14,15,15,16,16,15,16,16,16,17,16,16,16,17,17,13,14,14,15,15,14,15,15,16,16,13,14,14,16,15,15,16,16,17,17,15,15,15,17,15,11,12,12,14,14,12,13,13,14,15,12,13,13,15,14,14,14,15,15,16,14,14,14,16,15,12,13,13,15,14,13,13,14,15,15,13,14,14,16,15,14,15,15,15,16,15,15,15,16,16,12,13,13,14,15,13,13,14,15,15,13,14,13,15,15,15,15,15,16,16,14,15,14,16,15,14,14,15,16,16,14,15,15,15,16,15,16,15,16,16,15,15,16,15,17,16,16,16,17,17,13,14,14,15,16,14,15,15,16,16,14,14,14,16,16,16,16,16,17,17,15,15,15,17,15,11,12,12,14,14,12,13,13,14,15,12,13,13,15,14,14,14,14,15,16,13,14,14,16,15,12,13,13,15,15,13,13,14,15,16,13,14,14,15,15,14,15,15,16,17,14,15,15,17,16,12,13,13,15,14,13,14,14,15,15,13,14,13,15,15,14,15,15,16,16,14,15,14,17,15,14,15,15,16,16,14,15,15,16,17,15,15,15,17,17,15,16,16,16,17,16,17,16,17,17,13,15,14,16,15,14,15,15,16,16,14,15,14,16,15,16,16,16,17,17,15,16,15,17,15,10,12,12,14,14,13,13,14,14,15,13,14,13,15,14,14,15,15,15,17,14,15,15,16,15,12,13,13,15,14,12,12,14,14,15,14,15,14,16,15,15,14,16,15,17,15,16,16,17,16,12,13,13,14,15,14,14,15,15,16,12,14,12,15,14,15,16,16,16,17,15,16,14,17,14,14,15,14,16,16,14,14,15,15,16,15,16,16,17,16,15,14,16,14,17,16,17,17,18,17,14,14,15,15,16,15,15,16,16,17,14,15,14,16,15,16,17,17,17,18,15,16,14,17,14,11,13,13,15,14,13,13,14,15,15,12,14,13,15,15,14,15,15,15,17,14,15,14,16,15,13,14,14,15,15,13,14,15,15,16,14,15,14,16,16,15,15,16,16,17,15,16,16,17,17,13,14,13,15,15,14,14,14,16,16,13,15,14,16,15,15,16,16,17,17,15,16,14,17,15,15,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,15,17,16,17,17,17,17,18,18,14,15,15,17,15,15,16,16,17,16,15,16,15,17,15,16,17,17,17,17,16,17,15,18,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,7,8,8,10,10,8,9,9,10,11,8,9,9,10,10,9,10,10,11,11,9,10,10,11,11,8,9,9,10,10,9,9,10,11,11,9,10,10,11,11,10],"i8",O3,_.GLOBAL_BASE+400337),C3([10,11,11,11,10,11,11,11,11,8,9,9,10,10,9,10,10,11,11,9,10,9,11,11,10,11,11,11,11,10,11,10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11,11,11,11,11,11,11,12,11,11,11,11,12,10,10,10,11,11,10,11,11,11,11,10,11,11,11,11,11,11,11,12,11,11,11,11,12,11,8,9,10,11,11,9,10,11,11,11,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11,10,10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10,10,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12,12,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,8,10,9,11,11,9,10,10,11,11,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,10,10,11,11,10,11,11,12,12,10,11,10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,11,12,11,11,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,13,13,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11,12,11,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12,11,12,11,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,12,12,13,13,13,13,13,13,13,13,13,8,10,10,11,11,9,10,10,11,11,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,9,10,10,11,11,10,10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10,10,10,11,11,10,11,11,12,12,10,11,10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,11,12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12,10,10,11,11,12,11,11,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11,12,11,12,12,10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,13,12,12,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,11,12,12,12,12,12,12,12,13,12,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,11,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,10,10,11,11,9,10,10,11,11,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11,10,11,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,10,12,11,11,11,11,12,12,11,12,11,12,12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,11,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,11,11,12,12,11,12,12,12,12,11,12,11,13,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,12,13,13,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,11,12,12,12,11,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,12,13,12,13,12,12,13,13,13,12,12,13,13,13,12,13,13,13,13,12,12,12,12,13,12,12,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,11,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,13,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,11,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,12,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,11,12,12,12,12,12,13,13,11,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,13,13,13,13,13,12,13,12,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13,13,13,13,13,12,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,5,7,8,5,8,7,5,7,8,7,8,10,8,10,10,5,8,7,8,10,10,7,10,8,6,8,9,9,10,12,9,11,11,9,10,11,11,11,13,11,13,13,9,11,11,11,12,13,11,13,11,6,9,8,9,11,11,9,12,10,9,11,11,11,11,13,11,13,13,9,11,10,11,13,13,11,13,11,6,9,9,8,10,11,9,12,11,8,10,11,10,11,13,11,13,13,9,11,11,11,13,12,11,13,11,8,10,10,9,11,12,10,12,12,10,10,12,11,11,14,12,13,14,10,12,12,12,13,13,11,14,11,8,11,10,11,12,13,11,14,12,10,12,11,11,12,14,13,15,14,10,12,12,13,14,15,12,14,12,5,9,9,9,11,12,8,11,10,9,11,11,11,11,13,11,12,13,8,11,10,11,13,13,10,13,11,8,10,11,11,12,14,11,13,12,10,12,12,12,12,14,14,15,14,10,11,12,13,14,15,11,14,12,8,10,10,10,12,12,9,12,11,10,12,12,11,11,14,12,13,13,10,12,10,12,14,13,11,13,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,6,7,7,7,7,7,7,7,7,7,7,8,7,8,8,7,8,8,7,8,7,7,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,8,8,8,9,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,9,8,7,8,8,7,8,8,7,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,9,8,8,9,8,7,8,8,8,8,9,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,9,9,9,8,9,9,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,7,8,8,7,8,8,8,8,8,8,8,9,8,8,9,7,8,8,8,8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,8,8,9,8,8,8,8,8,9,9,9,9,9,8,8,8,8,9,9,8,9,8,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,5,5,4,7,7,4,7,7,5,7,8,7,8,10,8,9,9,5,7,7,8,9,9,7,10,8,5,7,8,8,9,10,8,10,10,8,9,10,10,10,12,10,12,12,8,10,10,10,12,12,10,12,11,5,8,7,8,10,10,8,10,9,8,10,10,10,11,12,10,12,12,8,10,9,10,12,12,10,12,10,5,8,8,7,10,10,8,10,10,7,9,10,9,10,12,10,12,12,8,10,10,10,12,12,10,12,11,7,9,10,9,11,12,10,12,11,9,9,12,11,10,14,12,12,13,10,12,11,12,13,13,11,14,12,7,10,9,10,11,11,10,12,11,9,11,11,11,11,13,12,14,13,10,12,12,12,14,14,11,14,12,5,8,8,8,10,10,7,10,10,8,10,10,10,11,12,10,12,12,7,10,9,10,12,12,9,12,10,7,9,10,10,11,12,10,11,11,10,12,12,11,12,14,12,14,14,9,11,11,12,13,14,11,13,11,7,10,9,10,11,12,9,12,11,10,11,12,11,12,14,12,13,13,9,12,9,12,13,12,11,14,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,9,9,6,8,8,10,10,6,8,8,10,10,8,10,10,12,13,8,10,10,13,12,6,8,8,10,10,8,8,9,10,11,8,9,9,11,11,10,10,11,12,13,10,11,11,13,13,6,8,8,10,10,8,9,9,11,11,8,9,8,11,10,10,11,11,13,13,10,11,10,13,12,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13,13,13,15,14,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13,14,15,12,13,12,15,12,6,8,8,10,11,8,9,10,11,12,8,9,9,11,11,10,11,12,13,14,10,11,11,13,13,8,9,9,11,12,9,10,11,12,13,9,10,10,12,13,11,12,13,13,15,11,12,12,14,14,8,9,9,11,12,9,10,11,12,13,9,10,10,13,12,11,12,13,14,15,11,12,12,14,13,10,11,12,13,14,11,12,13,13,15,12,13,13,14,14,13,13,14,14,16,14,15,14,16,15,10,12,11,14,13,12,12,13,14,14,11,12,12,14,14,14,14,15,15,16,13,14,14,16,14,6,8,8,11,10,8,9,9,11,11,8,10,9,12,11,10,11,11,13,13,10,12,11,14,13,8,9,9,12,11,9,10,10,12,13,9,11,10,13,12,11,12,12,14,14,11,13,12,15,14,8,9,9,12,11,9,10,10,13,12,9,11,10,13,12,11,12,12,14,14,11,13,12,15,13,10,11,12,13,14,11,12,13,13,14,12,13,12,14,14,13,13,14,14,16,14,15,14,16,16,10,12,11,14,13,12,13,13,14,14,11,13,12,15,13,14,14,15,16,16,13,14,13,16,14,9,10,11,12,13,11,11,12,13,14,11,11,12,13,14,13,13,14,14,16,13,14,14,15,15,11,11,12,13,14,12,12,13,13,15,12,13,13,14,15,14,14,15,15,17,14,14,15,16,16,11,12,12,13,14,12,12,13,14,15,12,13,12,14,15,14,14,15,15,17,14,15,14,16,16,13,14,14,15,16,14,14,15,15,17,14,15,15,16,16,15,16,17,16,18,16,17,16,17,17,13,14,14,16,15,14,15,15,16,16,14,15,14,16,15,16,16,17,17,18,16,16,16,17,16,9,11,10,13,12,11,12,11,14,13,11,12,11,14,13,13,14,14,16,15,13,14,13,16,14,11,12,12,14,13,12,12,13,14,14,12,13,13,15,14,14,14,15,16,16,14,15,14,17,15,11,12,11,14,13,12,13,13,15,14,12,13,12,15,13,14,15,14,16,16,14,15,14,17,15,13,14,14,15,16,14,14,15,16,16,14,15,15,16,16,15,16,16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15,17,16,14,15,14,17,15,16,17,17,17,17,16,16,16,18,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,11,13,14,10,11,11,14,13,8,9,9,11,12,9,10,10,12,13,9,10,10,13,12,11,11,12,13,15,11,12,12,15,14,8,9,9,12,11,9,10,11,12,13,9,11,10,13,12,11,12,12,14,15,11,13,12,15,14,10,11,11,13,14,11,12,12,13,14,11,12,12,14,14,13,13,14,14,16,13,14,14,16,15,11,12,11,14,13,12,13,13,14,14,11,13,12,14,13,14,14,15,16,16,13,14,14,16,14,8,9,9,11,12,9,10,10,12,13,9,10,10,13,12,11,12,12,14,15,11,12,12,14,14,9,9,10,11,13,10,10,12,12,14,10,10,11,13,13,12,12,13,14,16,12,12,13,15,15,9,10,10,13,12,10,11,11,13,14,10,12,11,14,13,12,13,13,15,15,12,13,13,15,15,11,11,12,13,15,12,12,13,13,15,12,13,13,14,15,14,14,15,15,17,14,15,15,16,16,11,13,12,15,14,13,13,13,15,15,12,14,13,15,14,15,15,15,16,16,14,15,15,17,15,7,9,9,12,11,9,10,10,12,12,9,11,10,13,12,11,12,12,14,14,11,13,12,15,14,9,10,10,12,12,10,10,11,12,13,10,11,11,14,13,12,12,13,14,15,12,13,13,15,14,9,10,10,12,12,10,11,11,13,13,10,11,10,14,12,12,13,13,15,15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15,12,13,13,15,15,14,13,14,13,16,14,15,15,16,16,11,12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15,15,16,16,14,15,14,17,14,10,11,12,13,14,11,12,13,14,15,11,12,12,14,15,13,14,15,15,17,14,14,14,16,16,11,12,13,12,15,12,12,14,13,16,13,13,14,13,16,14,14,15,14,17,15,15,15,15,17,11,13,12,15,15,13,13,14,15,16,12,14,13,16,15,15,15,15,17,17,15,15,15,17,16,14,14,15,14,16,14,14,16,14,17,15,15,15,14,17,16,16,17,15,18,17,17,17,16,18,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11,13,12,15,14,14,14,14,16,16,14,15,14,16,15,11,12,12,15,13,12,13,13,15,14,13,14,13,16,14,14,15,15,16,16,15,16,15,17,16,11,13,12,15,14,13,13,14,15,15,12,14,13,16,14,15,15,15,17,17,14,16,15,17,16,14,14,14,16,15,14,15,15,16,16,15,16,15,17,16,16,16,16,16,17,16,17,17,18,17,14,15,15,16,16,15,15,16,17,16,14,15,15,17,16,17,17,17,18,18,16,17,16,18,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,12,13,14,10,11,11,14,13,8,9,9,11,12,9,10,11,12,13,9,11,10,13,12,11,12,13,14,15,11,12,12,15,14,8,9,9,12,11,9,10,10,12,13,9,10,10,13,12,11,12,12,14,15,11,12,12,14,13,11,11,12,13,14,11,12,13,13,15,12,13,13,14,14,13,14,14,14,16,14,15,14,16,16,10,11,11,14,13,11,12,12,14,14,11,12,12,14,13,13,14,14,15,16,13,14,13,16,14,7,9,9,11,11,9,10,11,12,13,9,10,10,12,12,11,12,13,14,15,11,12,12,14,14,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,12,13,13,15,12,13,13,15,15,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13,14,15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15,13,14,13,15,15,14,13,15,13,16,15,15,15,16,16,11,12,12,14,14,12,13,13,14,15,12,13,12,15,14,14,15,15,16,17,13,14,13,16,13,8,9,9,12,11,9,10,10,12,13,9,10,10,13,12,11,12,12,14,15,11,12,12,15,14,9,10,10,12,13,10,11,12,13,14,10,11,11,14,13,12,13,13,15,15,12,13,13,15,15,9,10,9,13,11,10,11,10,13,13,10,12,10,14,12,12,13,12,15,15,12,13,12,15,14,11,12,13,14,15,12,13,14,14,15,13,13,13,15,15,14,15,15,15,17,15,15,15,16,16,11,12,11,15,13,12,13,13,15,14,12,13,12,16,13,14,15,15,16,16,14,15,14,17,14,10,11,11,13,14,11,12,13,14,15,11,12,12,14,14,14,14,15,15,17,14,14,14,15,16,11,12,13,14,15,12,13,14,14,16,13,14,13,15,15,14,15,16,15,17,15,15,15,17,17,11,12,12,13,15,13,13,14,14,16,12,13,13,14,15,15,15,15,16,17,14,15,15,16,16,14,15,15,16,16,14,15,15,16,17,15,15,16,16,17,16,16,17,16,18,17,17,17,18,18,14,14,15,15,16,15,15,15,16,17,14,15,15,16,16,16,17,17,17,18,16,16,16,17,16,10,11,11,14,13,11,13,12,15,14,11,13,12,15,14,14,15,14,16,16,13,15,14,17,15,11,12,13,15,15,12,13,14,15,16,13,14,13,16,15,15,15,15,16,17,15,15,15,17,16,11,13,11,15,12,13,14,13,16,13,12,14,12,16,13,15,15,15,17,15,14,16,14,17,14,14,15,15,16,17,15,15,16,16,17,15,16,15,17,17,16,16,17,17,18,16,17,17,18,18,14,15,14,17,13,15,16,15,17,15,15,16,15,17,14,16,17,16,18,16,16,17,16,18,15,9,11,11,13,13,10,12,12,14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,16,16,10,11,12,14,14,11,12,13,14,15,11,13,13,15,15,13,14,14,15,16,14,15,15,16,16,11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14,15,15,16,16,14,15,14,17,16,12,13,13,15,16,13,13,14,15,16,13,14,14,16,16,14,15,16,16,17,15,16,16,17,17,13,14,14,16,15,14,15,15,17,16,14,15,14,17,15,16,16,17,17,17,16,16,16,18,16,10,11,12,14,14,11,12,13,14,15,11,13,12,15,15,13,14,15,16,16,14,15,15,17,16,11,11,13,14,15,12,12,14,14,16,12,13,14,15,15,14,14,15,16,17,15,15,15,17,17,12,13,12,15,15,13,14,14,16,15,13,14,13,16,15,15,16,15,17,17,15,16,15,17,16,13,12,15,14,16,14,13,15,14,17,14,13,15,15,17,15,14,17,15,18,16,15,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11,14,14,11,12,12,14,15,11,13,12,15,14,13,14,14,16,16,14,15,14,16,16,11,12,12,14,14,12,12,13,15,15,12,13,13,15,15,14,14,15,16,16,14,15,15,17,16,11,12,12,15,15,13,13,13,15,15,12,13,13,15,15,15,15,15,17,17,14,15,15,17,16,13,14,13,16,15,14,14,14,16,16,14,15,14,17,16,15,15,16,16,17,16,17,16,18,17,14,15,15,16,16,15,15,15,17,17,14,15,15,17,16,16,17,17,18,18,16,17,16,18,16,12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,14,15,16,16,18,15,16,16,17,17,13,13,14,14,16,14,14,15,15,17,14,14,15,15,17,15,15,17,15,18,16,16,17,17,18,13,14,14,16,16,14,15,15,16,17,14,15,15,17,16,16,17,16,17,18,16,17,16,18,17,15,14,16,13,18,16,15,17,14,18,16,15,17,14,18,17,16,18,15,19,17,17,18,16,19,15,16,16,17,17,16,17,17,18,18,16,17,16,18,17,18,18,18,19,18,17,18,17,19,17,11,12,12,15,15,13,13,14,15,16,13,14,13,16,15,15,15,15,16,17,15,16,15,17,16,12,13,13,15,15,13,13,14,15,16,14,15,14,16,15,15,15,16,16,17,16,16,16,18,17,12,13,13,15,15,14,14,15,16,16,13,14,13,16,15,16,16,16,17,17,15,16,15,18,16,15,15,15,17,15,14,15,15,16,16,16,17,16,17,16,16,16,17,16,17,17,18,17,19,18,15,15,16,17,17,16,16,16,17,17,15,16,15,17,16,17,18,18,18,18,16,17,16,18,16,9,11,11,13,13,11,12,12,14,14,10,12,12,14,14,13,14,14,15,16,13,14,14,16,15,11,12,12,14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,16,17,14,15,15,16,16,10,12,11,14,14,11,13,13,15,15,11,13,12,15,14,14,14,15,16,16,13,14,14,16,15,13,14,14,15,16,14,14,15,15,17,14,15,15,16,17,16,16,16,16,18,16,16,17,17,17,12,13,13,16,15,13,14,14,16,16,12,14,13,16,15,15,16,16,17,17,14,16,15,17,16,10,11,11,14,14,11,12,13,14,15,11,12,12,15,14,14,14,15,16,16,13,14,14,16,16,11,12,12,14,15,12,13,14,15,15,13,13,13,15,15,14,15,15,16,17,15,15,15,16,17,11,12,12,14,14,12,13,13,15,15,12,13,12,15,15,14,15,15,16,17,14,15,14,16,16,14,14,15,16,16,14,15,15,16,17,15,16,15,17,17,16,16,17,16,18,16,17,17,18,18,13,13,14,15,16,14,14,15,16,17,14,14,14,16,15,16,16,17,17,18,15,16,15,17,16,10,12,11,14,14,11,13,13,15,15,11,13,12,15,15,14,15,15,16,16,13,15,14,16,16,12,12,13,15,15,13,13,14,15,16,13,14,14,16,15,15,15,16,16,17,15,15,15,17,17,11,13,11,15,14,12,14,13,16,15,12,14,12,16,14,15,15,15,17,17,14,15,14,17,15,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,17,18,16,17,17,18,18,13,14,12,16,14,14,15,13,17,15,14,15,13,17,14,16,17,15,18,17,15,17,14,18,15,11,12,12,14,15,13,13,14,15,16,13,14,13,16,15,15,15,16,16,17,15,15,15,16,16,12,13,13,15,15,13,13,14,15,16,14,15,14,16,16,15,15,16,16,18,16,16,16,18,17,12,13,13,15,15,14,14,15,15,16,13,14,13,15,15,16,16,16,17,18,15,16,15,17,16,15,16,15,17,16,15,15,16,16,17,16,17,16,17,17,16,16,17,16,18,17,18,18,18,18,14,15,15,15,17,16,15,17,16,17,14,15,15,16,16,17,17,18,18,19,16,16,16,17,16,12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,15,16,16,17,17,15,16,15,18,16,13,14,14,16,16,14,15,15,16,17,14,15,15,17,16,16,16,17,17,18,16,17,16,18,18,13,14,13,16,14,14,15,14,17,15,14,15,14,17,14,16,17,16,18,17,15,17,15,18,15,15,16,16,17,18,16,16,17,17,18,16,17,17,17,18,17,17,18,18,19,17,18,18,19,18,15,16,14,17,13,16,17,15,18,14,16,17,15,18,14,18,18,17,19,16,17,18,16,19,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,4,7,7,4,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,6,7,8,8,9,10,8,9,10,8,9,10,10,10,12,10,11,11,8,10,10,10,11,12,10,11,11,6,8,7,8,10,9,8,10,9,8,10,10,10,11,11,10,12,11,8,10,9,10,11,11,10,12,10,5,8,8,8,10,10,8,10,10,7,9,10,9,10,11,9,11,11,8,10,10,10,11,12,10,12,11,7,9,9,9,10,11,9,11,11,9,9,11,10,11,12,11,11,12,9,11,11,11,12,12,11,12,12,7,9,9,10,11,11,10,12,11,9,11,10,11,11,12,11,13,12,10,11,11,12,13,13,11,13,11,5,8,8,8,10,10,8,10,10,8,10,10,10,11,12,10,12,11,7,10,9,9,11,11,9,11,10,7,9,9,10,11,12,10,11,11,10,11,11,11,11,13,12,13,13,9,10,11,11,12,13,11,12,11,7,9,9,9,11,11,9,11,10,9,11,11,11,12,12,11,12,12,9,11,9,11,12,11,10,12,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,9,14,16,17,19,22,22,5,4,6,9,11,13,17,20,9,5,5,6,9,11,15,19,11,7,5,5,7,9,13,17,14,9,7,6,6,7,11,14,16,11,9,7,6,4,4,8,19,15,13,11,9,4,3,4,21,16,16,15,12,6,4,4,2,0,0,0,64,0,0,0,56,145,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,6,0,0,0,0,0,0,0,0,0,40,98,6,0,0,0,0,0,0,0,0,0,80,98,6,0,120,98,6,0,0,0,0,0,0,0,0,0,160,98,6,0,200,98,6,0,0,0,0,0,0,0,0,0,240,98,6,0,24,99,6,0,0,0,0,0,0,0,0,0,64,99,6,0,104,99,6,0,24,99,6,0,0,0,0,0,144,99,6,0,184,99,6,0,56,167,5,0,96,167,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,192,97,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,13,15,16,17,19,20,6,3,4,7,9,10,12,15,13,4,3,4,7,8,11,13,14,7,4,4,6,7,10,11,16,9,7,6,7,8,9,10,16,9,8,7,7,6,8,8,18,12,10,10,9,8,8,9,20,14,13,12,11,8,9,9,5,0,0,0,243,0,0,0,48,144,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,40,145,6,0,0,0,0,0,5,0,0,0,53,12,0,0,224,131,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,24,144,6,0,0,0,0,0,5,0,0,0,243,0,0,0,216,130,6,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,208,131,6,0,0,0,0,0,5,0,0,0,243,0,0,0,208,129,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,200,130,6,0,0,0,0,0,5,0,0,0,243,0,0,0,200,128,6,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,192,129,6,0,0,0,0,0,5,0,0,0,53,12,0,0,120,116,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,176,128,6,0,0,0,0,0,5,0,0,0,53,12,0,0,40,104,6,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,96,116,6,0,0,0,0,0,1,0,0,0,7,0,0,0,0,104,6,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,8,104,6,0,0,0,0,0,5,0,0,0,243,0,0,0,248,102,6,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,240,103,6,0,0,0,0,0,5,0,0,0,243,0,0,0,240,101,6,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,232,102,6,0,0,0,0,0,5,0,0,0,243,0,0,0,232,100,6,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,224,101,6,0,0,0,0,0,5,0,0,0,243,0,0,0,224,99,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,216,100,6,0,0,0,0,0,1,4,5,5,10,10,5,10,10,5,10,10,10,10,10,10,10,10,5,10,10,10,10,10,10,10,10,7,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,6,7,8,6,8,7,6,7,7,7,7,8,7,8,8,6,7,7,7,8,8,7,8,7,6,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,10,10,8,9,9,9,10,10,9,10,9,6,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,10,10,8,9,9,9,10,9,9,10,9,6,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,9,10,8,9,9,9,10,9,9,10,9,7,8,8,8,9,9,8,9,9,8,8,9,9,9,9,9,9,9,8,9,9,9,10,9,9,9,9,7,9,9,9,9,10,9,10,9,9,9,9,9,9,10,10,10,10,9,9,9,10,10,10,9,10,9,6,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,10,10,8,9,9,9,10,9,9,10,9,7,9,9,9,9,10,9,10,9,9,9,9,9,9,10,10,10,10,9,9,9,10,10,10,9,10,9,7,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,9,10,8,9,8,9,9,9,9,10,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,5,5,7,9,5,9,7,5,7,8,7,7,10,9,10,10,5,8,7,9,10,10,7,10,7,6,9,9,9,10,12,9,11,11,9,10,11,11,11,13,12,13,13,9,11,11,12,13,13,11,13,11,6,9,9,9,11,11,9,12,10,9,11,11,11,11,13,12,13,13,9,11,10,12,13,13,11,13,11,6,9,9,9,11,12,9,12,11,9,10,11,10,10,13,12,13,13,9,11,11,12,13,12,11,13,11,7,9,10,9,10,12,10,12,11,10,10,12,10,10,12,12,12,13,10,11,11,12,12,13,10,12,10,7,10,10,11,11,14,11,14,11,10,12,11,11,11,14,14,14,14,10,11,12,14,14,14,11,14,11,6,9,9,9,11,12,9,12,11,9,11,11,11,11,13,12,12,13,9,11,10,12,13,13,10,13,10,7,10,10,11,11,14,11,14,11,10,12,11,11,11,14,14,15,14,10,11,12,13,14,15,11,14,11,7,10,9,10,11,12,9,12,10,10,11,11,10,10,12,12,13,12,9,12,10,12,13,12,10,12,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,10,10,5,7,8,11,12,5,8,7,12,11,9,11,11,13,15,9,11,11,15,13,6,7,8,11,11,7,7,9,11,13,8,9,9,13,12,11,11,12,12,15,11,12,12,15,14,6,8,7,11,11,8,9,9,12,13,7,9,7,13,11,11,12,12,14,15,11,12,11,15,12,10,11,11,12,14,10,11,12,12,15,12,13,13,14,15,13,12,14,12,16,15,15,15,16,16,10,11,11,14,12,12,13,13,15,14,10,12,11,15,12,15,15,15,16,17,13,14,12,17,12,6,8,8,12,12,8,9,10,13,13,8,9,9,13,13,12,12,13,15,16,12,13,13,16,15,8,9,10,12,13,9,9,11,13,14,10,11,11,14,14,13,13,14,15,16,13,14,14,16,16,8,10,9,13,13,10,11,11,14,14,9,10,10,14,13,13,14,14,16,17,13,13,13,16,15,12,13,13,14,16,13,13,14,14,16,14,14,14,16,16,15,15,16,15,18,16,17,17,18,18,12,13,13,15,15,14,14,14,16,16,13,14,13,16,15,16,16,17,18,18,15,16,15,18,15,6,8,8,12,12,8,9,9,13,13,8,10,9,13,13,12,13,13,15,16,12,13,12,16,15,8,9,10,13,13,9,10,10,13,14,10,11,11,14,14,13,13,13,15,16,13,14,14,17,16,8,10,9,13,13,10,11,11,14,14,9,11,9,14,13,13,14,14,16,16,13,14,13,16,14,12,13,13,15,16,13,13,14,15,16,14,14,14,16,16,15,15,16,15,18,17,17,17,18,18,12,13,13,16,14,14,14,14,16,16,13,14,13,16,14,16,17,17,18,18,15,16,15,18,15,11,12,13,14,16,13,13,14,15,17,13,14,14,16,17,16,16,17,17,19,16,17,17,18,19,13,13,14,16,16,14,14,15,16,17,14,15,15,17,17,17,16,17,17,19,17,17,18,19,19,13,14,14,16,16,14,14,15,17,18,14,15,14,17,17,17,17,18,18,19,17,17,17,18,19,16,16,16,17,18,17,17,17,18,19,17,17,17,18,19,18,18,19,18,20,19,20,19,21,20,16,17,17,18,18,17,17,18,19,19,17,17,17,19,18,19,19,19,19,20,19,19,19,20,19,11,13,12,16,14,13,14,14,17,16,13,14,13,17,15,16,17,17,18,18,16,17,16,19,17,13,14,14,16,16,14,14,14,17,17,14,15,15,17,16,17,17,17,19,19,17,18,17,19,18,13,14,13,17,16,14,15,15,17,17,14,15,14,18,16,17,17,17,19,19,17,17,16,19,17,16,17,17,18,19,17,17,17,18,18,17,18,17,19,18,18,19,18,19,19,19,20,19,20,20,16,17,16,18,17,17,17,17,18,18,17,18,17,19,17,19,19,19,19,20,18,19,19,20,18,6,8,8,12,12,8,9,9,13,13,8,10,9,13,13,11,13,13,15,16,12,13,13,16,15,8,9,9,13,13,9,9,10,13,14,10,11,11,14,14,12,12,13,14,16,13,14,14,17,16,8,10,9,13,13,10,11,11,14,14,9,11,10,14,13,13,14,14,16,16,13,14,13,16,15,12,13,13,14,16,12,13,14,14,16,13,14,14,16,16,15,14,16,15,18,16,17,17,18,17,12,13,13,16,15,14,14,14,16,16,13,14,13,16,15,16,16,17,17,17,15,16,15,18,15,7,9,9,13,13,9,9,11,13,14,9,10,10,14,13,12,13,14,15,16,12,14,13,17,15,9,9,10,13,14,10,9,11,13,15,11,11,11,14,14,13,12,14,14,17,14,14,14,17,16,9,10,10,14,13,11,11,11,14,14,10,11,10,15,13,14,14,14,16,17,13,14,13,17,14,13,13,14,14,16,13,13,14,14,17,14,14,14,16,16,15,14,16,15,18,17,17,17,18,18,13,14,13,16,15,14,14,15,17,16,13,14,13,17,15,17,16,17,17,17,15,16,14,18,14,7,9,9,13,13,9,10,10,13,14,9,11,10,14,13,13,14,14,16,16,13,14,14,17,15,9,10,10,14,13,9,10,11,13,14,11,12,11,15,14,13,13,14,14,16,14,15,15,17,17,9,10,10,14,14,11,12,12,14,15,10,11,10,15,13,14,15,15,17,17],"i8",O3,_.GLOBAL_BASE+410577),C3([14,15,13,17,14,13,14,13,16,16,13,13,14,15,16,14,15,15,17,17,15,14,16,15,18,17,18,17,20,18,13,14,14,16,16,15,15,15,17,17,13,14,13,17,15,17,17,18,18,18,15,16,14,19,14,12,13,13,15,16,13,13,15,16,17,13,14,14,16,16,15,15,17,17,19,16,17,17,19,18,13,13,14,15,17,14,13,15,15,17,14,15,15,16,17,16,15,18,16,19,17,17,17,18,19,13,14,14,17,16,14,15,15,17,17,14,15,14,17,16,17,17,17,18,19,16,17,16,19,17,16,16,17,16,18,16,16,17,16,19,17,17,18,18,19,18,17,18,17,21,19,19,19,20,19,16,17,17,18,18,17,17,18,18,19,16,17,16,18,18,19,19,19,19,20,18,18,17,20,18,11,13,13,16,15,13,14,14,16,17,13,15,14,17,16,16,17,17,18,18,17,17,17,19,18,13,14,13,17,16,14,13,14,16,17,15,16,15,18,16,17,16,17,17,19,18,18,18,20,18,13,14,14,16,17,15,15,15,17,18,14,15,14,18,16,18,18,18,19,20,17,18,16,20,17,16,17,16,18,18,16,16,17,18,18,17,18,18,19,18,18,17,19,17,20,19,20,19,22,20,16,16,17,18,18,18,17,17,19,19,16,17,16,18,17,19,20,19,22,21,18,19,18,21,17,6,8,8,12,12,8,9,10,13,13,8,9,9,13,13,12,13,13,15,16,11,13,13,16,15,8,9,10,13,13,9,10,11,13,14,10,11,11,14,14,13,13,14,15,16,13,14,14,16,16,8,9,9,13,13,10,11,11,14,14,9,10,9,14,13,13,14,14,16,17,12,14,12,16,14,12,13,13,15,16,13,13,14,15,16,13,14,14,15,17,15,15,16,15,18,16,16,17,17,17,12,13,13,16,14,13,14,14,16,16,12,14,13,16,14,16,17,17,18,18,15,15,14,18,14,7,9,9,13,13,9,10,11,13,14,9,10,10,14,13,13,14,14,15,17,13,14,14,16,15,9,10,10,14,14,10,10,11,13,15,11,12,12,15,14,14,13,15,14,17,14,15,15,17,17,9,10,10,13,14,11,11,12,14,15,9,11,10,14,13,14,15,15,16,18,13,14,13,16,14,13,14,14,16,16,13,13,14,15,17,15,15,15,16,17,15,14,16,15,18,17,17,18,19,18,13,14,14,16,16,14,15,15,17,17,13,14,13,16,15,17,17,18,18,18,15,16,14,18,15,7,9,9,13,13,9,10,10,13,14,9,11,10,14,13,12,13,14,15,16,12,14,13,16,15,9,10,10,13,14,10,10,11,13,14,11,11,11,15,14,13,13,14,14,16,14,14,14,17,16,9,10,9,14,13,11,11,11,14,14,10,11,9,15,13,14,14,14,16,16,13,14,12,17,14,13,13,14,15,16,13,13,14,15,16,14,15,14,16,17,15,14,16,14,18,16,17,17,18,18,13,14,13,16,14,14,14,14,16,16,13,14,13,17,14,17,17,17,18,18,15,16,14,18,15,11,13,13,16,16,13,14,15,16,17,13,14,14,17,16,16,17,17,18,19,17,17,17,19,18,13,14,14,17,17,13,13,15,16,18,15,15,15,17,17,17,16,18,17,20,18,17,18,19,19,13,14,14,16,17,15,15,16,16,18,14,15,14,16,16,17,17,18,18,20,17,18,16,18,17,16,17,16,19,18,16,16,17,18,19,18,18,18,19,19,18,17,18,17,21,20,19,19,21,21,16,16,17,18,18,17,17,18,19,19,16,17,16,19,18,20,20,20,19,21,18,18,17,20,18,12,13,13,16,15,13,14,14,16,16,13,14,13,17,16,16,17,17,18,18,15,17,15,19,17,13,14,14,16,17,14,14,15,16,17,14,15,15,17,17,16,16,17,17,18,17,17,17,19,19,13,14,13,17,15,14,15,15,17,16,14,15,13,17,15,17,18,17,19,18,16,17,15,20,16,16,17,17,18,18,16,16,17,18,18,17,18,17,19,18,17,17,18,18,20,19,20,19,20,19,16,16,16,19,16,17,17,17,19,18,16,17,16,19,16,19,19,19,19,19,18,19,17,19,17,11,13,13,16,16,13,14,14,17,17,13,14,14,17,17,15,17,17,19,19,16,18,17,20,19,12,14,14,17,17,13,14,15,17,18,14,15,15,17,18,16,16,17,18,20,17,18,18,20,18,13,14,14,17,17,14,15,15,17,18,14,15,15,17,17,17,18,17,19,19,17,18,17,19,19,15,16,16,18,18,15,16,17,18,19,16,17,17,19,19,17,17,18,18,21,18,19,19,21,19,16,17,17,18,18,17,17,18,19,19,17,18,17,19,19,19,19,19,20,20,18,19,18,21,19,12,13,13,16,16,13,14,14,16,17,13,15,14,17,16,15,16,17,17,19,16,17,17,19,18,13,13,14,16,17,14,13,15,16,17,14,15,15,17,17,15,15,17,17,20,17,17,18,19,18,13,14,14,17,16,15,15,15,17,18,14,15,14,17,16,17,17,17,18,18,16,17,16,19,17,16,15,17,17,19,16,15,17,16,19,17,16,17,18,19,17,16,19,16,20,19,18,19,19,19,16,17,17,18,18,17,17,17,18,19,16,17,16,19,18,20,19,19,20,19,18,18,17,20,17,11,13,13,16,16,13,14,15,16,17,14,15,14,18,16,17,17,17,18,21,17,18,17,20,19,13,14,14,17,16,13,14,15,16,18,15,16,15,18,17,17,16,17,17,19,17,18,18,20,19,13,14,14,16,17,15,15,16,17,18,14,15,14,18,17,17,18,18,19,20,17,18,16,19,17,16,17,15,19,18,16,16,16,18,18,17,18,17,20,19,18,17,18,17,20,20,20,19,22,20,16,17,17,18,19,18,18,18,19,20,16,17,16,19,18,20,19,19,20,20,18,19,17,20,17,13,14,14,16,17,14,14,16,16,18,14,16,15,17,16,16,16,17,17,18,17,17,16,19,18,14,14,15,16,17,14,14,16,16,18,16,16,16,17,17,16,15,17,16,19,18,18,18,19,19,14,15,15,17,17,15,16,16,17,18,14,16,14,18,16,17,17,18,18,19,16,17,16,19,17,16,16,17,16,18,16,16,17,16,19,18,18,18,17,18,17,16,18,16,20,19,19,19,19,19,16,17,17,18,18,17,17,18,19,19,16,17,16,19,17,18,19,19,19,20,17,18,16,20,16,11,14,13,17,17,14,14,16,16,18,14,16,14,19,16,18,18,19,18,19,18,19,18,21,18,13,15,14,18,16,14,14,16,16,18,16,17,16,19,17,18,16,19,17,20,19,19,19,21,19,13,14,15,17,18,17,16,17,17,19,14,16,14,18,16,20,19,19,20,21,18,19,16,21,17,17,18,16,19,17,16,16,17,18,18,19,19,18,21,18,17,17,18,17,20,20,20,20,22,20,17,17,18,18,20,19,19,19,18,20,16,17,17,19,19,21,21,21,20,21,17,19,17,23,17,11,13,13,16,16,13,14,14,17,17,13,14,14,17,17,16,17,17,19,20,15,16,16,19,19,13,14,14,16,17,14,15,15,17,18,14,15,15,17,17,17,17,18,19,19,17,17,18,19,19,13,14,14,17,16,14,15,15,17,17,13,15,14,18,17,17,18,18,19,20,16,17,16,19,18,16,16,17,18,18,17,17,17,18,19,17,18,17,19,19,19,19,19,19,20,19,20,19,20,20,15,16,16,18,17,16,17,17,20,18,15,16,16,19,17,19,19,19,20,20,17,18,17,21,17,11,13,13,16,16,13,14,15,16,17,13,15,14,17,16,17,17,18,18,20,17,17,17,19,19,13,14,14,17,17,14,14,15,17,18,15,15,15,18,17,17,17,18,17,20,18,18,17,20,18,13,14,14,16,17,15,15,16,17,18,14,15,13,17,17,17,18,18,19,20,17,17,16,19,17,16,17,17,18,18,16,16,17,18,18,18,18,18,19,19,18,17,19,18,21,19,20,20,20,20,16,15,17,18,18,17,17,18,18,20,16,16,16,18,17,20,19,20,21,22,17,18,17,20,17,12,13,13,16,16,13,14,15,16,17,13,14,14,17,16,16,17,18,18,19,15,16,16,19,18,13,14,14,16,17,14,14,15,16,17,14,15,15,17,17,16,16,17,17,19,17,17,17,19,18,13,14,13,17,16,14,15,15,17,17,13,15,13,17,16,17,17,17,19,19,15,17,15,19,17,16,17,17,18,18,16,16,17,17,19,17,18,17,19,19,18,17,19,17,19,19,19,19,20,19,15,17,15,19,16,17,17,16,19,18,16,17,15,18,16,19,19,19,20,19,17,19,16,19,16,11,14,14,17,17,15,14,16,16,18,15,16,14,18,16,18,18,19,18,21,18,19,18,20,18,13,15,14,18,17,14,14,16,16,18,16,17,16,19,17,17,17,19,17,22,19,19,19,21,19,13,14,15,17,18,17,16,17,17,19,14,16,14,18,16,19,19,19,20,21,18,18,16,20,17,17,18,16,19,18,15,17,17,19,19,19,19,18,21,19,18,17,20,17,21,22,21,20,21,21,17,16,19,18,20,19,18,19,18,20,16,17,16,19,18,21,20,21,19,23,18,19,16,20,17,13,14,14,17,16,14,14,15,16,18,14,16,14,17,16,16,16,17,17,19,16,17,16,19,17,14,15,15,17,17,14,14,16,16,17,15,16,16,18,17,16,16,17,17,19,17,18,17,19,18,14,15,14,17,16,16,16,16,17,17,14,16,14,17,16,18,18,18,18,19,16,17,15,19,16,17,17,17,18,18,16,15,17,17,18,18,18,18,19,19,17,16,18,16,19,19,19,19,19,19,16,17,16,19,16,18,18,17,19,18,16,17,16,19,16,19,19,20,19,19,17,18,16,20,16,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,6,8,8,10,10,8,9,9,10,11,8,10,9,11,10,9,10,10,11,11,9,10,10,11,11,8,9,9,10,10,9,9,10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11,11,11,8,9,9,11,10,10,10,10,11,11,9,10,9,11,11,10,11,11,11,11,10,11,10,11,11,10,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,9,10,11,11,10,10,11,11,11,10,10,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,11,11,11,10,10,11,11,12,11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10,10,10,11,11,11,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,8,10,9,11,11,10,10,10,11,11,10,11,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11,10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,11,10,11,11,11,11,11,12,12,10,11,10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,11,12,11,11,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,12,12,13,12,10,11,11,12,11,11,11,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13,12,8,10,10,11,11,10,10,11,11,11,10,11,10,11,11,10,11,11,12,12,10,11,11,12,12,9,10,11,11,11,10,10,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12,12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,13,12,13,12,12,13,13,13,13,12,13,13,13,13,8,10,10,11,11,10,10,11,11,11,9,11,10,11,11,10,11,11,12,12,10,11,11,12,12,10,10,11,11,11,10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,9,11,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,12,13,12,12,13,12,13,12,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,12,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,12,13,13,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12,12,13,12,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12,13,12,13,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,12,12,13,13,12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,12,13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12,13,12,13,12,12,13,13,13,13,12,13,12,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,12,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13,12,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,5,7,8,5,8,7,5,7,7,7,7,9,7,9,9,5,7,7,8,9,9,7,9,7,6,8,8,8,9,10,8,9,9,8,9,10,9,9,11,10,11,11,8,9,9,10,11,11,9,11,10,6,8,8,8,9,9,8,10,9,8,9,9,9,10,11,10,11,10,8,10,9,10,11,11,9,11,9,6,8,8,7,9,9,8,10,9,7,9,9,9,9,10,9,10,10,8,9,9,9,10,10,9,11,10,7,9,9,8,10,10,9,10,10,9,9,10,10,10,11,10,11,11,9,10,10,10,11,11,10,11,10,7,9,9,9,9,10,9,10,9,8,10,9,9,9,11,10,11,11,9,10,10,10,11,11,9,11,9,6,8,8,8,9,10,7,9,9,8,9,9,9,10,10,9,10,10,7,9,9,9,10,10,9,10,9,7,9,9,9,9,10,9,10,9,9,10,10,9,9,11,10,11,11,8,9,10,10,11,11,9,11,9,7,9,9,9,10,10,8,10,10,9,10,10,10,10,11,10,11,11,9,10,9,10,11,11,10,11,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,7,7,6,7,7,6,7,7,6,7,7,7,8,8,7,8,8,6,7,7,7,8,8,7,8,8,7,7,8,7,8,8,7,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,7,7,8,8,7,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,6,8,8,7,8,8,7,8,8,7,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,8,9,8,9,9,8,8,9,8,9,9,9,9,9,8,9,9,9,9,9,9,9,9,7,8,8,8,9,9,8,9,8,8,8,8,8,9,9,9,9,9,8,9,8,9,9,9,9,9,9,6,8,8,7,8,8,7,8,8,8,8,8,8,8,9,8,9,9,7,8,8,8,9,9,8,9,8,7,8,8,8,8,9,8,9,8,8,8,9,9,9,9,9,9,9,8,8,8,9,9,9,8,9,9,7,8,8,8,9,9,8,9,8,8,9,9,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,5,5,7,8,5,8,7,5,7,8,8,8,10,8,10,10,5,8,7,8,10,10,8,10,8,6,8,9,8,10,12,9,11,11,9,10,11,11,11,13,12,13,13,9,11,11,11,13,13,11,13,12,6,9,8,9,11,11,8,12,10,9,11,11,11,12,13,11,13,13,9,11,10,11,13,13,11,13,11,5,9,9,8,11,11,9,12,11,8,10,11,10,11,13,11,13,13,9,11,11,11,13,13,11,13,12,8,10,11,10,12,13,10,13,12,10,10,13,11,11,14,12,13,14,11,13,12,13,14,14,12,14,12,8,11,10,11,12,13,11,14,12,10,13,12,12,12,13,13,15,14,11,12,13,13,14,15,12,14,12,5,9,9,9,11,12,8,11,11,9,11,11,11,12,13,11,13,13,8,11,10,11,13,13,10,13,11,8,10,11,11,12,14,11,13,12,11,13,12,12,12,14,13,15,14,10,12,13,13,14,15,12,13,12,8,11,10,10,12,13,10,13,12,11,12,13,12,12,14,13,14,14,10,13,10,12,14,13,11,14,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,9,9,6,7,8,10,10,6,8,7,10,10,8,10,10,12,13,8,10,10,13,12,6,8,8,10,10,7,8,9,10,11,8,9,9,11,11,10,10,11,12,13,10,11,11,14,13,6,8,8,10,10,8,9,9,11,11,7,9,8,11,10,10,11,11,13,14,10,11,10,13,12,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13,14,13,15,14,9,10,10,13,12,10,11,11,13,13,10,11,10,13,12,13,13,14,14,15,12,13,12,15,12,6,8,8,10,11,8,9,10,11,12,8,9,9,11,11,10,11,12,13,14,10,11,11,14,13,8,9,9,11,12,9,10,11,12,13,9,10,11,12,13,11,11,13,13,15,11,12,12,14,14,8,9,9,12,12,9,10,11,12,13,9,10,10,13,12,11,12,13,14,15,11,12,12,14,14,11,11,12,13,14,11,12,13,13,15,12,13,13,14,15,13,13,14,14,16,14,15,15,16,16,11,12,11,14,13,12,13,13,14,14,11,13,12,14,13,14,15,15,16,16,13,14,14,16,14,6,8,8,11,10,8,9,9,12,11,8,10,9,12,11,10,11,11,13,13,10,12,11,14,13,8,9,9,12,12,9,10,10,12,13,9,11,10,13,12,11,12,12,14,14,11,13,12,15,14,8,9,9,12,11,9,10,10,13,12,9,11,10,13,12,12,12,12,14,14,11,13,12,15,13,11,11,12,13,14,11,12,13,13,14,12,13,13,14,15,13,13,14,14,16,14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15,16,16,13,15,13,16,14,9,10,11,12,13,11,11,12,13,14,11,12,12,13,14,13,13,14,14,16,13,14,14,15,16,11,11,12,13,14,12,12,13,14,15,12,13,13,14,15,14,14,15,15,17,14,15,15,16,17,11,12,12,14,14,12,13,13,14,15,12,13,12,15,15,14,15,15,16,17,14,15,15,16,16,13,14,14,15,16,14,14,15,15,17,15,15,15,16,17,16,16,17,16,18,16,17,17,18,18,13,14,14,16,15,14,15,15,17,16,14,15,15,16,16,16,17,17,18,18,16,16,16,17,16,9,11,10,13,12,11,12,12,14,13,11,12,11,15,13,13,14,14,16,15,13,14,13,17,14,11,12,12,14,14,12,12,13,15,15,12,13,13,15,14,14,14,15,16,16,14,15,15,17,16,11,12,11,14,13,12,13,13,15,14,12,13,12,15,13,14,15,15,16,16,14,15,14,17,15,13,14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16,16,17,17,16,17,17,18,18,13,15,14,16,15,15,15,15,17,16,14,15,14,17,15,16,17,17,18,18,16,17,16,18,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,11,13,14,10,12,11,14,13,7,9,9,11,12,9,10,10,12,13,9,10,10,13,12,11,11,12,13,15,11,12,12,15,14,8,9,9,12,11,9,10,10,13,13,9,11,10,13,12,12,12,12,14,15,11,13,12,15,13,10,11,11,13,14,11,12,12,13,15,11,12,12,14,14,13,13,14,14,16,14,15,14,16,16,11,12,11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15,16,16,13,14,14,16,14,8,9,9,11,12,9,10,11,12,13,9,10,10,13,12,11,12,13,14,15,11,12,12,15,14,9,9,11,11,13,10,10,12,12,14,10,10,11,13,14,12,12,13,14,16,12,13,13,15,15,9,11,10,13,12,10,11,11,13,14,10,12,11,14,13,12,13,13,15,16,12,13,13,15,15,11,11,13,13,15,12,12,14,13,15,13,13,14,14,15,14,14,15,14,17,15,15,15,16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,15,14,15,15,15,17,17,14,15,14,17,15,7,9,9,12,11,9,10,10,12,12,9,11,10,13,12,11,12,12,14,14,11,13,12,15,14,9,10,10,12,12,10,10,11,12,13,10,11,11,14,13,12,12,13,14,15,12,13,13,16,15,9,10,10,13,12,10,11,11,13,13,10,11,10,14,12,13,13,13,15,15,12,13,12,15,14,11,12,12,14,14,12,12,13,14,15,13,14,13,15,15,14,13,15,14,16,15,16,15,17,16,12,12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15,16,16,17,14,15,14,17,14,10,11,12,13,14,11,12,13,14,15,11,12,13,14,15,13,14,15,15,17,14,15,15,16,16,11,12,13,12,15,12,12,14,13,16,13,13,14,13,16,14,14,16,14,18,15,15,16,16,17,12,13,12,15,15,13,14,14,15,16,13,14,13,16,15,15,15,16,17,18,15,15,15,17,16,14,14,15,14,17,15,14,16,14,17,15,15,16,15,18,16,16,17,16,19,17,17,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16,15,18,16,17,17,18,18,18,16,17,16,18,17,10,11,11,14,13,11,12,12,15,14,11,13,12,15,14,14,15,15,16,16,14,15,15,17,16,11,12,12,15,14,12,13,13,15,14,13,14,13,16,14,14,15,15,16,16,15,16,15,18,16,11,13,12,15,15,13,14,14,15,15,12,14,13,16,15,15,16,16,17,17,15,16,15,17,16,14,15,14,16,16,14,15,15,16,16,15,16,15,17,16,16,16,17,16,17,17,18,17,19,18,14,15,15,17,16,15,16,16,17,17,15,15,15,18,16,17,18,18,18,18,16,17,16,19,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,12,13,14,10,11,11,14,13,8,9,9,11,12,9,10,11,12,13,9,10,10,13,13,11,12,13,13,15,11,12,12,15,14,7,9,9,12,11,9,10,10,12,13,9,10,10,13,12,11,12,12,14,15,11,12,11,14,13,11,11,12,13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14,16,14,15,15,16,16,10,11,11,14,13,11,12,12,14,14,11,12,12,15,13,14,14,14,16,16,13,14,13,16,14,7,9,9,11,12,9,10,10,12,13,9,10,10,12,12,11,12,13,14,15,11,12,12,14,14,9,10,10,12,13,10,10,11,12,14,10,11,11,13,13,12,12,13,14,15,13,13,13,15,15,9,10,10,12,12,10,11,11,13,14,10,11,10,13,12,12,13,13,15,16,12,13,12,15,14,11,12,13,14,14,12,12,13,14,15,13,14,13,15,15,14,14,15,14,17,15,16,15,17,16,11,12,12,14,14,13,13,13,15,15,12,13,12,15,14,15,15,15,16,17,14,15,14,16,14,8,9,9,12,11,9,10,10,12,13,9,11,10,13,12,11,12,12,14,15,11,12,12,15,14,9,10,11,13,13,10,11,12,13,14,10,11,11,14,13,12,13,13,15,15,12,13,13,16,15,9,11,9,13,11,10,11,10,14,13,10,12,10,14,12,12,13,13,15,15,12,13,12,16,14,12,12,13,14,15,12,13,14,14,16,13,14,14,15,15,14,14,15,15,17,15,16,15,17,16,11,13,11,15,13,13,14,13,15,14,12,14,12,16,13,15,15,15,16,16,14,15,14,17,14,10,11,11,13,14,11,12,13,14,15,11,12,12,14,15,14,14,15,16,17,14,15,15,16,16,11,12,13,14,15,12,13,14,15,16,13,14,14,15,16,15,15,16,16,18,15,16,16,17,17,11,12,12,14,15,13,13,14,14,16,12,13,13,15,15,15,15,16,16,18,14,15,15,16,16,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,16,19,17,18,17,18,18,14,14,15,16,16,15,15,16,16,17,14,15,15,16,16,17,17,18,18,19,16,17,16,17,16,10,12,11,14,13,11,13,12,15,14,11,13,12,15,14,14,15,15,16,16,13,15,14,17,15,12,13,13,15,15,13,13,14,15,16,13,14,14,16,16,14,15,15,17,17,15,16,16,17,17,11,13,12,15,12,13,14,13,16,13,12,14,12,16,13,15,16,15,17,16,14,16,14,18,14,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,17,18,17,18,17,18,18,14,15,14,17,14,15,16,15,18,15,15,16,15,18,14,17,17,17,18,17,16,17,16,19,16,9,11,11,13,13,10,12,12,14,14,11,12,12,15,14,13,14,14,16,16,13,14,14,16,16,10,11,12,14,14,11,12,13,14,15,12,13,13,15,15,13,14,15,16,16,14,15,15,17,16,11,12,12,15,14,12,13,13,15,15,12,13,12,15,15,14,15,15,16,17,14,15,14,17,16,12,13,14,15,16,13,13,14,15,16,13,14,15,16,16,14,15,16,16,18,15,16,16,18,18,13,14,14,16,15,14,15,15,17,16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17,10,12,12,14,14,11,12,13,15,15,12,13,13,15,15,13,14,15,16,17,14,15,15,17,16,11,11,13,14,15,12,12,14,15,16,13,13,14,15,16,14,14,15,16,17,15,15,16,17,17,12,13,12,15,15,13,14,14,16,16,13,14,13,16,15,15,16,15,17,17,15,16,15,18,16,13,12,15,14,17,14,13,16,14,17,14,14,16,15,18,15,14,17,16,18,16,16,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16,15,18,16,17,17,17,18,18,16,17,16,19,17,10,11,11,14,14,11,12,12,15,15,11,13,12,15,15,14,15,14,16,16,14,15,15,17,16,11,12,12,15,14,12,12,13,15,15,13,14,13,16,15,14,15,15,16,16,15,16,15,18,17,11,13,12,15,15,13,14,13,15,15,12,14,13,16,15,15,16,15,17,17,15,16,15,18,16,13,14,13,16,16,14,15,14,16,16,14,15,15,17,16,16,16,16,16,18,16,18,17,19,18,14,15,15,17,16,15,16,16,17,17,15,15,15,17,16,17,17,18,18,19,16,17,16,18,16,12,13,13,15,16,13,14,14,16,17,13,14,14,16,16,15,15,16,17,18,15,16,16,18,17,13,13,14,14,17,14,14,15,15,17,14,14,15,16,17,15,15,17,16,18,16,17,17,18,18,13,14,14,17,16,14,15,15,17,17,14,15,14,17,16,16,17,17,18,18,16,17,16,18,17,15,14,16,13,18,16,15,17,14,19,16,16,17,15,18,17,16,18,15,19,18,18,18,17,19,15,16,16,18,17,16,17,17,18,18,16,17,16,19,17,18,19,18,19,19,17,18,17,20,18,11,12,12,15,15,13,13,14,15,16,13,14,13,16,15,15,16,16,17,17,15,16,16,18,17,12,14,13,16,15,13,13,14,15,16,14,15,14,17,16,16,16,16,16,17,16,17,17,19,17,12,13,14,16,16,14,15,15,16,17,13,15,13,17,15,16,17,17,18,18,16,17,16,18,16,15,16,15,17,16,15,15,15,17,17,16,17,16,18,17,17,16,17,16,18,18,19,18,20,18,15,16,16,17,17,16,17,17,18,18,15,16,15,18,17,18,18,19,19,19,17,18,16,19,16,9,11,11,13,13,11,12,12,14,15,10,12,12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14,14,12,12,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,16,16,10,12,11,14,14,12,13,13,15,15,11,13,12,15,14,14,15,15,16,17,13,15,14,17,16,13,14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16,17,17,18,16,17,17,18,18,12,14,13,16,15,13,15,14,17,16,13,14,13,17,15,15,16,16,18,18,15,16,15,18,16,10,11,11,14,14,11,12,13,14,15,11,12,12,15,15,14,15,15,16,17,14,15,15,16,16,11,12,13,15,15,12,13,14,15,16,13,14,14,15,16,15,15,16,16,18,15,15,16,17,17,11,12,12,14,15,13,13,14,15,16,12,13,13,15,15,15,15,16,17,18,14,15,15,17,16,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,16,19,17,17,18,19,18,13,13,14,16,16,14,15,16,17,17,14,14,15,16,16,16,16,17,18,18,16,16,16,18,16,10,12,12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15,16,17,13,15,14,17,16,12,13,13,15,15,13,13,14,15,16,13,14,14,16,16,15,15,16,17,18,15,15,16,17,17,11,13,12,15,14,13,14,13,16,15,12,14,12,16,14,15,16,15,17,17,14,16,14,17,16,14,15,15,16,17,15,15,16,16,18,15,16,16,17,17,16,17,17,17,19,17,17,17,18,18,13,15,12,17,14,14,16,14,17,15,14,15,13,17,14,16,17,16,18,17,15,17,14,19,15,11,12,12,15,15,13,13,14,15,16,13,14,13,16,15,15,16,16,17,18,15,16,16,17,17,12,14,13,16,16,13,13,15,15,17,14,15,15,17,16,16,16,17,16,19,16,17,17,18,18,12,13,14,15,16,14,14,15,16,17,13,14,13,16,15,16,17,17,18,19,15,16,16,17,16,15,16,16,18,17,15,15,16,17,18,16,17,17,18,18,16,16,18,16,19,18,19,19,20,19,15,15,16,16,17,16,16,17,17,18,15,15,15,17,16,18,18,19,18,20,17,17,16,18,16,12,13,13,16,15,13,14,14,16,16,13,14,14,16,16,15,16,16,17,18,15,16,15,18,17,13,14,14,16,16,14,15,15,16,17,14,15,15,17,17,16,17,17,18,18,16,17,17,18,18,13,14,13,17,14,14,15,14,17,16,14,15,14,17,15,16,17,17,18,18,15,17,15,19,15,16,16,16,17,18,16,16,17,17,19,16,17,17,18,19,17,17,18,18,20,18,18,18,19,19,15,16,14,18,13,16,17,16,19,15,16,17,15,19,14,18,18,18,19,17,17,18,16,20,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,5,7,7,5,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,5,7,8,8,9,10,8,9,9,8,9,10,9,10,12,10,11,11,8,9,10,10,11,11,9,11,11,5,8,7,8,9,9,8,10,9,8,10,9,9,11,11,10,11,11,8,10,9,10,11,11,9,12,10,5,8,8,7,9,10,8,10,9,7,9,9,9,10,11,9,11,11,8,10,10,10,11,11,10,12,11,7,9,9,9,10,11,9,11,11,9,9,11,10,10,13,11,11,12,9,11,11,11,12,13,11,13,12,7,9,9,9,11,11,9,12,10,9,11,10,10,11,12,11,13,12,9,11,11,11,13,13,11,13,11,5,8,8,8,9,10,7,10,9,8,10,10,10,11,11,10,11,11,7,9,9,9,11,11,9,11,10,7,9,9,9,10,12,9,11,11,9,11,11,11,11,13,11,13,13,9,10,11,11,12,13,10,12,11,7,9,9,9,11,11,9,11,10,9,11,11,11,12,13,11,13,12,9,11,9,11,12,11,10,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,8,13,15,16,18,21,22,5,4,6,8,10,12,17,21,9,5,5,6,8,11,15,19,11,6,5,5,6,7,12,14,14,8,7,5,4,4,9,11,16,11,9,7,4,3,7,10,22,15,14,12,8,7,9,11,21,16,15,12,9,5,6,8,2,0,0,0,64,0,0,0,8,198,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,150,6,0,0,0,0,0,0,0,0,0,248,150,6,0,0,0,0,0,0,0,0,0,32,151,6,0,72,151,6,0,0,0,0,0,0,0,0,0,112,151,6,0,152,151,6,0,0,0,0,0,0,0,0,0,192,151,6,0,232,151,6,0,0,0,0,0,0,0,0,0,16,152,6,0,56,152,6,0,232,151,6,0,0,0,0,0,96,152,6,0,136,152,6,0,232,147,6,0,16,148,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,144,150,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,136,150,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,147,6,0,152,147,6,0,0,0,0,0,0,0,0,0,192,147,6,0,232,147,6,0,16,148,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,160,149,6,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,80,150,6,0,0,0,0,0,2,0,0,0,25,0,0,0,104,149,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,136,149,6,0,0,0,0,0,2,0,0,0,9,0,0,0,72,149,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2],"i8",O3,_.GLOBAL_BASE+420817),C3([0,0,0,0,0,0,0,88,149,6,0,0,0,0,0,1,0,0,0,25,0,0,0,192,148,6,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,224,148,6,0,0,0,0,0,1,0,0,0,25,0,0,0,56,148,6,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,88,148,6,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,2,3,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,14,14,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,4,4,5,5,4,5,5,5,5,4,5,4,4,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,8,8,10,10,10,10,9,8,11,11,4,6,5,8,6,10,10,10,10,10,9,10,9,4,5,6,6,9,10,10,10,10,9,10,9,10,8,9,8,9,8,9,9,10,9,11,10,12,10,8,8,9,8,9,9,9,9,10,10,11,10,12,9,10,10,11,10,11,10,12,11,12,11,13,11,9,10,10,10,11,10,11,11,12,11,12,11,12,11,12,12,12,12,13,12,13,12,13,12,13,13,11,12,12,12,12,12,12,12,13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,12,13,13,13,14,14,13,13,13,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,3,7,12,14,14,16,18,19,6,2,4,6,8,9,12,14,12,3,3,5,7,8,11,13,13,6,4,5,7,8,10,11,14,8,7,7,7,7,9,10,15,9,8,7,7,6,8,9,17,11,11,10,9,8,9,9,19,14,13,11,10,9,9,9,5,0,0,0,243,0,0,0,0,197,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,248,197,6,0,0,0,0,0,5,0,0,0,53,12,0,0,176,184,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,232,196,6,0,0,0,0,0,5,0,0,0,243,0,0,0,168,183,6,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,160,184,6,0,0,0,0,0,5,0,0,0,243,0,0,0,160,182,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,152,183,6,0,0,0,0,0,5,0,0,0,243,0,0,0,152,181,6,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,144,182,6,0,0,0,0,0,5,0,0,0,53,12,0,0,72,169,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,128,181,6,0,0,0,0,0,5,0,0,0,53,12,0,0,248,156,6,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,48,169,6,0,0,0,0,0,1,0,0,0,7,0,0,0,208,156,6,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,216,156,6,0,0,0,0,0,5,0,0,0,243,0,0,0,200,155,6,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,192,156,6,0,0,0,0,0,5,0,0,0,243,0,0,0,192,154,6,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,184,155,6,0,0,0,0,0,5,0,0,0,243,0,0,0,184,153,6,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,176,154,6,0,0,0,0,0,5,0,0,0,243,0,0,0,176,152,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,168,153,6,0,0,0,0,0,1,7,7,6,9,9,7,9,9,6,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,5,7,8,5,8,7,6,7,7,7,7,8,8,8,8,6,7,7,7,8,8,7,8,7,6,8,8,8,9,10,8,9,9,8,9,9,9,9,10,10,10,10,8,9,9,10,10,10,9,10,10,6,8,8,8,9,9,8,10,9,9,9,9,9,9,10,10,10,10,8,9,9,10,10,10,9,10,9,6,8,9,8,9,9,8,9,9,8,9,9,9,9,10,9,10,10,8,9,9,9,10,10,9,10,9,7,8,9,8,9,9,9,9,9,8,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,7,9,9,9,10,10,9,10,10,9,10,9,9,9,10,10,10,10,9,10,9,10,10,10,9,10,9,6,8,8,8,9,9,8,9,9,8,9,9,9,9,10,9,10,10,8,9,9,9,10,10,9,10,9,7,9,9,9,10,10,9,10,9,9,9,10,10,9,10,10,10,10,9,9,9,10,10,10,9,10,9,7,9,8,8,9,9,8,9,9,9,9,9,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,5,5,7,9,5,9,7,5,7,8,7,7,10,9,9,10,5,8,7,9,10,9,7,10,7,6,9,9,9,10,12,10,12,11,9,10,11,11,10,13,12,12,13,10,11,11,12,13,13,11,13,11,6,9,9,10,11,12,9,12,11,10,11,11,11,11,13,12,13,13,9,11,10,12,13,13,11,13,10,6,9,10,9,11,12,10,12,11,9,10,11,10,10,13,11,13,13,10,11,11,12,13,12,11,13,11,7,9,10,9,10,12,10,11,11,10,10,11,10,10,12,12,11,12,10,11,10,12,12,12,10,12,10,7,10,10,11,11,13,11,13,11,10,12,11,11,10,13,13,14,13,10,11,12,13,13,14,11,13,10,6,10,9,10,11,12,9,12,11,9,11,11,11,11,13,12,12,13,9,11,10,12,13,13,10,13,10,7,10,10,11,11,14,11,13,11,10,12,11,11,10,14,13,14,13,10,11,12,13,13,14,11,13,10,7,10,9,10,10,12,9,12,10,10,11,11,10,10,12,12,12,12,9,11,10,11,12,12,10,12,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,1,6,6,10,10,6,7,9,11,13,5,9,7,13,11,8,11,12,13,15,8,12,11,15,13,6,7,8,11,11,7,8,10,11,13,9,10,10,13,13,11,11,13,12,16,12,13,13,16,15,6,8,7,11,11,9,10,10,13,13,7,10,7,13,11,12,13,13,15,16,11,13,11,16,12,10,11,11,11,13,11,11,13,12,15,13,13,13,14,15,13,12,15,12,17,15,16,16,16,16,10,11,11,14,11,13,13,13,15,14,11,13,11,15,12,15,15,16,16,16,13,15,12,17,12,6,8,9,12,12,9,10,12,13,15,9,11,11,15,14,12,13,15,16,18,13,14,14,17,16,9,10,11,13,14,11,10,13,14,16,11,12,12,15,15,14,13,16,15,18,14,15,15,17,17,9,11,11,14,14,11,12,13,15,16,11,13,11,15,14,15,15,15,17,18,14,15,14,17,15,13,14,14,15,16,14,14,15,15,17,15,16,15,17,17,16,16,17,15,19,17,18,18,19,18,13,14,14,16,15,15,15,16,17,17,14,15,14,18,15,17,17,17,19,19,16,17,15,19,16,6,9,8,13,12,9,11,11,14,15,9,12,10,15,13,13,14,14,16,17,12,15,13,18,16,9,11,11,14,14,11,11,13,14,15,11,13,12,16,15,14,14,15,15,18,14,15,15,18,17,9,11,10,14,13,11,12,12,15,15,11,13,10,16,14,14,15,15,16,18,14,16,13,18,15,13,14,14,16,16,14,14,15,15,17,15,16,15,17,17,16,16,17,16,19,17,18,17,18,19,13,14,14,16,15,15,15,15,17,17,14,15,14,17,15,17,17,17,18,19,16,17,15,19,15,11,13,13,15,16,13,14,15,16,18,14,15,15,17,17,16,16,18,18,20,17,18,17,19,20,13,14,14,16,17,15,15,16,17,18,15,16,16,17,17,18,17,19,18,19,18,18,18,19,21,14,14,15,16,17,15,15,16,18,18,15,16,16,17,18,18,18,19,19,21,18,19,19,22,20,16,16,17,17,19,17,17,17,18,20,17,18,18,20,19,19,19,20,19,0,19,19,20,20,21,17,17,17,19,18,18,18,20,19,19,18,18,18,20,20,19,19,20,20,20,20,21,20,21,19,11,13,13,16,15,14,15,15,17,17,14,15,14,18,16,16,18,18,20,19,16,19,17,21,18,13,14,15,16,17,15,15,16,18,18,15,16,15,19,18,18,18,18,19,19,18,18,18,22,20,13,14,14,16,16,15,16,16,18,17,15,16,15,18,17,18,18,18,19,19,17,18,17,21,18,16,17,17,18,18,17,18,19,19,19,18,20,18,19,19,19,20,21,19,21,20,20,20,0,21,16,17,17,19,19,18,18,18,19,21,17,18,18,19,18,20,19,21,20,21,19,20,20,22,19,7,9,9,13,13,8,10,11,14,15,9,12,11,15,14,11,13,14,16,17,13,15,14,17,16,8,10,11,14,14,10,10,12,14,16,11,12,12,16,15,13,12,15,15,18,14,15,15,19,17,9,11,11,14,14,11,12,12,15,15,11,13,11,16,14,14,15,14,17,17,14,16,14,18,15,12,13,14,15,16,13,13,15,14,17,15,15,15,17,17,15,14,17,14,19,17,18,18,19,18,13,14,14,16,16,15,15,15,17,17,14,15,14,18,15,17,18,17,18,17,16,18,16,19,15,7,10,10,13,13,9,10,12,14,15,10,12,11,15,14,12,13,14,16,17,13,15,14,18,16,10,10,12,13,14,10,10,13,13,16,12,12,13,15,15,13,12,15,15,18,15,15,16,18,17,10,11,11,14,14,12,13,13,15,16,10,13,10,16,14,14,15,15,17,17,14,15,13,17,15,13,13,14,15,16,14,13,15,14,18,15,15,16,16,17,16,15,18,15,18,17,18,18,18,18,13,15,14,17,16,15,16,16,17,17,14,15,13,17,15,17,17,18,18,18,16,17,14,20,14,8,10,10,14,14,11,11,13,14,16,11,13,11,16,14,14,15,16,16,18,14,16,15,18,16,10,12,11,15,14,11,11,13,14,16,13,14,13,16,15,15,14,16,15,19,16,17,16,20,18,10,11,12,14,15,13,13,14,16,16,11,14,11,16,14,16,16,17,18,19,15,17,14,20,15,14,15,14,17,16,13,14,15,15,18,16,17,16,19,18,16,15,18,15,19,18,19,18,21,21,14,14,15,16,17,16,16,17,18,18,13,15,14,17,15,18,18,19,18,22,16,18,15,21,15,12,13,14,16,16,14,14,16,16,18,14,15,15,17,18,16,16,18,18,20,18,18,17,20,20,13,14,15,15,17,15,14,16,16,18,16,16,16,17,19,17,15,18,17,21,18,18,18,19,19,14,15,15,18,17,15,16,16,18,19,15,16,15,18,18,17,18,18,20,21,17,19,17,20,19,16,16,17,16,19,17,17,18,17,20,18,18,18,18,19,19,18,20,17,22,20,20,19,20,20,17,17,18,18,19,18,18,20,21,20,17,18,17,20,20,21,21,21,21,21,19,21,18,22,20,11,13,13,17,16,14,14,16,16,18,14,16,14,18,16,17,18,19,19,20,18,19,18,21,19,14,15,14,17,16,14,14,16,18,18,16,17,16,18,17,18,17,19,18,20,19,19,18,20,20,13,14,15,16,17,16,16,17,18,19,14,16,14,19,17,18,19,18,20,20,18,20,17,21,18,17,17,17,19,18,16,17,18,18,19,18,19,18,21,21,18,18,20,17,21,19,20,20,22,21,16,17,18,18,19,18,18,19,21,20,16,17,17,20,18,21,21,22,21,22,18,21,18,0,18,7,9,9,13,13,9,11,12,14,15,8,11,10,15,14,13,14,15,16,18,11,14,13,17,15,9,11,11,14,14,11,11,13,14,16,11,12,12,15,15,14,14,16,15,18,14,14,15,17,17,8,11,10,14,14,11,12,12,15,15,10,12,10,16,14,14,15,15,17,18,13,15,12,18,15,13,14,14,16,16,14,14,15,15,17,15,15,15,16,17,16,15,17,15,19,17,17,17,18,18,12,14,13,16,15,15,15,15,17,17,13,15,13,17,14,17,18,18,18,19,15,17,14,19,14,8,10,10,14,14,11,11,13,14,16,11,13,11,16,14,14,15,16,17,19,14,16,15,18,17,10,12,11,15,14,11,11,14,14,17,13,14,13,17,15,15,14,17,15,19,16,17,16,19,17,10,11,12,14,15,13,13,14,15,17,11,13,11,17,14,16,16,17,18,19,15,16,14,18,15,14,15,14,16,16,13,14,15,15,18,16,16,16,18,18,16,15,18,15,20,18,19,18,21,18,14,14,15,16,17,16,16,17,17,18,13,15,14,17,16,19,19,19,19,19,15,18,15,20,15,7,10,10,13,13,10,11,12,14,15,9,12,10,15,14,13,14,15,16,17,12,15,13,17,16,10,11,11,14,14,10,10,13,14,16,12,13,13,16,15,14,13,16,15,18,15,15,16,17,17,10,12,10,14,13,12,13,12,15,15,10,13,10,16,13,15,16,15,17,18,13,16,12,18,15,13,14,14,16,17,14,13,15,15,18,15,16,15,17,17,16,14,17,15,19,17,18,18,19,19,13,15,13,17,14,15,15,15,18,17,14,15,13,17,14,18,17,18,18,19,15,17,15,19,15,11,13,13,16,17,14,14,16,16,18,14,16,15,18,17,17,18,19,18,21,18,18,17,20,18,13,15,14,17,16,14,14,16,17,18,16,17,16,19,17,18,17,19,18,22,18,19,19,21,21,13,14,15,16,18,16,16,17,17,20,14,16,14,18,17,18,18,19,19,21,17,18,17,21,18,17,18,17,19,18,16,17,17,18,19,18,18,18,22,22,18,17,19,17,0,20,21,19,21,20,17,17,18,18,21,18,18,18,19,21,17,17,17,19,19,20,20,22,21,21,19,20,18,20,17,12,14,13,17,16,14,15,15,17,18,14,16,14,18,16,17,18,18,21,20,16,18,16,21,18,14,15,15,17,17,15,15,16,18,18,15,17,16,18,18,17,17,19,19,20,18,19,18,20,19,14,15,14,17,15,15,16,16,18,17,15,16,14,19,15,18,18,18,19,20,17,20,15,21,17,16,17,18,18,19,17,17,18,18,20,18,19,18,19,21,19,18,19,19,21,20,0,19,21,20,16,17,16,19,16,18,18,18,19,19,17,18,17,20,17,19,20,20,22,0,19,20,17,21,17,11,13,14,16,17,14,15,15,17,18,14,15,15,18,18,16,17,17,19,20,16,18,17,19,21,13,14,15,17,17,14,15,16,17,19,15,16,16,18,19,16,17,18,19,21,17,18,20,21,21,13,15,15,17,17,15,16,16,18,19,15,16,16,18,19,17,17,18,19,22,17,19,18,22,19,15,16,17,19,19,16,17,18,18,20,17,18,18,19,20,19,18,20,18,22,20,19,19,22,21,16,17,17,18,19,18,18,18,19,20,17,18,18,20,19,20,19,20,22,20,19,20,21,21,20,12,14,14,16,16,13,14,16,17,18,14,16,15,18,18,15,17,17,19,19,17,18,18,19,19,13,14,15,16,17,14,14,16,16,20,15,16,16,17,19,16,15,18,17,20,18,17,19,19,19,14,15,15,17,17,16,16,16,18,18,15,16,15,19,18,17,18,18,20,21,17,18,17,21,18,16,15,17,17,19,17,15,18,17,20,19,17,18,19,20,18,16,19,17,22,20,19,20,19,20,17,17,18,19,19,18,18,19,20,20,17,18,17,18,18,21,21,20,20,21,18,20,17,21,19,11,14,14,16,17,15,14,16,17,19,14,16,14,18,17,18,18,19,19,21,17,19,18,20,20,13,15,14,17,17,14,14,16,17,18,16,17,16,19,18,18,17,19,18,20,18,21,18,20,20,13,15,15,16,17,16,16,17,18,19,14,16,15,19,18,19,19,19,21,20,18,19,17,20,18,16,17,16,19,18,16,17,17,19,20,17,19,18,20,19,18,17,21,18,0,21,20,20,0,20,17,17,18,18,19,18,19,19,20,22,16,17,17,20,18,21,22,20,20,22,18,22,18,22,18,12,14,14,17,17,14,15,16,17,19,14,16,15,17,17,17,17,18,18,21,17,19,17,20,19,14,15,15,16,18,15,14,16,16,19,16,17,16,19,18,17,16,20,17,20,18,20,19,19,20,14,15,15,18,17,16,16,17,18,19,14,16,15,19,17,18,21,18,19,21,17,18,17,19,18,17,17,18,17,20,17,16,18,17,21,18,19,19,19,19,18,17,19,17,20,20,21,20,21,20,17,17,17,19,19,19,18,18,20,21,16,18,16,19,18,20,20,21,21,20,18,19,16,0,17,12,14,14,17,17,15,15,18,17,19,15,18,15,20,16,20,19,21,18,22,20,20,20,22,19,14,16,14,20,17,14,15,17,17,20,18,18,17,20,18,18,17,19,17,21,20,21,20,0,21,14,15,16,17,19,18,17,19,18,21,14,18,15,21,17,21,20,21,20,0,18,21,17,21,17,18,19,17,20,18,16,17,17,19,19,19,21,20,0,20,18,17,21,17,0,22,0,21,0,22,17,17,19,18,20,20,20,21,19,22,16,17,18,20,18,22,22,0,22,0,17,21,17,22,17,11,14,13,16,16,14,15,15,17,18,14,15,14,18,17,17,18,18,19,20,16,17,17,21,19,13,14,15,17,17,15,16,16,18,18,15,16,16,19,18,18,18,18,19,20,17,18,18,20,19,13,15,14,17,17,15,16,16,17,18,14,16,15,19,17,17,18,19,21,21,17,18,17,20,18,16,17,17,19,19,17,18,19,19,20,18,19,18,21,21,21,20,19,21,22,20,20,19,21,20,15,17,16,19,19,17,18,18,20,21,16,18,17,20,18,19,19,21,21,21,19,19,19,20,18,11,14,13,17,16,14,14,16,16,19,14,16,15,19,16,18,18,18,19,22,17,18,17,20,19,13,15,14,17,17,15,15,16,17,19,16,17,16,20,18,18,17,19,18,21,19,19,18,22,0,13,14,15,17,18,16,16,17,17,19,14,16,15,19,18,18,19,19,20,21,18,18,17,20,18,17,18,17,20,18,16,17,17,18,20,18,19,18,20,20,18,18,21,17,21,20,21,21,0,19,16,16,18,18,19,19,18,20,19,20,16,17,17,20,18,21,20,21,22,22,18,20,17,21,17,12,14,14,17,16,14,15,16,18,18,13,15,14,18,17,17,18,18,19,19,15,17,16,19,19,14,15,15,17,17,15,15,16,18,19,15,16,16,19,18,17,17,18,18,20,18,18,18,21,20,13,15,14,17,16,15,16,15,18,18,14,16,14,18,17,18,18,18,19,21,16,18,16,20,17,17,18,17,18,19,17,17,18,18,19,18,19,19,21,19,19,18,20,18,21,21,20,20,21,20,16,17,15,20,17,17,19,17,19,19,17,18,15,20,17,19,20,19,21,22,17,20,16,0,17,12,14,14,17,18,16,15,18,16,20,16,18,15,21,17,20,18,21,19,22,19,21,19,0,19,14,16,15,19,17,14,15,17,16,21,18,19,18,21,17,19,17,21,17,22,20,21,21,0,21,14,15,16,17,19,18,17,19,18,21,14,17,15,20,17,21,22,21,20,22,18,21,17,21,17,17,19,17,21,18,16,17,17,19,20,19,21,20,21,20,17,18,20,17,21,0,22,20,21,22,17,17,20,18,21,21,20,22,20,21,16,17,17,21,19,0,22,0,21,21,18,22,17,21,17,12,14,14,17,16,14,15,16,17,18,14,16,15,18,17,17,17,20,19,20,16,18,17,21,18,14,15,15,17,17,14,15,16,17,19,16,17,16,18,18,17,16,19,18,19,18,19,18,21,20,14,15,15,18,17,16,16,16,19,18,15,16,14,20,16,18,18,19,19,20,16,19,16,21,17,17,17,18,19,19,16,16,18,18,19,19,19,18,20,20,18,16,19,18,20,22,21,20,19,20,16,18,17,20,16,18,19,18,19,18,16,18,16,20,17,21,20,21,20,20,18,19,17,21,16,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,5,7,7,10,10,7,8,9,10,11,7,9,8,11,10,9,10,10,11,11,9,10,10,11,11,7,9,9,10,10,8,9,10,10,11,9,10,10,11,11,10,10,11,11,11,10,11,11,12,12,7,9,9,10,10,9,10,10,11,11,8,10,9,11,10,10,11,11,11,11,10,11,10,11,11,10,10,10,11,11,10,10,11,11,11,11,11,11,11,11,11,11,12,11,12,11,12,11,12,12,10,10,10,11,11,10,11,11,11,11,10,11,10,11,11,11,12,11,12,12,11,12,11,12,11,8,9,9,11,11,9,10,10,11,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,9,10,10,11,11,10,10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,8,9,9,11,11,9,10,10,11,11,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,9,10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,10,12,11,11,12,12,12,12,11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,13,12,12,12,12,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,9,9,11,11,9,10,10,11,11,9,10,10,12,11,10,11,11,12,12,10,11,11,12,12,9,10,10,11,11,10,10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,9,10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,10,10,11,11,12,11,11,12,12,12,11,11,12,12,12,11,11,12,12,13,12,12,12,12,12,10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,8,10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11,12,12,12,12,10,11,10,12,12,10,10,11,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,10,11,11,12,12,11,12,12,12,12,10,12,11,12,12,12,12,12,13,13,12,13,12,13,12,11,12,12,12,12,11,12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,13,11,12,12,12,12,12,12,12,13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,12,13,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13,11,12,12,12,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,11,12,12,13,12,12,13,12,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,9,9,11,11,9,10,10,11,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,9,10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12,9,10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,8,10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11,12,12,10,11,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,10,10,11,12,12,11,12,12,12,12,10,11,10,12,12,12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,11,12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,11,12,12,13,12,12,13,13,13,13,12,13,12,13,12,9,10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,13,12,12,12,13,12,10,11,10,12,11,11,12,11,12,12,11,12,11,12,12,12,12,12,12,12,12,12,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13,11,12,11,12,12,12,12,12,13,12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,12,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,12,13,13,13,12,13,13,13,13,11,12,12,12,13,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,11,12,12,12,12,12,12,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,13,13,13,12,13,12,13,13,11,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12,12,13,12,13,13,12,12,12,13,12,13,13,13,13,13,12,13,12,13,13,12,12,12,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,11,12,12,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,13,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,13,13,13,13,12,13,12,13,13,11,12,12,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,11,12,12,13,12,12,13,12,13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13,12,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,13,12,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13,13,13,13,13,13,13,11,12,12,12,12,12,13,12,13,13,12,13,12,13,13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11,12,11,12,12,12,12,12,13,13,11,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12,12,13,13,13,12,13,13,13,13,11,12,12,13,13,12,12,13,13,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,11,12,12,13,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13,13,13,13,13,13,13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,12,11,12,12,11,12,12,12,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,13,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13,13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,13,13,13,12,13,13,13,13,12,12,13,13,13,13,13,13,13,13,11,12,12,12,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12,13,13,13,13,11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13,13,13,13,13,12,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,5,5,5,7,9,5,9,7,5,7,8,7,7,10,9,10,10,5,8,7,9,10,10,7,10,7,6,8,9,9,10,12,9,11,11,9,10,11,11,11,13,12,13,13,9,11,11,11,12,13,11,13,11,6,9,8,9,11,11,9,12,10,9,11,11,11,11,13,11,13,12,9,11,10,12,13,13,11,13,11,6,9,9,8,10,11,9,12,11,9,10,11,10,10,12,11,13,13,9,11,11,11,13,12,11,13,11,8,10,10,9,10,12,10,12,11,10,10,12,10,10,13,12,13,13,10,12,11,12,13,13,10,13,10,7,10,10,11,11,13,11,14,11,10,12,11,11,11,13,13,14,13,10,12,12,14,14,14,11,14,11,6,9,9,9,11,12,8,11,10,9,11,11,11,11,13,11,12,13,8,11,10,11,13,13,10,12,10,7,10,10,11,11,14,11,13,11,10,12,12,11,11,14,14,14,14,10,11,12,13,13,14,11,13,11,8,10,10,10,11,12,9,12,10,10,11,12,11,10,13,12,13,13,10,12,10,12,13,13,11,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,5,6,6,6,7,7,6,7,7,6,7,7,7,7,8,7,8,8,6,7,7,7,8,8,7,8,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,9,7,8,7,8,8,8,8,8,8,8,8,8,8,9,9,8,9,9,8,8,8,8,9,9,8,9,8,6,8,8,7,8,8,7,8,8,7,8,8,8,8,9,8,9,9,8,8,8,8,9,9,8,9,8,7,8,8,8,9,9,8,9,9,8,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,7,8,8,8,8,9,8,9,8,8,8,8,8,9,9,9,9,9,8,9,8,9,9,9,8,9,9,6,8,8,7,8,8,7,8,8,8,8,8,8,8,9,8,9,9,7,8,8,8,9,9,8,9,8,7,8,8,8,8,9,8,9,8,8,8,9,8,9,9,9,9,9,8,8,8,9,9,9,8,9,9,7,8,8,8,9,9,8,9,9,8,9,9,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,6,5,7,8,5,8,7,5,7,8,7,8,10,8,10,10,5,8,7,8,10,10,7,10,8,6,8,9,8,10,11,9,10,10,9,10,11,10,11,12,11,12,12,9,11,10,11,12,12,10,12,11,6,9,8,9,10,10,8,11,10,9,10,11,10,11,12,11,12,12,9,11,10,11,12,12,10,12,11,6,9,9,8,10,11,9,11,10,8,10,10,10,10,12,11,12,12,9,11,10,11,12,12,10,12,11,8,10,10,10,11,12,10,12,11,10,10,12,11,11,13,12,13,13,10,12,11,12,13,13,11,13,11,7,10,10,10,11,12,10,12,11,10,12,11,11,11,12,12,14,13,10,12,12,12,14,14,11,13,11,6,9,9,9,10,11,8,11,10,9,10,11,10,11,12,11,12,12,8,11,10,11,12,12,10,12,10,7,10,10,10,11,12,10,12,11,10,12,12,11,11,13,12,13,13,10,11,12,12,13,14,11,12,11,8,10,10,10,11,12,10,12,11,10,11,12,11,11,13,12,13,13,10,12,10,12,13,13,11,13,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,6,6,9,9,6,7,8,10,10,6,8,7,10,10,8,10,10,12,13,8,10,10,13,12,6,7,8,10,10,7,8,9,10,11,8,9,9,11,11,10,10,11,12,14,10,11,11,14,13,6,8,7,10,10,8,9,9,11,11,7,9,8,11,10,10,11,11,13,14,10,11,10,14,12,9,10,10,12,12,10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13,14,13,15,14,9,10,10,12,12,10,11,11,13,13,10,11,10,13,12,13,13,14,14,15,12,13,12,15,12,6,7,8,10,11,8,9,10,11,12,8,9,9,11,12,10,11,12,13,14,10,11,11,14,13,8,9,10,11,12,9,10,11,12,13,9,10,11,12,13,11,12,13,13,15,12,12,13,15,14,8,9,9,12,12,9,10,11,12,13,9,10,10,13,12,12,12,13,14,15,11,12,12,14,14,11,11,12,13,14,11,12,13,13,15,12,13,13,14,15,14,13,15,14,16,14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11,13,12,14,13,14,15,15,15,16,13,14,14,16,14,6,8,7,11,10,8,9,9,11,12,8,10,9,12,11,10,11,11,13,14,10,12,11,14,13,8,9,9,12,12,9,10,10,12,13,9,11,10,13,12,11,12,12,13,14,12,13,12,15,14,8,10,9,12,11,9,11,10,13,12,9,11,10,13,12,12,13,12,14,15,11,13,12,15,13,11,11,12,13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14,16,14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15,16,16,13,15,13,16,14,9,10,11,12,14,11,11,12,13,15,11,12,12,13,14,13,14,15,15,17,13,14,14,15,16,11,11,12,13,15,12,12,13,14,16,12,13,13,14,15,14,14,16,15,17,15,15,15,16,17,11,12,12,14,14,12,13,13,15,16,12,13,13,15,15,15,15,15,16,17,14,15,15,16,16,14,14,15,15,17,14,15,15,15,17,15,15,16,16,17,16,16,17,16,18,17,17,17,18,18,14,15,14,16,16,15,15,16,17,17,14,15,15,17,16,17,17,17,18,18,16,16,16,17,17,9,11,10,14,12,11,12,12,14,13,11,12,11,15,13,13,14,14,16,15,13,15,14,17,15,11,12,12,15,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,15,15,15,17,16,11,12,11,15,13,12,13,13,15,14,12,13,12,16,14,15,15,15,17,16,14,15,14,17,15,14,14,15,16,16,14,15,15,16,16,15,16,15,17,17,16,16,16,17,17,17,17,17,18,17,14,15,14,16,15,15,15,15,17,16,15,15,15,17,15,17,17,17,18,18,16,17,16,18,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,11,13,14,10,12,11,14,13,7,9,9,11,12,9,10,10,12,13,9,10,10,13,13,11,11,12,13,15,11,12,12,15,14,8,9,9,12,11,9,11,10,13,13,9,11,10,13,12,12,13,12,14,15,11,13,12,15,13,10,11,12,13,14,11,12,12,13,15,12,12,13,14,15,13,13,14,14,16,14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15,15,16,13,14,14,16,14,7,9,9,11,12,9,10,11,12,13,9,10,10,13,12,11,12,12,14,15,11,12,12,15,14,9,9,11,11,13,10,10,12,12,14,10,11,12,13,14,12,12,13,14,16,12,13,13,15,15,9,11,10,13,13,10,12,12,13],"i8",O3,_.GLOBAL_BASE+431057),C3([14,10,12,11,14,13,12,13,13,15,16,12,13,13,15,14,11,11,13,13,15,12,12,14,13,16,13,13,13,14,15,14,14,15,14,17,15,15,15,16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,16,14,15,15,16,16,17,14,15,14,17,15,7,9,9,12,11,9,10,10,12,13,9,11,10,13,12,11,12,12,14,14,11,13,12,15,14,9,10,10,13,12,10,10,11,12,13,10,12,11,14,13,12,12,13,13,15,12,14,13,16,15,9,10,10,13,12,11,11,12,13,13,10,12,10,14,12,13,13,13,15,15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15,13,14,13,15,15,14,13,15,13,16,15,16,15,17,16,12,13,12,14,14,13,14,14,15,15,12,13,12,15,14,15,15,16,16,17,14,15,13,16,13,10,11,12,13,14,11,12,13,14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16,16,12,12,13,12,15,12,12,14,13,16,13,13,14,14,16,14,14,16,15,17,15,15,16,16,17,12,13,13,15,15,13,14,14,16,16,13,14,13,16,15,15,16,16,17,17,14,15,15,17,16,14,14,15,14,17,15,15,16,15,17,15,15,16,15,17,16,16,17,16,18,17,17,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16,18,17,10,12,11,14,14,12,13,13,15,15,12,13,12,15,14,14,15,15,16,16,14,15,15,17,16,11,13,12,15,14,12,13,13,15,15,13,14,13,16,14,15,15,15,16,16,15,16,15,17,16,12,13,13,15,15,13,14,14,16,16,12,14,13,16,15,15,16,16,17,17,15,16,15,17,16,14,15,15,16,16,14,15,15,16,16,15,16,16,17,16,16,16,16,16,17,17,18,17,18,17,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,17,17,18,18,18,16,17,16,18,16,6,8,8,11,11,8,9,9,11,12,8,9,9,12,11,10,11,12,13,14,10,11,11,14,13,8,9,9,11,12,9,10,11,12,13,9,10,11,13,13,11,12,13,13,15,12,12,12,15,14,7,9,9,12,11,9,10,10,13,13,9,10,10,13,12,11,12,12,14,15,11,12,11,15,13,11,11,12,13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14,16,14,15,15,16,16,10,12,11,14,13,12,13,12,14,14,11,12,12,15,13,14,15,15,16,16,13,14,13,16,14,7,9,9,11,12,9,10,11,12,13,9,10,10,13,12,11,12,13,14,15,11,12,12,14,14,9,10,10,12,13,10,10,12,12,14,11,12,11,13,13,12,12,14,13,15,13,13,13,15,15,9,10,10,12,13,10,11,12,13,14,10,11,10,13,12,13,13,14,15,16,12,13,12,15,13,12,13,13,14,14,12,12,13,14,15,13,14,14,15,15,14,13,15,13,16,15,16,15,17,16,11,12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15,16,16,17,14,14,13,16,13,7,9,9,12,11,9,10,10,12,13,9,11,10,13,12,11,12,12,14,15,11,12,12,15,14,9,10,11,13,13,10,11,12,13,14,10,12,12,14,13,12,13,13,14,16,12,13,13,16,15,9,11,9,13,11,10,12,11,13,13,10,12,10,14,12,12,13,13,15,15,12,13,12,16,14,12,12,13,14,15,12,13,14,14,15,13,14,14,15,15,14,14,15,15,17,15,16,15,17,16,11,13,11,15,13,13,14,13,15,14,12,14,12,16,13,15,15,15,16,16,14,15,14,17,14,10,11,12,14,14,12,12,13,14,15,12,13,13,15,15,14,15,15,16,17,14,15,15,16,16,12,12,13,15,15,13,13,14,15,16,13,14,14,16,16,15,15,16,16,17,15,16,16,17,17,11,12,13,14,15,13,13,14,15,16,12,13,13,15,15,15,15,16,16,17,15,15,15,16,16,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,16,18,17,17,17,18,18,14,15,15,16,16,15,16,16,16,17,15,15,15,16,16,17,17,17,18,18,16,16,16,17,16,10,12,11,14,13,12,13,13,15,15,11,13,12,15,14,14,15,15,16,16,14,15,14,17,15,12,13,13,15,15,13,13,14,16,16,13,14,14,16,16,15,15,15,16,17,15,16,16,17,17,12,13,12,15,12,13,14,13,16,14,12,14,12,16,13,15,16,15,17,16,14,16,14,17,15,14,15,15,16,17,15,15,16,17,17,15,16,16,17,17,16,16,17,17,18,17,18,17,18,18,14,15,14,17,14,15,16,15,17,15,15,16,15,17,15,17,17,17,18,17,16,17,16,18,16,9,11,11,14,14,11,12,12,14,14,11,12,12,15,14,13,14,14,16,16,13,15,14,16,16,10,11,12,14,14,11,12,13,15,15,12,13,13,15,15,13,14,15,16,17,14,15,15,17,16,11,12,12,15,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15,15,17,16,12,13,14,15,16,13,14,14,15,16,13,14,15,16,16,15,15,16,16,18,16,16,16,18,17,14,14,14,16,15,15,15,15,17,16,14,15,15,17,16,16,17,17,18,17,16,16,16,18,16,10,12,12,14,14,11,12,13,15,15,12,13,13,15,15,13,14,15,16,17,14,15,15,17,16,11,12,13,14,15,12,12,14,15,16,13,13,14,15,16,14,14,15,16,17,15,15,16,17,17,12,13,13,15,15,13,14,14,16,16,13,14,13,16,15,15,16,15,17,17,15,16,15,17,16,13,13,15,14,17,14,13,16,15,17,15,14,16,15,17,15,15,17,16,18,16,16,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16,18,17,10,12,11,14,14,11,12,13,15,15,12,13,12,15,15,14,15,15,16,16,14,15,15,17,16,11,12,12,15,15,12,13,13,15,15,13,14,13,16,15,14,15,15,16,16,15,16,15,17,16,11,13,13,15,15,13,14,14,15,15,12,14,13,16,15,15,16,15,17,17,15,16,15,17,16,13,15,14,16,16,14,15,14,16,16,15,16,15,17,16,15,16,16,16,17,16,17,16,18,17,14,15,15,16,16,15,16,16,17,17,15,15,15,17,16,17,17,17,18,18,16,16,16,18,16,12,13,13,15,16,13,14,14,15,16,13,14,14,16,16,15,15,16,16,18,15,16,16,17,17,13,13,14,15,16,14,14,15,15,17,14,15,15,16,17,15,15,17,16,18,16,16,17,17,17,13,14,14,16,16,14,15,15,17,17,14,15,14,17,16,16,17,16,17,18,16,17,16,18,17,15,15,16,14,17,16,15,17,14,18,16,16,16,15,18,16,16,18,15,19,18,18,18,17,19,15,16,16,18,17,16,17,17,18,17,16,17,16,18,17,18,18,18,19,19,17,18,16,18,17,11,12,12,15,15,13,13,14,15,16,13,14,13,16,15,15,16,16,16,17,15,16,16,17,16,12,14,13,16,15,13,13,14,15,16,14,15,14,17,15,15,15,16,16,17,16,17,16,18,17,12,13,14,15,16,14,15,15,16,16,13,14,13,16,15,16,16,16,17,17,15,16,15,17,15,15,16,15,17,16,15,15,15,16,16,16,17,16,18,16,16,15,16,15,17,17,18,17,18,17,15,15,16,17,17,16,16,17,17,17,15,16,15,17,16,18,18,18,18,18,16,17,16,18,15,9,11,11,14,14,11,12,12,14,15,10,12,12,15,14,13,14,15,16,16,13,14,14,16,16,11,12,12,14,15,12,12,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15,15,16,16,10,12,12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15,16,17,13,15,14,16,16,14,14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16,17,16,18,16,17,17,17,17,12,14,13,16,15,13,15,14,16,16,13,14,14,16,15,16,16,16,17,17,15,16,15,17,16,10,11,11,14,14,12,12,13,14,15,11,13,12,15,14,14,15,15,16,17,14,15,15,16,16,12,13,13,15,15,12,13,14,15,16,13,14,14,15,15,15,15,16,16,17,15,15,16,17,17,11,12,12,15,15,13,13,14,15,16,12,13,13,15,15,15,15,16,16,17,14,15,15,16,16,14,15,15,16,16,15,15,15,16,17,15,16,16,17,17,16,16,17,16,18,17,17,17,17,18,13,14,15,16,16,15,15,16,16,17,14,14,14,16,16,16,16,17,17,18,16,16,16,17,16,10,12,12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15,16,17,13,15,14,17,16,12,13,13,15,15,13,13,14,15,16,13,14,14,16,16,15,15,16,16,17,15,15,16,17,17,11,13,12,15,14,13,14,13,16,15,12,14,12,16,15,15,16,15,17,17,14,15,14,17,16,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17,16,16,17,17,18,17,17,17,18,18,13,15,13,17,14,14,16,14,17,16,14,15,13,17,15,16,17,16,18,17,15,17,15,18,16,11,12,12,15,15,13,13,14,15,16,13,14,13,16,15,15,16,16,16,17,15,16,16,17,16,12,14,13,16,15,13,13,14,15,16,14,15,15,16,16,16,15,16,16,17,16,16,16,17,17,12,13,14,15,16,14,14,15,15,17,13,14,13,16,15,16,16,17,17,18,15,16,15,17,15,15,16,15,17,17,15,15,16,16,17,16,17,16,17,17,16,15,17,15,18,17,18,17,18,18,15,15,16,16,17,16,16,17,16,18,15,15,15,16,16,17,17,18,17,18,16,16,15,17,15,12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,15,16,16,17,18,15,16,15,18,16,13,14,14,16,16,14,14,15,16,17,14,15,15,17,17,16,16,17,17,18,16,16,17,18,17,13,14,13,16,14,14,15,15,17,16,14,15,14,17,15,16,17,17,18,17,15,17,15,18,16,15,16,16,17,17,16,16,17,17,18,16,17,17,18,18,17,16,18,17,19,18,18,18,18,18,15,16,15,17,14,16,16,16,18,15,16,17,15,18,14,18,18,18,18,17,17,18,16,19,15,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,5,5,5,7,7,5,7,7,5,7,7,7,8,9,7,9,9,5,7,7,7,9,9,7,9,8,5,7,8,8,9,10,8,9,10,8,9,10,9,10,12,10,11,11,8,10,10,10,11,11,9,11,11,5,8,7,8,9,9,8,10,9,8,10,10,9,11,11,10,11,11,8,10,9,10,11,11,9,12,10,5,8,8,7,9,10,8,10,9,7,9,9,9,10,11,9,11,11,8,10,9,10,11,11,10,11,11,7,9,9,9,10,11,9,11,11,9,9,11,10,10,13,11,11,12,9,11,11,11,12,13,11,13,12,7,9,9,9,11,11,9,11,10,9,11,10,10,11,12,11,13,12,9,11,11,11,12,13,11,13,11,5,8,8,8,9,10,7,10,9,8,9,10,10,11,11,10,11,11,7,9,9,9,11,11,9,11,10,7,9,9,9,10,11,9,11,11,9,11,11,11,11,13,11,13,12,9,10,11,11,12,13,10,12,11,7,9,9,9,11,11,9,11,10,9,11,11,11,12,13,11,13,12,9,11,9,11,12,11,10,13,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,7,12,14,15,18,20,20,5,3,4,6,9,11,15,19,9,4,3,4,7,9,13,18,11,6,3,3,5,8,13,19,14,9,6,5,7,10,16,20,16,11,9,8,10,10,14,16,21,14,13,11,8,7,11,14,21,14,13,9,6,5,10,12,0,0,0,0,255,255,255,255,255,255,255,255,8,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+441297),C3([1,0,0,0,1,0,0,0,2,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,99,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,240,5,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,214,6,0,0,0,0,0,0,0,0,0,224,214,6,0,0,0,0,0,0,0,0,0,8,215,6,0,48,215,6,0,0,0,0,0,0,0,0,0,88,215,6,0,128,215,6,0,0,0,0,0,0,0,0,0,168,215,6,0,208,215,6,0,0,0,0,0,0,0,0,0,248,215,6,0,32,216,6,0,208,215,6,0,0,0,0,0,72,216,6,0,112,216,6,0,208,211,6,0,248,211,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,120,214,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,112,214,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,211,6,0,128,211,6,0,0,0,0,0,0,0,0,0,168,211,6,0,208,211,6,0,248,211,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,136,213,6,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,56,214,6,0,0,0,0,0,2,0,0,0,25,0,0,0,80,213,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,112,213,6,0,0,0,0,0,2,0,0,0,9,0,0,0,48,213,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,64,213,6,0,0,0,0,0,1,0,0,0,25,0,0,0,168,212,6,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,200,212,6,0,0,0,0,0,1,0,0,0,25,0,0,0,32,212,6,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,64,212,6,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,4,4,5,5,5,4,5,4,5,5,5,5,6,5,6,5,6,5,6,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,8,8,9,8,9,9,10,10,10,10,4,6,5,8,7,9,9,9,9,10,9,10,10,4,5,6,7,8,9,9,9,9,9,10,9,10,8,9,8,9,8,10,9,11,9,12,10,11,10,8,8,9,8,9,9,10,9,11,10,11,10,12,9,10,10,11,10,11,11,12,11,12,12,12,12,9,10,10,11,11,11,11,11,12,12,12,12,12,10,11,11,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,13,12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,11,13,12,12,12,13,12,12,12,12,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,3,5,13,9,9,12,16,18,4,2,20,6,7,10,15,20,10,7,5,5,6,8,10,13,8,5,5,3,5,7,10,11,9,7,6,5,5,7,9,9,11,10,8,7,6,6,8,8,15,15,10,10,9,7,8,9,17,19,13,12,10,8,9,9,5,0,0,0,243,0,0,0,232,4,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,224,5,7,0,0,0,0,0,5,0,0,0,53,12,0,0,152,248,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,208,4,7,0,0,0,0,0,5,0,0,0,243,0,0,0,144,247,6,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,136,248,6,0,0,0,0,0,5,0,0,0,243,0,0,0,136,246,6,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,128,247,6,0,0,0,0,0,5,0,0,0,243,0,0,0,128,245,6,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,120,246,6,0,0,0,0,0,5,0,0,0,53,12,0,0,48,233,6,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,104,245,6,0,0,0,0,0,5,0,0,0,53,12,0,0,224,220,6,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,24,233,6,0,0,0,0,0,1,0,0,0,7,0,0,0,184,220,6,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,192,220,6,0,0,0,0,0,5,0,0,0,243,0,0,0,176,219,6,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,168,220,6,0,0,0,0,0,5,0,0,0,243,0,0,0,168,218,6,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,160,219,6,0,0,0,0,0,5,0,0,0,243,0,0,0,160,217,6,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,152,218,6,0,0,0,0,0,5,0,0,0,243,0,0,0,152,216,6,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,144,217,6,0,0,0,0,0,1,9,9,7,9,9,8,8,9,9,9,9,9,9,9,8,9,9,7,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,6,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,5,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,5,10,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,8,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,6,7,7,7,7,7,7,8,8,9,9,9,9,7,7,8,8,8,9,9,9,9,8,8,6,7,7,8,8,8,8,8,8,9,8,8,9,8,9,9,8,8,10,8,8,10,9,9,10,8,8,6,6,6,8,6,6,8,7,7,8,7,7,10,8,8,9,7,7,9,7,7,10,8,8,9,7,7,7,7,7,10,8,8,11,9,9,10,9,9,11,9,9,11,8,8,11,9,9,12,9,9,12,8,8,7,7,7,10,9,9,10,9,9,10,9,9,11,10,10,10,9,9,11,9,10,11,10,11,10,9,9,9,8,8,10,9,9,10,9,9,11,9,9,11,10,10,11,9,9,11,9,9,11,10,10,11,9,9,8,8,8,11,9,9,11,9,9,11,9,9,12,9,9,12,8,8,11,9,9,12,9,9,12,8,8,8,7,7,10,9,9,10,9,9,10,9,9,11,11,11,11,9,9,11,10,10,11,11,11,11,9,9,10,9,9,11,9,9,11,9,10,11,10,10,11,10,10,11,9,9,11,10,10,11,10,10,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,7,7,7,8,8,7,8,8,7,9,9,11,11,11,9,8,8,8,9,9,12,11,12,9,8,8,6,7,7,10,11,11,10,10,10,11,11,11,14,14,14,12,11,12,11,11,11,15,15,14,13,12,12,5,6,6,8,5,5,8,7,7,8,7,7,12,10,10,10,7,6,9,8,8,12,10,10,10,6,6,7,8,8,12,10,10,12,10,10,11,10,10,16,14,14,13,10,10,12,10,10,15,14,14,14,10,10,7,7,7,13,11,11,13,11,11,12,11,11,16,14,14,14,12,12,12,11,11,18,15,15,14,12,12,10,9,10,14,11,11,13,11,11,12,11,11,17,14,14,14,11,11,13,11,11,16,15,15,14,11,11,7,8,8,13,11,11,12,10,10,12,10,10,16,14,13,13,10,10,12,10,10,17,14,14,14,10,10,8,7,7,12,11,11,13,11,11,12,11,11,16,15,14,14,12,12,12,11,11,16,15,15,14,12,12,11,10,10,14,11,11,13,11,11,13,11,11,17,14,14,14,11,11,13,11,11,18,14,15,15,11,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,1,7,6,15,15,7,8,8,15,15,8,8,8,15,15,0,13,13,16,16,0,14,14,16,16,7,9,9,16,16,10,11,11,17,17,10,8,8,15,16,0,14,14,18,18,0,14,14,16,16,9,9,9,16,16,12,11,11,17,17,10,9,9,15,15,0,14,14,19,19,0,14,14,16,16,0,15,15,18,17,0,0,0,20,20,0,13,13,16,16,0,17,17,22,20,0,15,15,17,17,0,15,15,18,18,0,22,21,20,21,0,13,13,16,16,0,18,18,0,22,0,15,15,17,17,6,7,7,13,13,9,10,10,15,15,11,10,10,15,15,0,21,22,18,18,0,0,0,18,18,10,10,10,15,15,12,13,13,17,17,12,11,11,15,15,0,22,22,18,18,0,0,21,18,18,12,11,11,15,15,15,14,14,18,18,13,11,11,15,15,0,0,21,18,19,0,21,22,18,19,0,22,0,18,19,0,0,0,0,0,0,21,21,18,18,0,22,0,0,21,0,0,0,19,18,0,0,0,18,19,0,0,0,0,0,0,20,20,18,17,0,0,22,0,21,0,0,0,19,19,6,6,6,13,13,8,6,6,11,11,9,7,7,13,13,0,10,10,11,11,0,12,12,14,14,9,8,8,14,14,12,10,10,13,13,10,7,7,13,13,0,11,11,15,15,0,11,11,13,13,9,8,8,14,14,13,10,10,13,14,11,7,7,13,13,0,11,11,15,15,0,11,11,13,13,0,12,12,15,15,0,21,21,17,17,0,10,10,13,13,0,14,14,20,20,0,12,12,13,13,0,12,12,15,15,0,21,22,17,18,0,10,10,13,13,0,16,16,20,21,0,12,12,13,13,0,11,11,13,13,0,12,12,16,16,0,12,12,16,16,0,16,16,0,21,0,17,18,0,0,0,12,12,15,15,0,15,15,18,18,0,12,12,16,16,0,16,16,21,22,0,17,17,22,21,0,12,12,16,16,0,15,15,19,19,0,12,12,16,16,0,16,16,22,22,0,17,16,22,0,0,17,18,0,0,0,0,0,0,0,0,15,15,21,20,0,19,20,0,22,0,18,18,0,0,0,18,17,0,0,0,0,0,0,0,0,16,16,22,21,0,20,20,0,22,0,20,19,0,0,0,11,11,12,12,0,10,10,11,11,0,11,11,12,12,0,12,12,10,10,0,13,13,12,12,0,11,11,13,13,0,13,13,12,12,0,10,10,12,12,0,13,13,14,13,0,12,12,12,12,0,12,12,13,13,0,14,14,13,13,0,10,10,12,12,0,13,13,14,14,0,13,12,12,12,0,14,14,14,14,0,21,21,16,16,0,12,12,12,12,0,16,16,20,21,0,13,13,11,11,0,14,14,14,14,0,20,20,16,15,0,12,12,12,12,0,17,17,20,20,0,13,13,11,11,7,8,8,16,16,11,10,10,15,15,12,10,10,17,17,0,14,14,16,15,0,15,15,17,17,11,9,9,16,16,14,12,12,17,17,13,9,9,16,15,0,14,14,19,18,0,14,14,16,16,12,10,10,17,18,16,13,13,17,18,14,10,10,16,16,0,14,14,19,19,0,14,15,17,17,0,15,15,18,19,0,0,0,20,20,0,13,13,17,17,0,17,18,0,22,0,15,15,16,17,0,15,15,18,18,0,0,0,20,21,0,14,14,17,17,0,19,18,0,0,0,16,16,17,17,8,7,7,14,14,12,11,11,15,15,13,11,11,15,15,0,0,0,18,19,0,21,20,18,18,12,10,11,15,16,14,13,13,18,18,14,11,11,15,15,0,20,20,19,18,0,20,0,18,18,13,11,11,16,16,17,15,15,19,19,14,12,12,15,15,0,21,0,18,20,0,22,22,18,19,0,22,22,19,19,0,0,0,0,0,0,21,22,19,18,0,0,0,0,21,0,0,0,19,19,0,0,22,20,20,0,0,0,0,0,0,22,0,18,18,0,0,0,0,22,0,0,0,19,20,11,10,10,14,14,14,11,11,13,13,14,11,11,15,15,0,14,13,12,12,0,15,15,16,16,13,11,11,15,15,16,13,13,15,15,15,10,10,14,15,0,14,14,16,16,0,14,14,15,15,13,11,11,15,15,18,14,14,15,15,15,10,10,15,14,0,14,14,16,16,0,14,14,15,15,0,15,15,17,16,0,21,22,18,18,0,13,13,14,14,0,18,17,20,21,0,15,15,14,14,0,15,16,16,17,0,0,0,19,18,0,13,13,15,14,0,19,19,0,0,0,15,15,14,14,0,12,12,14,13,0,13,13,16,16,0,12,12,16,16,0,16,16,22,0,0,17,18,0,22,0,13,13,16,16,0,15,15,18,18,0,12,12,16,16,0,16,16,22,22,0,17,17,0,0,0,13,13,17,17,0,16,16,19,20,0,12,12,17,17,0,17,17,22,0,0,17,17,22,21,0,18,18,0,0,0,0,0,0,0,0,16,16,21,21,0,19,19,0,0,0,18,18,0,22,0,18,18,0,22,0,0,0,0,0,0,16,16,22,0,0,20,20,0,0,0,19,18,0,0,0,12,12,15,15,0,12,12,15,14,0,13,13,15,15,0,14,14,14,14,0,15,15,16,16,0,13,13,15,16,0,15,15,16,16,0,12,12,15,15,0,14,14,16,16,0,14,14,15,15,0,13,13,15,16,0,15,15,16,16,0,12,12,15,15,0,15,15,17,17,0,14,14,15,15,0,15,15,17,17,0,21,21,19,19,0,13,13,14,14,0,17,17,22,0,0,14,14,15,15,0,15,15,17,17,0,22,0,18,20,0,13,13,15,15,0,18,18,0,22,0,15,15,14,15,8,8,8,17,16,12,10,10,16,16,13,10,10,17,16,0,15,15,17,17,0,15,15,17,17,12,11,11,18,18,15,12,12,18,18,15,10,10,16,17,0,14,14,18,18,0,14,14,17,17,13,10,10,16,16,17,14,14,17,17,15,10,10,16,15,0,15,15,19,20,0,14,14,15,16,0,16,16,19,19,0,0,0,21,22,0,13,13,17,17,0,18,17,0,21,0,15,15,17,17,0,15,15,18,19,0,0,22,0,21,0,13,13,16,17,0,19,19,0,22,0,16,15,16,16,9,8,8,14,14,12,11,11,15,15,13,11,11,15,15,0,21,20,19,18,0,0,0,19,18,12,11,11,16,15,15,13,13,17,18,14,11,11,15,15,0,22,22,19,18,0,22,21,18,18,14,11,11,15,15,17,14,14,18,18,15,12,12,15,15,0,22,22,20,19,0,0,21,18,18,0,0,22,20,20,0,0,0,0,0,0,20,21,18,18,0,0,0,21,21,0,0,0,20,19,0,22,21,19,19,0,0,0,0,0,0,0,22,17,18,0,0,22,0,22,0,22,0,19,19,0,11,11,15,15,0,11,11,14,14,0,12,12,15,15,0,15,15,14,14,0,16,16,16,16,0,12,12,16,16,0,14,14,16,16,0,11,11,15,15,0,15,15,17,17,0,15,15,15,15,0,12,12,16,16,0,14,14,15,15,0,11,11,15,15,0,15,15,17,17,0,15,15,14,15,0,16,16,17,17,0,0,0,19,19,0,14,14,15,15,0,18,18,21,0,0,15,15,14,15,0,16,16,17,17,0,21,0,19,19,0,14,14,15,15,0,20,20,22,0,0,16,15,14,14,0,12,12,13,13,0,12,12,16,16,0,12,12,16,16,0,16,16,22,21,0,18,17,21,0,0,13,13,16,16,0,15,15,18,19,0,12,12,16,16,0,16,17,22,0,0,17,17,0,22,0,13,13,17,16,0,15,15,19,19,0,12,12,16,16,0,16,16,21,20,0,17,16,22,0,0,18,18,22,21,0,0,0,0,0,0,15,16,21,21,0,19,19,0,0,0,18,17,0,0,0,18,18,21,0,0,0,0,0,0,0,16,16,22,22,0,20,21,0,0,0,18,19,0,22,0,13,13,16,16,0,12,12,15,15,0,13,13,16,16,0,14,14,15,15,0,15,15,17,17,0,13,13,17,16,0,15,15,17,17,0,12,12,16,16,0,15,15,17,17,0,14,14,16,16,0,13,13,16,17,0,15,15,17,17,0,12,12,16,16,0,14,14,17,17,0,14,14,16,16,0,16,16,17,17,0,21,0,21,19,0,13,13,16,16,0,17,17,0,0,0,15,15,16,16,0,16,15,18,18,0,22,0,20,20,0,13,13,15,15,0,18,18,0,0,0,15,15,15,15,0,12,12,17,17,0,14,14,17,17,0,14,14,17,17,0,17,17,18,17,0,17,17,19,18,0,13,13,17,17,0,16,16,18,18,0,13,13,16,16,0,17,17,19,19,0,16,16,17,17,0,13,13,18,18,0,17,17,18,18,0,13,13,17,17,0,17,17,19,19,0,16,17,17,17,0,17,17,19,19,0,21,0,21,19,0,14,14,16,16,0,20,19,0,21,0,16,16,16,16,0,17,18,19,19,0,0,0,0,21,0,15,15,16,17,0,21,20,0,0,0,17,18,16,17,0,9,9,14,14,0,14,14,15,16,0,14,14,15,15,0,0,0,18,18,0,21,0,18,19,0,12,12,15,15,0,16,16,17,17,0,14,14,14,14,0,22,0,19,18,0,22,0,17,18,0,14,14,16,15,0,18,18,19,18,0,14,15,15,15,0,0,21,20,20,0,0,0,18,18,0,21,21,19,19,0,0,0,0,0,0,21,21,18,18,0,22,0,20,20,0,22,0,19,19,0,22,0,19,20,0,0,0,0,0,0,0,21,17,18,0,0,0,22,22,0,0,0,19,18,0,18,20,16,16,0,21,20,17,17,0,0,21,18,18,0,22,21,18,18,0,0,22,19,19,0,20,20,17,17,0,0,0,18,18,0,19,20,17,17,0,22,0,19,21,0,22,21,18,18,0,20,19,17,18,0,0,0,19,19,0,20,20,17,17,0,22,22,21,21,0,20,0,18,18,0,22,22,18,18,0,0,0,20,22,0,20,20,16,16,0,0,0,21,0,0,21,20,16,17,0,22,0,19,20,0,0,0,21,20,0,19,21,17,17,0,0,0,0,0,0,21,21,17,17,0,12,12,13,13,0,14,14,16,16,0,14,14,16,16,0,18,18,0,0,0,19,18,22,0,0,13,13,16,16,0,16,16,18,18,0,13,13,16,16,0,17,18,21,0,0,18,18,21,0,0,13,13,16,16,0,17,17,19,20,0,13,13,16,17,0,18,18,21,0,0,18,18,21,0,0,18,19,0,21,0,0,0,0,0,0,16,16,21,20,0,20,20,0,0,0,18,19,0,0,0,18,18,0,0,0,0,0,0,0,0,16,16,0,21,0,22,22,0,0,0,19,19,0,0,0,16,16,19,20,0,17,16,22,21,0,17,17,21,20,0,19,18,0,22,0,19,19,22,22,0,16,15,22,22,0,19,19,0,21,0,15,15,20,20,0,18,19,0,21,0,18,18,22,22,0,16,16,21,20,0,20,19,21,22,0,16,15,20,20,0,19,19,0,22,0,18,18,21,0,0,19,18,21,22,0,0,0,0,0,0,16,16,19,21,0,20,22,0,22,0,18,18,20,21,0,19,18,0,22,0,0,0,22,0,0,16,16,20,20,0,21,21,0,0,0,18,18,21,0,0,12,12,17,17,0,15,14,17,17,0,14,14,18,18,0,17,17,17,18,0,18,18,18,18,0,13,13,18,18,0,16,17,19,18,0,13,13,16,17,0,17,17,18,19,0,17,17,17,17,0,13,13,17,17,0,17,18,18,18,0,13,13,16,16,0,18,18,19,20,0,16,17,17,16,0,17,18,19,18,0,0,0,22,21,0,15,15,16,16,0,20,20,21,22,0,17,17,16,16,0,16,17,18,18,0,0,0,21,21,0,15,15,16,16,0,21,20,0,0,0,17,17,16,16,0,10,10,14,14,0,14,14,15,15,0,14,14,15,15,0,22,0,18,18,0,0,0,19,19,0,13,13,15,16,0,17,16,18,18,0,14,14,15,15,0,21,21,19,18,0,22,21,18,17,0,14,14,15,15,0,18,18,19,18,0,15,15,14,14,0,22,21,19,19,0,22,21,17,18,0,0,0,19,19,0,0,0,0,0,0,20,22,17,17,0,0,22,22,20,0,0,0,19,18,0,21,22,19,18,0,0,0,0,0,0,22,22,17,18,0,0,0,21,22,0,0,0,19,18,0,20,20,17,17,0,21,21,17,18,0,21,22,18,18,0,21,0,18,18,0,22,0,19,19,0,19,21,18,18,0,0,22,18,18,0,22,21,17,17,0,22,0,20,20,0,0,0,18,18,0,22,21,18,18,0,21,0,19,19,0,20,21,17,17,0,0,22,22,20,0,21,22,17,17,0,0,21,19,18,0,0,0,21,21,0,21,20,16,17,0,0,0,0,0,0,21,0,17,17,0,21,0,19,20,0,0,0,20,22,0,20,20,17,17,0,0,0,0,0,0,21,21,17,17,0,12,12,13,13,0,14,14,16,16,0,14,14,16,16,0,18,18,21,0,0,19,19,22,0,0,13,13,16,16,0,16,16,18,18,0,13,13,16,16,0,18,18,21,22,0,18,18,0,22,0,13,13,16,16,0,17,17,20,18,0,13,13,16,16,0,19,18,0,22,0,18,18,22,21,0,18,19,0,0,0,0,0,0,0,0,16,16,21,21,0,21,21,0,0,0,18,19,0,0,0,19,19,21,0,0,0,0,0,0,0,16,16,0,21,0,20,20,0,0,0,20,20,0,0,0,16,16,21,20,0,18,17,21,22,0,17,18,0,21,0,18,19,22,22,0,19,19,0,22,0,16,17,21,22,0,20,19,0,0,0,16,16,20,21,0,19,19,0,0,0,19,19,0,22,0,17,17,21,21,0,19,20,0,0,0,16,16,0,20,0,19,20,0,21,0,18,18,0,22,0,19,20,22,22,0,0,0,0,22,0,17,17,0,21,0,21,21,0,0,0,18,19,23,21,0,20,19,0,0,0,0,0,0,0,0,17,17,0,20,0,0,0,0,0,0,19,19,23,22,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,5,5,9,9,12,9,9,12,12,12,10,10,13,13,13,11,11,12,12,13,13,13,12,12,13,10,10,13,13,13,13,13,13,13,13,10,10,13,12,13,11,11,13,13,13,14,14,13,12,13,10,10,13,13,12,13,13,13,13,13,10,10,12,12,13,11,11,13,13,13,14,14,12,12,13,12,12,13,13,13,13,13,13,13,13,11,11,12,12,13,11,11,13,13,13,14,14,12,12,13,14,14,13,13,14,13,13,14,14,14,14,14,12,12,13,14,14,13,13,14,14,14,12,12,12,8,8,12,12,13,12,12,11,11,13,11,11,11,11,14,12,12,11,11,14,12,12,10,11,14,12,12,12,12,14,12,12,12,12,13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14,12,12,12,12,14,12,12,12,12,14,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14,13,13,12,12,14,12,12,12,12,14,13,13,11,11,14,12,12,11,11,14,13,13,11,11,15,13,13,12,12,14,12,12,12,12,15,13,13,12,12,14,12,12,11,11,15,13,13,11,11,12,9,9,11,11,13,7,7,11,11,13,8,8,12,12,14,10,10,10,10,14,14,14,11,11,14,8,8,12,12,14,14,14,12,12,14,7,7,11,11,14,9,9,12,12,14,14,14,11,11,14,8,8,12,12,14,14,14,12,12,14,7,7,11,11,14,9,9,12,12,14,14,14,11,11,14,10,10,12,12,14,14,14,13,13,14,9,9,11,11,14,10,10,12,11,15,14,14,11,11,14,15,15,12,12,15,14,14,14,14,15,14,14,11,11,15,14,14,12,12,15,14,14,11,11,14,11,11,10,10,15,10,10,10,10,15,10,10,10,10,15,11,11,9,9,15,12,13,9,9,15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13,11,11,15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13,10,11,15,12,12,11,11,15,13,13,11,10,15,11,11,10,10,15,11,12,10,9,15,13,13,10,10,15,14,14,11,11,15,13,13,11,11,15,14,14,10,10,15,13,13,10,10,15,14,14,10,10,14,13,13,10,10,15,13,13,10,10,15,13,13,10,10,14,14,14,8,9,15,14,14,9,9,15,14,14,11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,10,10,15,14,14,9,9,15,14,14,11,11,15,14,14,11,11,15,14,14,10,10,15,14,14,10,10,14,14,14,9,9,15,15,15,11,11,15,14,14,12,12,15,15,15,10,10,15,14,15,10,10,15,15,15,9,9,15,10,10,13,13,17,8,8,12,12,17,10,9,13,13,18,11,11,12,12,18,14,14,12,12,17,9,9,13,13,17,13,13,12,12,18,8,8,12,12,18,10,10,12,12,18,14,14,12,12,18,10,10,13,13,18,13,13,13,13,18,9,9,12,12,18,10,10,13,13,18,14,14,12,12,18,11,11,13,13,18,14,14,13,13,18,10,10,12,12,17,11,11,12,12,18,14,14,12,12,18,14,14,13,13,18,14,14,13,13,19,14,15,12,12,18,14,14,12,12,18,15,15,12,12,13,7,7,11,11,14,15,15,11,11,14,16,15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15,11,12,14,15,15,12,12,13,15,15,11,11,14,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14,16,16,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,15,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14,15,15,11,11,15,14,15,12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12,12,14,15,15,12,12,15,15,15,12,12,13,13,13,11,11,14,14,15,11,11,14,14,14,12,12,14,15,15,10,10,15,15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15,15,11,11,14,15,15,12,12,15,15,15,11,11,14,15,15,12,12,14,14,15,11,11,14,15,15,11,11,14,15,15,12,12,15,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14,15,15,10,10,14,15,15,11,11,15,15,15,10,10,15,15,15,12,12,15,15,15,14,14,15,15,15,11,11,15,15,15,11,11,15,15,15,11,11,14,10,10,10,10,15,9,9,12,11,15,10,10,12,12,15,11,11,11,11,15,13,13,12,12,16,10,10,12,12,15,13,13,12,12,15,9,9,11,11,15,10,10,13,12,15,13,13,11,11,15,10,10,12,12,15,13,13,12,12,15,9,9,11,11,15,10,10,12,12,15,13,13,11,11,15,11,11,12,12,15,13,13,13,13,15,10,10,11,11,15,11,11,12,12,15,13,14,11,11,15,14,14,13,13,16,14,14,20,19,15,14,14,11,11,15,13,14,12,12,15,14,14,11,11,14,13,13,10,10,14,14,13,11,11,15,13,14,12,12,15,14,14,12,12,15,14,14,11,11,15,14,14,12,12,15,15,14,13,13,15,14,14,11,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13,13,15,14,14,11,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15,14,14,11,11,15,15,15,12,12,15,15,15,13,13,16,14,14,12,12,15,15,15,13,13,15,15,15,12,12,15,15,15,12,12,14,10,10,13,13,17,9,9,12,12,17,9,9,13,13,17,11,11,12,12,18,14,14,12,12,18,10,10,13,13,18,14,13,12,12,18,9,9,12,12,18,10,10,12,13,18,14,14,12,12,17,9,9,12,12,17,13,14,12,12,17,9,9,12,12,17,10,10,12,12,17,14,14,11,11,18,11,11,12,12,18,14,14,12,13,18,10,10,12,12,18,11,11,12,12,18,14,14,11,11,18,15,15,12,12,18,14,14,13,13,18,14,15,12,12,17,14,14,12,12,17,15,15,12,12,13,7,7,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,14,15,15,11,11,14,15,15,12,12,14,15,15,11,11,15,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14,15,16,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12,12,15,15,15,12,12,15,15,15,12,12,13,13,13,12,12,14,14,14,11,11,14,14,14,12,12,14,14,14,10,10,15,15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14,12,12,15,15,14,11,11,14,15,15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14,11,11,15,14,14,10,10,14,15,15,12,12,14,14,14,12,12,14,15,15,10,10,14,15,15,11,11,15,15,15,10,10,15,15,15,12,12,15,14,14,13,13,15,15,15,10,10,15,14,14,11,11,15,15,15,10,10,14,10,10,10,10,14,9,9,12,12,15,10,10,12,12,14,11,11,11,11,15,13,14,12,12,15,10,10,13,13,15,13,13,12,12,15,9,9,12,12,15,10,10,13,13,15,13,14,11,11,15,10,10,12,12,15,13,13,12,12,15,9,9,11,11,15,10,10,12,12,15,13,13,11,11,15,11,11,12,12,15,13,13,13,13,15,10,10,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14,13,13,15,14,14,20,19,15,14,14,11,11,15,14,14,12,12,15,14,14,11,11,14,13,13,11,11,15,13,13,11,11,15,14,13,12,12,15,14,14,11,12,15,14,14,11,11,15,14,14,12,12,14,14,14,13,13,15,14,14,11,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13,13,14,14,14,11,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15,14,14,11,11,14,14,14,12,12,15,15,15,13,13,16,14,14,12,12,15,15,15,13,13,15,14,14,12,12,15,15,15,12,12,15,11,11,13,13,18,10,10,12,12,17,11,11,12,12,18,12,12,11,11,18,14,14,12,12,18,10,10,13,13,18,14,14,12,12,18,10,10,12,12,18,11,11,12,12,18,14,14,12,12,18,11,11,12,13,18,14,14,12,12,18,10,10,12,12,18,11,11,12,12,18,14,14,11,11,18,11,11,12,12,18,14,14,12,12,17,10,10,11,11,17,12,12,11,11,17,14,14,11,11,18,15,15,12,12,18,14,14,13,13,18,15,15,11,11,18,15,14,12,12,18,15,15,11,11,14,8,8,11,11,14,15,15,10,10,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,15,15,15,11,11,15,15,15,12,12,14,15,15,10,10,15,15,15,11,11,15,15,15,12,12,15,15,15,11,11,15,15,15,13,13,14,15,15,10,10,15,15,15,11,11,15,15,15,12,12,15,15,15,12,12,15,16,16,12,12,15,14,14,11,11,15,15,15,11,11,15,15,15,12,12,16,15,15,13,13,15,16,16,13,13,16,15,15,12,12,15,15,15,12,12,15,15,15,12,12,14,13,13,11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11,11,15,15,14,11,11,15,14,14,12,12,15,14,14,12,12,14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15,14,15,12,12,15,14,14,12,12,14,15,15,11,11,15,14,14,11,11,15,14,14,11,11,15,15,14,12,12,15,14,14,12,12,15,15,15,10,11,15,14,14,11,11,15,15,15,10,10,15,15,15,12,12,16,14,14,13,13,15,15,15,11,11,15,14,14,11,11,15,15,15,11,11,14,11,11,9,9,14,10,10,12,12,15,11,11,12,12,15,12,12,12,12,15,14,14,13,13,15,11,11,12,12,15,14,14,13,13,14,10,10,12,12,15,11,11,13,13,15,14,14,12,12,15,10,10,12,12,14,14,14,13,13,14,10,10,11,11,15,11,11,12,12,15,14,14,12,12,15,12,12,13,13,15,14,14,14,14,15,11,11,11,11,15,12,11,12,12,15,14,14,11,11,15,15,15,13,14,15,14,14,20,19,15,14,14,12,12,15,14,14,13,13,15,14,14,12,12,14,13,13,10,10,14,13,13,11,11,14,13,13,11,11,15,14,14,12,12,15,14,14,12,12,15,14,14,12,11,14,14,14,13,13,15,14,14,11,11,15,14,14,11,11,15,14,14,14,14,15,14,14,11,12,15,14,14,13,13,14,14,14,11,11,15,14,14,11,11,15,14,14,14,14,15,14,14,12,12,15,14,14,13,13,15,14,14,11,11,14,14,14,12,12,15,14,14,13,13,15,15,15,13,13,15,14,14,13,13,15,15,15,13,13,15,14,14,13,13,15,15,15,13,13,15,14,14,13,13,18,15,15,12,12,18,15,15,12,12,18,16,16,11,11,18,17,17,12,12,18,15,15,13,13,18,17,17,12,12,18,15,15,12,12,18,15,16,12,12,18,17,17,12,12,18,15,15,13,12,17,16,17,12,12,17,15,15,11,12,18,15,15,12,12,18,17,17,11,11,18,16,16,12,12,18,17,16,12,12,18,15,15,11,11,18,15,15,12,12,18,17,17,11,11,18,17,17,12,12,18,16,16,13,13,18,17,17,11,11,17,16,16,11,11,18,17,17,11,11,15,15,15,11,11,16,15,15,11,11,16,15,15,11,11,16,15,15,12,12,17,15,15,14,14,16,15,15,11,11,17,15,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15,15,13,13,16,15,15,11,11,17,15,15,14,14,16,15,15,11,11,16,15,15,12,12,17,15,15,13,13,16,15,15,12,12,17,16,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,18,14,15,13,13,18,15,15,14,14,18,15,15,13,13,15,13,13,12,12,15,14,14,12,12,16,14,14,12,12,16,14,14,12,12,17,14,15,12,12,16,14,14,12,12,17,14,14,13,13,16,15,15,12,12,16,14,14,12,12,17,14,14,12,12,16,14,14,12,12,17,14,14,13,13,15,15,15,11,11,16,14,14,12,12,17,14,14,12,12,16,15,15,12,12,17,14,14,13,12,16,15,15,11,11,16,14,14,12,12,17,15,15,11,11,17,15,15,13,13,17,14,14,13,13,18,15,15,12,12,17,14,14,12,12,17,15,15,12,12,14,15,15,9,9,14,15,15,12,12,15,16,15,13,13,15,15,15,14,14,15,15,15,21,19,15,15,15,13,13,15,15,15,19,19,15,15,15,12,12,15,16,16,14,14,15,15,15,19,19,15,16,15,13,13,15,16,16,19,20,15,15,15,12,13,15,16,16,14,14,15,15,15,20,19,15,15,15,14,14,15,16,16,19,19,15,15,15,14,13,15,15,15,14,14,15,15,15,19,19,15,16,16,20,19,15,17,16,21,20,15,15,15,20,19,15,16,16,20,20,15,15,15,19,20,14,13,13,10,10,14,14,14,11,11,14,14,14,12,12,15,14,14,13,13,15,15,14,20,20,15,14,14,12,12,14,14,14,19,19,15,14,14,11,11,15,14,14,12,12,15,14,14,20,19,15,14,14,12,12,14,14,14,20,20,14,14,14,11,11,15,14,14,12,12,15,14,14,20,21,15,14,14,13,13,15,14,14,20,20,15,14,14,12,12,15,14,14,13,13,14,15,15,20,20,15,15,15,20,19,15,14,14,20,19,15,15,15,20,20,15,14,14,21,20,15,15,15,20,20,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,6,7,7,7,8,8,7,8,8,10,11,11,9,8,8,8,8,8,11,11,12,9,8,8,5,7,7,9,11,11,10,11,11,10,11,11,12,14,14,11,12,12,10,12,12,13,14,14,12,12,12,5,6,6,7,6,6,8,7,7,8,7,7,11,10,10,10,7,7,9,8,8,12,11,11,10,7,7,7,7,7,11,10,10,12,10,10,11,10,10,15,13,13,13,10,10,12,11,11,15,13,13,14,11,11,7,7,7,11,11,11,12,11,11,12,11,11,14,14,14,13,12,12,12,12,12,16,15,15,14,12,12,0,10,10,0,11,11,0,12,12,0,11,11,0,14,14,0,11,11,0,12,12,0,15,15,0,11,11,7,8,8,12,11,10,12,10,10,12,11,11,15,13,13,14,11,11,12,10,10,16,14,14,14,10,10,8,7,7,12,11,11,12,11,11,12,11,11,15,14,14,14,12,12,13,12,12,15,14,14,15,13,13,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,13,13,0,15,14,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,5,5,0,8,8,0,8,8,0,9,9,0,10,10,0,8,8,0,8,8,0,10,10,0,8,8,0,7,7,0,8,8,0,7,7,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,7,7,0,6,6,0,7,7,0,7,7,0,10,10,0,6,6,0,7,7,0,10,10,0,5,5,0,8,8,0,7,7,0,8,8,0,8,8,0,9,9,0,7,7,0,8,8,0,9,9,0,7,7,0,6,6,0,9,10,0,10,10,0,10,10,0,11,11,0,9,9,0,10,10,0,11,11,0,9,9,0,8,8,0,8,8,0,8,8,0,9,9,0,9,9,0,7,7,0,8,8,0,9,9,0,7,7,0,8,8,0,7,7,0,7,7,0,8,8,0,9,9,0,7,7,0,7,7,0,8,8,0,6,6,0,6,6,0,10,10,0,10,10,0,10,10,0,12,12,0,9,9,0,10,10,0,12,12,0,9,9,0,8,8],"i8",O3,_.GLOBAL_BASE+446300),C3([7,7,0,7,7,0,8,8,0,9,9,0,7,7,0,8,8,0,9,9,0,6,6,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,6,6,5,7,8,0,8,8,6,9,9,7,10,10,0,8,8,0,9,9,0,12,12,0,8,8,4,7,7,6,10,10,0,12,12,7,11,11,8,12,12,0,12,12,0,13,12,0,15,15,0,12,12,0,7,7,0,7,7,0,7,7,0,8,8,0,10,10,0,7,7,0,8,8,0,11,11,0,7,7,5,7,7,8,9,9,0,10,10,8,9,9,11,11,11,0,10,9,0,11,11,0,13,13,0,10,10,6,7,7,8,10,10,0,12,12,9,10,10,10,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,10,10,0,11,11,0,11,11,0,11,11,0,13,13,0,11,11,0,11,11,0,15,15,0,10,10,0,8,8,0,10,10,0,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,11,11,0,7,7,0,10,10,0,12,12,0,10,10,0,12,12,0,12,12,0,13,13,0,14,14,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,3,9,9,0,0,0,8,8,0,0,0,9,9,0,0,0,12,12,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,5,5,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,5,5,0,0,0,7,7,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,5,5,0,0,0,7,7,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,0,0,0,9,9,0,0,0,10,10,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,7,7,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,8,8,0,0,0,10,11,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,7,7,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,7,8,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,9,9,0,0,0,10,10,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,9,9,0,0,0,10,10,0,0,0,12,12,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,3,5,16,9,9,13,18,21,4,2,21,6,6,10,15,21,16,19,6,5,7,10,13,16,8,6,5,4,4,8,13,16,8,5,6,4,4,7,12,15,13,10,9,7,7,9,13,16,18,15,13,12,9,7,10,14,21,18,13,13,7,5,8,12,2,0,0,0,64,0,0,0,192,58,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,11,7,0,0,0,0,0,0,0,0,0,176,11,7,0,0,0,0,0,0,0,0,0,216,11,7,0,0,12,7,0,0,0,0,0,0,0,0,0,40,12,7,0,80,12,7,0,0,0,0,0,0,0,0,0,120,12,7,0,160,12,7,0,0,0,0,0,0,0,0,0,200,12,7,0,240,12,7,0,160,12,7,0,0,0,0,0,24,13,7,0,64,13,7,0,160,8,7,0,200,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,72,11,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,64,11,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,8,7,0,80,8,7,0,0,0,0,0,0,0,0,0,120,8,7,0,160,8,7,0,200,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,88,10,7,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,8,11,7,0,0,0,0,0,2,0,0,0,25,0,0,0,32,10,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,64,10,7,0,0,0,0,0,2,0,0,0,9,0,0,0,0,10,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,16,10,7,0,0,0,0,0,1,0,0,0,25,0,0,0,120,9,7,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,152,9,7,0,0,0,0,0,1,0,0,0,25,0,0,0,240,8,7,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,16,9,7,0,0,0,0,0,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,5,5,4,4,5,5,5,4,5,4,5,5,5,5,6,5,6,5,6,5,6,5,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,8,8,8,8,9,9,10,10,10,10,4,6,5,8,7,9,9,9,9,10,9,11,9,4,5,6,7,8,9,9,9,9,9,10,9,10,8,9,8,9,8,10,9,11,9,12,10,12,10,8,8,9,8,9,9,10,9,11,10,12,10,12,9,10,10,11,10,12,11,12,11,12,12,12,12,9,10,10,11,11,11,11,11,12,12,12,12,12,10,11,11,12,12,12,12,12,12,12,12,12,12,10,11,11,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,13,12,13,12,13,12,12,11,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,13,13,12,13,12,13,12,13,12,12,12,13,12,13,12,13,12,13,12,13,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,3,4,13,9,9,12,15,17,4,2,18,5,7,10,14,18,11,8,6,5,6,8,11,14,8,5,5,3,5,8,11,13,9,6,7,5,5,7,9,10,11,10,9,8,6,6,8,10,14,14,11,11,9,8,9,10,17,17,14,13,10,9,10,10,5,0,0,0,243,0,0,0,184,57,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,176,58,7,0,0,0,0,0,5,0,0,0,53,12,0,0,104,45,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,160,57,7,0,0,0,0,0,5,0,0,0,243,0,0,0,96,44,7,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,88,45,7,0,0,0,0,0,5,0,0,0,243,0,0,0,88,43,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,80,44,7,0,0,0,0,0,5,0,0,0,243,0,0,0,80,42,7,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,72,43,7,0,0,0,0,0,5,0,0,0,53,12,0,0,0,30,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,56,42,7,0,0,0,0,0,5,0,0,0,53,12,0,0,176,17,7,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,232,29,7,0,0,0,0,0,1,0,0,0,7,0,0,0,136,17,7,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,144,17,7,0,0,0,0,0,5,0,0,0,243,0,0,0,128,16,7,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,120,17,7,0,0,0,0,0,5,0,0,0,243,0,0,0,120,15,7,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,112,16,7,0,0,0,0,0,5,0,0,0,243,0,0,0,112,14,7,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,104,15,7,0,0,0,0,0,5,0,0,0,243,0,0,0,104,13,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,96,14,7,0,0,0,0,0,1,9,9,6,9,9,5,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,7,7,7,7,7,7,7,8,8,9,9,9,9,7,7,8,8,8,9,9,9,9,7,8,6,7,7,8,8,8,8,8,8,9,8,8,10,9,9,10,8,8,10,8,8,10,9,9,10,8,8,6,6,6,8,6,6,8,7,7,8,7,7,10,8,8,9,7,7,9,7,7,10,8,9,9,7,7,7,7,7,10,8,8,11,8,8,10,8,8,12,9,9,12,8,8,11,9,9,12,9,9,11,8,8,7,7,7,10,9,9,10,9,9,10,9,9,11,10,10,10,9,9,11,9,9,11,10,10,11,9,9,9,8,8,10,9,9,10,9,9,11,9,9,11,10,10,11,9,9,11,9,9,11,10,10,11,9,9,8,8,8,11,9,9,11,9,9,11,9,9,12,9,9,12,8,8,12,9,9,12,9,9,12,8,8,8,7,7,10,9,9,10,9,9,11,9,9,11,11,11,11,9,9,11,10,10,11,11,11,11,9,9,10,9,9,11,9,9,11,9,10,11,10,9,11,10,10,11,9,9,11,9,10,11,10,10,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,6,6,7,7,7,7,8,8,7,9,9,11,11,11,9,8,8,8,9,9,12,11,11,9,8,8,6,7,7,10,11,10,10,10,10,11,11,10,14,13,14,12,11,11,11,11,11,15,14,14,13,12,12,5,6,6,8,5,5,8,7,7,8,8,8,12,10,10,9,7,7,9,7,8,12,10,10,10,7,7,7,8,8,12,10,10,12,10,10,11,10,10,15,13,13,13,10,10,11,10,10,16,13,14,14,10,10,7,7,7,12,11,11,12,11,11,11,11,11,16,15,15,14,12,12,12,11,11,16,15,16,14,12,12,10,9,9,14,11,11,13,11,11,12,11,11,16,14,14,14,11,11,12,11,11,17,15,15,14,11,11,7,8,8,12,11,11,12,10,10,12,10,10,16,14,13,14,10,10,12,10,10,17,14,14,14,10,10,8,7,7,13,11,11,12,11,11,12,11,11,16,15,14,14,12,12,12,11,11,16,15,14,15,12,12,11,10,10,13,11,11,13,12,11,13,11,11,17,14,14,14,11,11,13,11,11,17,14,15,14,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,14,14,6,7,7,14,14,7,7,7,15,15,0,12,12,15,15,0,13,13,15,15,7,8,8,15,15,10,10,10,16,16,9,8,8,15,15,0,13,13,18,17,0,13,13,16,16,8,8,8,15,15,12,11,11,16,16,9,8,8,15,15,0,13,13,18,18,0,13,13,16,16,0,14,14,17,17,0,20,0,19,20,0,12,12,16,16,0,16,16,20,22,0,14,14,16,16,0,14,14,17,17,0,20,22,20,19,0,13,13,15,16,0,17,18,0,21,0,15,15,16,16,5,7,7,13,13,8,9,9,14,14,10,10,10,14,14,0,20,22,18,18,0,22,21,18,17,9,10,10,14,14,12,12,12,17,17,12,10,10,14,14,0,0,20,17,17,0,22,21,17,18,11,10,10,14,14,14,13,13,18,18,12,11,11,14,14,0,22,21,18,19,0,20,0,17,17,0,22,0,18,18,0,0,0,0,0,0,20,20,17,17,0,22,0,22,21,0,21,0,19,18,0,22,22,18,18,0,0,0,0,0,0,21,0,17,17,0,22,0,20,20,0,0,0,19,18,6,6,6,12,12,8,6,6,10,10,8,6,6,13,12,0,10,10,11,11,0,11,11,13,13,8,7,7,13,13,11,9,9,13,13,10,6,6,12,12,0,10,10,14,14,0,10,10,13,13,9,7,7,13,13,12,10,10,13,13,10,6,6,12,12,0,11,11,15,15,0,10,10,13,13,0,12,12,15,14,0,19,20,16,17,0,9,9,13,13,0,14,14,20,21,0,12,11,13,12,0,12,12,15,14,0,20,19,17,17,0,10,10,12,13,0,15,15,22,21,0,12,12,12,13,0,10,10,12,12,0,11,11,15,15,0,11,11,15,15,0,15,15,22,22,0,16,17,0,0,0,11,11,15,15,0,14,14,18,18,0,11,11,16,16,0,16,15,0,21,0,16,16,0,0,0,12,12,15,15,0,14,14,19,19,0,11,11,15,15,0,15,15,22,0,0,16,16,22,0,0,16,16,0,21,0,0,0,0,0,0,15,15,19,20,0,18,18,0,0,0,17,17,0,0,0,17,17,0,0,0,0,0,0,0,0,16,15,22,21,0,20,20,0,0,0,18,18,0,0,0,10,10,12,12,0,10,10,11,11,0,11,11,12,12,0,11,11,9,9,0,13,12,12,12,0,11,11,13,13,0,13,13,12,12,0,10,10,12,12,0,13,12,13,13,0,12,12,12,12,0,11,11,13,13,0,13,13,12,12,0,10,10,12,12,0,13,13,14,13,0,12,12,12,12,0,14,13,13,14,0,20,21,15,15,0,11,11,12,12,0,15,16,20,20,0,12,13,10,10,0,13,13,14,13,0,20,20,15,15,0,11,11,12,12,0,16,17,21,21,0,13,13,11,11,6,7,7,16,15,11,9,9,14,15,12,9,9,16,16,0,13,13,15,15,0,14,14,17,17,10,9,9,16,16,14,12,12,16,16,12,9,9,15,15,0,13,13,17,18,0,13,13,15,15,12,10,10,17,17,15,12,12,17,17,13,9,9,16,16,0,13,13,18,19,0,14,14,16,16,0,15,15,18,18,0,0,0,20,19,0,12,12,17,16,0,16,17,0,21,0,14,15,16,16,0,15,15,18,18,0,0,22,19,21,0,13,13,16,16,0,18,17,22,22,0,15,15,16,16,7,7,7,13,13,11,10,10,15,15,12,10,10,14,14,0,21,0,18,17,0,21,22,18,18,11,10,10,15,15,14,12,12,17,17,14,11,11,14,14,0,21,20,18,18,0,22,21,18,17,12,11,10,16,16,16,14,14,17,19,14,11,11,15,15,0,0,22,19,19,0,21,22,18,18,0,21,0,18,19,0,0,0,22,0,0,22,21,17,17,0,0,0,20,22,0,0,21,18,18,0,0,0,19,20,0,0,0,0,0,0,0,21,17,17,0,0,0,22,21,0,0,0,19,19,10,9,9,14,13,13,10,10,12,12,13,10,10,14,14,0,13,13,12,12,0,15,14,16,15,13,10,10,14,14,15,12,12,14,14,15,10,10,14,14,0,14,14,15,15,0,14,13,14,14,13,10,10,15,15,17,13,13,15,15,14,10,10,14,14,0,14,14,15,16,0,14,14,15,15,0,15,15,16,16,0,21,22,17,18,0,12,12,14,14,0,17,17,20,21,0,14,14,14,14,0,15,15,16,16,0,21,22,18,18,0,13,13,14,14,0,18,18,22,0,0,15,15,14,14,0,11,11,13,13,0,12,12,16,15,0,12,12,16,16,0,16,16,0,0,0,16,17,0,22,0,12,12,16,16,0,14,14,17,18,0,11,11,16,16,0,15,15,0,21,0,16,16,21,22,0,12,12,16,16,0,15,15,19,19,0,12,12,17,16,0,16,16,21,22,0,16,16,0,0,0,17,17,0,22,0,0,0,0,0,0,15,15,19,20,0,17,19,0,0,0,17,17,22,0,0,17,17,0,22,0,0,0,0,0,0,15,15,21,0,0,19,20,0,0,0,19,18,22,0,0,11,12,14,14,0,11,11,14,14,0,12,12,15,15,0,13,13,13,13,0,14,14,16,16,0,12,12,15,15,0,14,14,16,15,0,11,11,15,15,0,13,13,16,16,0,13,13,15,15,0,12,12,15,15,0,15,14,16,16,0,11,11,15,15,0,14,14,17,17,0,13,13,15,15,0,15,15,16,16,0,0,0,18,18,0,12,12,14,14,0,16,16,22,0,0,14,14,15,15,0,15,15,16,17,0,21,22,18,18,0,13,13,15,14,0,18,17,22,0,0,14,14,15,15,8,8,8,16,15,12,10,10,16,15,12,10,10,16,16,0,14,14,16,17,0,14,14,17,16,12,10,10,17,18,14,12,12,18,18,14,10,10,16,16,0,14,14,18,18,0,14,14,16,16,12,9,9,16,16,17,13,13,16,17,14,9,9,15,15,0,14,14,18,19,0,13,13,15,15,0,15,15,18,19,0,0,0,22,21,0,13,13,16,16,0,16,16,22,0,0,15,15,16,16,0,14,14,18,17,0,0,0,20,0,0,13,13,16,16,0,18,18,0,0,0,15,15,16,16,8,7,7,13,13,12,10,10,15,15,12,10,10,14,14,0,22,22,19,18,0,0,0,18,18,12,10,10,15,15,14,13,13,17,17,14,11,11,15,15,0,19,20,18,18,0,22,21,17,18,13,11,11,15,15,16,13,13,18,18,14,11,11,14,15,0,22,21,20,19,0,22,21,17,17,0,0,22,19,18,0,0,0,0,0,0,22,20,17,17,0,0,0,21,20,0,0,0,19,17,0,0,22,19,19,0,0,0,0,0,0,22,20,18,17,0,0,0,0,0,0,0,0,18,18,0,10,10,14,14,0,11,11,14,14,0,11,11,15,15,0,14,14,14,14,0,15,15,16,16,0,11,11,16,16,0,13,13,16,16,0,11,11,15,15,0,14,14,16,16,0,14,14,15,15,0,11,11,15,15,0,13,13,15,15,0,10,10,15,15,0,15,15,17,17,0,14,14,14,14,0,16,16,16,16,0,0,22,19,19,0,13,13,14,14,0,17,17,0,0,0,15,15,14,14,0,16,16,17,17,0,0,22,18,18,0,13,13,14,14,0,21,18,0,0,0,15,15,14,14,0,11,11,13,13,0,12,12,15,15,0,12,12,16,15,0,16,16,0,0,0,17,17,22,22,0,12,12,16,16,0,14,14,18,18,0,11,12,16,16,0,15,16,0,21,0,16,16,22,21,0,12,12,16,16,0,15,15,19,20,0,11,12,16,16,0,15,15,20,22,0,16,16,0,22,0,17,17,22,0,0,0,0,0,0,0,15,15,21,22,0,19,18,0,0,0,17,17,0,0,0,17,17,0,22,0,0,0,0,0,0,16,15,22,0,0,19,19,0,0,0,17,18,0,0,0,12,12,15,15,0,12,12,15,15,0,12,12,15,15,0,13,13,14,14,0,15,15,16,17,0,12,12,16,16,0,14,14,16,16,0,12,11,15,16,0,14,14,16,17,0,14,14,16,16,0,13,12,16,16,0,15,15,16,16,0,11,11,15,15,0,14,14,16,16,0,14,14,15,15,0,15,15,18,17,0,0,22,0,20,0,13,13,15,15,0,16,17,22,22,0,14,14,15,15,0,15,15,17,18,0,20,0,19,19,0,13,13,15,15,0,18,18,22,0,0,14,14,15,15,0,11,11,16,16,0,14,14,17,16,0,13,13,17,17,0,16,16,17,17,0,17,17,18,19,0,12,12,16,17,0,15,15,18,18,0,12,12,16,16,0,16,16,19,18,0,16,16,17,16,0,12,13,17,17,0,17,16,18,17,0,13,12,16,16,0,16,16,18,19,0,16,16,16,17,0,16,16,18,18,0,22,0,22,22,0,13,13,16,16,0,19,18,22,20,0,16,15,16,16,0,16,17,18,18,0,0,0,22,20,0,14,14,16,16,0,19,19,0,0,0,16,16,16,16,0,9,9,13,13,0,13,13,15,15,0,14,14,15,15,0,0,22,17,18,0,22,0,18,19,0,12,12,15,15,0,15,16,17,17,0,14,14,14,14,0,22,0,18,18,0,21,22,17,17,0,13,13,15,15,0,17,17,17,18,0,14,14,15,15,0,22,21,21,19,0,20,21,17,17,0,21,21,19,18,0,0,0,0,0,0,21,21,17,17,0,0,0,22,22,0,0,22,19,18,0,0,21,19,18,0,0,0,0,22,0,19,20,17,17,0,0,0,0,22,0,0,0,19,18,0,19,19,15,16,0,21,19,16,17,0,0,21,17,17,0,0,22,17,17,0,22,22,18,19,0,20,20,16,16,0,0,22,18,18,0,20,19,16,17,0,22,21,20,19,0,0,21,17,17,0,21,20,17,17,0,0,0,18,18,0,19,19,17,16,0,22,0,19,19,0,21,22,17,18,0,0,22,19,18,0,0,0,19,20,0,19,19,16,16,0,22,22,22,0,0,20,22,16,16,0,22,20,18,19,0,0,0,20,19,0,20,20,16,16,0,0,0,0,0,0,22,20,17,16,0,11,11,13,13,0,14,13,15,15,0,13,13,16,15,0,18,17,21,0,0,18,18,21,0,0,12,12,15,15,0,15,16,17,18,0,12,12,15,15,0,17,17,22,20,0,17,18,22,0,0,12,12,17,16,0,16,17,19,19,0,13,13,16,16,0,17,17,0,22,0,17,17,0,21,0,18,18,20,22,0,0,0,0,0,0,15,15,21,20,0,20,19,0,0,0,18,18,22,0,0,17,17,22,0,0,0,0,0,0,0,15,16,20,22,0,20,21,0,0,0,19,18,0,0,0,15,15,19,19,0,17,16,20,20,0,16,17,20,21,0,18,17,0,0,0,19,19,0,0,0,15,15,21,19,0,19,19,0,0,0,15,15,22,22,0,18,18,0,22,0,17,18,22,21,0,15,15,20,19,0,19,19,0,0,0,15,15,20,22,0,18,19,20,0,0,18,17,21,21,0,18,18,19,22,0,0,0,0,0,0,15,15,20,19,0,19,19,0,0,0,18,18,21,22,0,18,18,22,0,0,0,0,0,0,0,15,15,19,20,0,21,21,0,0,0,17,17,20,20,0,12,12,17,17,0,14,14,16,17,0,13,14,17,17,0,16,16,17,17,0,17,17,17,19,0,13,13,17,17,0,16,16,18,18,0,13,13,16,16,0,16,16,18,18,0,16,16,17,17,0,13,13,17,17,0,17,17,18,17,0,12,12,15,16,0,17,18,19,20,0,16,16,16,16,0,17,16,18,19,0,0,22,21,22,0,14,14,16,16,0,19,19,0,0,0,16,16,16,16,0,16,16,18,17,0,0,22,21,21,0,14,14,16,16,0,22,20,22,0,0,16,16,15,15,0,9,9,13,13,0,14,14,15,15,0,14,14,14,14,0,22,22,18,18,0,0,22,18,18,0,12,12,15,15,0,16,16,18,17,0,14,14,14,14,0,20,21,18,18,0,22,21,17,17,0,13,13,15,15,0,17,17,18,18,0,14,14,14,14,0,0,21,18,19,0,0,22,17,17,0,22,22,19,18,0,0,0,0,0,0,19,21,17,17,0,0,0,22,20,0,0,21,18,19,0,0,22,18,18,0,0,0,0,22,0,20,22,17,17,0,0,0,20,22,0,0,0,18,18,0,19,21,16,16,0,20,22,16,17,0,20,0,17,17,0,22,0,18,17,0,21,0,18,19,0,20,20,17,17,0,22,0,18,18,0,21,20,17,17,0,0,20,20,19,0,0,21,18,17,0,21,21,17,17,0,22,0,18,17,0,19,19,17,17,0,0,22,20,21,0,0,21,17,17,0,22,0,18,18,0,0,0,20,22,0,20,19,16,16,0,0,0,0,0,0,22,22,17,17,0,22,0,18,19,0,0,0,21,20,0,19,21,16,17,0,0,0,0,0,0,22,22,17,16,0,11,11,13,13,0,13,13,15,15,0,13,13,15,15,0,17,17,22,21,0,18,18,22,0,0,12,13,16,15,0,15,16,18,18,0,13,13,16,16,0,17,17,0,22,0,17,17,22,22,0,13,13,16,16,0,16,16,19,18,0,13,13,16,16,0,18,17,0,20,0,18,17,20,0,0,17,17,21,0,0,0,0,0,0,0,15,15,21,22,0,19,20,0,0,0,18,18,0,0,0,18,17,0,0,0,0,0,0,0,0,16,16,22,22,0,20,20,0,0,0,21,19,0,0,0,15,15,20,19,0,16,16,22,20,0,17,17,0,22,0,18,18,0,22,0,19,17,0,0,0,15,16,22,20,0,18,19,0,0,0,16,16,22,20,0,18,18,0,22,0,18,18,22,0,0,16,16,21,20,0,19,20,0,22,0,16,16,0,22,0,18,18,0,22,0,18,18,0,21,0,19,18,0,22,0,0,0,0,0,0,16,16,21,20,0,20,0,0,0,0,18,18,21,0,0,18,18,0,0,0,0,0,0,0,0,16,16,21,19,0,0,0,0,0,0,18,18,0,21,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,5,8,8,12,10,10,12,12,12,10,10,12,12,13,11,11,12,12,13,12,12,12,12,13,10,10,13,13,13,13,13,13,13,13,10,10,13,13,13,11,11,13,13,14,13,13,12,12,13,10,10,13,13,13,13,13,13,13,13,10,10,12,12,13,11,11,13,13,13,13,13,12,12,13,12,12,13,13,13,13,13,13,13,14,11,11,12,12,14,12,12,13,12,14,14,14,12,12,13,14,14,13,13,14,13,13,13,13,14,14,14,12,12,14,13,13,13,13,14,14,14,12,12,12,8,8,11,11,12,12,12,11,11,12,11,11,10,10,13,12,12,10,10,13,12,12,10,10,13,12,12,12,12,14,12,12,12,12,13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14,12,12,12,12,13,12,12,12,12,13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14,13,13,12,12,14,12,12,12,11,14,13,13,11,11,14,13,12,11,11,14,13,13,11,11,14,13,13,12,12,14,12,12,12,12,15,13,13,12,12,14,12,12,11,11,14,13,13,11,11,12,9,9,10,10,12,7,7,11,11,12,9,9,12,12,13,10,10,10,10,14,14,14,11,11,13,9,9,12,12,14,14,14,12,12,13,8,8,11,11,14,9,9,12,12,14,14,14,11,11,13,9,9,12,12,14,14,14,12,12,14,8,8,11,11,14,9,9,12,12,14,14,14,11,11,14,10,10,12,12,14,14,14,13,13,14,9,9,11,11,14,10,10,12,12,14,14,14,11,11,14,14,15,12,12,15],"i8",O3,_.GLOBAL_BASE+456540),C3([14,14,14,14,15,14,14,11,11,14,14,14,12,12,14,14,14,11,11,14,11,11,10,10,14,10,10,10,10,14,10,10,10,10,15,11,11,9,9,14,12,12,9,9,15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13,11,11,15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13,11,11,15,12,12,11,11,15,13,13,11,11,15,11,11,10,10,15,12,12,10,10,15,13,13,10,10,15,14,14,11,11,15,13,13,11,11,15,14,14,10,11,15,13,13,10,10,15,13,14,10,10,14,13,13,10,10,14,13,13,10,10,14,13,13,10,10,14,13,13,9,9,14,14,14,9,9,15,14,14,11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10,14,14,14,10,10,15,14,14,10,10,14,14,14,10,10,15,14,14,11,11,15,14,14,11,11,14,14,14,10,10,15,14,14,10,10,14,14,14,9,9,15,15,15,11,11,15,14,14,12,12,15,15,14,10,10,15,14,14,10,10,14,15,15,9,9,14,10,10,12,12,17,9,9,12,12,17,10,10,13,13,17,11,11,12,12,18,14,14,12,12,17,10,10,13,13,17,14,14,12,12,17,9,9,12,12,17,11,11,12,12,17,14,14,12,12,18,10,10,13,13,18,14,14,13,13,18,9,9,12,12,18,10,10,13,13,18,14,14,12,12,18,11,11,13,13,18,14,14,13,13,18,10,10,12,12,17,11,11,12,12,17,14,14,12,12,18,15,15,13,13,18,14,14,14,14,18,15,15,12,12,18,14,14,12,12,18,15,15,12,12,13,7,7,11,11,14,15,15,11,11,14,15,15,12,12,14,15,15,11,11,15,15,15,11,11,14,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12,15,15,15,12,12,14,15,15,12,12,14,15,14,12,12,14,15,15,11,11,15,14,14,12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12,12,15,15,15,12,12,15,15,15,12,12,13,13,13,11,10,14,14,15,11,11,14,14,14,12,12,15,14,14,10,10,15,15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15,15,11,11,14,15,15,12,12,15,15,15,11,11,14,15,15,12,12,14,14,14,12,12,14,15,15,11,11,14,15,15,12,12,15,15,15,11,11,15,15,15,12,12,15,14,14,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,10,10,15,15,16,12,12,15,15,15,14,14,15,15,15,11,11,15,15,15,12,12,15,15,15,11,11,14,11,11,10,10,15,9,9,12,12,15,10,10,12,12,15,11,11,11,11,15,14,14,12,12,15,10,10,13,13,15,14,14,12,12,15,9,9,12,12,15,10,10,13,13,15,13,13,12,11,15,10,10,12,12,15,14,14,12,12,15,9,9,11,11,15,11,11,12,12,15,13,13,11,11,15,11,11,13,13,15,13,14,13,14,15,11,11,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14,13,13,15,14,14,20,20,15,14,14,12,12,15,14,14,12,12,15,14,14,11,11,14,13,13,10,10,14,13,13,12,12,14,14,13,12,12,15,14,14,12,12,15,14,14,11,11,15,14,14,12,12,15,14,14,13,13,15,14,14,12,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13,13,15,14,14,12,11,15,14,14,12,12,15,14,14,13,13,15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15,15,15,13,13,15,15,15,13,13,15,14,14,13,13,15,15,15,13,13,15,14,15,12,12,15,15,15,13,13,14,10,10,12,13,17,9,9,12,12,17,10,10,13,13,17,11,11,12,12,18,14,14,12,12,18,10,10,13,13,18,14,14,12,12,17,9,9,12,12,18,10,11,13,13,18,14,14,12,12,17,10,10,12,12,17,14,14,12,12,17,9,9,12,12,17,11,11,12,12,17,14,14,12,12,18,11,11,12,12,18,14,14,13,13,18,11,11,12,12,18,11,11,12,12,18,14,14,12,12,18,15,15,12,12,18,14,14,13,13,18,15,15,12,12,17,14,14,12,12,17,15,15,12,12,13,7,7,11,11,14,15,15,11,11,14,15,15,11,11,14,15,14,12,12,15,15,15,12,11,14,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,13,13,14,15,15,11,11,14,15,15,13,12,14,15,15,11,11,14,15,15,11,11,15,15,15,13,13,14,15,15,12,12,15,15,15,12,12,15,15,15,11,11,15,15,15,11,11,15,15,15,12,12,15,15,15,13,13,15,16,16,12,12,15,15,15,12,13,15,15,15,12,12,15,15,15,12,12,13,13,13,11,11,14,14,14,11,11,14,14,14,12,12,14,14,14,10,10,15,14,14,11,11,14,15,15,12,12,14,14,14,12,12,14,15,15,11,11,14,15,14,12,12,15,14,14,11,11,14,15,15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14,12,12,15,15,14,11,11,15,15,15,12,12,15,14,14,12,12,14,15,15,11,11,14,15,14,11,11,15,15,15,10,10,15,15,15,12,12,15,14,14,14,13,15,15,15,11,11,15,15,15,11,11,15,15,15,10,10,14,11,11,10,10,15,9,9,12,12,15,10,10,12,12,15,11,11,11,11,15,14,14,12,12,15,10,10,13,13,15,13,13,12,12,15,9,9,12,12,15,11,11,13,13,15,14,14,12,12,15,10,10,13,13,15,13,14,12,12,15,9,9,12,12,15,10,10,13,13,15,13,13,11,11,15,11,11,13,13,15,14,14,13,13,15,10,10,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14,13,13,15,14,14,21,20,15,14,14,11,11,15,14,14,12,12,15,14,14,11,11,14,13,13,10,10,14,13,13,11,11,15,14,14,12,12,15,14,14,12,12,14,14,14,12,12,15,14,14,12,12,15,14,14,13,13,14,14,14,11,11,15,14,14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13,13,14,14,14,11,11,15,14,14,11,11,14,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,14,14,14,13,13,15,15,15,13,13,16,14,14,12,13,15,15,15,13,13,15,14,14,12,12,15,15,15,13,13,15,11,11,13,12,18,10,10,12,12,17,11,11,12,12,18,12,12,11,11,18,14,14,12,12,18,11,11,13,13,17,14,14,12,12,18,10,10,12,12,18,12,12,12,12,18,14,15,12,12,18,11,11,13,13,18,14,14,12,12,17,10,10,12,12,18,11,11,12,12,18,15,14,12,12,17,12,12,12,12,17,14,14,12,12,17,11,11,11,11,17,12,12,12,11,17,15,15,11,11,18,15,15,12,12,18,14,15,13,13,18,15,15,11,11,17,15,15,12,12,18,15,15,11,11,14,9,9,11,11,14,15,15,11,11,15,15,15,11,11,15,15,15,12,11,15,15,15,12,12,15,15,15,11,11,15,15,15,13,13,14,15,15,11,11,15,15,15,11,11,15,15,15,13,13,15,15,15,11,11,15,15,15,13,13,15,15,15,11,11,15,15,15,11,11,15,15,15,13,13,15,15,15,12,12,15,15,15,13,13,15,15,14,11,11,15,15,15,12,12,15,15,15,12,12,16,15,15,13,13,15,16,16,13,13,16,15,15,12,12,15,15,15,13,12,15,15,15,12,12,13,12,12,11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11,11,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15,14,14,12,12,15,14,14,12,12,14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15,15,15,12,12,15,14,14,12,12,15,15,15,11,11,15,14,14,11,11,15,14,15,11,11,15,15,15,12,12,15,14,14,13,13,16,15,15,11,11,15,14,14,12,12,15,15,15,11,11,14,11,11,9,9,15,10,10,12,12,14,11,11,12,12,15,12,12,12,12,15,14,14,13,13,15,11,11,13,13,15,14,14,13,13,15,10,10,12,12,15,12,12,13,13,15,14,14,13,13,15,11,11,12,12,15,14,14,13,13,14,10,10,12,12,15,12,12,13,13,15,14,14,12,12,15,12,12,13,13,15,14,14,15,15,15,11,11,12,12,15,12,12,12,13,15,14,14,12,12,15,15,15,14,14,15,14,14,20,20,15,14,14,12,12,15,14,14,13,13,15,14,14,12,12,14,13,13,10,10,14,13,13,11,11,14,13,13,12,12,14,14,14,12,12,15,14,14,13,13,15,14,14,12,12,14,14,14,14,14,14,14,14,11,11,15,14,14,12,12,15,14,14,14,14,15,14,14,12,12,14,14,14,14,14,14,14,14,11,11,15,14,14,12,12,14,14,14,14,14,15,14,14,12,12,15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,14,14,14,14,13,15,15,15,14,14,15,14,14,13,13,15,15,15,14,14,15,14,14,13,13,15,15,15,13,13,14,13,13,13,13,18,15,15,12,12,18,15,15,13,12,18,15,16,11,11,18,16,17,12,12,18,15,15,13,13,18,17,17,12,12,18,15,15,12,12,17,15,15,12,12,18,17,17,12,12,18,15,15,13,13,18,16,17,12,12,17,15,15,12,12,18,15,15,12,12,18,16,17,11,12,18,16,16,12,12,17,16,17,12,12,18,15,15,11,11,18,15,15,12,12,18,17,17,11,11,17,17,17,12,12,18,16,16,13,13,18,17,17,11,11,18,16,16,12,12,18,17,17,11,11,15,14,14,11,11,16,15,15,11,11,16,15,15,12,12,16,15,15,12,12,17,15,15,14,13,16,15,15,12,12,17,15,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15,15,13,13,16,15,15,11,11,17,15,15,14,14,16,15,15,11,11,16,15,15,12,12,17,15,15,13,13,16,15,15,12,12,17,16,15,14,14,16,14,15,12,12,16,15,15,12,12,18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,13,15,12,13,11,11,15,14,14,12,12,16,14,14,12,12,16,14,14,12,12,16,14,14,12,12,16,14,14,13,12,17,14,14,13,13,16,15,15,12,12,16,14,14,12,12,17,14,14,12,12,16,14,14,12,12,17,14,14,13,13,15,15,15,12,12,16,14,14,12,12,17,14,14,12,12,17,15,15,12,12,17,14,14,13,13,16,15,15,12,12,16,14,14,12,12,17,15,15,12,12,18,15,15,13,13,17,14,14,13,13,17,15,15,12,12,17,14,14,12,12,17,15,15,12,12,14,15,15,9,9,15,15,15,12,12,15,15,15,13,13,15,15,15,14,14,15,15,15,19,19,15,15,16,13,13,15,15,16,19,20,15,15,15,13,12,15,16,16,14,14,15,15,15,19,19,15,15,15,13,13,15,16,15,20,19,14,15,15,13,13,15,15,15,14,14,15,15,15,19,19,15,15,15,14,14,15,16,16,19,20,15,15,15,14,14,15,15,15,14,14,15,15,15,19,19,15,15,15,20,19,15,16,16,20,19,15,15,15,19,19,15,16,16,20,20,15,15,15,19,20,14,13,13,10,10,14,14,14,11,11,14,14,14,12,12,15,14,14,13,13,15,14,14,19,20,15,14,14,12,12,14,14,14,20,19,14,14,14,11,11,15,14,14,12,12,15,14,14,20,20,15,14,14,12,12,14,14,14,20,19,14,14,14,11,11,15,14,14,12,12,15,14,14,19,20,15,14,14,13,13,15,14,14,22,19,15,15,14,12,12,15,14,14,13,13,14,15,15,22,20,15,15,15,20,20,15,14,14,21,20,15,15,15,20,21,15,14,14,20,20,14,15,15,20,20,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,7,7,7,7,7,7,7,8,8,10,11,11,9,8,8,8,8,8,11,11,11,10,8,8,5,7,7,9,11,11,10,11,11,10,11,11,12,13,14,11,12,12,10,11,11,13,14,14,12,12,12,5,6,6,8,6,6,8,7,7,8,7,7,11,10,10,10,7,7,9,7,7,12,11,11,11,7,7,7,7,7,11,10,10,12,10,10,11,10,10,15,13,13,13,10,10,12,11,11,15,13,13,14,11,11,7,7,7,11,11,11,12,11,11,12,11,11,14,14,14,14,12,12,12,12,12,16,15,15,14,12,12,0,10,10,0,11,11,0,11,12,0,11,11,0,14,14,0,11,11,0,12,12,0,15,15,0,11,11,8,8,8,12,10,10,12,10,10,13,11,11,15,13,13,14,11,11,12,10,10,16,14,14,14,10,10,8,7,7,12,11,11,13,11,11,12,11,11,15,14,14,14,12,12,13,12,12,15,14,14,15,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,13,13,0,14,15,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,4,4,0,8,8,0,8,8,0,9,9,0,10,10,0,8,8,0,9,9,0,10,10,0,8,8,0,7,7,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,7,7,0,6,6,0,7,7,0,7,7,0,10,10,0,6,6,0,7,7,0,10,10,0,6,5,0,8,8,0,7,7,0,8,8,0,8,8,0,9,9,0,7,7,0,8,8,0,9,9,0,7,7,0,6,6,0,9,10,0,10,10,0,10,10,0,11,11,0,9,9,0,10,10,0,11,11,0,9,9,0,8,8,0,8,8,0,8,8,0,9,9,0,9,9,0,8,8,0,8,8,0,9,9,0,7,7,0,8,8,0,7,7,0,7,7,0,8,8,0,9,9,0,7,7,0,7,7,0,9,9,0,6,6,0,6,6,0,10,10,0,10,10,0,10,10,0,12,12,0,9,9,0,10,10,0,12,12,0,9,9,0,8,8,0,7,7,0,8,8,0,8,8,0,9,9,0,7,7,0,8,8,0,9,9,0,7,7,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,5,5,8,8,0,8,8,6,9,9,8,10,10,0,8,8,0,9,9,0,12,12,0,8,8,4,7,7,6,10,10,0,12,12,7,11,11,9,12,12,0,12,12,0,13,13,0,15,15,0,12,12,0,7,7,0,7,7,0,8,8,0,8,8,0,10,10,0,7,7,0,8,8,0,11,11,0,7,7,5,7,7,9,9,9,0,11,10,9,9,9,11,12,12,0,10,10,0,11,11,0,13,13,0,11,11,6,7,7,9,10,10,0,12,12,10,11,11,11,12,12,0,12,12,0,13,13,0,15,15,0,12,12,0,10,10,0,11,11,0,11,11,0,12,12,0,13,13,0,11,11,0,12,12,0,15,15,0,11,11,0,8,8,0,10,10,0,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,11,11,0,7,7,0,10,10,0,12,12,0,10,10,0,12,13,0,12,12,0,13,13,0,14,14,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,3,7,7,0,0,0,8,8,0,0,0,8,8,0,0,0,11,11,0,0,0,0,0,0,0,0,10,9,0,0,0,0,0,0,0,0,9,9,0,0,0,10,11,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,5,5,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,5,5,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,5,6,0,0,0,7,7,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,0,0,0,9,9,0,0,0,10,10,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,11,12,0,0,0,0,0,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,8,8,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,7,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,7,7,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,9,9,0,0,0,10,10,0,0,0,11,12,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,8,8,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,9,9,0,0,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,9,9,0,0,0,10,10,0,0,0,12,12,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,10,10,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,4,5,16,9,9,12,17,18,4,2,18,6,5,9,13,15,10,7,7,6,7,9,13,13,8,5,6,5,5,7,11,12,8,4,7,4,3,6,10,12,11,8,9,7,6,8,11,12,15,13,13,11,9,7,10,12,16,12,16,12,6,5,8,11,2,0,0,0,64,0,0,0,144,111,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,7,0,0,0,0,0,0,0,0,0,128,64,7,0,0,0,0,0,0,0,0,0,168,64,7,0,208,64,7,0,0,0,0,0,0,0,0,0,248,64,7,0,32,65,7,0,0,0,0,0,0,0,0,0,72,65,7,0,112,65,7,0,0,0,0,0,0,0,0,0,152,65,7,0,192,65,7,0,112,65,7,0,0,0,0,0,232,65,7,0,16,66,7,0,112,61,7,0,152,61,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,24,64,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,16,64,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,60,7,0,32,61,7,0,0,0,0,0,0,0,0,0,72,61,7,0,112,61,7,0,152,61,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,40,63,7,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,216,63,7,0,0,0,0,0,2,0,0,0,25,0,0,0,240,62,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,16,63,7,0,0,0,0,0,2,0,0,0,9,0,0,0,208,62,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,224,62,7,0,0,0,0,0,1,0,0,0,25,0,0,0,72,62,7,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,104,62,7,0,0,0,0,0,1,0,0,0,25,0,0,0,192,61,7,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,224,61,7,0,0,0,0,0,3,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,4,4,5,5,4,5,5,6,5,4,5,5,5,6,5,5,6,6,6,5,6,5,6,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,8,8,9,9,10,10,11,11,4,6,5,8,7,9,8,10,9,11,10,11,11,4,5,6,7,8,8,9,9,10,10,10,10,11,8,9,8,10,8,10,9,11,10,11,11,11,11,8,8,9,8,10,9,10,10,11,11,11,11,11,9,10,10,11,11,11,11,11,11,12,11,12,11,9,10,10,10,11,11,11,11,11,11,12,11,12,10,11,11,12,11,12,12,12,12,12,12,12,12,10,11,11,11,11,12,12,12,13,12,12,12,12,11,12,12,12,12,13,13,12,12,12,12,12,12,11,12,12,12,12,13,13,12,13,12,12,12,12,12,13,13,13,13,13,13,12,13,12,13,12,12,12,13,13,13,13,13,13,13,12,13,12,12,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,3,4,9,8,8,10,13,16,4,2,9,5,7,10,14,18,9,7,6,5,7,9,12,16,7,5,5,3,5,8,11,13,8,7,7,5,5,7,9,11,10,10,9,8,6,6,8,10,13,14,13,11,9,8,9,10,17,18,16,14,11,10,10,10,5,0,0,0,243,0,0,0,136,110,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,128,111,7,0,0,0,0,0,5,0,0,0,53,12,0,0,56,98,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,112,110,7,0,0,0,0,0,5,0,0,0,243,0,0,0,48,97,7,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,40,98,7,0,0,0,0,0,5,0,0,0,243,0,0,0,40,96,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,32,97,7,0,0,0,0,0,5,0,0,0,243,0,0,0,32,95,7,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,24,96,7,0,0,0,0,0,5,0,0,0,53,12,0,0,208,82,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,8,95,7,0,0,0,0,0,5,0,0,0,53,12,0,0,128,70,7,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,184,82,7,0,0,0,0,0,1,0,0,0,7,0,0,0,88,70,7,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,96,70,7,0,0,0,0,0,5,0,0,0,243,0,0,0,80,69,7,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,72,70,7,0,0,0,0,0,5,0,0,0,243,0,0,0,72,68,7,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,64,69,7,0,0,0,0,0,5,0,0,0,243,0,0,0,64,67,7,0,1,0,0,0,0,76,93,225,0,76,93,97,2,0,0,0,0,0,0,0,56,68,7,0,0,0,0,0,5,0,0,0,243,0,0,0,56,66,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,48,67,7,0,0,0,0,0,1,9,9,6,9,9,5,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,6,7,7,7,7,7,7,7,8,8,9,9,9,8,7,7,8,8,8,9,9,9,9,8,8,6,7,7,9,8,8,9,7,7,9,8,8,10,8,8,10,8,8,10,8,8,10,8,9,10,8,8,7,6,6,8,6,6,9,6,6,9,7,7,10,8,8,9,6,6,9,7,7,10,9,8,9,7,7,7,7,7,11,8,8,11,9,9,10,9,9,12,9,9,12,8,8,11,9,9,12,9,9,12,8,8,8,7,7,10,9,9,10,9,9,10,9,9,11,10,11,11,9,9,11,9,9,11,11,11,11,9,9,10,8,8,11,9,9,10,9,9,11,9,9,11,10,10,11,9,9,11,9,9,12,10,10,11,9,9,8,8,8,11,9,9,12,9,9,11,9,9,12,9,9,12,8,8,12,9,9,12,9,10,12,8,8,9,7,7,11,9,9,11,10,10,11,9,9,11,11,11,11,9,9,11,10,10,12,11,11,11,9,10,10,9,9,11,9,9,11,10,10,11,10,10,11,11,11,11,9,9,11,9,10,11,11,11,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,7,7,7,8,8,7,8,8,7,9,9,10,11,11,9,8,8,7,8,9,11,11,11,9,8,8,6,7,7,10,10,10,10,10,10,10,10,10,14,14,14,12,11,11,10,11,11,15,14,14,13,11,11,6,6,6,8,5,5,8,7,7,8,7,7,11,10,10,9,7,7,9,7,7,12,10,10,10,7,7,6,8,7,12,10,10,12,10,10,11,10,10,15,14,13,13,10,10,11,10,10,16,14,14,14,10,10,7,7,7,12,11,11,12,11,11,11,11,11,16,14,14,13,12,12,11,11,11,17,15,15,14,12,12,10,9,9,13,11,11,13,11,11,12,11,11,16,14,13,14,11,11,12,11,11,17,15,14,14,11,11,7,8,8,12,11,11,12,10,10,12,10,10,16,13,14,13,10,10,11,10,10,17,14,14,14,10,10,7,7,7,12,11,11,12,11,11,12,11,11,15,14,15,14,12,12,12,11,11,17,15,15,14,12,12,10,10,9,13,11,11,13,11,11,13,11,11,16,14,14,14,11,11,13,11,11,16,15,15,15,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,14,14,6,7,7,14,14,7,7,7,15,15,0,13,13,16,16,0,13,13,15,15,7,8,8,15,15,9,10,10,17,16,9,8,8,15,15,0,13,13,18,17,0,13,13,16,16,8,8,8,15,15,12,11,11,16,17,9,8,8,14,14,0,13,13,18,17,0,13,13,16,15,0,14,14,18,17,0,20,22,18,20,0,12,12,16,16,0,16,16,22,20,0,14,14,16,16,0,14,14,17,17,0,22,22,22,19,0,12,13,16,16,0,17,17,0,0,0,15,15,16,16,5,7,7,13,13,9,9,9,15,14,10,10,10,14,14,0,21,21,18,17,0,21,22,18,17,9,10,10,14,14,12,12,12,17,17,12,10,10,14,14,0,19,21,18,17,0,20,22,18,18,11,10,10,14,14,14,13,13,18,17,12,11,11,14,14,0,22,19,17,18,0,20,0,18,17,0,22,21,17,17,0,0,0,0,0,0,20,22,17,17,0,22,0,21,19,0,22,0,18,18,0,0,22],"i8",O3,_.GLOBAL_BASE+466780),C3([18,19,0,0,0,0,0,0,19,21,17,17,0,0,0,20,20,0,0,0,18,18,6,6,6,13,12,8,6,6,11,11,8,6,6,13,13,0,9,9,11,11,0,11,11,14,14,9,7,7,13,13,11,9,9,13,13,10,6,6,13,13,0,10,10,14,14,0,10,10,13,13,9,7,7,13,14,13,9,9,13,13,10,6,6,13,12,0,11,11,15,15,0,10,10,13,13,0,12,12,15,15,0,19,0,17,17,0,9,9,13,13,0,13,14,19,20,0,11,11,13,13,0,11,11,14,14,0,19,20,17,18,0,10,10,13,13,0,15,15,21,19,0,12,12,13,13,0,10,10,12,13,0,11,11,15,15,0,11,11,15,15,0,15,15,22,0,0,16,17,22,0,0,11,11,15,15,0,14,14,18,17,0,11,11,15,16,0,15,15,22,21,0,16,16,0,20,0,12,12,16,15,0,15,14,19,19,0,11,11,16,16,0,15,15,21,0,0,16,15,0,0,0,16,16,22,21,0,0,0,0,0,0,15,15,20,20,0,18,18,0,0,0,16,17,0,0,0,17,17,0,22,0,0,0,0,0,0,15,15,21,22,0,20,18,0,0,0,18,17,22,0,0,10,10,12,11,0,10,10,10,10,0,11,11,12,12,0,11,11,9,9,0,13,13,12,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,13,12,13,13,0,12,12,12,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,13,13,13,14,0,12,12,12,12,0,13,14,14,14,0,20,21,15,15,0,12,11,12,12,0,15,16,20,22,0,13,12,11,11,0,13,13,14,13,0,20,0,16,15,0,12,12,12,12,0,16,16,22,21,0,13,13,12,12,6,7,7,16,16,11,9,9,15,15,12,9,9,16,16,0,13,13,14,14,0,14,14,16,17,10,9,9,16,16,14,12,12,16,16,12,9,9,15,15,0,13,13,18,18,0,13,13,15,16,12,10,10,17,18,15,12,12,17,17,13,9,9,16,16,0,13,13,17,18,0,14,14,16,16,0,15,15,18,18,0,22,0,20,20,0,12,12,16,16,0,16,16,20,22,0,14,14,16,16,0,15,14,18,18,0,0,22,19,21,0,13,13,16,17,0,17,17,22,22,0,15,15,16,16,7,7,7,14,14,11,10,10,15,15,12,10,10,15,14,0,22,0,18,18,0,0,21,17,18,11,10,10,15,15,14,12,12,17,17,14,11,11,15,15,0,22,20,18,18,0,0,20,18,17,12,10,10,16,16,17,14,14,19,18,14,11,11,15,15,0,21,22,19,19,0,21,22,18,18,0,22,0,19,21,0,0,0,0,0,0,22,22,18,17,0,0,0,21,20,0,22,22,20,19,0,0,22,20,20,0,0,0,0,0,0,20,21,17,17,0,0,22,21,21,0,0,0,18,18,10,9,9,14,14,13,10,10,13,13,13,10,11,14,14,0,13,13,12,12,0,15,15,16,16,13,10,10,15,15,15,12,12,14,14,15,10,10,14,15,0,14,14,16,15,0,14,14,15,15,13,10,10,15,15,18,13,13,15,15,15,10,10,14,15,0,14,14,16,16,0,14,14,15,15,0,15,15,16,16,0,22,0,18,18,0,12,13,14,14,0,17,17,22,0,0,14,14,14,14,0,15,15,16,16,0,22,0,18,17,0,13,13,14,14,0,19,18,21,22,0,15,15,14,14,0,11,11,13,13,0,12,12,16,16,0,12,12,16,16,0,15,16,21,0,0,16,17,0,22,0,12,12,16,16,0,14,14,17,18,0,11,11,16,16,0,15,15,21,22,0,16,16,0,0,0,12,12,16,16,0,15,15,0,19,0,12,12,16,17,0,16,16,22,0,0,16,16,0,22,0,17,17,0,22,0,0,0,0,0,0,15,15,20,19,0,18,18,0,0,0,17,18,0,0,0,17,17,0,0,0,0,0,0,0,0,15,15,0,22,0,20,18,0,0,0,18,18,22,22,0,11,11,14,14,0,12,12,14,14,0,12,12,15,15,0,13,13,14,14,0,14,14,17,16,0,12,12,16,16,0,14,14,16,16,0,11,11,15,15,0,13,13,16,16,0,13,13,15,15,0,12,12,15,15,0,15,14,16,16,0,11,11,15,15,0,14,14,17,17,0,13,13,15,15,0,15,15,17,17,0,0,0,19,18,0,13,12,15,15,0,16,16,0,0,0,14,14,15,15,0,14,14,16,17,0,22,0,18,18,0,13,13,15,15,0,17,17,0,0,0,14,14,15,15,8,8,8,16,16,12,10,10,16,16,13,9,9,16,16,0,14,14,17,17,0,14,14,17,16,12,10,10,18,17,14,11,11,18,18,14,9,10,16,16,0,13,13,18,19,0,14,13,16,16,12,9,9,16,16,17,13,13,17,17,14,9,9,15,15,0,14,14,19,20,0,13,13,15,15,0,15,15,18,19,0,0,22,22,22,0,13,13,17,17,0,16,16,19,21,0,14,14,16,16,0,14,14,18,18,0,0,0,0,0,0,13,13,16,16,0,18,18,0,0,0,15,15,16,16,8,7,7,14,14,12,10,10,15,15,13,10,10,15,14,0,22,0,18,18,0,22,0,18,18,12,10,10,16,15,15,12,12,17,17,14,11,11,15,15,0,20,21,19,18,0,0,0,17,18,13,11,11,15,15,16,13,13,18,18,15,11,11,14,14,0,22,21,19,19,0,21,22,18,18,0,22,22,20,18,0,0,0,0,0,0,22,19,17,17,0,0,0,22,21,0,0,22,19,17,0,0,22,19,19,0,0,0,0,0,0,22,21,18,17,0,0,0,22,0,0,0,0,19,19,0,10,10,14,14,0,11,11,15,14,0,11,11,15,15,0,14,14,15,14,0,15,15,16,16,0,11,11,16,16,0,13,13,16,16,0,11,11,15,15,0,14,14,17,16,0,14,14,15,15,0,11,11,16,16,0,14,13,15,15,0,11,11,15,15,0,15,15,17,17,0,14,14,15,14,0,16,16,17,17,0,0,22,18,18,0,13,13,15,15,0,17,17,22,0,0,15,15,15,14,0,15,16,16,17,0,0,22,18,19,0,13,13,15,15,0,20,18,21,0,0,15,15,14,14,0,11,11,13,13,0,12,12,16,16,0,12,12,16,15,0,15,16,22,22,0,17,17,0,0,0,12,12,16,16,0,14,14,18,18,0,11,11,16,16,0,15,16,22,20,0,16,16,0,22,0,12,12,16,16,0,15,15,18,20,0,11,11,16,16,0,15,15,0,0,0,16,16,0,0,0,17,17,22,0,0,0,0,0,0,0,15,15,0,21,0,18,18,0,0,0,17,16,0,0,0,17,17,22,22,0,0,0,0,0,0,15,15,21,0,0,20,22,0,0,0,18,18,0,0,0,12,12,15,15,0,12,12,15,15,0,12,12,16,16,0,13,13,15,15,0,15,15,17,17,0,13,12,16,16,0,14,14,16,16,0,12,11,16,16,0,14,14,17,17,0,14,14,16,16,0,12,12,16,16,0,15,15,17,16,0,11,11,15,16,0,14,14,17,17,0,14,14,16,16,0,15,15,18,18,0,0,0,22,19,0,13,13,15,16,0,16,17,0,0,0,14,14,16,16,0,15,15,18,17,0,0,0,20,20,0,13,13,16,15,0,17,17,22,22,0,14,14,15,15,0,11,11,16,16,0,13,13,16,17,0,13,13,17,18,0,16,16,17,17,0,17,17,18,18,0,12,12,17,17,0,16,15,18,18,0,12,12,16,16,0,16,16,18,18,0,15,15,17,17,0,12,12,17,17,0,16,16,19,18,0,12,12,16,17,0,16,16,19,19,0,15,16,16,17,0,16,16,19,17,0,0,0,20,22,0,13,13,16,16,0,19,18,21,0,0,15,15,16,16,0,16,16,18,18,0,0,0,22,21,0,14,14,16,16,0,21,19,21,22,0,16,16,16,16,0,9,9,14,14,0,13,13,15,15,0,14,14,15,15,0,0,20,18,19,0,0,22,18,18,0,12,12,15,15,0,15,15,17,18,0,14,13,14,14,0,20,0,18,18,0,21,0,18,17,0,13,13,15,16,0,17,17,18,18,0,14,14,15,15,0,22,22,20,19,0,20,21,18,18,0,20,22,19,19,0,0,0,0,0,0,20,20,17,17,0,0,22,22,21,0,22,0,18,18,0,20,22,19,19,0,0,0,0,0,0,21,21,17,18,0,0,0,21,20,0,0,22,19,18,0,18,18,15,15,0,22,21,17,16,0,0,22,17,17,0,20,22,18,18,0,0,22,20,20,0,21,19,16,16,0,21,21,18,18,0,19,19,17,17,0,0,22,19,19,0,22,20,17,17,0,21,19,16,16,0,22,22,19,18,0,19,20,16,16,0,22,21,19,21,0,21,22,17,18,0,21,20,18,18,0,0,0,19,20,0,20,19,16,16,0,22,22,0,0,0,21,21,17,16,0,22,20,19,18,0,0,0,20,20,0,20,19,16,16,0,0,0,0,0,0,21,22,17,17,0,11,11,13,13,0,13,13,15,16,0,13,13,16,16,0,17,18,21,0,0,17,18,0,0,0,12,12,15,16,0,15,15,19,18,0,12,12,16,16,0,17,17,22,0,0,17,17,0,22,0,12,12,17,16,0,16,16,19,20,0,12,12,16,16,0,17,17,0,0,0,17,17,0,21,0,17,16,22,0,0,0,0,0,0,0,15,15,20,22,0,20,18,0,0,0,18,18,0,0,0,17,17,21,0,0,0,0,0,0,0,15,15,21,22,0,19,20,22,0,0,19,18,0,0,0,14,14,18,18,0,16,16,22,20,0,16,16,22,19,0,17,17,20,22,0,19,19,0,0,0,15,15,20,0,0,18,21,0,20,0,15,15,21,20,0,18,17,0,0,0,17,17,0,22,0,15,15,19,19,0,19,18,0,0,0,15,15,20,0,0,18,18,22,22,0,17,17,0,20,0,18,18,0,0,0,0,22,0,0,0,15,15,19,20,0,20,19,0,0,0,17,17,20,21,0,17,18,20,22,0,0,0,0,22,0,15,15,20,20,0,22,20,0,0,0,17,18,20,0,0,12,12,17,16,0,14,14,17,17,0,13,13,17,17,0,16,16,18,18,0,17,16,17,17,0,13,13,17,17,0,15,16,18,18,0,13,13,16,16,0,16,16,18,18,0,16,16,17,16,0,13,13,16,16,0,17,17,18,17,0,12,12,15,16,0,17,17,19,19,0,16,16,16,16,0,16,17,19,18,0,0,0,21,22,0,14,14,16,16,0,18,18,0,22,0,16,16,16,16,0,16,16,18,17,0,0,0,21,20,0,14,14,16,16,0,21,22,22,0,0,16,16,16,16,0,9,9,14,13,0,13,14,15,16,0,14,13,15,14,0,22,0,18,18,0,21,0,17,18,0,13,13,15,15,0,15,16,18,17,0,14,14,15,14,0,20,22,18,18,0,22,21,17,17,0,13,13,15,15,0,17,17,19,19,0,14,14,14,14,0,0,22,18,18,0,0,22,17,17,0,0,22,19,20,0,0,0,0,0,0,21,20,17,16,0,0,0,21,22,0,0,0,18,19,0,0,0,18,18,0,0,0,0,0,0,22,0,17,17,0,0,0,20,22,0,0,0,18,19,0,18,19,16,16,0,22,20,17,17,0,22,22,17,18,0,22,22,18,17,0,0,22,18,19,0,20,20,17,18,0,0,22,19,18,0,22,22,17,17,0,22,0,19,19,0,0,22,18,18,0,20,22,17,17,0,0,22,18,18,0,19,20,17,17,0,22,0,20,19,0,22,21,17,17,0,0,0,18,18,0,0,0,22,19,0,20,0,17,17,0,22,0,0,22,0,0,20,17,18,0,22,0,19,19,0,0,0,0,19,0,19,21,17,17,0,0,0,0,0,0,20,21,17,16,0,11,11,13,13,0,13,13,16,16,0,13,13,15,16,0,17,17,21,22,0,17,18,0,0,0,12,12,16,16,0,15,15,18,18,0,13,13,16,16,0,17,16,21,21,0,17,17,0,0,0,13,13,16,16,0,16,16,19,18,0,13,13,16,16,0,17,17,0,22,0,17,18,20,22,0,17,18,0,0,0,0,0,0,0,0,15,15,20,0,0,18,19,0,0,0,17,17,0,0,0,18,17,22,0,0,0,0,0,0,0,15,16,21,20,0,20,20,0,0,0,18,19,0,0,0,15,15,22,22,0,17,16,20,22,0,17,17,20,22,0,18,18,0,21,0,19,18,0,0,0,16,16,20,20,0,19,19,22,0,0,15,16,21,22,0,18,19,22,0,0,17,18,0,0,0,16,16,22,0,0,19,19,0,21,0,15,16,20,0,0,18,18,0,22,0,18,17,0,0,0,18,18,0,0,0,0,0,0,0,0,16,16,22,21,0,20,21,0,0,0,17,18,22,0,0,18,18,0,0,0,0,0,0,0,0,16,16,20,19,0,22,21,0,0,0,18,18,22,22,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,4,4,8,8,11,9,9,12,12,11,10,10,12,12,12,10,10,11,11,12,12,12,12,12,12,11,11,13,13,12,12,12,13,13,12,10,10,12,12,12,11,11,13,13,12,13,13,13,13,12,11,11,13,13,12,12,12,13,13,12,10,10,12,12,12,11,11,13,13,12,13,13,12,12,12,11,11,13,13,12,13,13,13,13,12,11,11,12,12,12,11,11,12,12,12,13,13,12,12,12,13,13,13,13,12,13,13,13,13,13,13,13,12,12,12,13,13,13,13,12,13,13,12,12,11,8,8,10,10,12,11,11,11,11,12,10,10,10,10,13,11,11,10,10,13,11,11,10,10,13,12,12,12,12,13,11,11,11,11,13,12,12,11,11,13,12,12,11,11,13,12,12,12,11,13,12,12,12,12,13,11,11,11,11,13,12,12,11,11,13,11,12,11,11,13,12,12,11,11,14,12,12,11,11,13,11,11,11,11,14,12,12,11,11,13,11,12,10,10,14,12,12,11,11,14,12,12,11,11,14,11,11,11,11,14,12,12,11,11,13,12,12,11,11,14,12,12,11,11,11,8,8,10,10,12,7,7,10,10,12,9,9,11,11,13,9,9,9,9,13,13,13,10,10,13,9,9,12,12,13,13,13,12,12,13,9,8,11,11,13,10,10,12,12,14,13,13,11,11,13,9,9,11,11,13,13,13,12,12,13,9,9,10,10,13,10,10,11,11,13,13,13,10,10,14,10,10,11,11,14,14,14,12,12,13,9,9,10,10,13,10,10,11,11,14,13,14,10,10,14,14,14,11,12,14,14,14,14,14,14,13,13,10,10,13,14,14,11,11,14,14,14,10,10,14,9,9,9,9,14,9,9,9,9,14,10,10,9,9,14,10,10,8,8,14,11,11,8,8,15,11,11,10,10,15,12,12,10,10,15,10,10,10,10,15,11,11,10,10,15,13,13,10,10,15,11,11,10,10,15,12,12,10,10,15,10,10,10,10,15,11,11,10,10,15,13,13,10,10,15,11,11,10,10,15,12,12,10,10,15,11,11,9,9,15,11,11,9,9,15,13,13,9,9,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,13,12,9,9,15,13,13,9,9,14,12,12,9,9,14,13,13,9,9,14,13,13,9,9,14,13,13,7,7,14,13,13,8,8,15,14,14,10,10,15,14,14,10,10,15,14,14,10,10,15,14,14,10,10,15,14,14,9,9,15,14,14,10,10,15,14,14,10,10,14,14,14,9,9,15,14,14,10,10,14,14,14,9,9,15,14,14,10,10,15,14,14,10,10,14,14,14,9,9,14,14,14,9,9,14,14,14,8,8,15,14,14,10,10,15,14,14,11,11,15,14,14,9,9,15,14,14,9,9,14,14,14,8,8,13,9,9,12,12,17,11,11,12,12,17,12,12,12,12,17,12,12,11,11,18,15,15,12,12,17,12,12,12,12,17,14,15,13,13,17,12,12,12,12,17,13,13,12,13,17,15,15,12,12,18,13,13,13,13,18,15,15,13,13,18,12,12,12,12,18,13,13,13,13,18,15,15,12,12,18,13,13,12,12,18,15,15,13,13,18,13,13,12,12,17,13,13,12,12,17,15,15,12,12,18,15,15,13,13,18,15,15,13,14,18,15,16,12,12,18,15,15,12,12,18,16,16,12,12,13,8,8,10,10,14,15,14,11,11,14,15,15,12,12,15,14,14,12,11,15,15,15,12,12,15,15,15,12,12,15,15,15,13,13,15,15,15,12,12,15,15,15,13,13,15,15,15,13,13,15,15,15,13,13,15,15,16,13,13,15,15,15,12,12,15,15,15,13,13,15,15,15,13,13,15,15,15,13,13,15,15,15,13,13,15,15,14,12,12,15,15,15,12,12,16,15,14,12,12,16,15,15,13,13,16,16,16,13,13,16,15,15,12,12,15,15,15,13,13,15,15,15,12,12,13,12,12,10,10,14,14,14,11,11,15,14,14,12,12,15,14,14,11,11,15,14,14,11,11,15,15,15,13,13,15,14,14,13,13,15,15,15,12,12,15,14,15,13,13,16,15,15,12,12,15,15,15,13,13,16,14,14,13,13,15,15,15,12,12,15,15,15,13,13,16,15,15,12,12,16,15,15,12,12,16,14,14,13,13,15,15,15,11,11,15,15,15,12,12,16,15,15,11,11,16,15,15,13,13,16,14,15,14,14,16,15,15,12,12,16,15,14,12,12,16,15,15,12,12,14,10,10,9,9,14,11,11,12,12,14,12,12,13,13,14,12,12,12,12,15,14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,12,12,13,13,15,13,13,14,14,15,14,14,13,13,15,13,13,13,14,15,14,14,15,15,15,12,12,13,13,15,13,13,14,14,15,14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,13,13,12,12,15,13,13,13,13,15,14,14,13,12,15,15,15,14,15,15,15,14,20,20,15,14,14,13,13,15,14,14,13,13,15,14,14,13,13,14,12,12,9,9,14,14,14,12,12,14,13,13,12,13,14,14,14,12,12,15,14,14,12,12,15,14,14,14,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,15,15,15,14,14,15,14,14,13,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,15,15,15,15,14,15,15,15,13,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,14,15,15,14,14,15,15,15,14,14,15,14,14,14,14,15,15,15,14,14,15,14,14,13,14,15,15,15,14,14,13,10,10,12,12,17,11,11,12,12,17,12,12,12,12,17,12,12,11,11,17,15,15,12,11,18,13,13,13,13,18,15,15,13,13,17,12,12,12,12,18,13,13,13,13,17,15,15,12,12,17,12,12,12,12,17,15,15,13,13,17,12,12,12,12,17,13,13,12,12,17,15,15,12,12,18,14,13,12,12,18,15,15,13,13,18,13,13,12,12,18,13,13,12,12,18,16,16,12,12,18,16,16,12,12,18,15,15,13,13,18,16,16,12,12,17,15,15,12,12,17,16,16,12,12,13,8,8,10,10,14,14,15,12,12,14,15,15,12,12,15,14,14,12,12,15,15,14,12,12,15,15,15,13,13,15,15,15,13,13,15,15,15,12,12,16,15,15,13,13,16,15,15,13,13,15,15,15,12,12,15,15,15,14,14,15,15,15,12,12,15,15,15,13,13,16,15,15,13,13,15,15,15,13,13,16,15,15,13,13,15,15,14,12,12,15,15,15,12,12,16,14,15,13,13,16,15,15,13,13,15,16,15,13,13,16,15,14,13,13,16,15,15,13,13,16,15,15,13,13,13,12,12,11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11,11,16,14,14,11,11,15,15,15,12,13,16,14,14,13,13,15,15,15,12,12,15,14,14,13,13,16,15,15,12,12,15,15,15,12,12,15,14,14,13,13,15,15,15,12,12,15,14,14,12,12,16,15,15,12,12,16,15,15,12,12,16,14,14,13,13,15,15,15,11,11,15,15,14,12,12,16,15,15,11,11,16,15,15,12,12,16,14,14,13,13,16,15,15,11,11,16,14,14,12,12,16,15,15,11,11,14,10,10,9,9,14,11,11,12,12,14,12,12,13,14,14,12,12,12,12,14,14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,12,12,13,13,15,13,13,14,14,15,15,15,14,14,15,13,13,14,14,15,15,15,15,15,15,12,12,13,13,15,13,13,14,14,15,14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,12,12,13,13,15,13,13,13,13,14,14,14,13,13,15,15,15,14,15,15,15,15,21,19,15,14,14,13,13,15,14,14,14,14,14,14,14,13,13,14,12,12,9,9,14,14,14,12,12,14,14,13,13,13,14,14,14,12,12,14,14,14,12,12,15,14,14,13,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,15,15,15,15,15,15,14,14,13,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,14,15,15,15,15,15,14,15,13,13,15,14,14,14,14,15,14,14,13,13,15,14,14,13,13,14,15,15,14,14,15,15,15,14,14,15,14,14,14,14,15,15,15,15,15,15,14,14,14,13,14,15,15,14,14,13,10,10,12,12,18,12,12,12,12,17,12,12,12,12,18,13,13,11,11,18,15,14,11,11,17,13,13,13,13,18,15,15,12,12,18,12,12,12,12,17,13,13,12,12,18,15,15,12,12,18,13,13,13,12,18,15,15,13,13,18,13,13,12,12,18,13,13,12,12,18,15,15,12,12,17,13,13,12,12,17,15,15,12,12,17,12,12,11,11,17,13,13,11,11,17,15,15,11,11,18,16,16,12,12,18,15,15,13,13,18,15,15,11,11,17,15,15,12,12,18,15,15,11,11,13,8,8,10,10,14,14,14,11,11,15,15,15,12,12,15,14,14,11,11,16,14,14,12,12,15,15,15,12,12,15,15,15,13,13,15,15,15,12,12,15,15,15,12,12,16,15,15,13,13,15,15,15,12,12,15,15,15,13,13,16,15,15,12,12,15,15,15,12,12,16,15,15,13,13,16,15,15,12,12,15,15,15,13,13,15,14,14,12,12,15,15,15,12,12,16,15,14,12,12,16,15,15,13,13,16,16,16,13,13,16,14,15,13,13,15,15,15,13,13,16,15,15,12,12,13,12,12,10,10,14,14,14,11,11,15,14,14,12,12,15,14,14,11,11,16,14,14,11,11,15,14,15,12,12,15,14,14,13,13,15,15,15,12,12,15,14,14,12,12,15,14,15,12,12,15,15,15,12,12,16,14,14,13,13,15,15,15,11,12,16,14,14,12,12,16,15,15,12,12,15,15,15,12,12,16,14,14,12,12,15,15,15,11,11,15,14,14,11,12,15,15,14,11,11,16,15,15,12,12,16,14,14,13,13,16,15,15,11,11,16,14,14,12,12,16,15,15,11,11,13,10,10,8,8,14,12,12,12,12,14,12,12,13,13,14,12,12,12,12,14,14,14,13,13,15,13,13,14,14,15,15,14,15,15,15,13,13,13,13,15,13,13,14,14,15,14,15,14,14,15,13,13,13,13,15,15,15,15,15,15,12,12,13,12,15,13,13,14,14,15,14,14,13,13,15,13,13,14,13,15,15,15,16,16,15,13,13,12,12,15,13,13,13,13,14,14,14,12,12,15,15,15,14,14,15,15,15,20,20,15,14,14,13,13,15,15,14,14,14,15,14,14,13,13,13,12,12,9,9,14,13,13,12,12,14,13,13,12,12,14,14,14,12,12,14,14,14,13,13,15,14,14,13,13,15,14,14,14,14,15,15,14,12,12,15,14,14,13,13,15,14,15,14,15,15,14,14,13,13,15,14,14,14,14,15,14,14,12,12,15,14,14,13,13,14,15,14,15,14,15,14,14,13,13,15,14,14,14,14,15,14,14,12,12,15,14,14,13,13,15,15,15,14,14,15,15,15,14,14,16,14,14,14,14,15,15,15,14,14,15,14,14,14,14,14,15,15,14,14,13,13,13,12,13,17,15,15,12,12,17,15,15,12,12,18,15,15,11,11,17,16,16,11,11,18,16,16,13,13,18,17,16,13,13,18,16,16,12,12,18,16,16,12,12,18,17,17,12,12,17,16,16,12,13,17,16,16,12,13,17,16,16,12,12,17,16,16,12,12,18,17,16,12,12,18,16,16,12,12,17,16,17,12,12,18,15,15,11,11,18,15,15,12,12,17,17,17,11,11,17,17,17,12,12,17,16,16,13,13,18,16,16,11,11,18,16,16,12,12,18,17,16,11,11,14,14,14,10,10,16,15,14,11,11,16,15,15,12,12,16,14,14,12,12,17,14,14,13,13,17,15,15,13,13,17,15,15,14,14,16,15,15,12,12,16,15,15,13,13,18,15,15,14,14,16,15,15,12,12,16,15,15,14,14,16,15,15,12,12,16,15,15,13,13,17,15,15,13,13,17,15,15,13,13,17,15,15,14,14,16,14,14,12,12,17,15,15,12,12,18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17,15,14,13,13,17,15,15,14,14,17,15,15,13,13,14,12,12,11,11,15,14,14,12,12,16,14,14,12,12,16,14,14,11,11,17,14,14,12,12,16,15,14,13,13,16,14,14,13,13,16,15,15,12,12,16,14,14,13,13,17,15,15,13,13,16,15,15,13,13,17,14,14,13,13,16,15,15,12,12,16,14,14,12,12,16,15,15,12,12,17,15,15,12,12,17,14,14,13,13,16,15,15,12,12,16,14,14,12,12,16,15,15,12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12,17,14,14,12,12,17,15,15,12,12,14,14,14,8,8,14,14,14,13,13,14,15,15,14,14,14,14,14,14,14,15,15,15,19,19,15,15,15,14,14,15,15,16,20,19,15,15,15,14,14,15,16,16,15,15,15,15,15,19,19,15,15,15,14,14,15,16,16,19,20,15,15,15,14,14,15,15,15,15,15,15,15,15,19,19,15,15,15,15,15,15,15,16,19,20,15,14,15,14,14,15,15,15,15,15,15,15,15,20,19,15,15,15,21,19,15,16,16,20,20,15,15,14,19,19,15,15,16,20,21,15,15,15,20,19,13,12,12,9,9,14,14,14,12,12,14,13,13,13,13,14,14,14,13,13,15,14,14,20,19,15,14,14,14,13,15,14,14,19,19,15,15,14,13,13,15,14,14,14,14,15,15,15,19,20,15,14,14,13,13,15,14,14,20,19,14,15,14,13,13,15,14,14,14,13,15,15,15,19,20,15,15,14,14,14,15,14,14,21,19,15,15,15,13,13,15,14,14,14,14,14,15,15,20,20,15,15,15,21,20,15,14,14,19,20,15,15,15,20,20,15,14,14,19,20,15,15,15,21,19,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,6,7,7,7,8,8,7,8,8,10,11,11,9,8,8,7,8,8,11,11,11,9,8,8,6,7,7,9,11,11,9,11,11,10,11,11,12,13,13,11,12,12,10,11,11,13,14,14,12,12,12,6,6,6,8,6,6,8,7,7,9,7,7,11,10,10,10,6,6,9,7,7,12,10,10,11,6,7,7,7,7,11,10,10,12,10,10,11,10,10,14,13,13,13,10,10,12,11,11,15,13,13,14,10,10,8,7,7,12,11,11,12,11,11,11,11,11,14,14,14,13,12,12,12,11,11,15,15,15,13,12,12,0,10,10,0,11,11,0,11,11,0,11,11,0,14,14,0,11,11,0,11,11,0,15,15,0,11,11,7,8,8,12,10,10,12,10,10,12,11,11,15,13,13,14,11,11,12,10,10,16,14,14,14,10,10,8,7,7,12,11,11,12,11,11,12,11,11,16,14,14,14,12,12,13,12,12,15,14,14,15,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,12,12,0,14,14,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,0,8,8,0,8,8,0,9,9,0,9,9,0,9,9,0,9,9,0,9,9,0,8,8,0,6,6,0,7,7,0,7,7,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,8,8,0,6,6,0,6,6,0,6,6,0,8,8,0,9,9,0,7,7,0,8,8,0,9,9,0,6,6,0,8,8,0,9,9,0,9,9,0,10,10,0,10,10,0,10,10,0,10,10,0,11,11,0,9,9,0,7,7,0,10,10,0,10,10,0,12,11,0,12,12,0,11,11,0,11,11,0,12,12,0,10,10,0,7,7,0,10,10,0,10,10,0,12,12,0,11,12,0,11,11,0,11,11,0,11,11,0,10,10,0,8,8,0,9,9,0,9,9,0,10,10,0,10,10,0,10,9,0,10,10,0,10,10,0,9,9,0,6,6,0,10,10,0,10,10,0,11,11,0,12,12,0,11,11,0,11,11,0,12,12,0,11,11,0,7,7,0,9,9,0,9,9,0,11,11,0,11,11,0,10,10,0,10,10,0,11,11,0,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,5,5,6,7,7,0,8,8,6,9,9,8,11,11,0,8,8,0,9,9,0,12,12,0,8,8,5,7,7,7,10,10,0,12,12,8,11,11,9,12,12,0,11,12,0,12,12,0,15,15,0,12,12,0,6,6,0,6,6,0,7,7,0,7,7,0,10,10,0,7,7,0,8,8,0,11,11,0,7,7,6,7,7,10,9,9,0,11,10,10,9,9,12,12,12,0,10,10,0,11,11,0,13,13,0,11,11,7,6,6,10,10,10,0,11,11,11,11,11,12,12,12,0,11,11,0,12,12,0,15,15,0,11,11,0,11,11,0,11,11,0,12,12,0,12,12,0,14,14,0,12,12,0,12,12,0,15,15,0,11,11,0,8,8,0,10,10,0,11,11,0,11,11,0,12,12,0,12,12,0,11,11,0,15,15,0,11,11,0,6,6,0,10,10,0,12,12,0,10,10,0,13,13,0,12,12,0,13,13,0,14,14,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,4,4,0,0,0,8,8,0,0,0,9,9,0,0,0,10,10,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,6,6,0,0,0,7,7,0,0,0,8,8,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,7,7,0,0,0,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,8,8,0,0,0,9,9,0,0,0,0,0,0,0,0,0,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,0,0,0,8,8,0,0,0,10,10,0,0,0,9,9,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,9,9,0,0,0,11,10,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,10,10,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,13,13,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,12,12,0,0,0,12,12,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,11,0,0,0,12,12,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,10,10,0,0,0,11,11,0,0,0,12,12,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,10,10,0,0,0,13,13,0,0,0,0,0,0,0,0,14,13,0,0,0,0,0,0,0,0,13,12,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,12,12,0,0,0,12,12,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,12,12,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,12,12,0,0,0,12,12,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,14,14,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,12,13,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,11,11,0,0,0,14,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,11,11,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,0,0,0,12,12,0,0,0,14,14,0,0,0,0,0,0,0,0,14,14,0,0,0,0,0,0,0,0,12,12,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,2,2],"i8",O3,_.GLOBAL_BASE+477020),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,4,12,9,8,12,15,17,4,2,11,6,5,9,13,15,11,7,8,7,7,10,14,13,8,5,7,5,5,8,12,12,8,4,7,4,3,6,11,12,11,8,9,7,6,8,11,12,15,13,14,12,9,7,10,13,16,12,17,12,7,5,8,11,0,0,0,0,255,255,255,255,255,255,255,255,7,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255],"i8",O3,_.GLOBAL_BASE+487288),C3([1,0,0,0,2,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,7,0,0,0,17,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,49,0,0,0,200,161,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,128,7,0,0,0,0,0,0,0,0,0,96,128,7,0,136,128,7,0,0,0,0,0,0,0,0,0,176,128,7,0,216,128,7,0,0,0,0,0,0,0,0,0,0,129,7,0,40,129,7,0,0,0,0,0,0,0,0,0,80,129,7,0,120,129,7,0,40,129,7,0,0,0,0,0,160,129,7,0,88,125,7,0,128,125,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,49,0,0,0,0,128,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,248,127,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,124,7,0,8,125,7,0,0,0,0,0,0,0,0,0,48,125,7,0,88,125,7,0,128,125,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,16,127,7,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,192,127,7,0,0,0,0,0,2,0,0,0,25,0,0,0,216,126,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,248,126,7,0,0,0,0,0,2,0,0,0,9,0,0,0,184,126,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,200,126,7,0,0,0,0,0,1,0,0,0,25,0,0,0,48,126,7,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,80,126,7,0,0,0,0,0,1,0,0,0,25,0,0,0,168,125,7,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,200,125,7,0,0,0,0,0,3,4,4,5,4,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,13,14,16,16,16,16,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,6,6,5,5,5,6,6,5,6,5,6,6,6,6,7,7,7,6,7,6,7,7,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,4,4,7,7,8,8,9,9,10,10,11,11,4,6,5,8,6,9,8,10,9,10,10,11,10,5,5,6,6,8,8,9,9,10,10,10,10,11,7,8,8,9,8,10,9,10,9,11,10,11,10,7,8,8,8,10,9,10,10,10,10,11,10,11,9,10,10,11,11,11,11,12,11,12,11,12,11,9,10,10,11,11,11,11,11,11,11,12,11,12,11,11,11,12,12,12,12,12,12,12,12,12,11,11,12,11,12,12,12,12,12,12,12,12,11,12,12,12,12,12,13,12,13,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13,12,12,12,12,12,13,13,12,13,12,13,12,13,12,12,12,12,13,13,13,13,13,13,12,12,12,12,12,11,12,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,3,3,7,7,9,13,16,3,2,4,6,10,13,17,7,4,4,6,9,12,14,7,6,6,5,7,9,12,10,10,9,6,6,9,12,14,14,13,9,8,10,11,18,18,15,13,11,10,11,0,0,0,0,0,0,0,5,0,0,0,243,0,0,0,192,160,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,184,161,7,0,0,0,0,0,5,0,0,0,243,0,0,0,184,159,7,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,176,160,7,0,0,0,0,0,5,0,0,0,243,0,0,0,176,158,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,168,159,7,0,0,0,0,0,5,0,0,0,243,0,0,0,168,157,7,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,160,158,7,0,0,0,0,0,5,0,0,0,53,12,0,0,88,145,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,144,157,7,0,0,0,0,0,5,0,0,0,53,12,0,0,8,133,7,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,64,145,7,0,0,0,0,0,1,0,0,0,7,0,0,0,224,132,7,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,232,132,7,0,0,0,0,0,5,0,0,0,243,0,0,0,216,131,7,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,208,132,7,0,0,0,0,0,5,0,0,0,243,0,0,0,208,130,7,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,200,131,7,0,0,0,0,0,5,0,0,0,243,0,0,0,200,129,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,192,130,7,0,0,0,0,0,1,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,7,7,7,7,7,7,7,7,7,8,8,9,8,8,8,7,7,8,8,8,9,8,8,9,7,7,6,6,6,9,8,7,9,7,7,9,8,8,10,8,8,10,8,8,10,8,8,10,8,8,10,8,8,7,6,6,9,6,6,9,7,7,9,7,7,10,8,8,9,6,6,9,7,7,10,8,8,9,7,7,7,8,8,11,9,9,11,9,9,11,8,9,12,9,9,12,8,8,11,9,9,12,9,9,12,8,8,8,7,7,10,9,9,10,10,9,10,9,9,11,10,10,11,9,9,11,9,9,11,10,11,11,9,9,10,8,8,11,9,9,10,9,9,11,9,9,11,10,10,11,9,9,11,9,9,11,10,10,11,9,9,9,8,8,11,9,9,12,9,9,11,9,9,12,9,9,12,8,8,12,9,9,12,9,9,12,8,8,9,7,7,11,9,9,11,10,10,11,9,9,11,11,11,11,9,9,11,10,10,11,11,11,11,9,9,10,9,9,11,9,9,11,10,10,11,9,9,11,10,10,11,9,9,11,9,10,11,10,10,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,6,6,7,8,8,7,8,8,7,9,8,10,11,11,9,8,8,7,8,8,11,11,11,9,8,8,6,7,7,10,10,10,10,10,10,10,10,10,14,13,13,12,11,11,10,10,10,14,14,13,12,11,11,6,6,6,8,5,5,8,7,7,9,7,7,11,10,10,9,7,7,9,7,7,12,10,10,10,7,7,7,8,8,12,11,10,12,10,10,11,10,10,15,13,13,13,10,10,11,10,10,17,14,13,13,10,10,7,7,7,12,11,12,12,11,11,12,11,11,16,14,14,13,12,12,12,11,11,17,15,14,14,12,12,10,9,9,13,11,11,13,11,11,13,11,11,17,14,13,14,11,11,12,11,11,16,15,14,14,11,11,7,8,8,12,11,11,12,10,10,12,10,10,15,13,13,14,11,10,12,10,10,16,14,14,14,10,10,8,7,7,12,11,11,12,11,11,12,11,11,17,14,14,14,12,12,12,11,11,16,15,15,14,12,12,10,10,10,13,11,11,13,11,11,13,11,12,16,14,14,14,11,11,13,12,11,16,15,15,14,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,14,14,6,7,7,14,14,7,7,7,14,14,0,13,13,16,16,0,13,13,15,14,7,8,8,15,15,9,10,10,16,16,9,8,8,15,15,0,13,13,17,16,0,13,13,15,16,8,8,8,15,15,12,11,11,16,16,9,8,8,14,14,0,13,13,17,18,0,13,13,15,15,0,14,14,16,16,0,0,0,19,18,0,12,12,16,15,0,15,16,0,20,0,14,14,16,16,0,14,14,17,17,0,0,0,19,18,0,12,12,15,15,0,17,17,0,20,0,14,14,16,16,5,6,7,12,12,9,9,9,14,14,10,10,10,14,14,0,21,21,18,17,0,20,20,18,17,9,10,10,14,14,12,12,12,16,16,12,10,10,14,14,0,20,19,18,17,0,0,20,17,18,11,10,10,14,14,14,13,13,18,18,13,11,11,14,14,0,20,20,17,18,0,21,21,17,17,0,21,0,18,18,0,0,0,0,0,0,20,19,16,17,0,0,0,19,19,0,0,0,18,18,0,21,21,18,18,0,0,0,0,0,0,20,20,16,17,0,0,0,21,21,0,0,0,18,19,6,6,6,13,12,8,6,6,11,11,8,6,6,13,13,0,9,9,11,11,0,11,10,14,14,9,7,7,13,13,11,9,9,13,13,10,6,6,13,13,0,10,10,14,15,0,10,10,13,13,9,7,7,13,13,13,10,9,13,13,10,6,6,13,13,0,10,10,15,14,0,10,10,13,13,0,11,11,15,15,0,19,20,17,17,0,9,9,13,13,0,13,13,20,20,0,11,11,13,13,0,11,11,15,15,0,19,19,17,17,0,10,10,13,13,0,15,15,20,20,0,12,12,13,13,0,10,10,12,12,0,11,11,15,15,0,11,11,15,15,0,15,15,20,0,0,16,16,0,21,0,11,11,15,15,0,14,14,18,17,0,11,11,15,15,0,15,16,19,20,0,16,16,21,21,0,12,12,15,15,0,15,14,18,18,0,11,11,16,16,0,15,15,21,21,0,16,15,0,0,0,16,16,21,0,0,0,0,0,0,0,14,14,20,20,0,18,18,0,0,0,16,17,21,0,0,16,16,21,21,0,0,0,0,0,0,15,15,21,21,0,20,19,0,21,0,17,17,0,0,0,10,10,12,11,0,10,10,10,11,0,11,11,12,12,0,11,11,9,9,0,13,13,11,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,12,12,13,13,0,12,12,12,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,13,13,14,14,0,12,12,12,12,0,14,14,14,13,0,19,20,15,15,0,12,11,12,12,0,15,15,21,20,0,13,13,11,11,0,13,13,13,13,0,19,0,15,15,0,12,12,12,12,0,17,16,19,0,0,13,13,12,12,7,7,7,16,16,11,9,9,15,15,12,9,9,16,16,0,13,13,15,14,0,14,14,17,16,10,9,9,16,16,14,11,11,17,16,12,9,8,15,15,0,13,13,18,18,0,13,13,15,15,12,10,10,18,17,15,12,12,17,17,14,9,9,16,16,0,13,13,18,19,0,14,13,17,16,0,14,14,18,18,0,0,0,20,21,0,12,12,16,16,0,16,16,20,21,0,14,14,17,16,0,14,14,18,19,0,0,0,19,21,0,13,13,17,17,0,17,17,0,21,0,15,15,16,16,8,7,7,14,14,11,10,10,15,15,12,10,10,15,15,0,20,20,18,18,0,0,0,17,17,11,10,10,16,16,14,12,12,18,17,14,11,11,15,15,0,20,21,18,18,0,0,19,18,17,12,10,10,16,16,17,14,14,19,19,14,11,11,15,15,0,21,21,19,19,0,21,20,19,18,0,21,0,18,19,0,0,0,0,0,0,20,20,18,17,0,21,0,0,0,0,0,0,19,18,0,0,0,18,19,0,0,0,0,0,0,0,21,17,18,0,0,0,0,21,0,0,21,18,19,11,9,9,14,14,13,10,10,13,13,13,11,11,15,15,0,13,13,12,12,0,15,15,16,16,13,10,10,15,15,16,12,12,15,15,15,10,10,15,15,0,14,13,16,15,0,14,13,15,15,13,10,10,15,15,18,14,14,15,15,15,10,10,14,15,0,14,14,16,16,0,14,14,16,15,0,15,15,17,16,0,21,0,18,18,0,12,13,15,15,0,16,16,0,0,0,14,14,15,15,0,15,15,16,16,0,21,20,18,18,0,13,13,15,15,0,19,18,0,0,0,15,15,15,15,0,11,11,13,13,0,12,12,16,16,0,12,12,16,16,0,15,16,20,0,0,16,17,0,0,0,12,12,16,16,0,14,14,18,18,0,11,11,16,17,0,15,15,20,0,0,16,16,0,0,0,12,12,16,16,0,15,15,19,19,0,11,11,17,17,0,16,16,21,0,0,16,16,0,0,0,17,17,20,20,0,0,0,0,0,0,15,15,20,0,0,17,18,0,0,0,17,17,0,0,0,16,16,0,21,0,0,0,0,0,0,15,15,21,0,0,19,18,0,0,0,18,17,0,0,0,11,11,14,14,0,11,11,15,15,0,12,12,16,16,0,13,13,14,14,0,14,14,17,17,0,12,12,16,16,0,14,14,16,16,0,11,11,16,15,0,13,13,16,17,0,13,13,16,16,0,12,12,15,16,0,15,14,16,16,0,11,11,15,15,0,14,14,17,17,0,13,13,16,16,0,15,14,18,18,0,21,0,19,19,0,13,13,15,15,0,16,16,20,20,0,14,14,16,15,0,14,14,17,17,0,21,0,20,18,0,13,13,15,15,0,17,17,0,0,0,14,14,16,15,8,8,8,16,16,12,9,9,16,16,13,9,9,16,16,0,14,14,18,17,0,14,14,16,17,12,10,10,18,17,14,11,11,18,18,14,9,9,16,16,0,13,13,18,18,0,13,13,17,16,12,9,9,16,17,17,13,13,16,16,14,9,9,15,15,0,14,14,20,20,0,13,13,15,15,0,15,14,18,18,0,0,0,20,21,0,12,13,16,17,0,16,16,20,21,0,14,14,16,17,0,14,14,18,17,0,0,0,20,21,0,13,13,16,16,0,19,17,0,21,0,14,15,16,16,8,7,7,14,13,12,10,10,15,15,13,10,10,15,15,0,21,21,18,19,0,20,21,18,18,12,10,10,16,15,15,12,12,17,17,14,11,11,15,15,0,21,21,19,18,0,0,21,17,18,13,11,11,15,15,16,13,13,18,19,15,11,11,15,14,0,21,0,19,19,0,0,21,18,18,0,0,21,19,19,0,0,0,0,0,0,20,19,17,17,0,0,0,21,0,0,21,0,18,19,0,0,20,20,19,0,0,0,0,0,0,21,20,18,17,0,0,0,0,20,0,0,0,18,19,0,10,10,15,14,0,11,11,14,14,0,11,11,15,16,0,14,14,15,15,0,15,15,16,16,0,11,11,16,16,0,14,13,16,16,0,11,11,15,15,0,14,14,16,16,0,14,14,15,15,0,11,11,15,15,0,13,13,15,15,0,11,11,15,15,0,15,15,18,17,0,14,14,15,15,0,15,16,18,18,0,0,0,20,20,0,14,13,16,15,0,17,17,21,0,0,15,15,15,15,0,16,15,17,17,0,0,0,19,19,0,13,13,15,15,0,20,19,0,0,0,15,15,15,15,0,11,11,13,13,0,12,12,16,16,0,12,12,16,16,0,15,15,21,21,0,17,16,0,0,0,12,12,16,16,0,14,14,17,17,0,11,11,16,16,0,15,15,0,0,0,16,16,21,0,0,12,12,17,16,0,14,15,20,20,0,11,11,16,16,0,15,15,0,20,0,16,16,0,21,0,16,17,21,0,0,0,0,0,0,0,15,15,0,21,0,18,18,0,0,0,17,16,0,0,0,17,17,21,0,0,0,0,0,0,0,15,15,0,20,0,19,20,21,0,0,17,18,0,0,0,12,12,15,15,0,12,12,15,15,0,12,12,16,16,0,13,13,15,15,0,15,15,17,17,0,13,12,17,16,0,14,14,17,16,0,11,11,16,16,0,14,14,17,17,0,14,14,17,17,0,12,12,16,16,0,15,15,17,17,0,11,11,16,16,0,14,14,17,17,0,14,14,16,16,0,15,15,18,17,0,0,0,19,0,0,13,13,16,16,0,16,16,0,21,0,14,14,16,16,0,15,15,18,17,0,0,0,19,19,0,13,13,16,16,0,18,17,0,21,0,14,15,16,16,0,11,11,16,16,0,13,13,17,17,0,13,13,17,17,0,16,16,16,17,0,16,16,18,18,0,12,12,17,17,0,16,15,18,17,0,12,12,16,16,0,16,15,19,19,0,16,15,17,17,0,12,12,17,18,0,16,16,18,18,0,12,12,16,16,0,16,16,19,19,0,15,16,17,17,0,15,16,18,18,0,0,0,20,20,0,13,13,16,16,0,18,18,21,20,0,15,15,16,16,0,16,16,19,18,0,0,0,19,20,0,14,14,17,17,0,19,19,0,21,0,15,16,16,16,0,9,9,14,14,0,13,13,15,15,0,14,14,15,15,0,0,21,19,19,0,0,21,18,18,0,12,12,15,15,0,15,15,18,18,0,14,13,15,15,0,21,21,18,19,0,21,20,18,18,0,13,13,16,16,0,17,17,18,19,0,14,14,15,15,0,0,21,19,19,0,21,20,18,19,0,20,20,19,19,0,0,0,0,0,0,19,20,17,17,0,0,0,21,21,0,21,0,18,20,0,21,0,18,21,0,0,0,0,0,0,21,21,19,18,0,0,0,0,0,0,0,0,19,19,0,18,18,15,15,0,18,20,17,16,0,20,0,17,17,0,21,0,17,17,0,21,20,19,20,0,19,19,16,16,0,21,21,17,18,0,19,19,17,17,0,20,21,21,21,0,20,20,18,18,0,19,19,16,16,0,0,21,18,19,0,18,19,16,17,0,21,21,19,20,0,21,19,18,18,0,21,20,19,21,0,0,0,20,21,0,19,19,17,16,0,0,0,0,0,0,21,20,17,17,0,20,21,19,18,0,0,0,0,21,0,19,18,16,17,0,0,0,0,0,0,20,20,17,17,0,11,11,14,14,0,13,13,16,16,0,13,13,16,16,0,17,17,21,0,0,17,18,0,0,0,12,12,16,16,0,15,15,17,18,0,12,12,16,16,0,16,16,0,20,0,17,17,0,21,0,12,12,17,17,0,16,16,19,20,0,12,12,17,17,0,17,17,0,20,0,17,17,0,0,0,17,17,21,0,0,0,0,0,0,0,15,15,0,20,0,19,19,0,0,0,18,18,0,0,0,17,17,0,0,0,0,0,0,0,0,15,15,0,0,0,20,19,0,0,0,19,18,0,0,0,14,14,21,19,0,16,16,20,21,0,16,16,20,20,0,17,17,20,0,0,17,17,20,20,0,15,15,20,20,0,19,18,20,0,0,15,15,20,20,0,17,18,21,20,0,17,17,20,21,0,15,15,19,19,0,19,18,21,21,0,15,15,19,20,0,17,18,0,0,0,17,17,20,20,0,17,18,20,21,0,0,0,0,0,0,15,15,20,20,0,19,19,0,0,0,17,17,19,21,0,17,17,0,21,0,0,0,0,21,0,15,15,20,19,0,0,20,0,0,0,17,17,21,20,0,12,12,16,16,0,14,14,17,17,0,13,13,17,17,0,16,16,17,18,0,17,16,18,18,0,13,13,18,17,0,15,16,19,18,0,13,13,16,16,0,16,16,19,19,0,16,16,17,17,0,13,12,17,17,0,16,16,18,17,0,12,12,16,16,0,17,17,19,18,0,16,15,16,16,0,16,17,18,19,0,0,0,20,20,0,14,14,17,16,0,18,18,21,0,0,16,16,16,16,0,16,16,18,17,0,0,21,21,21,0,14,14,16,16,0,21,20,21,0,0,16,16,16,16,0,10,10,14,14,0,14,14,15,16,0,14,14,15,15,0,0,21,18,18,0,0,21,18,19,0,13,13,16,16,0,16,16,18,17,0,14,14,15,15,0,20,0,18,18,0,21,0,18,17,0,13,13,16,15,0,17,17,19,19,0,14,14,15,15,0,20,20,18,19,0,0,0,18,17,0,0,21,18,18,0,0,0,0,0,0,20,21,18,17,0,0,0,0,0,0,0,0,19,19,0,0,21,18,18,0,0,0,0,0,0,21,0,18,17,0,0,0,0,21,0,0,0,19,20,0,19,19,16,16,0,0,21,18,17,0,21,0,18,18,0,20,0,19,18,0,21,20,19,19,0,21,19,17,18,0,0,21,19,19,0,21,19,18,18,0,21,0,20,18,0,0,21,18,18,0,20,21,17,17,0,21,0,18,18,0,21,19,17,17,0,21,0,0,20,0,0,20,17,18,0,0,0,19,20,0,0,0,20,19,0,19,21,17,18,0,21,0,0,0,0,21,21,18,17,0,0,21,18,18,0,0,0,0,21,0,20,19,16,17,0,0,0,0,0,0,21,20,17,17,0,11,11,13,13,0,13,13,16,16,0,13,13,16,16,0,17,17,0,21,0,18,19,21,0,0,12,12,16,16,0,15,15,19,18,0,13,13,16,16,0,16,17,21,19,0,17,17,21,21,0,13,13,16,16,0,16,16,20,18,0,13,13,16,16,0,17,17,0,0,0,18,18,0,0,0,18,17,0,20,0,0,0,0,0,0,15,15,21,21,0,19,18,0,0,0,17,17,21,21,0,17,17,0,0,0,0,0,0,0,0,15,15,20,21,0,20,20,0,0,0,19,19,0,0,0,14,15,21,19,0,16,16,0,21,0,17,16,21,21,0,17,18,21,20,0,18,18,0,21,0,16,16,0,20,0,19,19,0,0,0,16,15,0,20,0,18,18,0,0,0,17,17,0,21,0,16,16,20,20,0,20,19,0,0,0,15,16,21,22,0,18,18,0,0,0,18,17,0,0,0,18,18,0,0,0,0,0,0,0,0,16,16,21,20,0,19,20,0,0,0,18,17,21,0,0,17,18,0,0,0,0,0,0,0,0,16,16,0,20,0,0,20,0,0,0,18,18,22,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,3,4,7,7,10,12,12,12,12,10,11,11,13,13,11,12,12,11,11,12,12,12,12,12,11,13,13,13,13,12,12,12,13,14,12,13,13,13,13,12,13,13,13,13,12,13,13,13,13,11,13,13,13,13,12,12,12,14,14,12,13,13,12,12,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,14,14,12,13,13,12,12,12,13,13,13,13,12,13,13,12,12,12,13,13,13,13,12,12,12,14,14,12,13,13,12,12,12,13,13,13,13,12,13,13,12,12,10,10,11,10,10,11,11,11,11,11,11,9,9,10,10,12,11,11,10,10,12,10,10,10,10,13,12,12,12,12,13,11,11,11,11,13,12,12,12,12,13,11,11,11,11,13,12,12,12,12,13,12,12,12,12,13,11,11,11,11,13,12,12,12,12,13,11,11,11,11,13,12,12,11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11,11,11,11,10,10,11,11,11,9,9,11,12,12,11,11,12,12,12,9,9,13,13,13,10,10,13,13,13,11,11,13,13,13,14,14,13,13,13,11,10,13,13,14,12,12,13,13,13,11,11,13,13,13,11,11,13,13,13,14,14,13,13,13,10,10,13,13,13,11,11,13,13,13,10,10,13,14,13,11,11,13,14,14,14,14,13,13,13,10,10,13,14,14,11,11,13,13,13,10,10,13,14,14,11,11,13,13,13,14,14,14,13,13,10,10,13,14,14,11,11,13,13,13,10,10,14,12,12,9,9,14,12,12,9,9,14,11,11,9,9,14,12,12,8,8,14,11,11,7,7,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,9,9,15,12,12,9,9,14,13,13,9,9,15,13,13,10,10,15,12,12,10,10,15,13,13,9,9,15,12,12,9,9,15,13,13,9,9,13,12,12,9,9,13,13,13,8,8,13,13,13,9,9,13,13,13,7,7,14,13,13,8,8,14,14,14,10,10,15,14,14,11,11,14,14,14,9,9,15,14,14,10,10,15,14,14,9,9,14,14,14,10,10,15,14,14,11,11,15,14,14,9,9,14,14,14,10,10,14,14,14,9,9,15,14,15,10,10,15,14,14,11,11,14,14,14,9,9,14,14,14,9,9,14,14,14,8,8,15,14,14,10,10,15,14,14,11,11,14,14,14,9,9,15,14,14,9,9,14,14,14,8,8,12,12,12,13,13,16,16,16,11,11,17,16,16,12,12,17,16,16,11,11,17,16,16,11,11,17,17,16,13,13,17,16,16,13,13,18,17,16,12,12,17,16,16,13,13,17,16,17,12,12,18,17,17,13,13,17,16,16,14,14,18,17,17,12,12,18,16,16,13,13,17,17,17,13,12,17,17,17,13,13,17,16,16,13,13,18,17,17,12,12,17,16,16,13,12,17,17,17,12,12,18,17,17,13,13,18,16,16,14,14,18,17,17,12,12,17,17,17,13,13,18,17,18,12,12,13,14,14,10,10,16,14,14,13,13,17,15,15,14,14,17,14,14,12,13,16,14,14,13,13,17,15,15,14,14,16,16,16,15,15,17,15,15,14,14,17,16,16,14,15,17,15,15,14,14,17,15,16,14,14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,14,17,15,15,14,14,16,16,16,15,15,17,15,15,13,13,17,15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,16,16,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,13,13,11,11,10,10,16,14,14,13,12,16,14,14,13,13,16,15,14,12,12,16,14,14,12,12,16,15,15,14,14,16,14,14,14,14,17,15,15,13,13,16,15,15,14,14,17,15,15,13,14,17,15,15,14,14,17,15,14,14,14,17,15,15,13,13,17,15,15,14,14,17,15,15,13,13,17,15,15,14,14,17,14,14,14,14,17,15,15,13,13,17,15,15,13,13,17,15,15,13,13,17,15,15,14,14,17,15,15,14,14,17,15,15,13,13,17,15,15,13,13,17,15,15,13,13,14,14,15,8,8,14,14,14,19,19,14,15,15,18,19,14,14,14,19,18,14,14,14,19,19,15,15,15,19,18,15,16,16,19,19,15,15,15,19,19,15,16,16,20,19,15,15,15,19,19,15,15,15,19,19,16,16,16,20,19,15,15,15,19,18,15,16,16,20,19,15,15,15,18,18,15,15,15,19,20,15,16,16,19,19,15,15,15,20,19,15,15,15,20,19,15,15,15,19,18,15,15,15,19,19,15,16,16,19,20,15,15,15,19,19,15,15,15,19,20,15,15,15,19,19,14,12,12,9,9,14,14,14,19,19,14,14,14,19,19,14,14,15,20,19,15,14,14,18,19,15,15,15,19,19,15,15,14,20,19,15,15,15,20,19,15,15,14,20,19,15,15,15,20,19,15,15,15,19,20,15,14,14,19,20,15,15,15,20,20,15,14,14,20,19,15,15,15,19,19,15,15,15,19,19,15,14,14,19,19,15,15,15,19,20,15,15,15,20,20,15,15,15,19,19,15,15,15,20,19,16,14,14,19,19,15,15,15,20,19,15,14,15,20,19,14,15,15,20,19,12,12,12,13,13,16,16,16,11,11,16,16,16,12,12,17,16,16,11,11,17,15,16,11,11,17,17,17,13,13,18,16,17,13,13,18,17,17,13,12,17,16,17,13,13,17,17,17,13,13,16,16,16,12,12,17,16,16,13,13,17,16,16,12,12,17,16,16,12,13,17,17,17,12,12,17,17,17,13,13,18,16,16,13,13,18,17,17,12,12,18,17,17,12,12,17,17,17,12,12,17,17,17,12,12,17,16,16,13,13,17,17,17,12,12,17,16,16,12,12,17,17,17,12,12,13,14,14,9,9,16,14,14,13,13,16,15,15,14,14,17,14,14,13,13,16,14,14,13,13,17,15,15,15,15,16,16,16,15,15,17,15,15,14,14,17,15,15,15,15,17,15,15,14,14,17,15,15,14,14,16,16,16,15,15,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,16,16,16,15,15,18,15,15,14,13,17,15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,16,16,15,15,17,15,15,14,13,17,15,15,14,14,17,15,15,13,13,13,11,11,11,11,16,14,14,12,12,16,14,14,13,13,16,15,14,12,12,17,14,14,12,12,17,15,15,13,13,17,14,14,14,14,17,15,15,13,13,17,14,15,14,13,17,15,15,13,13,16,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16,14,14,13,13,16,15,15,13,13,17,15,15,13,13,17,14,14,14,14,17,15,15,12,12,17,15,15,13,13,17,15,15,12,12,16,15,15,13,13,17,14,14,13,14,17,15,15,12,12,17,14,14,13,13,17,15,15,12,12,14,14,14,8,8,14,14,14,18,18,14,15,15,19,19,14,14,14,19,19,14,15,14,18,19,15,15,15,18,19,15,16,16,20,20,15,15,15,19,20,15,16,16,19,20,15,15,15,19,20,15,15,16,19,19,15,16,16,20,20,15,15,15,20,19,15,16,16,20,19,15,15,15,19,20,15,15,15,19,19,15,16,16,20,19,15,15,15,19,19,15,16,15,20,19,15,15,15,19,19,15,15,15,19,20,15,16,16,20,20,15,15,15,19,19,15,15,15,20,20,15,15,15,19,19,14,12,12,9,9,14,14,14,18,18,14,14,14,19,20,14,14,14,18,18,14,14,14,18,19,15,15,15,19,20,15,14,14,19,19,15,15,15,19,19,15,14,15,19,19,15,15,15,18,20,15,15,15,19,19,15,14,14,19,19,15,15,15,20,19,15,15,14,20,20,15,15,15,19,19,15,15,15,19,19,15,14,14,19,19,15,15,15,19,19,15,14,14,19,20,14,15,15,19,19,15,15,15,19,19,15,14,14,20,19,15,15,15,19,19,15,14,14,20,19,15,15,15,19,19,13,12,12,13,13,17,17,16,11,11,16,16,16,12,12,17,17,16,11,11,17,16,16,11,11,17,17,17,13,13,17,16,16,13,13,18,17,17,12,12,17,16,16,13,13,18,17,17,12,12,18,17,17,13,13,18,16,17,13,13,17,17,17,12,12,18,17,17,13,13,18,17,17,12,12,17,16,17,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16,12,12,17,17,17,11,11,17,17,17,12,12,18,16,16,13,13,18,17,17,12,11,17,16,16,12,12,18,17,17,11,11,13,14,14,9,9,16,14,14,13,13,16,15,15,14,14,17,14,14,12,12,16,14,14,13,13,17,15,15,14,14,17,16,16,15,16,18,15,15,14,14,17,15,15,14,14,17,15,15,14,14,18,15,15,14,14,16,16,16,15,16,18,15,15,14,14,17,16,15,14,14,18,15,15,14,14,17,15,15,14,14,17,16,16,15,15,18,14,15,13,13,17,15,15,14,14,18,15,15,13,13,17,15,15,14,14,17,16,15,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,13,13,11,11,10,10,16,14,14,12,12,16,14,14,12,12,17,14,15,11,11,17,14,14,11,11,17,15,15,13,13,17,14,14,14,13,17,15,15,13,13,16,15,15,13,13,17,15,15,13,13,17,15,15,13,13,17,14,14,14,14,17,15,15,13,13,17,14,15,13,13,16,15,15,13,13,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12,16,14,14,12,12,17,15,15,12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12,17,14,14,12,12,17,15,15,12,12,13,15,14,8,8,14,14,14,19,19,14,15,15,18,19,14,14,14,18,19,14,15,14,19,19,15,16,15,19,19,15,16,16,19,20,15,15,15,19,19,15,16,16,19,19,15,16,16,19,19,15,15,15,19,19,15,16,16,20,20,15,15,15,19,19,15,15,15,19,19,15,15,15,19,19,15,15,15,19,19,15,16,16,20,19,15,15,15,19,19,15,15,15,19,19,15,15,15,19,19,15,16,15,19,19,15,16,16,21,19,15,15,15,20,20,15,15,15,20,21,15,15,15,19,20,14,12,12,8,8,14,14,14,19,19,14,13,13,19,19,14,14,14,19,19,14,13,14,19,19,15,15,15,20,20,15,14,14,20,19,15,15,15,19,20,15,14,14,19,20,15,15,15,20,19,15,15,15,19,20,15,14,14,20,20,15,15,15,20,19,15,14,14,19,19,15,15,15,19,19,15,15,15,20,19,15,14,14,21,19,15,15,15,20,21,15,14,14,21,19,15,15,15,19,19,15,15,15,20,20,15,14,14,19,21,15,15,15,19,19,15,14,14,19,20,15,15,15,19,19,13,12,12,13,13,17,16,16,11,11,17,16,15,12,12,18,16,16,11,11,17,16,16,11,11,18,17,17,13,13,18,16,16,13,13,17,17,17,12,13,18,17,16,13,13,18,17,17,13,13,17,17,17,13,13,17,16,16,13,13,18,16,17,12,12,17,16,16,13,12,17,17,17,12,12,18,17,17,13,12,18,16,16,13,13,18,17,17,12,12,17,16,16,12,12,17,17,17,11,11,17,16,16,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16,12,12,17,17,17,11,11,13,14,14,9,9,16,14,14,13,13,16,15,15,14,14,17,14,14,12,12,16,14,14,13,13,17,15,15,14,14,17,15,16,15,15,17,15,15,14,14,17,15,16,14,15,18,15,15,14,14,17,15,15,14,14,16,16,16,15,15,18,15,15,13,14,17,15,15,14,14,18,15,15,14,14,17,15,15,14,14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14,18,15,15,13,13,13,11,11,10,10,16,14,14,12,12,16,14,14,13,13,17,14,14,11,11,17,14,14,12,12,17,15,15,14,14,17,14,14,14,14,17,15,15,13,13,17,15,14,13,13,16,15,15,13,13,16,15,15,13,13,17,14,14,14,14,17,15,15,13,13,17,14,14,13,13,16,15,15,13,13,16,15,15,13,13,17,14,14,13,13,17,15,15,12,12,17,14,14,12,12,16,15,15,12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12,17,14,14,12,12,16,15,15,12,12,14,14,14,8,8,14,14,14,18,18,14,15,15,19,18,14,14,14,18,18,14,14,14,18,19,15,16,15,19,19,15,17,16,20,20,15,15,15,19,19,15,16,16,19,19,15,15,15,19,19,15,16,15,18,19,15,16,16,20,20,15,15,15,19,19,15,16,16,19,20,15,15,15,19,19,15,15,16,19,19,15,16,16,20,20,15,15,15,19,19,15,15,15,19,20,15,15,15,19,19,15,15,15,19,19,15,16,16,20,20,15,15,15,19,20,15,16,16,20,20,15,15,15,19,19,13,12,12,8,8,14,14,14,19,20,14,14,14,19,19,14,14,14,18,19,14,14,14,19,20,15,15,15,19,20,15,14,14,21,20,15,15,15,20,20,15,15,14,19,19,15,15,15,19,19,15,15,15,19,19,15,14,14,19,20,15,15,15,19,20,15,14,14,19,19,15,15,15,19,19,15,15,15,19,19,16,14,14,19,19,15,15,15,20,20,15,14,14,21,19,15,15,15,19,19,15,15,15,19,20,16,14,14,19,20,15,15,15,19,19,15,14,14,19,19,15,15,15,20,19,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,6,7,7,7,8,8,7,8,8,10,11,11,9,8,8,7,9,9,11,12,12,9,8,8,6,7,7,9,11,11,10,11,11,10,11,11,13,13,13,11,12,12,10,11,11,13,14,14,12,12,12,6,6,6,8,6,6,8,6,6,9,7,7,12,10,10,10,6,6,9,7,7,12,10,10,11,7,6,7,8,8,12,10,10,12,10,10,11,10,10,15,13,13,13,10,10,12,11,11,15,13,13,14,11,11,8,7,7,12,11,11,12,11,11,11,11,11,14,14,14,13,12,12,12,11,11,16,15,15,14,12,12,0,10,10,0,11,11,0,12,12,0,11,11,0,14,14,0,11,11,0,11,11,0,15,15,0,11,11,7,8,8,13,10,10,12,10,10,12,11,11,15,13,13,14,11,11,12,10,10,16,14,14,14,10,10,8,7,7,12,11,11,13,11,11,12,11,11,15,14,14,14,12,12,13,12,12,15,14,14,15,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,12,12,0,15,14,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,0,8,8,0,8,8,0,10,10,0,9,9,0,10,10,0,10,10,0,9,9,0,10,10,0,7,7,0,7,7,0,7,7,0,8,8,0,8,8,0,8,8,0,9,9,0,8,8,0,8,8,0,7,7,0,8,8,0,8,8,0,10,10,0,9,9,0,9,9,0,10,10,0,9,9,0,10,10,0,8,8,0,11,11,0,11,11,0,12,12,0,11,11,0,12,12,0,12,12,0,12,12,0,12,12,0,8,8,0,11,11,0,11,11,0,13,12,0,12,12,0,13,12,0,13,13,0,12,12,0,13,13,0,7,7,0,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,0,11,11,0,11,11,0,13,12,0,12,12,0,12,12,0,12,12,0,11,11,0,12,12,0,8,8,0,12,12,0,12,12,0,13,13,0,12,12,0,13,13,0,13,13,0,12,13,0,13,13,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,4,4,0,7,7,0,8,8,0,9,9,0,12,12,0,8,8,0,9,9,0,12,12,0,8,8,0,6,6,0,11,11,0,11,11,0,12,12,0,14,14,0,11,11,0,12,12,0,14,14,0,11,11,0,6,6,0,6,5,0,7,6,0,7,7,0,10,10,0,6,6,0,7,7,0,10,10,0,7,7,0,7,7,0,10,10,0,11,11,0,11,11,0,14,14,0,10,10,0,12,12,0,14,14,0,12,12,0,6,6,0,11,11,0,11,11,0,12,12,0,14,14,0,11,11,0,12,12,0,15,15,0,11,11,0,0,0,0,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,0,11,11,0,11,11,0,12,12,0,15,15,0,12,12,0,11,11,0,15,15,0,11,11,0,6,6,0,11,11,0,12,12,0,12,12,0,15,15,0,11,11,0,12,12,0,14,14,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,2,2],"i8",O3,_.GLOBAL_BASE+489700),C3([1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,5,7,8,10,13,14,4,2,4,6,8,11,12,7,4,3,5,8,12,14,8,5,4,4,8,12,12,9,7,7,7,9,10,11,13,11,11,9,7,8,10,13,11,10,6,5,7,9,0,0,0,0,0,0,0,2,0,0,0,49,0,0,0,224,200,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,167,7,0,0,0,0,0,0,0,0,0,120,167,7,0,160,167,7,0,0,0,0,0,0,0,0,0,200,167,7,0,240,167,7,0,0,0,0,0,0,0,0,0,24,168,7,0,64,168,7,0,0,0,0,0,0,0,0,0,104,168,7,0,144,168,7,0,64,168,7,0,0,0,0,0,184,168,7,0,112,164,7,0,152,164,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,49,0,0,0,24,167,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,16,167,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,163,7,0,32,164,7,0,0,0,0,0,0,0,0,0,72,164,7,0,112,164,7,0,152,164,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,40,166,7,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,216,166,7,0,0,0,0,0,2,0,0,0,25,0,0,0,240,165,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,16,166,7,0,0,0,0,0,2,0,0,0,9,0,0,0,208,165,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,224,165,7,0,0,0,0,0,1,0,0,0,25,0,0,0,72,165,7,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,104,165,7,0,0,0,0,0,1,0,0,0,25,0,0,0,192,164,7,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,224,164,7,0,0,0,0,0,3,4,4,5,4,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,12,14,14,14,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,6,6,5,5,5,7,5,5,5,5,6,7,7,6,7,7,7,6,7,7,7,7,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,3,4,7,7,8,8,9,9,9,10,10,10,5,6,5,8,7,9,8,9,9,10,9,11,10,5,5,7,7,8,8,9,9,9,9,10,10,11,8,9,8,10,9,10,9,10,9,11,10,11,10,8,8,9,9,10,9,10,9,11,10,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,12,11,11,11,11,11,11,10,12,12,12,12,12,12,12,11,12,12,12,11,11,11,12,12,12,12,12,12,12,11,12,11,12,11,11,13,12,12,12,13,12,12,12,12,11,12,11,11,13,13,13,12,12,12,12,12,12,11,11,11,10,13,13,13,12,13,12,13,11,13,10,12,11,11,13,13,12,13,12,12,12,12,11,12,11,11,11,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,2,3,6,7,10,14,16,3,2,5,7,11,14,17,6,5,5,7,10,12,14,7,7,6,6,7,9,13,10,11,9,6,6,9,11,15,15,13,10,9,10,12,18,18,16,14,12,13,16,0,0,0,0,0,0,0,5,0,0,0,243,0,0,0,216,199,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,208,200,7,0,0,0,0,0,5,0,0,0,243,0,0,0,208,198,7,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,200,199,7,0,0,0,0,0,5,0,0,0,243,0,0,0,200,197,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,192,198,7,0,0,0,0,0,5,0,0,0,243,0,0,0,192,196,7,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,184,197,7,0,0,0,0,0,5,0,0,0,53,12,0,0,112,184,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,168,196,7,0,0,0,0,0,5,0,0,0,53,12,0,0,32,172,7,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,88,184,7,0,0,0,0,0,1,0,0,0,7,0,0,0,248,171,7,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,0,172,7,0,0,0,0,0,5,0,0,0,243,0,0,0,240,170,7,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,232,171,7,0,0,0,0,0,5,0,0,0,243,0,0,0,232,169,7,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,224,170,7,0,0,0,0,0,5,0,0,0,243,0,0,0,224,168,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,216,169,7,0,0,0,0,0,1,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,7,7,7,8,8,7,7,7,7,8,8,8,8,9,8,7,7,8,8,8,9,9,9,9,7,7,6,6,6,9,7,7,9,7,7,9,8,8,10,8,8,10,8,8,10,8,8,10,8,8,10,8,8,7,6,6,9,6,6,9,6,6,9,7,7,10,8,8,9,6,6,9,7,7,10,8,8,9,7,7,7,8,8,11,9,9,11,9,9,11,9,9,12,9,9,12,8,8,12,9,9,12,10,9,12,8,8,8,7,7,10,9,9,11,9,9,11,9,9,11,11,10,11,9,9,11,10,9,11,10,11,11,9,9,10,8,8,11,9,9,11,9,9,11,9,9,11,10,10,11,9,9,11,9,9,11,10,10,11,9,9,9,8,8,12,9,9,12,9,9,11,9,9,12,9,9,12,8,8,12,9,9,12,9,9,12,8,8,9,7,7,11,9,10,11,10,9,11,9,9,11,11,11,11,9,9,11,10,10,11,11,11,11,9,9,10,9,9,11,9,9,11,10,10,11,10,9,11,10,10,11,9,9,11,10,10,11,10,11,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,6,6,6,8,8,7,8,8,7,9,8,10,11,11,9,8,8,7,8,8,11,11,11,9,8,8,6,7,7,10,10,10,10,10,10,10,10,10,14,13,13,12,11,11,10,10,10,14,14,13,13,11,11,6,6,6,8,5,5,8,7,7,8,7,7,11,9,9,9,7,7,8,7,7,12,10,10,10,7,7,7,8,8,12,11,11,12,10,10,11,10,10,14,13,13,13,10,10,11,10,11,16,14,14,13,10,10,7,8,7,12,12,12,12,11,11,12,11,11,16,14,15,13,12,12,11,11,11,17,15,14,14,13,13,10,9,9,13,11,11,13,11,11,12,11,11,16,14,13,14,11,11,12,11,11,16,15,14,14,11,11,7,8,8,12,11,11,12,10,10,12,10,10,16,14,13,13,11,11,12,10,10,16,14,14,13,10,10,8,8,8,12,12,12,12,11,11,12,11,11,16,14,15,14,12,12,12,11,11,16,15,15,14,12,12,10,10,10,13,11,11,13,11,11,12,12,12,16,14,14,14,11,11,12,11,11,17,14,15,14,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,2,6,6,14,14,6,8,8,14,14,7,7,7,14,14,0,13,13,15,16,0,13,13,15,15,7,8,8,15,15,9,10,10,16,16,9,8,8,14,15,0,13,13,17,17,0,13,13,16,16,8,8,8,15,15,12,11,11,16,16,9,8,8,14,14,0,13,13,17,17,0,13,13,15,15,0,14,14,16,16,0,0,0,18,19,0,12,12,16,15,0,16,16,0,20,0,14,14,16,16,0,14,14,17,17,0,0,0,19,19,0,12,12,15,15,0,18,17,21,21,0,14,14,16,16,5,7,7,12,13,9,10,9,14,14,11,10,10,14,14,0,0,0,18,17,0,20,21,18,18,9,10,10,14,14,12,12,12,17,16,12,10,10,14,14,0,20,20,18,17,0,21,21,17,17,11,10,10,14,14,15,13,13,18,18,13,11,11,14,14,0,20,0,18,18,0,20,21,18,17,0,21,0,18,19,0,0,0,0,21,0,21,20,16,17,0,0,0,21,21,0,0,0,20,18,0,20,0,17,18,0,0,0,0,0,0,0,20,16,17,0,0,0,20,0,0,0,0,18,18,6,6,6,13,13,8,5,5,11,11,9,6,6,13,13,0,9,9,12,12,0,10,10,14,14,9,7,7,13,13,12,9,9,13,13,10,6,6,13,13,0,10,10,14,14,0,10,10,13,13,9,7,7,13,13,13,10,10,13,13,11,6,6,13,13,0,10,10,15,15,0,10,10,13,13,0,12,11,15,15,0,20,19,17,16,0,9,9,13,13,0,13,13,20,19,0,11,11,13,13,0,11,11,15,15,0,20,19,17,17,0,10,10,13,13,0,14,15,0,21,0,12,12,13,13,0,10,10,12,12,0,11,11,15,15,0,11,11,15,15,0,15,15,20,20,0,16,16,0,0,0,11,11,15,15,0,14,14,17,17,0,11,11,15,15,0,15,15,20,21,0,16,16,21,21,0,12,12,15,15,0,15,15,18,20,0,11,11,16,15,0,15,15,21,21,0,16,16,0,21,0,16,16,0,0,0,0,0,0,0,0,14,14,21,21,0,17,18,0,0,0,16,17,20,0,0,16,16,0,0,0,0,0,0,0,0,15,15,20,20,0,19,18,0,21,0,18,17,0,0,0,10,10,11,11,0,10,10,10,10,0,11,11,12,12,0,11,11,9,9,0,13,13,12,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,12,12,13,13,0,12,12,12,12,0,11,11,12,12,0,13,13,12,12,0,10,10,12,12,0,13,13,13,13,0,12,12,12,12,0,14,13,13,13,0,19,21,15,15,0,12,11,12,12,0,16,15,19,19,0,13,13,11,11,0,13,13,13,13,0,0,21,15,16,0,12,12,12,12,0,16,16,19,21,0,13,13,12,12,7,7,7,16,16,11,9,9,16,16,12,9,9,16,16,0,13,13,16,16,0,14,14,17,16,11,9,9,16,16,14,12,11,17,17,13,8,9,15,15,0,13,13,19,19,0,13,13,16,15,12,10,10,17,17,15,12,12,19,18,14,9,9,17,16,0,14,14,18,0,0,14,13,16,16,0,14,15,18,17,0,21,0,19,21,0,12,12,16,16,0,16,16,0,0,0,14,14,16,16,0,14,14,18,18,0,0,21,20,0,0,13,13,16,17,0,18,18,0,0,0,15,14,17,16,8,7,7,14,14,11,10,10,15,15,13,10,10,15,15,0,21,20,19,19,0,21,0,17,18,11,10,10,15,16,14,12,12,18,18,14,11,11,15,14,0,21,20,18,19,0,0,21,18,18,12,11,11,16,16,16,14,14,18,20,14,11,11,16,15,0,20,20,19,19,0,0,20,18,18,0,21,0,18,19,0,0,0,0,0,0,20,20,17,18,0,0,0,20,20,0,0,0,19,19,0,0,0,20,18,0,0,0,0,0,0,0,21,18,18,0,21,21,0,21,0,0,0,19,20,11,9,9,14,14,13,10,10,14,14,13,11,11,15,15,0,13,13,13,13,0,14,14,16,16,13,11,11,15,15,16,12,12,15,15,14,10,10,14,14,0,14,14,16,16,0,14,14,15,15,13,10,10,15,15,17,13,14,15,16,15,10,10,15,15,0,14,14,17,16,0,14,14,15,15,0,15,15,17,17,0,0,21,18,18,0,13,13,15,15,0,16,16,21,20,0,14,14,15,14,0,15,14,16,17,0,0,20,20,19,0,13,13,15,15,0,19,18,0,0,0,15,15,15,15,0,11,11,14,14,0,12,12,16,16,0,12,12,16,16,0,15,16,21,21,0,16,17,21,0,0,12,12,17,16,0,14,14,18,19,0,11,11,16,16,0,15,15,20,21,0,16,16,21,0,0,12,12,17,16,0,15,15,19,19,0,12,12,16,17,0,16,15,0,0,0,16,16,0,0,0,17,17,0,21,0,0,0,0,0,0,14,15,20,0,0,17,17,0,0,0,17,17,0,0,0,17,16,0,0,0,0,0,0,0,0,15,15,0,0,0,18,18,0,0,0,18,17,0,0,0,11,11,14,14,0,12,12,15,15,0,12,12,15,15,0,13,13,14,14,0,14,14,17,17,0,12,12,16,16,0,14,14,16,16,0,11,11,15,15,0,13,13,16,17,0,13,13,16,16,0,12,12,15,15,0,14,14,17,16,0,11,11,15,15,0,14,14,17,17,0,13,13,16,16,0,15,15,17,18,0,21,20,20,21,0,12,12,15,15,0,16,16,20,21,0,14,14,15,15,0,14,14,17,17,0,0,0,18,19,0,12,13,15,15,0,18,17,21,0,0,14,15,15,15,8,8,8,16,16,12,10,10,16,16,13,9,9,16,16,0,14,14,18,17,0,14,14,16,17,12,10,10,18,17,14,12,11,18,18,14,9,9,16,16,0,13,13,18,18,0,13,13,17,16,12,9,9,16,17,17,13,13,17,17,14,9,9,15,15,0,14,14,20,19,0,13,13,16,16,0,15,15,19,18,0,0,0,20,19,0,12,13,17,17,0,16,16,20,0,0,14,14,16,17,0,14,14,19,18,0,0,0,20,20,0,13,13,16,16,0,18,17,0,0,0,15,15,16,16,9,7,7,14,14,12,10,10,15,15,13,10,10,15,15,0,21,0,18,19,0,20,21,19,18,12,10,10,16,15,15,13,13,18,18,14,11,11,15,15,0,0,0,19,18,0,0,21,18,18,13,11,11,15,15,16,14,14,17,19,15,11,11,15,15,0,21,21,20,18,0,0,21,18,18,0,0,21,21,19,0,0,0,0,0,0,19,20,18,17,0,0,0,21,21,0,21,0,20,18,0,0,21,19,19,0,0,0,0,0,0,20,21,17,17,0,0,0,0,0,0,21,0,18,20,0,10,10,14,14,0,11,11,15,15,0,11,11,15,15,0,14,14,15,15,0,15,15,16,16,0,11,12,16,16,0,13,13,16,16,0,11,11,15,15,0,14,14,17,17,0,14,14,15,15,0,11,11,16,15,0,14,14,15,15,0,11,11,15,15,0,15,15,17,17,0,14,14,15,15,0,16,16,18,18,0,0,0,20,19,0,14,13,16,15,0,17,17,21,0,0,15,15,15,15,0,16,15,17,16,0,20,0,20,18,0,13,14,15,15,0,19,18,0,21,0,15,15,15,15,0,11,11,14,14,0,12,12,16,16,0,12,12,16,16,0,16,15,20,21,0,17,16,0,0,0,12,12,16,16,0,14,14,18,18,0,11,11,16,16,0,15,15,21,20,0,16,16,0,0,0,12,12,16,17,0,15,14,19,19,0,11,12,16,16,0,15,15,21,0,0,16,16,0,0,0,16,17,0,0,0,0,0,0,0,0,15,15,21,0,0,17,17,0,0,0,17,17,0,0,0,17,16,0,0,0,0,0,0,0,0,15,15,0,20,0,19,20,0,0,0,17,17,0,0,0,12,12,15,15,0,12,12,15,15,0,12,12,16,16,0,13,13,15,15,0,15,15,17,17,0,13,13,17,16,0,14,14,17,17,0,11,11,16,16,0,14,14,17,17,0,13,13,16,16,0,12,12,16,16,0,15,15,16,17,0,11,11,15,16,0,14,14,17,17,0,13,14,16,16,0,15,15,18,18,0,21,20,20,19,0,13,13,16,17,0,16,16,0,0,0,14,14,16,16,0,15,15,18,18,0,0,0,20,19,0,13,13,16,16,0,17,17,0,0,0,14,14,16,16,0,11,11,16,16,0,13,13,18,17,0,13,13,17,17,0,16,16,17,17,0,16,16,17,18,0,12,12,17,17,0,15,15,18,18,0,12,12,16,16,0,16,16,19,19,0,15,15,16,17,0,12,12,17,17,0,17,17,18,18,0,12,12,17,17,0,16,16,19,19,0,15,16,17,17,0,16,16,18,17,0,0,0,21,21,0,13,13,16,16,0,17,17,0,20,0,15,15,16,17,0,16,16,19,18,0,0,21,20,21,0,14,14,17,16,0,20,0,0,0,0,15,16,16,17,0,9,9,14,14,0,13,13,16,16,0,14,14,15,15,0,0,20,19,19,0,0,0,19,19,0,12,12,15,15,0,15,16,19,18,0,14,14,15,15,0,21,0,18,18,0,20,0,17,18,0,13,13,16,16,0,17,17,17,19,0,14,14,16,15,0,21,20,20,19,0,0,0,19,19,0,0,0,19,18,0,0,0,0,0,0,20,20,17,18,0,0,0,21,21,0,0,0,18,18,0,21,0,18,19,0,0,0,0,0,0,20,21,18,18,0,0,0,20,21,0,0,0,19,19,0,18,18,15,15,0,20,21,17,17,0,19,21,17,17,0,0,0,17,18,0,0,0,20,19,0,19,19,17,17,0,0,0,18,18,0,19,20,16,17,0,0,21,20,20,0,19,20,19,18,0,19,20,16,16,0,0,0,18,19,0,19,20,17,17,0,0,21,0,20,0,21,21,17,19,0,20,0,19,20,0,0,0,20,0,0,19,18,17,16,0,0,0,0,0,0,0,20,17,17,0,20,21,18,20,0,0,0,0,21,0,19,20,17,17,0,0,0,0,0,0,20,21,17,17,0,11,11,14,14,0,13,13,16,17,0,13,13,16,16,0,17,17,0,21,0,18,17,21,0,0,13,13,16,16,0,15,15,18,18,0,12,12,16,16,0,17,16,21,0,0,17,17,0,0,0,12,12,17,17,0,17,17,19,21,0,13,12,16,16,0,17,17,0,0,0,17,17,0,0,0,18,17,0,21,0,0,0,0,0,0,15,15,20,0,0,20,18,0,0,0,17,18,0,0,0,16,17,0,0,0,0,0,0,0,0,15,15,0,0,0,19,19,0,0,0,18,18,0,0,0,14,14,18,18,0,16,16,0,21,0,16,16,21,21,0,17,17,0,20,0,17,17,20,0,0,16,15,0,0,0,20,20,0,0,0,15,15,20,20,0,17,17,21,0,0,17,18,20,20,0,15,15,20,20,0,18,18,0,0,0,15,15,19,20,0,17,18,0,0,0,17,17,20,20,0,18,17,21,0,0,0,0,0,21,0,15,15,20,20,0,19,19,0,0,0,17,17,21,0,0,17,17,0,0,0,0,0,21,0,0,15,15,19,19,0,20,21,0,0,0,18,17,21,21,0,12,12,16,16,0,14,14,17,17,0,13,13,17,18,0,16,16,18,17,0,16,16,18,18,0,13,13,18,18,0,15,16,19,18,0,13,13,16,16,0,16,16,20,18,0,16,16,17,17,0,12,13,17,17,0,17,16,18,18,0,12,12,16,16,0,17,16,20,19,0,16,16,16,16,0,16,17,18,20,0,0,0,21,20,0,14,14,17,16,0,19,18,0,20,0,16,16,17,16,0,16,16,17,18,0,0,21,21,21,0,14,14,16,16,0,20,20,21,0,0,16,16,16,16,0,10,10,14,14,0,14,14,15,16,0,14,14,15,15,0,0,21,18,18,0,0,21,18,19,0,13,13,16,16,0,16,16,18,18,0,14,14,15,15,0,21,0,18,18,0,21,0,18,18,0,13,13,16,16,0,17,17,19,20,0,14,14,15,15,0,0,0,18,20,0,0,21,18,18,0,0,21,19,18,0,0,0,0,0,0,20,21,18,17,0,0,0,21,21,0,0,0,19,19,0,21,0,18,19,0,0,0,0,0,0,21,20,17,17,0,0,21,20,0,0,0,0,19,19,0,19,20,15,16,0,0,20,18,17,0,20,21,17,18,0,21,0,18,18,0,0,0,19,19,0,20,20,17,18,0,0,0,18,19,0,20,20,18,17,0,0,0,0,20,0,0,21,17,18,0,20,21,17,17,0,0,0,18,18,0,19,19,17,17,0,0,0,21,21,0,20,20,17,17,0,0,0,21,19,0,0,0,20,19,0,21,20,17,18,0,0,0,0,0,0,0,20,18,17,0,21,20,18,18,0,0,0,20,21,0,20,20,17,17,0,0,0,0,0,0,20,0,17,17,0,11,11,13,14,0,13,13,16,16,0,13,13,16,16,0,17,17,0,0,0,17,18,0,0,0,13,13,16,16,0,15,16,18,18,0,13,13,16,17,0,16,17,20,0,0,17,18,20,0,0,13,13,17,17,0,16,16,20,21,0,13,13,16,16,0,17,17,21,0,0,17,18,0,0,0,17,18,0,21,0,0,0,0,0,0,15,15,20,0,0,19,19,0,0,0,17,17,0,0,0,18,17,21,20,0,0,0,0,0,0,16,16,20,21,0,21,20,0,21,0,19,21,0,0,0,15,15,0,0,0,16,17,0,19,0,16,16,0,0,0,17,17,0,0,0,19,18,0,0,0,16,16,20,20,0,20,18,21,0,0,15,15,21,21,0,18,18,0,0,0,18,19,0,0,0,16,15,0,21,0,20,19,0,0,0,16,16,0,0,0,20,18,0,21,0,17,18,21,0,0,18,19,0,0,0,0,0,0,0,0,16,16,20,20,0,19,20,0,0,0,17,17,0,0,0,18,17,20,21,0,0,0,0,0,0,16,16,0,20,0,20,22,0,0,0,18,18,0,22,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,4,4,8,8,10,12,12,11,11,9,11,11,12,13,11,12,12,11,11,11,12,12,12,12,10,13,12,13,13,11,12,12,13,13,11,12,12,13,13,11,12,13,13,13,11,13,13,13,13,10,13,13,12,13,11,12,12,14,14,11,13,12,12,12,11,12,12,13,13,11,13,13,12,12,11,13,13,13,13,11,12,12,13,13,11,13,13,12,12,11,12,12,13,13,11,13,13,12,12,11,13,13,13,13,11,12,12,14,14,11,13,13,12,12,11,12,12,13,13,11,13,13,12,12,11,10,10,10,10,12,10,10,11,11,11,8,8,11,11,13,10,10,10,10,12,10,10,10,10,13,11,11,11,11,13,10,10,11,11,13,11,11,12,12,13,11,11,11,11,13,11,11,12,12,13,11,11,12,12,13,10,10,11,11,13,11,11,11,11,13,11,10,11,11,13,11,11,11,11,13,11,11,11,11,13,10,10,11,11,13,11,11,11,11,12,10,11,11,11,13,11,11,11,11,13,11,11,11,11,13,10,10,11,11,13,11,11,11,11,13,11,11,11,11,13,11,11,11,11,11,10,10,10,10,12,10,10,9,9,12,12,12,11,11,13,12,12,9,9,13,12,12,10,10,12,12,12,12,12,13,13,13,14,14,13,12,12,11,11,13,13,13,12,12,13,12,12,11,11,13,12,13,11,11,13,13,13,14,14,13,12,12,10,10,13,13,13,11,11,13,12,12,10,10,13,13,13,11,11,13,13,13,14,14,13,12,12,10,10,13,13,13,11,11,13,12,13,10,10,13,13,13,11,11,13,13,13,14,14,13,12,12,10,10,13,13,13,11,11,13,13,12,10,10,14,12,12,8,8,14,12,12,9,9,14,11,11,9,9,14,12,12,8,8,14,11,11,7,7,14,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,12,12,9,9,15,13,13,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,14,12,12,9,9,14,13,13,9,9,14,13,13,9,9,15,12,12,9,9,15,13,13,9,9,14,12,12,9,9,14,13,13,9,9,14,13,13,9,9,15,12,12,9,9,14,13,13,9,9,14,12,12,9,9,14,13,13,9,9,13,12,12,8,8,13,13,13,8,8,14,13,13,9,9,13,13,13,7,7,14,13,13,8,8,14,14,14,10,10,14,14,14,11,11,14,14,14,9,9,14,14,14,10,10,14,14,14,9,9,14,14,14,10,9,15,14,14,11,11,14,14,14,9,9,14,14,14,10,10,14,14,14,9,9,14,14,14,9,9,15,14,14,11,11,14,14,14,8,8,14,14,14,9,9,14,14,14,8,8,14,14,14,9,9,15,14,14,11,11,14,14,14,8,8,14,14,14,9,9,14,14,14,8,8,12,12,12,13,13,16,15,15,11,11,16,15,16,12,12,17,16,16,11,11,17,15,15,12,11,16,16,16,12,13,16,15,15,13,13,16,16,16,12,12,16,16,15,13,13,16,16,16,12,12,16,16,16,13,13,17,16,16,14,14,17,17,16,12,12,17,16,16,13,13,17,17,16,12,13,16,16,17,13,12,17,16,16,14,13,17,16,16,12,12,17,16,16,12,12,17,16,17,12,12,17,17,17,13,13,16,16,16,13,14,17,17,16,12,12,16,16,16,13,13,17,17,17,12,12,13,14,14,10,10,16,14,14,12,12,16,15,15,14,14,16,14,14,12,12,15,14,14,13,13,17,15,15,14,13,16,16,15,15,15,16,15,15,14,14,16,15,15,14,14,17,15,15,14,14,16,15,15,14,14,16,16,15,15,15,17,15,15,13,13,16,15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,15,15,15,15,16,14,14,13,13,16,15,15,14,14,16,14,14,13,13,17,15,15,14,14,16,16,15,15,15,17,14,14,13,13,16,15,15,14,14,17,14,14,13,13,13,11,11,10,10,16,14,14,13,13,15,14,14,13,13,16,14,14,12,12,16,14,14,12,12,15,15,15,14,14,16,14,14,14,14,16,15,14,14,14,16,14,14,14,14,16,15,15,14,13,16,15,15,14,14,16,14,14,14,14,17,15,15,14,14,16,14,14,14,14,16,15,15,13,14,16,15,15,14,14,16,14,14,14,14,16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16,15,15,14,14,16,14,14,14,14,17,15,15,13,13,16,15,14,13,13,17,15,15,13,13,14,14,14,9,9,14,14,14,17,17,14,15,15,18,18,14,14,14,18,19,14,14,14,18,18,15,15,15,19,18,15,16,15,18,20,15,15,15,18,19,15,15,15,19,19,15,15,15,18,20,15,15,15,18,19,15,15,16,20,18,15,15,15,18,18,15,15,15,19,19,15,15,15,18,19,15,15,15,18,19,15,15,15,19,19,14,15,14,19,19,15,15,15,20,19,15,14,14,19,18,14,15,15,18,19,15,15,16,20,20,14,14,14,18,19,15,15,15,19,18,14,14,14,18,18,14,12,12,9,9,13,14,14,18,18,14,13,13,18,19,14,14,14,18,18,14,14,14,18,18,15,15,15,19,19,15,14,14,19,18,14,15,15,19,18,15,14,14,18,18,15,15,15,19,18,14,15,15,19,19,15,14,14,19,18,14,15,15,19,18,15,14,14,19,18,14,15,15,19,18,15,15,15,21,18,15,14,14,19,18,14,15,15,18,19,14,15,14,20,19,14,15,15,18,19,14,15,15,19,19,15,14,14,19,20,14,15,15,18,18,14,14,14,19,19,14,15,15,19,18,12,12,12,13,13,16,15,15,11,11,16,15,15,12,12,16,16,16,11,11,16,15,15,11,11,16,16,16,13,13,17,16,16,13,13,17,17,17,12,12,16,16,16,13,13,17,16,17,13,12,15,16,16,12,12,16,15,15,13,13,17,16,16,12,12,16,16,15,12,12,16,16,16,12,12,17,17,16,13,12,16,16,16,13,13,17,16,16,12,12,17,16,16,12,12,17,17,16,12,12,16,17,16,12,12,17,15,15,13,13,17,16,16,12,12,16,16,16,12,12,16,16,16,12,12,13,13,13,9,9,15,14,14,13,13,16,15,14,14,14,16,14,14,13,13,15,14,14,13,13,17,15,15,14,14,16,15,15,15,15,16,15,15,14,14,16,15,15,15,15,17,15,15,14,14,16,15,15,14,14,16,15,15,15,15,17,14,15,14,14,16,15,15,14,14,17,15,15,13,14,17,15,15,14,14,16,15,15,15,15,17,14,14,13,13,16,15,15,14,14,17,14,14,13,13,17,15,15,14,14,16,15,16,15,15,17,14,14,13,13,16,15,15,14,14,18,14,14,13,13,13,11,11,11,11,15,14,14,12,12,15,14,14,13,13,16,14,14,12,12,16,13,14,12,12,16,15,15,13,13,16,14,14,14,14,16,15,15,13,13,16,14,14,13,13,16,14,15,13,13,15,15,15,13,13,16,14,14,14,13,16,14,14,13,13,16,14,14,13,13,16,15,15,13,13,16,15,15,13,13,16,14,14,14,14,16,15,15,12,12,16,14,14,13,13,16,15,15,12,12,16,15,15,13,13,16,14,14,14,14,17,15,14,12,12,16,14,14,13,13,16,15,15,12,12,14,14,14,8,8,14,14,14,17,18,14,15,15,17,18,14,14,14,17,18,14,14,14,18,18,14,15,15,18,18,14,16,15,19,19,15,15,15,18,19,15,16,15,20,19,15,15,15,18,18,14,15,15,18,19,15,16,16,20,19,15,15,15,19,17,14,15,15,20,18,14,15,15,18,18,14,15,15,18,19,14,15,15,19,20,14,14,14,18,18,14,15,15,18,19,14,14,14,18,19,14,15,15,19,18,15,16,16,20,21,14,14,15,19,19,14,15,15,19,19,14,14,14,19,18,13,12,12,9,9,13,14,14,18,19,14,14,14,18,19,14,14,14,18,18,14,14,14,18,18,14,15,15,19,19,15,14,14,19,18,15,15,15,19,19,15,14,14,19,20,14,15,15,18,19,14,15,15,20,18,15,14,14,18,18,14,15,15,18,18,14,14,14,19,19,14,15,15,18,18,14,15,15,19,18,15,14,14,19,19,14,15,15,19,18,15,14,14,19,18,14,14,15,18,19,14,15,15,19,18,15,14,14,18,19,14,15,14,19,20,14,14,14,19,19,14,15,15,19,19,12,12,12,13,13,16,16,16,11,11,16,16,16,12,12,17,16,16,11,11,17,15,15,11,11,16,16,16,13,13,17,15,16,13,13,16,16,16,12,12,17,16,16,13,13,17,17,16,12,12,17,17,16,13,13,17,16,16,13,13,17,17,17,12,12,17,16,16,13,13,17,17,17,12,12,16,16,16,12,12,17,15,15,13,13,17,16,16,11,11,17,16,16,12,12,16,16,16,11,11,16,17,16,12,12,17,16,16,13,13,17,17,16,12,12,17,17,16,12,12,17,16,16,11,11,13,14,14,9,9,16,14,14,13,13,16,14,15,14,14,16,14,14,12,12,16,14,14,13,13,17,15,15,14,14,16,15,15,15,15,17,15,15,14,14,16,15,15,14,14,17,15,15,14,14,16,15,15,14,14,16,15,15,15,16,17,14,15,14,14,16,15,15,14,14,17,15,15,14,14,16,15,15,14,14,16,15,15,15,15,17,14,14,13,13,16,15,15,14,14,16,14,14,13,13,17,15,15,14,14,16,16,15,15,15,17,14,14,13,13,16,15,15,14,14,17,14,14,13,13,13,11,11,10,10,16,14,14,12,12,15,13,13,13,12,16,14,14,11,11,16,14,14,11,11,16,14,15,13,14,16,14,14,13,13,16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16,15,15,13,13,17,14,14,14,14,17,15,15,13,13,16,14,15,13,13,16,15,15,13,13,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12,12,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12,17,14,14,12,12,16,15,15,12,12,13,14,14,8,8,13,14,14,18,18,13,15,15,17,18,14,14,14,18,19,14,14,14,19,18,14,15,15,19,18,15,15,16,21,18,15,15,15,19,19,14,16,16,19,19,14,15,15,18,19,14,15,15,19,20,14,16,16,19,18,15,15,15,18,19,14,15,15,19,18,15,15,15,18,18,15,15,15,20,18,15,16,16,20,19,14,15,14,18,19,14,15,16,19,20,14,15,15,19,18,15,15,15,19,18,15,16,16,20,19,15,14,14,18,18,14,15,15,19,19,14,15,15,18,18,13,12,12,8,8,13,14,14,19,18,14,13,13,20,18,14,14,14,19,18,14,13,13,18,19,14,15,15,20,19,15,14,14,19,19,14,15,15,19,18,15,14,14,20,20,15,15,15,19,18,14,15,15,19,18,15,14,14,19,18,14,15,15,20,19,14,14,14,20,19,14,15,15,19,18,15,15,15,18,18,15,14,14,18,18,14,15,15,19,19,14,14,14,19,19,14,15,15,19,19,15,15,15,19,18,15,14,14,20,19,15,15,15,19,19,14,14,14,20,19,14,15,15,20,20,12,12,12,13,13,17,16,16,11,11,16,16,15,12,12,17,16,16,11,11,17,15,15,11,11,17,17,17,13,13,17,16,16,13,13,17,17,17,12,12,17,16,16,13,13,17,17,16,12,13,16,17,16,13,13,17,16,15,13,13,17,16,16,12,12,17,16,16,12,13,17,16,17,12,12,17,17,17,12,12,17,16,15,13,13,17,16,16,12,12,17,16,16,12,12,17,16,16,11,11,16,16,16,12,12,17,15,15,13,13,17,16,15,11,11,16,16,16,12,12,17,16,16,11,11,13,14,14,9,9,16,14,14,13,13,16,14,15,14,14,16,14,14,12,12,16,14,14,13,13,17,15,15,14,15,16,15,15,15,15,17,15,15,14,14,16,15,15,15,14,16,15,15,14,14,16,15,15,14,14,16,15,16,15,15,17,15,14,14,14,16,15,15,14,14,17,15,15,13,13,16,15,15,14,14,16,16,16,15,15,17,14,14,13,13,16,15,15,14,14,18,14,15,13,13,16,15,15,14,14,16,16,15,15,15,16,14,14,13,13,16,15,15,14,14,17,14,15,13,13,13,11,11,10,10,15,14,14,12,12,15,14,14,13,13,16,14,14,12,12,16,13,14,12,12,16,14,15,14,13,16,14,14,14,14,16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,15,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12,16,14,14,12,12,16,14,15,12,12,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12,12,14,14,14,8,8,14,14,14,17,17,14,15,15,18,18,14,14,14,18,17,14,14,14,18,18,14,15,15,18,20,15,16,15,19,18,15,15,15,19,18,15,15,16,19,18,15,15,15,18,18,14,15,15,18,18,15,16,16,18,19,15,15,15,18,18,15,15,15,19,20,15,15,15,18,18,15,15,15,18,18,15,16,16,19,19,15,14,15,19,19,15,15,15,19,20,14,14,15,18,18,15,15,15,19,19,15,16,16,19,19,15,15,14,18,19,15,15,15,20,20,15,15,14,18,18,13,12,12,8,8,13,14,14,18,18,14,14,14,18,18,14,14,14,18,20,14,14,14,18,18,14,15,15,19,18,15,14,14,18,19,15,15,15,18,19,15,14,14,18,19,15,15,15,18,18,14,15,14,18,19,15,14,14,21,19,15,15,15,19,18,14,14,14,19,18,14,15,15,19,18,15,15,15,20,19,15,14,14,20,18,14,15,15,18,19,14,14,14,19,18,14,15,15,18,19,15,15,15,18,19,15,14,14,19,19,15,15,15,19,19,14,14,14,19,20,14,15,15,18,19,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,7,8,8,7,8,8,7,9,9,10,12,11,9,8,8,7,9,9,11,12,12,9,9,9,6,7,7,10,11,11,10,11,11,10,11,11,13,13,14,12,12,12,11,11,11,14,14,14,12,12,12,6,5,5,9,6,5,9,6,6,9,7,7,12,10,10,11,6,6,10,7,7,13,10,10,12,7,7,7,8,8,12,10,10,12,10,10,11,10,10,15,13,13,13,9,9,12,11,11,16,13,13,15,11,11,8,7,7,12,12,12,12,11,11,12,11,11,14,14,14,14,12,12,12,12,12,16,15,15,14,12,12,0,10,10,0,12,12,0,12,12,0,11,11,0,14,14,0,11,11,0,12,12,0,15,15,0,11,11,8,8,8,13,11,11,13,10,10,13,11,11,15,13,13,14,11,11,12,10,10,16,14,14,14,10,10,9,7,7,13,11,11,13,11,11,12,11,11,16,14,14,14,12,12,13,12,12,15,14,14,15,13,12,0,11,11,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,13,12,0,14,15,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,0,9,9,0,9,9,0,10,10,0,9,9,0,10,10,0,10,10,0,9,9,0,10,10,0,7,7,0,7,7,0,6,6,0,8,8,0,7,7,0,8,8,0,8,9,0,8,8,0,8,8,0,7,7,0,9,9,0,8,8,0,10,10,0,9,9,0,10,10,0,10,10,0,9,9,0,10,10,0,9,9,0,11,11,0,11,11,0,12,12,0,11,11,0,12,12,0,13,13,0,12,12,0,13,12,0,8,8,0,12,12,0,12,12,0,13,13,0,12,12,0,13,13,0,13,13,0,13,13,0,13,13,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,11,11,0,12,12,0,13,13,0,12,12,0,13,13,0,13,13,0,12,12,0,12,12,0,8,8,0,12,12,0,12,12,0,13,13,0,13,13,0,13,14,0,14,13,0,13,13,0,13,13,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,5,5,0,7,7,0,8,8,0,9,9,0,12,12,0,8,8,0,9,9,0,12,12,0,8,8,0,6,6,0,11,11,0,12,12,0,12,12,0,15,15,0,11,11,0,12,12,0,15,15,0,12,12,0,5,5,0,5,5,0,6,6,0,7,7,0,11,11,0,6,6,0,7,7,0,10,11,0,6,6,0,7,7,0,11,11,0,12,12,0,11,11,0,15,15,0,10,10,0,12,12,0,15,15,0,12,12,0,6,6,0,12,12,0,12,12,0,12,12,0,15,15,0,11,11,0,12,12,0,15,15,0,12,12,0,0,0,0,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,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,11,12,0,15,16,0,11,11,0,6,6,0,11,12,0,12,12,0,12,12,0,16,15,0,12,12,0,13,12,0,15,14,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,3,3,7,8,10,13,16,3,2,5,7,9,13,16,6,4,4,6,10,14,15,7,5,5,7,10,13,14,9,8,9,9,9,11,13,12,11,12,9,7,8,11,14,12,10,6,5,7,10,0,0,0,0,0,0,0,2,0,0,0,49,0,0,0,248,239,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,206,7,0,0,0,0,0,0,0,0,0,144,206,7,0,184,206,7,0,0,0,0,0,0,0,0,0,224,206,7,0,8,207,7,0,0,0,0,0,0,0,0,0,48,207,7,0,88,207,7,0,0,0,0,0,0,0,0,0,128,207,7,0,168,207,7,0,88,207,7,0,0,0,0,0,208,207,7,0,136,203,7,0,176,203,7],"i8",O3,_.GLOBAL_BASE+500144),C3([2,0,0,0,49,0,0,0,48,206,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,40,206,7,0,0,0,0,0,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,203,7,0,56,203,7,0,0,0,0,0,0,0,0,0,96,203,7,0,136,203,7,0,176,203,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,169,0,0,0,64,205,7,0,1,0,0,0,0,0,158,224,0,0,84,96,4,0,0,0,0,0,0,0,240,205,7,0,0,0,0,0,2,0,0,0,25,0,0,0,8,205,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,40,205,7,0,0,0,0,0,2,0,0,0,9,0,0,0,232,204,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,248,204,7,0,0,0,0,0,1,0,0,0,25,0,0,0,96,204,7,0,1,0,0,0,0,192,18,225,0,0,153,96,5,0,0,0,0,0,0,0,128,204,7,0,0,0,0,0,1,0,0,0,25,0,0,0,216,203,7,0,1,0,0,0,0,0,120,224,0,0,16,96,5,0,0,0,0,0,0,0,248,203,7,0,0,0,0,0,3,5,4,5,4,5,4,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,3,2,5,4,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,0,0,0,0,0,0,0,12,0,0,0,11,0,0,0,13,0,0,0,10,0,0,0,14,0,0,0,9,0,0,0,15,0,0,0,8,0,0,0,16,0,0,0,7,0,0,0,17,0,0,0,6,0,0,0,18,0,0,0,5,0,0,0,19,0,0,0,4,0,0,0,20,0,0,0,3,0,0,0,21,0,0,0,2,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,4,4,7,7,4,5,6,7,7,4,6,5,7,7,7,6,7,6,7,7,7,6,7,6,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,3,3,8,8,10,10,10,10,10,10,10,10,5,7,5,9,8,10,10,10,10,11,10,11,10,5,5,7,8,9,10,10,11,10,10,11,10,11,10,10,10,11,11,11,11,11,11,11,10,11,11,10,10,10,10,11,11,11,11,11,10,11,11,11,11,11,11,11,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,12,11,11,11,11,11,11,12,11,11,11,10,11,11,11,11,11,11,11,11,10,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,10,11,11,11,11,11,11,11,12,11,13,11,11,11,11,11,11,11,11,11,11,11,12,11,13,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,1,3,2,3,0,0,0,0,2,3,6,7,9,13,17,3,2,5,7,9,13,17,6,5,5,6,9,12,16,7,7,6,6,7,10,13,10,10,9,7,6,10,13,13,13,12,10,10,11,15,17,17,17,14,14,15,17,0,0,0,0,0,0,0,5,0,0,0,243,0,0,0,240,238,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,232,239,7,0,0,0,0,0,5,0,0,0,243,0,0,0,232,237,7,0,1,0,0,0,0,0,56,224,0,0,56,96,2,0,0,0,0,0,0,0,224,238,7,0,0,0,0,0,5,0,0,0,243,0,0,0,224,236,7,0,1,0,0,0,0,0,16,224,0,0,16,96,2,0,0,0,0,0,0,0,216,237,7,0,0,0,0,0,5,0,0,0,243,0,0,0,216,235,7,0,1,0,0,0,0,0,84,224,0,0,84,96,2,0,0,0,0,0,0,0,208,236,7,0,0,0,0,0,5,0,0,0,53,12,0,0,136,223,7,0,1,0,0,0,0,0,48,224,0,0,16,96,3,0,0,0,0,0,0,0,192,235,7,0,0,0,0,0,5,0,0,0,53,12,0,0,56,211,7,0,1,0,0,0,0,0,124,224,0,0,92,96,3,0,0,0,0,0,0,0,112,223,7,0,0,0,0,0,1,0,0,0,7,0,0,0,16,211,7,0,1,0,0,0,0,0,56,224,0,0,16,96,3,0,0,0,0,0,0,0,24,211,7,0,0,0,0,0,5,0,0,0,243,0,0,0,8,210,7,0,1,0,0,0,0,0,149,224,0,0,149,96,2,0,0,0,0,0,0,0,0,211,7,0,0,0,0,0,5,0,0,0,243,0,0,0,0,209,7,0,1,0,0,0,0,0,92,224,0,0,92,96,2,0,0,0,0,0,0,0,248,209,7,0,0,0,0,0,5,0,0,0,243,0,0,0,248,207,7,0,1,0,0,0,0,136,51,225,0,136,51,97,2,0,0,0,0,0,0,0,240,208,7,0,0,0,0,0,1,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,6,7,6,8,8,7,7,8,7,8,8,9,9,9,8,7,7,8,8,8,9,9,9,9,8,8,6,6,6,9,7,7,9,7,7,9,8,8,10,8,8,10,8,8,10,8,8,10,9,8,10,8,8,7,6,6,9,6,6,9,6,6,9,7,7,10,8,8,10,6,6,9,7,7,10,8,8,10,6,6,7,7,7,11,9,9,11,9,9,10,9,9,12,10,10,12,8,8,11,9,9,13,9,10,12,8,8,8,7,7,11,9,10,11,10,10,10,9,9,11,11,11,11,9,9,11,10,9,12,11,11,11,9,10,10,8,8,11,9,10,11,9,9,11,9,9,12,10,10,11,9,9,11,9,9,12,10,11,11,9,9,8,8,8,12,9,9,12,9,9,11,9,9,13,9,9,13,8,8,12,9,9,13,10,10,12,8,8,9,7,7,11,10,10,11,10,10,11,10,10,12,11,11,11,10,9,11,10,10,11,11,11,11,9,9,11,9,9,12,10,10,11,10,10,12,10,10,11,11,11,11,9,9,11,10,10,12,11,11,11,9,9,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,7,7,6,8,8,7,8,8,7,9,9,11,11,11,9,8,8,7,9,9,11,12,11,9,9,9,6,7,7,10,11,11,10,10,10,10,11,11,15,14,14,12,12,12,11,11,11,14,14,14,12,12,12,5,6,6,8,5,5,8,7,7,8,8,8,12,10,10,10,7,7,8,7,7,12,10,10,10,7,7,6,7,7,12,11,11,12,10,10,11,10,10,14,14,13,13,10,10,11,10,10,16,14,14,14,11,10,7,7,7,13,12,12,12,12,11,11,11,11,15,14,17,13,12,12,12,11,11,15,15,15,14,13,13,10,9,9,14,12,11,13,11,11,12,11,11,16,15,14,14,11,11,12,11,11,17,14,14,15,11,11,7,8,8,12,11,11,13,10,10,11,10,10,17,14,13,14,10,10,12,10,10,18,15,15,14,10,10,8,7,7,13,12,12,13,11,11,12,11,11,16,14,15,14,12,12,12,11,11,18,16,16,14,12,12,11,10,10,13,12,11,13,11,11,13,12,12,0,15,14,14,11,11,13,11,11,16,15,15,15,11,11,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,3,3,3,3,3,0,3,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,1,7,7,14,14,6,8,8,15,16,7,8,8,16,15,0,14,14,17,17,0,14,14,16,16,7,9,9,16,16,10,11,11,17,18,9,8,8,16,16,0,14,14,19,19,0,14,14,17,16,8,9,9,16,16,12,12,12,17,17,10,9,9,16,16,0,15,14,18,20,0,14,14,17,17,0,15,15,18,17,0,21,0,0,21,0,13,13,17,17,0,17,17,0,0,0,15,15,17,17,0,15,15,17,18,0,0,0,0,21,0,13,13,17,17,0,18,18,0,21,0,16,15,17,18,6,7,7,14,14,9,10,10,16,16,11,10,10,15,15,0,21,0,20,21,0,0,0,18,20,10,10,10,15,16,12,13,13,18,18,12,11,11,15,15,0,0,0,20,20,0,0,21,19,19,12,11,11,15,15,15,14,14,18,18,13,11,11,15,16,0,0,0,20,19,0,0,0,20,21,0,0,20,19,19,0,0,0,0,0,0,20,0,17,18,0,0,21,0,0,0,0,0,21,0,0,21,0,20,19,0,0,0,0,0,0,21,0,18,18,0,0,0,21,0,0,0,0,0,20,7,6,6,13,13,9,6,6,12,12,9,7,7,14,14,0,10,10,12,12,0,11,11,15,15,9,7,7,14,14,12,9,9,14,14,10,7,7,14,13,0,11,11,16,15,0,11,11,14,14,9,7,7,14,14,13,10,10,14,14,11,7,7,14,13,0,11,11,16,16,0,11,11,14,14,0,12,12,16,16,0,19,0,17,18,0,10,10,14,14,0,15,14,0,0,0,12,12,14,14,0,12,12,15,15,0,20,0,18,19,0,10,10,14,14,0,16,15,0,20,0,13,13,14,14,0,11,11,13,13,0,12,13,16,16,0,12,12,16,16,0,16,16,0,21,0,17,18,0,0,0,12,12,16,16,0,15,15,18,0,0,12,12,16,16,0,17,16,21,21,0,16,17,0,0,0,13,13,17,16,0,16,16,20,21,0,12,12,17,16,0,17,17,0,21,0,17,17,21,21,0,17,18,0,0,0,0,0,0,0,0,15,15,0,0,0,18,21,0,0,0,18,19,0,0,0,18,17,21,21,0,0,0,0,0,0,16,16,0,0,0,0,0,0,0,0,19,19,0,0,0,11,11,12,12,0,11,11,10,10,0,12,12,13,13,0,12,12,9,9,0,14,14,13,13,0,12,12,13,13,0,14,14,12,13,0,11,11,12,12,0,13,13,13,13,0,13,13,13,13,0,12,12,13,13,0,14,14,12,12,0,11,11,12,12,0,14,13,14,14,0,13,13,13,13,0,15,15,14,15,0,0,0,16,16,0,12,12,13,13,0,16,17,20,21,0,14,13,12,12,0,14,14,14,14,0,21,0,16,16,0,12,12,13,13,0,18,17,21,0,0,14,14,13,13,7,8,8,17,17,11,10,10,18,18,12,10,10,17,17,0,15,15,20,18,0,15,15,17,17,11,9,9,17,17,14,12,12,19,19,13,9,9,16,16,0,15,14,0,19,0,14,14,16,16,12,10,10,20,18,16,13,13,21,20,14,10,10,17,17,0,15,15,21,20,0,15,14,17,17,0,15,15,21,21,0,0,21,0,0,0,13,13,18,18,0,19,16,0,0,0,15,15,17,16,0,16,16,0,21,0,0,0,0,21,0,13,14,18,17,0,20,19,0,0,0,15,15,18,18,8,7,7,15,15,12,11,11,17,16,13,11,11,16,16,0,0,0,21,20,0,0,0,0,20,11,10,10,17,17,14,13,13,19,18,14,11,11,16,16,0,20,0,21,19,0,0,21,0,20,12,11,11,17,17,16,15,15,0,19,14,11,11,17,16,0,21,0,0,19,0,0,0,21,20,0,0,21,20,0,0,0,0,0,0,0,0,0,19,21,0,0,0,0,0,0,0,0,19,20,0,0,0,20,21,0,0,0,0,0,0,20,0,19,21,0,0,0,0,0,0,0,0,21,20,11,10,9,15,15,14,11,11,15,15,14,11,11,16,16,0,14,14,14,14,0,16,15,17,16,13,11,11,16,16,16,13,13,16,16,15,10,10,15,15,0,14,15,17,17,0,14,14,16,15,13,11,11,16,16,17,15,14,16,16,15,10,10,15,15,0,15,15,17,18,0,15,15,16,16,0,16,16,17,17,0,21,0,21,20,0,13,13,15,15,0,18,18,0,21,0,15,15,15,15,0,16,16,17,17,0,0,0,0,18,0,13,13,15,15,0,19,18,0,0,0,15,15,16,16,0,12,12,15,15,0,13,13,17,17,0,13,13,17,18,0,16,17,21,0,0,20,18,0,0,0,13,13,17,17,0,15,15,0,18,0,12,12,17,18,0,16,16,0,0,0,17,17,21,0,0,13,13,18,18,0,16,16,21,21,0,12,12,17,18,0,16,17,21,0,0,17,17,0,21,0,17,18,0,0,0,0,0,0,0,0,16,15,0,21,0,21,19,0,0,0,18,18,0,0,0,18,19,0,0,0,0,0,0,0,0,16,16,21,21,0,20,19,0,0,0,19,21,0,21,0,12,12,15,15,0,12,12,15,16,0,13,13,16,16,0,14,14,15,15,0,16,15,17,17,0,13,13,17,17,0,15,15,16,18,0,12,12,16,16,0,14,14,17,17,0,15,14,16,16,0,13,13,16,16,0,16,15,17,17,0,12,12,16,16,0,15,15,18,18,0,14,14,17,16,0,16,16,17,18,0,0,0,20,21,0,13,13,16,17,0,17,17,0,0,0,15,15,16,16,0,15,16,17,17,0,0,0,19,0,0,13,13,15,16,0,19,18,0,0,0,16,15,16,17,8,8,8,17,17,13,11,10,17,18,13,10,10,17,17,0,15,15,20,19,0,15,15,17,17,12,10,10,19,18,15,12,12,20,18,14,10,10,17,16,0,15,15,20,20,0,14,15,16,16,13,10,10,17,17,17,14,14,0,18,15,10,10,17,17,0,16,15,20,20,0,14,14,17,17,0,15,16,20,20,0,0,21,0,0,0,13,13,17,17,0,18,17,0,0,0,15,16,17,18,0,15,15,18,21,0,0,0,21,0,0,13,13,18,18,0,19,19,0,0,0,16,16,18,17,9,8,8,15,15,12,11,11,16,16,13,11,11,16,15,0,0,0,0,21,0,21,0,19,19,12,11,11,17,18,15,13,13,18,19,14,11,11,16,16,0,0,21,21,19,0,0,0,21,20,13,11,11,18,17,17,14,15,20,21,15,11,12,16,16,0,0,0,20,0,0,0,21,0,19,0,0,0,0,19,0,0,0,0,0,0,21,21,19,19,0,0,0,21,0,0,0,0,19,21,0,0,0,19,20,0,0,0,21,0,0,0,21,19,19,0,0,0,0,0,0,0,0,21,20,0,11,11,15,15,0,12,12,15,16,0,12,12,16,16,0,15,15,16,15,0,16,16,17,17,0,12,12,17,17,0,14,14,17,17,0,11,11,16,16,0,15,15,19,18,0,15,15,16,16,0,12,12,17,16,0,14,15,16,16,0,11,11,15,15,0,16,16,18,19,0,15,15,15,16,0,17,17,18,20,0,21,0,21,19,0,14,14,16,16,0,18,18,0,0,0,16,16,15,15,0,16,16,18,17,0,0,0,19,20,0,14,14,16,16,0,19,19,0,0,0,16,17,15,15,0,12,12,14,15,0,13,13,16,17,0,12,12,17,17,0,17,16,0,0,0,18,17,21,0,0,13,13,19,17,0,15,15,20,21,0,12,12,17,17,0,17,17,0,0,0,17,17,0,0,0,13,13,17,18,0,16,16,21,0,0,12,12,17,17,0,17,17,0,0,0,17,17,0,0,0,18,21,0,0,0,0,0,0,0,0,15,15,21,0,0,20,21,0,0,0,18,19,0,0,0,18,17,0,0,0,0,0,0,0,0,16,16,21,0,0,21,21,0,0,0,18,19,0,0,0,12,12,16,16,0,13,13,16,17,0,13,13,17,16,0,14,14,16,16,0,16,15,19,18,0,13,13,17,17,0,15,15,18,18,0,12,12,16,16,0,15,15,18,19,0,15,15,17,16,0,13,13,17,17,0,16,16,18,17,0,12,12,17,16,0,15,15,18,18,0,15,15,17,17,0,16,16,0,19,0,0,0,0,0,0,14,14,16,17,0,18,18,0,0,0,15,15,17,17,0,16,16,21,19,0,21,0,21,21,0,13,14,16,16,0,19,19,0,0,0,15,16,16,16,0,11,11,17,16,0,15,14,19,18,0,14,14,19,19,0,18,17,18,20,0,17,17,18,19,0,13,13,17,17,0,16,17,21,18,0,13,13,17,16,0,18,17,19,0,0,16,17,18,18,0,12,12,19,18,0,18,18,20,20,0,13,13,17,17,0,17,17,21,0,0,16,17,17,18,0,18,17,19,18,0,0,0,0,0,0,14,14,17,17,0,19,19,21,0,0,16,16,16,17,0,17,17,19,20,0,0,0,0,21,0,15,15,17,18,0,21,21,0,0,0,17,17,17,18,0,10,10,15,15,0,15,14,17,18,0,14,14,16,16,0,0,0,18,0,0,21,0,19,0,0,13,13,17,16,0,17,17,18,0,0,14,14,16,15,0,0,0,21,0,0,21,0,19,18,0,13,13,17,17,0,18,18,20,20,0,15,15,16,16,0,0,0,21,21,0,0,0,20,20,0,0,0,19,0,0,0,0,0,0,0,21,20,18,18,0,0,0,0,0,0,0,0,0,20,0,0,0,0,20,0,0,0,0,0,0,0,0,19,18,0,0,0,0,21,0,0,0,18,20,0,18,19,16,17,0,21,19,17,17,0,0,21,18,18,0,0,21,20,19,0,0,0,20,20,0,0,21,17,17,0,0,0,19,19,0,20,20,17,17,0,0,0,0,20,0,0,20,18,18,0,21,20,17,17,0,0,0,20,21,0,19,0,17,17,0,0,21,0,0,0,20,0,18,19,0,0,0,21,21,0,0,0,0,21,0,20,20,17,17,0,0,0,0,0,0,21,0,18,17,0,0,0,20,19,0,0,0,0,21,0,20,20,17,17,0,0,0,0,0,0,21,21,18,18,0,12,12,15,14,0,14,14,17,17,0,14,14,17,16,0,18,18,21,0,0,19,20,0,0,0,13,13,18,17,0,16,16,19,18,0,13,13,17,17,0,17,17,0,0,0,17,17,21,0,0,13,13,17,17,0,17,17,21,20,0,13,13,18,17,0,18,19,21,21,0,19,18,0,0,0,18,17,0,0,0,0,0,0,0,0,15,16,0,0,0,21,21,0,0,0,20,18,21,0,0,17,18,0,0,0,0,0,0,0,0,15,16,0,0,0,0,20,0,0,0,0,19,0,0,0,15,15,18,19,0,18,17,21,0,0,16,18,0,20,0,17,18,21,0,0,18,20,0,0,0,16,16,21,21,0,19,20,21,0,0,16,15,0,21,0,18,20,0,0,0,18,19,0,0,0,16,15,21,21,0,21,0,0,0,0,16,15,21,0,0,20,19,0,0,0,18,21,21,0,0,20,18,0,0,0,0,0,0,0,0,16,16,0,20,0,21,0,0,0,0,17,18,20,21,0,18,18,21,21,0,0,0,0,0,0,16,16,20,0,0,0,21,0,0,0,21,18,0,0,0,12,12,20,17,0,15,15,19,18,0,14,14,19,18,0,18,17,21,19,0,17,17,21,17,0,13,13,21,19,0,16,17,20,19,0,13,13,16,16,0,17,17,20,21,0,16,16,19,17,0,13,13,18,18,0,17,19,19,19,0,13,13,17,17,0,18,18,0,19,0,16,17,18,18,0,16,17,19,21,0,0,0,0,0,0,15,15,16,17,0,20,19,21,0,0,17,17,17,17,0,17,17,21,19,0,0,0,0,0,0,15,15,17,17,0,21,0,0,0,0,18,18,17,17,0,10,10,15,15,0,15,15,17,17,0,15,14,16,16,0,0,0,21,19,0,21,21,19,21,0,13,13,17,16,0,17,17,18,19,0,14,15,16,15,0,0,0,21,19,0,21,21,18,19,0,14,14,16,17,0,18,18,18,19,0,15,15,15,16,0,0,21,0,21,0,0,0,19,20,0,0,0,21,19,0,0,0,0,0,0,21,21,19,17,0,0,0,0,0,0,0,0,21,21,0,21,0,0,21,0,0,0,0,0,0,21,21,19,18,0,0,0,0,0,0,0,0,0,19,0,21,18,18,17,0,21,0,20,20,0,0,0,18,20,0,0,21,18,21,0,0,0,21,18,0,0,0,0,19,0,0,0,21,21,0,20,21,17,19,0,21,0,21,0,0,21,0,18,18,0,20,21,17,18,0,0,0,21,19,0,20,21,17,18,0,0,0,21,21,0,0,0,20,19,0,0,0,21,21,0,0,0,0,0,0,21,21,19,18,0,0,0,0,0,0,0,21,19,18,0,21,21,19,0,0,0,0,21,0,0,21,21,18,17,0,0,0,0,0,0,21,0,21,18,0,12,12,14,14,0,15,14,17,17,0,14,14,17,16,0,19,17,0,0,0,19,19,0,0,0,13,13,17,17,0,17,17,20,20,0,13,13,18,18,0,18,17,0,0,0,18,21,0,0,0,13,13,17,17,0,18,18,21,20,0,14,14,18,19,0,19,18,21,0,0,19,19,0,0,0,20,18,20,0,0,0,0,0,0,0,15,16,0,0,0,21,21,0,0,0,19,19,0,0,0,18,18,0,0,0,0,0,0,0,0,16,16,0,21,0,0,0,0,0,0,19,20,0,0,0,15,15,20,21,0,17,17,21,21,0,17,17,0,0,0,19,18,0,0,0,18,19,0,0,0,17,16,0,21,0,0,20,0,0,0,16,16,0,20,0,19,19,0,21,0,19,18,0,21,0,16,16,0,0,0,21,21,0,0,0,16,16,0,0,0,21,21,0,0,0,19,19,0,0,0,20,0,0,0,0,0,0,0,0,0,17,17,0,21,0,0,20,0,0,0,20,18,21,21,0,19,18,0,20,0,0,0,0,0,0,16,17,21,0,0,0,21,0,0,0,19,20,21,20,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,3,4,9,9,10,12,12,12,11,10,12,12,13,12,11,13,12,11,11,11,12,12,12,11,11,13,13,13,13,11,12,12,14,14,12,13,13,13,13,11,13,13,13,13,11,13,13,13,13,11,13,13,13,13,11,12,12,14,14,12,13,13,12,12,11,13,13,13,13,11,13,13,12,12,11,13,13,13,13,12,12,13,14,14,12,13,13,12,12,11,13,13,13,13,11,13,13,12,12,11,13,13,13,13,12,13,13,14,14,12,13,13,12,12,11,13,13,13,13,11,13,13,12,12,11,10,10,10,10,12,10,10,11,11,12,9,9,11,11,13,11,11,10,10,13,10,10,10,10,13,11,11,12,12,13,10,10,12,12,14,12,11,12,12,13,11,11,11,12,13,12,12,12,12,13,11,11,12,12,13,10,10,12,12,14,11,11,12,12,13,11,11,12,12,13,11,11,12,12,14,12,12,12,12,14,10,10,11,11,14,12,11,11,11,13,11,11,11,11,13,12,12,11,11,14,12,12,12,11,14,10,10,11,11,14,12,11,11,11,13,11,11,11,11,13,12,12,11,11,11,11,11,10,10,12,10,11,9,9,12,12,12,11,11,13,12,12,9,9,13,13,13,10,10,13,13,13,12,12,13,13,13,14,14,13,12,12,11,11,14,13,13,12,12,14,13,13,11,11,13,13,13,12,11,13,13,13,14,14,13,12,12,10,10,14,13,13,11,11,13,13,13,10,10,13,13,13,11,11,14,13,13,14,14,14,12,12,10,10,13,13,13,11,11,13,13,13,10,10,13,13,13,11,11,14,13,13,14,14,14,13,13,10,10,13,13,13,11,11,13,13,13,10,10,14,12,12,8,8,14,12,12,9,9,14,11,11,9,9,14,12,12,8,8,14,12,12,7,7,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,12,13,9,9,15,13,13,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15,13,13,9,9,15,13,13,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13,9,9,14,13,12,9,9,14,13,13,9,9,15,13,13,10,10,15,12,12,10,10,15,13,13,9,9,15,13,13,9,9,14,13,13,9,9,14,12,12,8,8,13,13,13,8,8,14,14,13,9,9,14,14,13,7,7,14,14,14,8,8,14,14,14,10,10,15,14,14,12,12,14,14,14,9,9,15,14,14,10,10,14,14,14,9,9,14,14,14,10,9,15,14,14,12,12,14,14,14,9,9,15,14,14,10,10,14,14,14,9,9,15,14,15,9,9,15,14,14,11,11,14,14,14,8,8,14,14,14,9,9,14,14,14,8,8,14,15,14,10,10,15,14,14,11,11,14,14,14,8,8,15,14,14,9,9,14,14,14,8,8,12,12,12,13,13,16,16,15,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16,12,12,17,16,17,13,13,17,16,16,14,14,17,17,16,12,12,18,16,16,13,13,17,16,17,12,12,17,17,17,13,13,18,16,16,14,14,18,17,17,12,12,17,17,17,13,13,18,17,17,13,13,17,17,17,13,13,17,16,16,14,14,17,17,17,12,12,16,16,17,13,13,17,17,16,12,12,18,17,17,13,13,18,16,16,14,14,18,17,17,12,12,19,16,17,13,13,17,16,17,12,12,13,14,14,10,10,16,14,14,13,13,17,15,15,14,14,17,14,14,13,13,16,14,14,13,13,17,16,15,14,14,16,16,16,15,15,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,17,16,15,14,14,16,16,16,15,15,18,15,15,13,13,16,16,15,14,14,17,15,15,14,13,17,15,15,14,14,16,16,16,15,15,18,15,14,13,13,17,15,15,14,14,18,14,15,13,13,18,15,15,14,14,16,16,16,15,15,17,15,15,13,13,17,15,15,14,14,17,15,15,13,13,13,11,11,10,10,16,14,14,13,13,17,14,15,14,14,17,15,15,12,12,17,14,14,12,12,16,15,15,14,14,16,14,14,14,14,16,15,15,14,14,16,15,15,14,14,16,15,15,14,14,16,15,15,14,14,16,15,14,15,15,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,17,15,16,14,14,16,14,14,14,14,17,15,15,13,13,17,15,15,13,13,16,15,15,13,13,17,16,16,14,14,17,15,14,15,14,17,15,15,13,13,17,15,15,13,13,17,15,15,13,13,14,14,14,9,9,14,14,14,18,19,14,15,15,19,18,14,14,14,19,19,15,14,14,19,19,15,16,16,19,19,15,16,16,19,19,15,15,15,19,19,15,16,16,19,20,15,15,15,19,19,15,15,15,19,19,15,16,16,20,20,15,15,15,18,19,15,15,16,19,20,15,15,15,19,18,15,15,15,18,18,15,16,16,21,20,15,15,15,19,19,15,15,15,19,19,15,15,14,19,20,15,15,15,20,19,15,16,16,19,20,15,15,15,19,19,15,15,15,20,21,15,14,15,19,19,14,12,12,9,9,14,14,15,21,19,14,14,14,18,19,14,15,15,19,20,14,14,14,19,19,15,15,15,19,20,15,15,14,21,19,15,15,15,20,19,15,14,15,20,21,15,15,15,18,18,15,15,15,20,21,16,14,14,18,19,15,15,15,20,19,15,15,15,18,21,15,15,15,19,19,15,15,15,19,20,16,15,14,20,19,15,16,15,19,19,15,15,15,19,0,14,15,15,19,19,15,15,15,19,19,15,15,14,20,19,15,15,15,20,19,15,15,15,19,19,15,15,15,20,19,12,12,12,13,13,16,15,16,11,11,16,16,16,12,12,17,16,16,11,11,17,16,16,12,11,17,17,17,13,13,18,16,16,14,14,18,18,17,13,13,17,16,16,13,13,17,17,17,13,13,17,16,17,12,12,17,15,16,13,13,17,16,17,12,12,17,16,16,13,12,17,16,16,12,12,18,17,17,13,13,18,16,16,13,14,18,17,17,12,12,17,16,16,12,12,17,17,17,12,12,18,17,17,13,13,17,16,16,14,14,17,17,17,12,12,17,16,16,12,12,18,17,17,12,12,13,14,14,9,9,16,14,14,13,13,16,15,15,14,14,16,14,14,13,13,16,14,14,13,13,17,16,15,15,15,16,15,16,16,15,17,15,15,14,14,17,15,15,15,15,17,15,15,14,14,17,15,15,14,14,16,15,16,16,16,17,15,15,14,14,16,15,15,14,15,16,15,15,14,14,17,15,15,15,15,16,16,16,15,16,18,15,14,13,14,17,15,15,14,14,17,14,14,13,13,17,15,15,14,14,16,15,15,15,15,17,15,14,14,14,17,15,15,14,14,17,14,14,13,13,13,11,11,11,11,16,14,14,12,12,16,14,14,13,13,16,14,14,12,12,16,14,14,12,12,16,15,15,13,13,17,14,14,14,14,17,15,15,13,13,16,15,15,14,13,16,15,15,13,13,16,15,15,13,13,16,14,14,14,14,16,15,15,13,13,16,14,15,13,13,17,15,15,13,13,17,15,15,13,13,16,14,14,14,14,17,15,15,12,12,17,14,15,13,13,17,15,15,12,12,16,15,15,13,13,17,14,14,14,14,17,15,15,12,12,17,15,15,13,13,16,15,15,12,12,14,15,15,8,8,14,14,14,19,18,14,15,15,19,20,14,14,14,19,19,14,14,15,19,20,15,16,15,19,21,15,16,16,21,19,15,15,15,20,19,15,16,16,19,20,15,15,15,19,18,15,16,15,20,19,15,16,16,19,20,15,15,15,19,19,15,16,15,20,20,14,15,15,19,19,15,15,15,21,19,15,17,16,19,20,15,14,15,0,21,15,15,15,19,20,14,14,14,19,19,15,15,15,20,19,15,16,16,19,19,15,15,15,19,18,15,15,15,20,19,14,14,15,18,18,14,12,12,9,9,14,14,14,18,18,14,14,14,18,18,14,15,14,19,18,14,14,14,19,18,15,15,15,19,20,15,14,14,18,18,15,15,15,20,19,15,15,15,18,20,15,15,15,19,18,15,15,15,19,19,15,14,14,19,21,15,15,15,20,20,15,15,15,18,19,14,15,15,19,20,15,15,15,20,19,15,14,14,19,21,15,15,15,18,19,15,14,15,20,19,14,15,15,21,21,14,15,15,19,20,15,14,14,19,20,15,15,15,19,20,15,15,14,20,20,14,15,15,20,19,13,12,12,13,13,17,16,16,11,11,17,16,16,12,12,18,17,16,11,11,18,16,16,11,11,17,17,17,13,13,18,16,16,13,13,18,17,17,12,12,18,16,16,13,13,18,17,17,12,12,18,17,17,13,13,18,16,16,14,14,18,16,17,12,12,18,17,17,13,13,17,17,17,12,12,17,17,17,12,12,17,16,15,13,13,18,16,16,11,11,17,16,16,12,12,17,16,17,11,11,18,17,17,13,12,17,16,16,13,13,17,17,17,12,12,17,16,17,12,12,18,17,17,11,11,14,14,14,9,9,16,14,14,13,13,17,15,15,14,14,17,14,14,13,13,16,14,14,13,13,17,15,15,14,14,16,16,16,16,15,18,15,15,14,14,17,16,15,15,15,17,15,15,14,14,17,15,15,14,15,16,16,16,15,16,18,15,15,14,14,17,15,15,14,15,17,15,15,14,14,17,15,15,14,14,16,16,16,15,16,17,14,14,13,13,17,15,15,14,14,18,15,15,13,13,17,15,15,14,14,16,16,16,15,15,17,14,14,13,13,17,15,15,14,14,17,14,14,13,13,13,11,11,11,11,16,14,14,12,12,16,14,14,12,13,17,15,14,11,11,17,14,14,11,11,17,15,15,13,14,17,14,14,14,14,17,15,15,13,13,17,14,14,13,13,17,15,15,13,13,17,15,15,13,13,17,14,14,14,14,17,15,15,13,13,18,14,15,13,13,17,15,15,13,13,16,15,15,13,13,17,14,14,13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12,12,17,16,15,13,13,17,14,14,13,13,17,15,15,12,12,16,15,15,12,12,16,15,15,12,12,13,15,15,8,8,14,14,14,18,19,14,15,15,19,20,14,14,14,18,18,14,15,15,18,18,15,16,16,19,19,15,16,17,20,20,15,15,15,19,19,15,16,16,18,20,15,15,15,19,19,15,15,16,18,18,15,17,16,19,19,15,15,15,18,21,15,16,16,21,20,15,15,15,19,21,15,16,15,20,19,15,16,17,20,20,15,15,15,19,19,15,16,16,21,20,15,15,15,19,20,15,15,15,19,19,15,16,16,20,19,15,15,15,19,19,15,16,15,20,21,15,15,15,21,19,14,12,12,8,8,14,14,14,20,18,14,13,13,19,19,14,14,14,19,18,15,14,14,19,20,14,15,15,20,20,15,14,14,21,20,15,15,15,20,20,15,15,14,21,19,15,15,15,19,19,15,15,15,19,20,15,14,14,20,20,15,15,15,19,20,15,14,14,19,20,15,15,15,20,20,15,15,15,20,19,15,14,14,20,21,15,15,15,20,21,15,14,14,20,0,15,16,15,20,21,15,15,15,19,20,15,14,14,19,19,15,15,15,19,20,15,15,15,19,19,15,15,15,18,20,13,12,12,13,13,18,16,17,12,12,17,16,16,12,12,17,17,16,11,11,18,16,16,11,11,17,17,18,13,13,18,16,16,14,14,18,17,17,13,13,18,16,16,13,13,18,17,17,12,12,17,17,16,13,13,17,16,16,13,14,18,17,17,12,12,18,16,16,12,13,17,16,17,12,12,17,18,17,13,13,18,16,16,13,13,18,17,17,12,12,17,16,16,12,12,17,17,17,11,11,17,16,17,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16,12,12,18,16,17,11,11,14,14,14,9,9,16,14,15,13,13,17,15,15,14,14,17,14,14,12,12,16,14,14,13,13,18,15,15,15,15,17,15,16,15,16,18,15,15,14,14,17,15,16,15,15,17,15,15,14,14,18,15,15,14,14,16,16,16,16,15,17,15,15,14,14,16,15,15,14,14,17,15,15,14,14,17,15,15,14,14,17,16,16,15,15,17,15,14,13,13,17,15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,16,16,15,15,18,15,14,14,14,17,15,15,14,14,18,15,15,13,13,13,12,12,11,11,16,14,14,12,12,16,14,14,13,13,17,15,15,12,12,17,14,14,12,12,17,15,15,14,14,17,14,14,14,14,17,15,15,13,13,17,15,14,13,13,17,15,15,13,13,17,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16,14,14,13,13,16,15,15,13,13,17,15,16,13,13,17,14,14,14,13,17,15,15,12,12,16,15,14,12,12,17,15,15,12,12,16,15,16,13,13,16,14,14,14,13,17,15,15,12,12,16,14,14,12,12,17,15,15,12,12,14,15,15,8,8,14,14,14,18,18,14,15,15,19,18,14,14,14,18,18,14,15,15,19,20,15,16,15,21,18,15,16,16,18,0,15,15,15,19,20,15,16,16,20,0,15,16,15,19,18,15,15,15,19,19,15,16,16,21,19,15,15,15,19,19,15,16,16,20,20,15,15,15,19,19,15,15,15,19,18,15,16,16,20,20,15,14,15,20,19,15,15,15,19,20,15,15,15,19,19,15,16,15,19,20,15,16,16,19,20,15,15,15,19,19,15,16,15,20,20,15,15,15,20,18,13,12,12,8,8,14,14,14,19,20,14,14,14,19,19,14,15,15,20,20,14,14,14,18,19,15,15,15,20,0,15,14,14,18,20,15,15,15,19,19,15,15,15,21,19,15,15,15,19,20,15,15,15,20,21,15,14,14,20,19,15,15,15,20,19,15,15,14,21,19,15,15,15,19,18,15,15,15,20,19,15,14,14,19,19,15,15,16,20,19,15,15,15,20,0,15,15,15,19,21,15,15,15,22,20,15,14,14,22,19,15,15,15,19,20,15,14,14,20,19,14,15,15,19,21,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,1,6,6,6,8,8,6,8,8,7,9,9,10,11,11,8,8,8,7,9,9,11,12,12,9,9,9,6,7,7,10,11,11,10,11,11,10,11,11,13,13,13,12,12,12,10,12,11,14,14,14,12,12,12,6,5,5,9,6,6,9,6,6,9,7,7,12,10,10,11,7,6,9,7,7,13,11,11,12,7,7,7,8,8,12,10,10,12,10,10,11,10,10,15,13,13,13,9,9,12,11,11,15,14,14,15,11,11,8,7,7,12,11,11,12,11,11,11,11,11,14,13,14,14,12,12,12,11,11,16,15,15,14,12,12,0,10,10,0,12,12,0,12,12,0,11,11,0,14,14,0,11,11,0,11,11,0,15,15,0,11,11,7,8,8,13,11,11,12,10,10,12,11,11,15,13,13,14,11,11,12,10,10,16,14,14,15,10,10,9,7,7,13,11,12,13,12,11,12,11,11,15,14,14,14,12,12,13,12,12,16,15,15,15,12,12,0,11,11,0,12,12,0,12,13,0,12,12,0,15,15,0,12,12,0,12,12,0,16,15,0,12,12,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,3,3,0,9,9,0,9,9,0,10,10,0,9,9,0,10,10,0,10,10,0,10,10,0,10,10,0,7,7,0,7,7,0,6,6,0,8,8,0,7,7,0,8,8,0,8,8,0,7,7,0,8,8,0,7,7,0,9,9,0,8,9,0,10,10,0,9,9,0,10,10,0,10,11,0,9,9,0,10,10,0,9,9,0,11,11,0,12,12,0,12,12,0,11,11,0,12,12,0,13,13,0,12,12,0,13,13,0,8,8,0,12,12,0,12,12,0,13,13,0,13,13,0,13,13,0,13,13,0,13,13,0,13,13,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,11,11,0,12,12,0,13,13,0,12,12,0,13,13,0,13,13,0,12,12,0,12,12,0,9,9,0,12,12,0,13,13,0,14,14,0,13,13,0,14,14,0,14,14,0,13,13,0,14,14,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,5,5,0,7,7,0,8,8,0,9,9,0,12,12,0,8,8,0,9,9,0,13,13,0,8,8,0,6,6,0,11,11,0,12,12,0,12,12,0,14,14,0,11,12,0,12,12,0,15,15,0,12,12,0,5,5,0,5,5,0,6,6,0,7,7,0,10,10,0,6,6,0,7,7,0,11,11,0,6,6,0,7,7,0,11,11,0,12,11,0,11,11,0,14,14,0,10,10,0,12,12,0,15,15,0,12,12,0,6,6,0,12,12,0,12,12,0,12,12,0,14,14,0,11,11,0,12,12,0,16,16,0,12,12,0,0,0,0,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,0,12,12,0,12,12,0,12,12,0,15,15,0,12,12,0,11,11,0,16,16,0,11,11,0,6,6,0,12,12,0,12,12,0,13,13,0,15,15,0,12,12,0,13,13,0,15,15,0,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,4,3,7,9,12,16,16,3,2,5,7,11,14,15,7,4,5,6,9,12,15,8,5,5,5,8,10,14,9,7,6,6,8,10,12,12,10,10,7,6,8,10,15,12,10,6,4,7,9,0,0,0,0,0,0,0,0,0,0,0,0,249,213,64,0,0,0,0,0,64,223,64,0,0,0,0,0,136,227,64,0,0,0,0,0,112,231,64,0,0,0,0,0,88,235,64,0,0,0,0,0,64,239,64,0,0,0,0,0,136,243,64,0,0,0,0,0,112,247,64,0,0,0,0,0,88,251,64,0,0,0,0,0,64,255,64,0,0,0,0,0,136,3,65,0,0,0,0,136,132,14,65,176,240,7,0,48,241,7,0,48,242,7,0,48,244,7,0,48,248,7,0,48,0,8,0,48,16,8,0,48,48,8,0,24,0,120,58,76,70,11,60,242,204,192,60,116,252,59,61,86,73,154,61,241,93,228,61,248,163,29,62,180,231,78,62,54,157,130,62,78,220,159,62,193,174,190,62,65,132,222,62,173,194,254,62,186,101,15,63,248,0,31,63,29,233,45,63,249,219,59,63,45,162,72,63,160,17,84,63,38,15,94,63,46,143,102,63,112,149,109,63,174,51,115,63,159,135,119,63,66,184,122,63,196,242,124,63,75,103,126,63,196,69,127,63,241,186,127,63,217,237,127,63,162,253,127,63,248,255,127,63,168,9,120,57,17,119,11,59,135,139,193,59,74,113,61,60,148,82,156,60,94,8,233,60,42,83,34,61,74,118,87,61,138,227,137,61,7,140,171,61,34,154,208,61,108,239,248,61,164,52,18,62,100,112,41,62,65,21,66,62,67,11,92,62,47,56,119,62,197,191,137,62,92,97,152,62,135,112,167,62,4,220,182,62,188,145,198,62,231,126,214,62,48,144,230,62,227,177,246,62,13,104,3,63,121,107,11,63,98,89,19,63,42,40,27,63,137,206,34,63,166,67,42,63,49,127,49,63,126,121,56,63,153,43,63,63,92,143,69,63,127,159,75,63,165,87,81,63,104,180,86,63,89,179,91,63,8,83,96,63,252,146,100,63,177,115,104,63,138,246,107,63,198,29,111,63,109,236,113,63,62,102,116,63,154,143,118,63,104,109,120,63,3,5,122,63,26,92,123,63,153,120,124,63,143,96,125,63],"i8",O3,_.GLOBAL_BASE+510456),C3([17,26,126,63,39,171,126,63,176,25,127,63,74,107,127,63,68,165,127,63,132,204,127,63,123,229,127,63,17,244,127,63,158,251,127,63,219,254,127,63,218,255,127,63,0,0,128,63,5,12,120,56,50,131,11,58,118,186,193,58,226,203,61,59,38,207,156,59,139,32,234,59,245,102,35,60,63,100,89,60,184,127,139,60,59,23,174,60,239,114,212,60,96,140,254,60,45,46,22,61,114,237,46,61,155,127,73,61,220,223,101,61,123,4,130,61,159,250,145,61,71,207,162,61,38,127,180,61,173,6,199,61,16,98,218,61,63,141,238,61,244,193,1,62,185,160,12,62,128,224,23,62,182,126,35,62,166,120,47,62,116,203,59,62,34,116,72,62,141,111,85,62,107,186,98,62,83,81,112,62,180,48,126,62,110,42,134,62,252,92,141,62,9,174,148,62,138,27,156,62,100,163,163,62,112,67,171,62,119,249,178,62,54,195,186,62,93,158,194,62,147,136,202,62,118,127,210,62,154,128,218,62,142,137,226,62,217,151,234,62,2,169,242,62,139,186,250,62,251,100,1,63,99,106,5,63,65,108,9,63,89,105,13,63,116,96,17,63,94,80,21,63,231,55,25,63,231,21,29,63,58,233,32,63,197,176,36,63,116,107,40,63,62,24,44,63,35,182,47,63,43,68,51,63,109,193,54,63,10,45,58,63,48,134,61,63,26,204,64,63,17,254,67,63,107,27,71,63,142,35,74,63,238,21,77,63,15,242,79,63,132,183,82,63,239,101,85,63,3,253,87,63,129,124,90,63,60,228,92,63,21,52,95,63,254,107,97,63,246,139,99,63,14,148,101,63,98,132,103,63,33,93,105,63,133,30,107,63,213,200,108,63,103,92,110,63,155,217,111,63,224,64,113,63,172,146,114,63,131,207,115,63,241,247,116,63,139,12,118,63,239,13,119,63,193,252,119,63,172,217,120,63,99,165,121,63,155,96,122,63,15,12,123,63,124,168,123,63,163,54,124,63,71,183,124,63,41,43,125,63,13,147,125,63,183,239,125,63,229,65,126,63,89,138,126,63,205,201,126,63,251,0,127,63,150,48,127,63,78,89,127,63,205,123,127,63,182,152,127,63,167,176,127,63,53,196,127,63,239,211,127,63,91,224,127,63,245,233,127,63,51,241,127,63,127,246,127,63,59,250,127,63,190,252,127,63,84,254,127,63,64,255,127,63,186,255,127,63,238,255,127,63,254,255,127,63,0,0,128,63,169,12,120,55,54,134,11,57,38,198,193,57,94,226,61,58,234,237,156,58,85,101,234,58,56,170,35,59,207,219,89,59,169,226,139,59,42,178,174,59,13,91,213,59,204,219,255,59,91,25,23,60,250,46,48,60,194,45,75,60,156,20,104,60,46,113,131,60,225,202,147,60,185,22,165,60,1,84,183,60,245,129,202,60,198,159,222,60,155,172,243,60,199,211,4,61,213,71,16,61,250,49,28,61,174,145,40,61,101,102,53,61,141,175,66,61,140,108,80,61,193,156,94,61,133,63,109,61,41,84,124,61,252,236,133,61,26,232,141,61,13,27,150,61,110,133,158,61,212,38,167,61,210,254,175,61,245,12,185,61,200,80,194,61,209,201,203,61,146,119,213,61,139,89,223,61,51,111,233,61,2,184,243,61,105,51,254,61,106,112,4,62,214,223,9,62,171,103,15,62,153,7,21,62,77,191,26,62,116,142,32,62,181,116,38,62,184,113,44,62,34,133,50,62,149,174,56,62,178,237,62,62,21,66,69,62,92,171,75,62,30,41,82,62,243,186,88,62,112,96,95,62,40,25,102,62,170,228,108,62,132,194,115,62,68,178,122,62,185,217,128,62,203,98,132,62,26,244,135,62,105,141,139,62,120,46,143,62,6,215,146,62,211,134,150,62,156,61,154,62,29,251,157,62,19,191,161,62,57,137,165,62,71,89,169,62,249,46,173,62,5,10,177,62,36,234,180,62,13,207,184,62,117,184,188,62,18,166,192,62,153,151,196,62,190,140,200,62,52,133,204,62,175,128,208,62,225,126,212,62,125,127,216,62,52,130,220,62,184,134,224,62,185,140,228,62,233,147,232,62,248,155,236,62,150,164,240,62,117,173,244,62,67,182,248,62,178,190,252,62,57,99,0,63,153,102,2,63,82,105,4,63,60,107,6,63,48,108,8,63,6,108,10,63,151,106,12,63,188,103,14,63,78,99,16,63,39,93,18,63,33,85,20,63,21,75,22,63,222,62,24,63,87,48,26,63,92,31,28,63,199,11,30,63,117,245,31,63,66,220,33,63,12,192,35,63,176,160,37,63,12,126,39,63,254,87,41,63,104,46,43,63,39,1,45,63,29,208,46,63,43,155,48,63,51,98,50,63,23,37,52,63,188,227,53,63,4,158,55,63,214,83,57,63,23,5,59,63,173,177,60,63,128,89,62,63,120,252,63,63,126,154,65,63,124,51,67,63,93,199,68,63,12,86,70,63,119,223,71,63,138,99,73,63,54,226,74,63,104,91,76,63,17,207,77,63,35,61,79,63,145,165,80,63,76,8,82,63,75,101,83,63,130,188,84,63,231,13,86,63,114,89,87,63,26,159,88,63,218,222,89,63,172,24,91,63,138,76,92,63,113,122,93,63,93,162,94,63,78,196,95,63,67,224,96,63,58,246,97,63,54,6,99,63,56,16,100,63,67,20,101,63,92,18,102,63,133,10,103,63,198,252,103,63,37,233,104,63,168,207,105,63,89,176,106,63,64,139,107,63,102,96,108,63,216,47,109,63,159,249,109,63,201,189,110,63,97,124,111,63,118,53,112,63,23,233,112,63,81,151,113,63,53,64,114,63,212,227,114,63,61,130,115,63,131,27,116,63,184,175,116,63,238,62,117,63,56,201,117,63,171,78,118,63,90,207,118,63,90,75,119,63,192,194,119,63,162,53,120,63,21,164,120,63,48,14,121,63,8,116,121,63,182,213,121,63,79,51,122,63,235,140,122,63,162,226,122,63,139,52,123,63,191,130,123,63,85,205,123,63,102,20,124,63,9,88,124,63,88,152,124,63,106,213,124,63,88,15,125,63,58,70,125,63,41,122,125,63,62,171,125,63,143,217,125,63,54,5,126,63,75,46,126,63,228,84,126,63,27,121,126,63,7,155,126,63,190,186,126,63,88,216,126,63,236,243,126,63,144,13,127,63,91,37,127,63,99,59,127,63,188,79,127,63,125,98,127,63,185,115,127,63,135,131,127,63,249,145,127,63,36,159,127,63,26,171,127,63,238,181,127,63,179,191,127,63,122,200,127,63,85,208,127,63,84,215,127,63,136,221,127,63,0,227,127,63,204,231,127,63,249,235,127,63,150,239,127,63,177,242,127,63,85,245,127,63,144,247,127,63,109,249,127,63,246,250,127,63,54,252,127,63,55,253,127,63,1,254,127,63,156,254,127,63,18,255,127,63,103,255,127,63,163,255,127,63,204,255,127,63,229,255,127,63,244,255,127,63,252,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,60,12,120,54,253,134,11,56,19,201,193,56,248,231,61,57,148,245,156,57,115,118,234,57,238,186,35,58,113,249,89,58,32,251,139,58,96,216,174,58,34,148,213,58,3,23,0,59,209,82,23,59,65,125,48,59,21,150,75,59,8,157,104,59,233,200,131,59,20,58,148,59,218,161,165,59,16,0,184,59,136,84,203,59,16,159,223,59,118,223,244,59,194,138,5,60,128,32,17,60,217,48,29,60,172,187,41,60,219,192,54,60,67,64,68,60,194,57,82,60,52,173,96,60,115,154,111,60,88,1,127,60,222,112,135,60,186,157,143,60,42,7,152,60,25,173,160,60,112,143,169,60,23,174,178,60,246,8,188,60,243,159,197,60,245,114,207,60,225,129,217,60,156,204,227,60,10,83,238,60,14,21,249,60,70,9,2,61,177,165,7,61,187,95,13,61,81,55,19,61,102,44,25,61,230,62,31,61,195,110,37,61,233,187,43,61,71,38,50,61,202,173,56,61,97,82,63,61,247,19,70,61,121,242,76,61,210,237,83,61,240,5,91,61,187,58,98,61,32,140,105,61,8,250,112,61,93,132,120,61,132,21,128,61,249,246,131,61,130,230,135,61,19,228,139,61,159,239,143,61,26,9,148,61,119,48,152,61,169,101,156,61,163,168,160,61,88,249,164,61,186,87,169,61,186,195,173,61,76,61,178,61,95,196,182,61,230,88,187,61,209,250,191,61,18,170,196,61,152,102,201,61,85,48,206,61,56,7,211,61,48,235,215,61,47,220,220,61,34,218,225,61,248,228,230,61,161,252,235,61,11,33,241,61,35,82,246,61,217,143,251,61,13,109,0,62,105,24,3,62,247,201,5,62,174,129,8,62,133,63,11,62,113,3,14,62,104,205,16,62,96,157,19,62,79,115,22,62,42,79,25,62,232,48,28,62,124,24,31,62,221,5,34,62,255,248,36,62,215,241,39,62,90,240,42,62,125,244,45,62,51,254,48,62,114,13,52,62,45,34,55,62,88,60,58,62,232,91,61,62,208,128,64,62,3,171,67,62,118,218,70,62,26,15,74,62,229,72,77,62,199,135,80,62,181,203,83,62,162,20,87,62,127,98,90,62,63,181,93,62,213,12,97,62,50,105,100,62,73,202,103,62,12,48,107,62,108,154,110,62,92,9,114,62,203,124,117,62,173,244,120,62,241,112,124,62,138,241,127,62,52,187,129,62,190,127,131,62,91,70,133,62,4,15,135,62,176,217,136,62,89,166,138,62,245,116,140,62,126,69,142,62,234,23,144,62,50,236,145,62,78,194,147,62,54,154,149,62,224,115,151,62,70,79,153,62,93,44,155,62,31,11,157,62,130,235,158,62,127,205,160,62,11,177,162,62,31,150,164,62,177,124,166,62,186,100,168,62,47,78,170,62,9,57,172,62,62,37,174,62,198,18,176,62,150,1,178,62,167,241,179,62,238,226,181,62,100,213,183,62,254,200,185,62,179,189,187,62,122,179,189,62,74,170,191,62,25,162,193,62,221,154,195,62,142,148,197,62,34,143,199,62,142,138,201,62,203,134,203,62,205,131,205,62,140,129,207,62,253,127,209,62,24,127,211,62,210,126,213,62,33,127,215,62,252,127,217,62,88,129,219,62,45,131,221,62,112,133,223,62,23,136,225,62,25,139,227,62,108,142,229,62,5,146,231,62,219,149,233,62,228,153,235,62,21,158,237,62,102,162,239,62,203,166,241,62,59,171,243,62,173,175,245,62,21,180,247,62,107,184,249,62,164,188,251,62,181,192,253,62,150,196,255,62,30,228,0,63,207,229,1,63,88,231,2,63,182,232,3,63,226,233,4,63,215,234,5,63,146,235,6,63,12,236,7,63,66,236,8,63,45,236,9,63,202,235,10,63,19,235,11,63,4,234,12,63,151,232,13,63,200,230,14,63,145,228,15,63,239,225,16,63,220,222,17,63,84,219,18,63,81,215,19,63,208,210,20,63,202,205,21,63,61,200,22,63,34,194,23,63,117,187,24,63,50,180,25,63,85,172,26,63,215,163,27,63,182,154,28,63,236,144,29,63,117,134,30,63,77,123,31,63,110,111,32,63,214,98,33,63,126,85,34,63,100,71,35,63,130,56,36,63,212,40,37,63,87,24,38,63,5,7,39,63,219,244,39,63,213,225,40,63,239,205,41,63,36,185,42,63,113,163,43,63,209,140,44,63,64,117,45,63,188,92,46,63,63,67,47,63,199,40,48,63,78,13,49,63,211,240,49,63,80,211,50,63,195,180,51,63,39,149,52,63,122,116,53,63,184,82,54,63,220,47,55,63,229,11,56,63,206,230,56,63,149,192,57,63,54,153,58,63,174,112,59,63,249,70,60,63,21,28,61,63,255,239,61,63,179,194,62,63,48,148,63,63,113,100,64,63,116,51,65,63,55,1,66,63,182,205,66,63,239,152,67,63,224,98,68,63,134,43,69,63,222,242,69,63,230,184,70,63,156,125,71,63,253,64,72,63,7,3,73,63,184,195,73,63,14,131,74,63,6,65,75,63,159,253,75,63,215,184,76,63,172,114,77,63,28,43,78,63,38,226,78,63,199,151,79,63,253,75,80,63,201,254,80,63,39,176,81,63,22,96,82,63,150,14,83,63,164,187,83,63,63,103,84,63,103,17,85,63,26,186,85,63,86,97,86,63,28,7,87,63,105,171,87,63,62,78,88,63,152,239,88,63,120,143,89,63,221,45,90,63,198,202,90,63,50,102,91,63,33,0,92,63,147,152,92,63,134,47,93,63,251,196,93,63,242,88,94,63,105,235,94,63,98,124,95,63,219,11,96,63,213,153,96,63,80,38,97,63,76,177,97,63,201,58,98,63,199,194,98,63,70,73,99,63,71,206,99,63,202,81,100,63,208,211,100,63,88,84,101,63,100,211,101,63,244,80,102,63,9,205,102,63,163,71,103,63,195,192,103,63,107,56,104,63,154,174,104,63,82,35,105,63,147,150,105,63,96,8,106,63,184,120,106,63,157,231,106,63,16,85,107,63,19,193,107,63,166,43,108,63,203,148,108,63,132,252,108,63,209,98,109,63,180,199,109,63,48,43,110,63,68,141,110,63,244,237,110,63,64,77,111,63,42,171,111,63,181,7,112,63,225,98,112,63,177,188,112,63,38,21,113,63,67,108,113,63,10,194,113,63,123,22,114,63,155,105,114,63,106,187,114,63,234,11,115,63,31,91,115,63,9,169,115,63,172,245,115,63,9,65,116,63,35,139,116,63,252,211,116,63,151,27,117,63,245,97,117,63,26,167,117,63,8,235,117,63,193,45,118,63,72,111,118,63,159,175,118,63,202,238,118,63,201,44,119,63,161,105,119,63,84,165,119,63,228,223,119,63,85,25,120,63,168,81,120,63,226,136,120,63,3,191,120,63,16,244,120,63,11,40,121,63,247,90,121,63,215,140,121,63,173,189,121,63,125,237,121,63,73,28,122,63,20,74,122,63,226,118,122,63,181,162,122,63,144,205,122,63,118,247,122,63,107,32,123,63,112,72,123,63,138,111,123,63,186,149,123,63,5,187,123,63,109,223,123,63,245,2,124,63,160,37,124,63,113,71,124,63,108,104,124,63,147,136,124,63,233,167,124,63,114,198,124,63,48,228,124,63,38,1,125,63,89,29,125,63,201,56,125,63,124,83,125,63,115,109,125,63,178,134,125,63,60,159,125,63,19,183,125,63,60,206,125,63,184,228,125,63,139,250,125,63,184,15,126,63,66,36,126,63,44,56,126,63,120,75,126,63,43,94,126,63,70,112,126,63,204,129,126,63,194,146,126,63,41,163,126,63,4,179,126,63,86,194,126,63,35,209,126,63,109,223,126,63,55,237,126,63,131,250,126,63,85,7,127,63,175,19,127,63,148,31,127,63,7,43,127,63,10,54,127,63,160,64,127,63,205,74,127,63,146,84,127,63,242,93,127,63,239,102,127,63,141,111,127,63,206,119,127,63,181,127,127,63,67,135,127,63,124,142,127,63,98,149,127,63,247,155,127,63,61,162,127,63,56,168,127,63,233,173,127,63,83,179,127,63,120,184,127,63,90,189,127,63,252,193,127,63,95,198,127,63,134,202,127,63,116,206,127,63,41,210,127,63,168,213,127,63,244,216,127,63,13,220,127,63,247,222,127,63,179,225,127,63,67,228,127,63,168,230,127,63,229,232,127,63,252,234,127,63,237,236,127,63,188,238,127,63,105,240,127,63,246,241,127,63,101,243,127,63,183,244,127,63,238,245,127,63,11,247,127,63,16,248,127,63,254,248,127,63,214,249,127,63,155,250,127,63,76,251,127,63,236,251,127,63,124,252,127,63,252,252,127,63,110,253,127,63,211,253,127,63,44,254,127,63,121,254,127,63,189,254,127,63,247,254,127,63,42,255,127,63,84,255,127,63,120,255,127,63,150,255,127,63,175,255,127,63,195,255,127,63,211,255,127,63,224,255,127,63,234,255,127,63,241,255,127,63,246,255,127,63,250,255,127,63,253,255,127,63,254,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,171,15,120,53,24,135,11,55,225,201,193,55,107,233,61,56,128,247,156,56,187,122,234,56,24,191,35,57,213,0,90,57,56,1,140,57,229,225,174,57,88,162,213,57,60,33,0,58,24,97,23,58,175,144,48,58,243,175,75,58,212,190,104,58,159,222,131,58,143,85,148,58,48,196,165,58,119,42,184,58,90,136,203,58,204,221,223,58,191,42,245,58,148,183,5,59,124,85,17,59,16,111,29,59,73,4,42,59,31,21,55,59,138,161,68,59,129,169,82,59,252,44,97,59,241,43,112,59,88,166,127,59,19,206,135,59,169,6,144,59,233,124,152,59,204,48,161,59,79,34,170,59,106,81,179,59,26,190,188,59,86,104,198,59,26,80,208,59,95,117,218,59,31,216,228,59,83,120,239,59,244,85,250,59,126,184,2,60,177,100,8,60,145,47,14,60,25,25,20,60,70,33,26,60,19,72,32,60,126,141,38,60,129,241,44,60,25,116,51,60,65,21,58,60,246,212,64,60,50,179,71,60,243,175,78,60,50,203,85,60,235,4,93,60,26,93,100,60,186,211,107,60,198,104,115,60,58,28,123,60,7,119,129,60,33,111,133,60,102,118,137,60,212,140,141,60,105,178,145,60,33,231,149,60,251,42,154,60,243,125,158,60,6,224,162,60,50,81,167,60,115,209,171,60,199,96,176,60,43,255,180,60,154,172,185,60,19,105,190,60,146,52,195,60,20,15,200,60,149,248,204,60,19,241,209,60,137,248,214,60,245,14,220,60,83,52,225,60,160,104,230,60,215,171,235,60,246,253,240,60,249,94,246,60,220,206,251,60,205,166,0,61,153,109,3,61,207,59,6,61,109,17,9,61,114,238,11,61,220,210,14,61,167,190,17,61,211,177,20,61,94,172,23,61,68,174,26,61,133,183,29,61,30,200,32,61,12,224,35,61,78,255,38,61,225,37,42,61,196,83,45,61,243,136,48,61,109,197,51,61,47,9,55,61,55,84,58,61,130,166,61,61,15,0,65,61,218,96,68,61,226,200,71,61,35,56,75,61,156,174,78,61,73,44,82,61,40,177,85,61,55,61,89,61,115,208,92,61,217,106,96,61,103,12,100,61,25,181,103,61,238,100,107,61,227,27,111,61,244,217,114,61,30,159,118,61,96,107,122,61,182,62,126,61,143,12,129,61,73,253,130,61,138,241,132,61,79,233,134,61,150,228,136,61,94,227,138,61,167,229,140,61,109,235,142,61,175,244,144,61,109,1,147,61,164,17,149,61,83,37,151,61,120,60,153,61,17,87,155,61,30,117,157,61,155,150,159,61,136,187,161,61,226,227,163,61,169,15,166,61,218,62,168,61,116,113,170,61,116,167,172,61,218,224,174,61,162,29,177,61,205,93,179,61,87,161,181,61,62,232,183,61,130,50,186,61,32,128,188,61,22,209,190,61,98,37,193,61,2,125,195,61,245,215,197,61,57,54,200,61,203,151,202,61,169,252,204,61,211,100,207,61,68,208,209,61,252,62,212,61,249,176,214,61,56,38,217,61,184,158,219,61,117,26,222,61,111,153,224,61,163,27,227,61,14,161,229,61,175,41,232,61,132,181,234,61,138,68,237,61,191,214,239,61,33,108,242,61,174,4,245,61,99,160,247,61,62,63,250,61,61,225,252,61,93,134,255,61,78,23,1,62,252,108,2,62,56,196,3,62,255,28,5,62,81,119,6,62,45,211,7,62,145,48,9,62,125,143,10,62,238,239,11,62,228,81,13,62,94,181,14,62,89,26,16,62,214,128,17,62,210,232,18,62,77,82,20,62,69,189,21,62,184,41,23,62,166,151,24,62,13,7,26,62,236,119,27,62,65,234,28,62,11,94,30,62,73,211,31,62,250,73,33,62,28,194,34,62,173,59,36,62,172,182,37,62,24,51,39,62,240,176,40,62,50,48,42,62,220,176,43,62,238,50,45,62,101,182,46,62,64,59,48,62,126,193,49,62,30,73,51,62,29,210,52,62,123,92,54,62,54,232,55,62,76,117,57,62,187,3,59,62,131,147,60,62,162,36,62,62,22,183,63,62,222,74,65,62,248,223,66,62,98,118,68,62,28,14,70,62,35,167,71,62,117,65,73,62,18,221,74,62,247,121,76,62,35,24,78,62,149,183,79,62,74,88,81,62,66,250,82,62,121,157,84,62,240,65,86,62,163,231,87,62,146,142,89,62,186,54,91,62,26,224,92,62,177,138,94,62,124,54,96,62,122,227,97,62,169,145,99,62,7,65,101,62,147,241,102,62,75,163,104,62,44,86,106,62,54,10,108,62,102,191,109,62,187,117,111,62,51,45,113,62,204,229,114,62,132,159,116,62,90,90,118,62,75,22,120,62,85,211,121,62,120,145,123,62,176,80,125,62,253,16,127,62,46,105,128,62,101,74,129,62,36,44,130,62,105,14,131,62,52,241,131,62,130,212,132,62,84,184,133,62,169,156,134,62,127,129,135,62,213,102,136,62,171,76,137,62,255,50,138,62,209,25,139,62,32,1,140,62,233,232,140,62,46,209,141,62,236,185,142,62,34,163,143,62,208,140,144,62,244,118,145,62,142,97,146,62,156,76,147,62,29,56,148,62,17,36,149,62,118,16,150,62,76,253,150,62,144,234,151,62,67,216,152,62,99,198,153,62,239,180,154,62,230,163,155,62,71,147,156,62,17,131,157,62,67,115,158,62,219,99,159,62,218,84,160,62,60,70,161,62,3,56,162,62,43,42,163,62,181,28,164,62,160,15,165,62,233,2,166,62,145,246,166,62,149,234,167,62,245,222,168,62,176,211,169,62,197,200,170,62,50,190,171,62,246,179,172,62,17,170,173,62,129,160,174,62,69,151,175,62,91,142,176,62,196,133,177,62,125,125,178,62,133,117,179,62,220,109,180,62,128,102,181,62,112,95,182,62,171,88,183,62,47,82,184,62,252,75,185,62,17,70,186,62,108,64,187,62,11,59,188,62,239,53,189,62,22,49,190,62,126,44,191,62,38,40,192,62,13,36,193,62,51,32,194,62,150,28,195,62,52,25,196,62,12,22,197,62,30,19,198,62,104,16,199,62,233,13,200,62,159,11,201,62,138,9,202,62,169,7,203,62,249,5,204,62,123,4,205,62,44,3,206,62,11,2,207,62,24,1,208,62,81,0,209,62,181,255,209,62,66,255,210,62,248,254,211,62,213,254,212,62,216,254,213,62,255,254,214,62,75,255,215,62,184,255,216,62,71,0,218,62,245,0,219,62,195,1,220,62,173,2,221,62,180,3,222,62,214,4,223,62,17,6,224,62,101,7,225,62,208,8,226,62,81,10,227,62,231,11,228,62,144,13,229,62,76,15,230,62,25,17,231,62,245,18,232,62,224,20,233,62,217,22,234,62,221,24,235,62,236,26,236,62,5,29,237,62,39,31,238,62,79,33,239,62,125,35,240,62,176,37,241,62,230,39,242,62,31,42,243,62,88,44,244,62,145,46,245,62,200,48,246,62,253,50,247,62,45,53,248,62,88,55,249,62,124,57,250,62,153,59,251,62,172,61,252,62,181,63,253,62,179,65,254,62,163,67,255,62,195,34,0,63,173,163,0,63,142,36,1,63,102,165,1,63,53,38,2,63,250,166,2,63,180,39,3,63,99,168,3,63,5,41,4,63,155,169,4,63,36,42,5,63,159,170,5,63,12,43,6,63,105,171,6,63,183,43,7,63,244,171,7,63,32,44,8,63,59,172,8,63,68,44,9,63,58,172,9,63,28,44,10,63,235,171,10,63,164,43,11,63,73,171,11,63,216,42,12,63,80,170,12,63,177,41,13,63,251,168,13,63,44,40,14,63,69,167,14,63,68,38,15,63,41,165,15,63,243,35,16,63,162,162,16,63,53,33,17,63,172,159,17,63,5,30,18,63,65,156,18,63,95,26,19,63,94,152,19,63,61,22,20,63,252,147,20,63,155,17,21,63,24,143,21,63,116,12,22,63,173,137,22,63,195,6,23,63,182,131,23,63,133,0,24,63,46,125,24,63,179,249,24,63,18,118,25,63,74,242,25,63,91,110,26,63,69,234,26,63,6,102,27,63,159,225,27,63,14,93,28,63,84,216,28,63,111,83,29,63,95,206,29,63,36,73,30,63,188,195,30,63,40,62,31,63,102,184,31,63,119,50,32,63,90,172,32,63,14,38,33,63,146,159,33,63,230,24,34,63,10,146,34,63,253,10,35,63,190,131,35,63,77,252,35,63,169,116,36,63,211,236,36,63,200,100,37,63,138,220,37,63,22,84,38,63,110,203,38,63,143,66,39,63,122,185,39,63,47,48,40,63,172,166,40,63,241,28,41,63,254,146,41,63,210,8,42,63,108,126,42,63,205,243,42,63,243,104,43,63,223,221,43,63,143,82,44,63,3,199,44,63,59,59,45,63,54,175,45,63,244,34,46,63,116,150,46,63,182,9,47,63,185,124,47,63,125,239,47,63,1,98,48,63,69,212,48,63,72,70,49,63,10,184,49,63,139,41,50,63,202,154,50,63,198,11,51,63,127,124,51,63,246,236,51,63,40,93,52,63,22,205,52,63,191,60,53,63,36,172,53,63,66,27,54,63,27,138,54,63,174,248,54,63,249,102,55,63,254,212,55,63,187,66,56,63,47,176,56,63,91,29,57,63,63,138,57,63,217,246,57,63,41,99,58,63,48,207,58,63,236,58,59,63,93,166,59,63,130,17,60,63,93,124,60,63,235,230,60,63,44,81,61,63,33,187,61,63,201,36,62,63,35,142,62,63,48,247,62,63,238,95,63,63,94,200,63,63,126,48,64,63,80,152,64,63,209,255,64,63,3,103,65,63,228,205,65,63,117,52,66,63,181,154,66,63,163,0,67,63,64,102,67,63,139,203,67,63,131,48,68,63,41,149,68,63,124,249,68,63,123,93,69,63,39,193,69,63,127,36,70,63,132,135,70,63,51,234,70,63,142,76,71,63,148,174,71,63,68,16,72,63,159,113,72,63,164,210,72,63,83,51,73,63,172,147,73,63,174,243,73,63,89,83,74,63,173,178,74,63,169,17,75,63,77,112,75,63,154,206,75,63,143,44,76,63,43,138,76,63,110,231,76,63,89,68,77,63,234,160,77,63,34,253,77,63,0,89,78,63,133,180,78,63,176,15,79,63,128,106,79,63,246,196,79,63,18,31,80,63,210,120,80,63,56,210,80,63,66,43,81,63,242,131,81,63,69,220,81,63,61,52,82,63,217,139,82,63,24,227,82,63,252,57,83,63,131,144,83,63,174,230,83,63,123,60,84,63,236,145,84,63,0,231,84,63,183,59,85,63,16,144,85,63,12,228,85,63,170,55,86,63,235,138,86,63,206,221,86,63,83,48,87,63,121,130,87,63,66,212,87,63,172,37,88,63,184,118,88,63,101,199,88,63,180,23,89,63,164,103,89,63,53,183,89,63,104,6,90,63,59,85,90,63,175,163,90,63,197,241,90,63,123,63,91,63,210,140,91,63,201,217,91,63,97,38,92,63,154,114,92,63,115,190,92,63,237,9,93,63,7,85,93,63,194,159,93,63,29,234,93,63,24,52,94,63,179,125,94,63,239,198,94,63,203,15,95,63,72,88,95,63,100,160,95,63,33,232,95,63,126,47,96,63,123,118,96,63,24,189,96,63,85,3,97,63,51,73,97,63,177,142,97,63,207,211,97,63,141,24,98,63,236,92,98,63,235,160,98,63,138,228,98,63,202,39,99,63,170,106,99,63,42,173,99,63,75,239,99,63,13,49,100,63,111,114,100,63,114,179,100,63,21,244,100,63,90,52,101,63,63,116,101,63,197,179,101,63,236,242,101,63,180,49,102,63,29,112,102,63,39,174,102,63,211,235,102,63,32,41,103,63,15,102,103,63,159,162,103,63,209,222,103,63,164,26,104,63,26,86,104,63,49,145,104,63,235,203,104,63,71,6,105,63,69,64,105,63,230,121,105,63,42,179,105,63,16,236,105,63,153,36,106,63,197,92,106,63,148,148,106,63,7,204,106,63,29,3,107,63,214,57,107,63,52,112,107,63,53,166,107,63,218,219,107,63,36,17,108,63,18,70,108,63,164,122,108,63,220,174,108,63,184,226,108,63,57,22,109,63,96,73,109,63,44,124,109,63,157,174,109,63,181,224,109,63,115,18,110,63,214,67,110,63,225,116,110,63,146,165,110,63,233,213,110,63,232,5,111,63,142,53,111,63,219,100,111,63,209,147,111,63,110,194,111,63,179,240,111,63,160,30,112,63,54,76,112,63,117,121,112,63,93,166,112,63,239,210,112,63,41,255,112,63,14,43,113,63,156,86,113,63,213,129,113,63,184,172,113,63,70,215,113,63,127,1,114,63,99,43,114,63,243,84,114,63,46,126,114,63,21,167,114,63,169,207,114,63,233,247,114,63,214,31,115,63,113,71,115,63,184,110,115,63,173,149,115,63,80,188,115,63,162,226,115,63,161,8,116,63,80,46,116,63,174,83,116,63,187,120,116,63,119,157,116,63,228,193,116,63,1,230,116,63,206,9,117,63,76,45,117,63,123,80,117,63,92,115,117,63,238,149,117,63,51,184,117,63,42,218,117,63,211,251,117,63,48,29,118,63,64,62,118,63,3,95,118,63,122,127,118,63,166,159,118,63,134,191,118,63,27,223,118,63,101,254,118,63,101,29,119,63,27,60,119,63,135,90,119,63,169,120,119,63,131,150,119,63,19,180,119,63,91,209,119,63,91,238,119,63,20,11,120,63,132,39,120,63,174,67,120,63,145,95,120,63,46,123,120,63,132,150,120,63,149,177,120,63,96,204,120,63,231,230,120,63,41,1,121,63,38,27,121,63,223,52,121,63,85,78,121,63,136,103,121,63,120,128,121,63,37,153,121,63,144,177,121,63,185,201,121,63,161,225,121,63,72,249,121,63,174,16,122,63,212,39,122,63,185,62,122,63,96,85,122,63,198,107,122,63,238,129,122,63,216,151,122,63,131,173,122,63,241,194,122,63,33,216,122,63,20,237,122,63,202,1,123,63,68,22,123,63,130,42,123,63,133,62,123,63,77,82,123,63,217,101,123,63,43,121,123,63,68,140,123,63,34,159,123,63,200,177,123,63,52,196,123,63,104,214,123,63,99,232,123,63,39,250,123,63,180,11,124,63,9,29,124,63,40,46,124,63,17,63,124,63,196,79,124,63,65,96,124,63,137,112,124,63,156,128,124,63,124,144,124,63,39,160,124,63,158,175,124,63,226,190,124,63,244,205,124,63,211,220,124,63,128,235,124,63,251,249,124,63,69,8,125,63,94,22,125,63,71,36,125,63,255,49,125,63,136,63,125,63,225,76,125,63,11,90,125,63,7,103,125,63,212,115,125,63,115,128,125,63,229,140,125,63,42,153,125,63,66,165,125,63,46,177,125,63,238,188,125,63,130,200,125,63,235,211,125,63,41,223,125,63,61,234,125,63,38,245,125,63,230,255,125,63,124,10,126,63,234,20,126,63,47,31,126,63,75,41,126,63,64,51,126,63,13,61,126,63,180,70,126,63,51,80,126,63,140,89,126,63,191,98,126,63,205,107,126,63,181,116,126,63,120,125,126,63,23,134,126,63,146,142,126,63,233,150,126,63,28,159,126,63,44,167,126,63,26,175,126,63,229,182,126,63,142,190,126,63,22,198,126,63,124,205,126,63,194,212,126,63,231,219,126,63,235,226,126,63,208,233,126,63,149,240,126,63,59,247,126,63,195,253,126,63,44,4,127,63,118,10,127,63,163,16,127,63,179,22,127,63,165,28,127,63,123,34,127,63,52,40,127,63,210,45,127,63,83,51,127,63,186,56,127,63,5,62,127,63,53,67,127,63,75,72,127,63,72,77,127,63,42,82,127,63,243,86,127,63,163,91,127,63,58,96,127,63,185,100,127,63,32,105,127,63,111,109,127,63,166,113,127,63,199,117,127,63,208,121,127,63,196,125,127,63,161,129,127,63,104,133,127,63,25,137,127,63,182,140,127,63,61,144,127,63,176,147,127,63,14,151,127,63,89,154,127,63,143,157,127,63,179,160,127,63,195,163,127,63,192,166,127,63,171,169,127,63,132,172,127,63,74,175,127,63,255,177,127,63,163,180,127,63,53,183,127,63,183,185,127,63,40,188,127,63,137,190,127,63,217,192,127,63,26,195,127,63,76,197,127,63,111,199,127,63,130,201,127,63,135,203,127,63,126,205,127,63,102,207,127,63,65,209,127,63,14,211,127,63,205,212,127,63,128,214,127,63,38,216,127,63,191,217,127,63,76,219,127,63,204,220,127,63,65,222,127,63,170,223,127,63,8,225,127,63,91,226,127,63,163,227,127,63,224,228,127,63,19,230,127,63,59,231,127,63,90,232,127,63,110,233,127,63,122,234,127,63,124,235,127,63,116,236,127,63,100,237,127,63,75,238,127,63,42,239,127,63,1,240,127,63,207,240,127,63,149,241,127,63,84,242,127,63,12,243,127,63,188,243,127,63,101,244,127,63,7,245,127,63,162,245,127,63,55,246,127,63,198,246,127,63,78,247,127,63,209,247,127,63,77,248,127,63,196,248,127,63,54,249,127,63,162,249,127,63,9,250,127,63,108,250,127,63,201,250,127,63,34,251,127,63,118,251,127,63,198,251,127,63,18,252,127,63,89,252,127,63,157,252,127,63,221,252,127,63,26,253,127,63,83,253,127,63,136,253,127,63,187,253,127,63,234,253,127,63,22,254,127,63,64,254,127,63,103,254,127,63,139,254,127,63,173,254,127,63,204,254,127,63,234,254,127,63,5,255,127,63,30,255,127,63,53,255,127,63,74,255,127,63,94,255,127,63,112,255,127,63,128,255,127,63,143,255,127,63,157,255,127,63,169,255,127,63,180,255,127,63,191,255,127,63,200,255,127,63,208,255,127,63,215,255,127,63,221,255,127,63,227,255,127,63,232,255,127,63,236,255,127,63,239,255,127,63,243,255,127,63,245,255,127,63,248,255,127,63,249,255,127,63,251,255,127,63,252,255,127,63,253,255,127,63,254,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,204,8,120,52,171,134,11,54,79,202,193,54,190,233,61,55,238,247,156,55,192,123,234,55,43,192,35,56,161,2,90,56,189,2,140,56,76,228,174,56,227,165,213,56,199,35,0,57,168,100,23,57,134,149,48,57,104,182,75,57,64,199,104,57,7,228,131,57,105,92,148,57,191,204,165,57,6,53,184,57,65,149,203,57,105,237,223,57,120,61,245,57,184,194,5,58,166,98,17,58,134,126,29,58,81,22,42,58,9,42,55,58,172,185,68,58,54,197,82,58,165,76,97,58,250,79,112,58,47,207,127,58,34,229,135,58,154,32,144,58,255,153,152,58,80,81,161,58,139,70,170,58,174,121,179,58,186,234,188,58,171,153,198,58,129,134,208,58,58,177,218,58,212,25,229,58,79,192,239,58,167,164,250,58,109,227,2,59,117,147,8,59,105,98,14,59,73,80,20,59,19,93,26,59,199,136,32,59,100,211,38,59,232,60,45,59,83,197,51,59,164,108,58,59,218,50,65,59,243,23,72,59,239,27,79,59,204,62,86,59,138,128,93,59,38,225,100,59,161,96,108,59,249,254,115,59,45,188,123,59,29,204,129,59,145,201,133,59,113,214,137,59,188,242,141,59,113,30,146,59,145,89,150,59,26,164,154,59,12,254,158,59,102,103,163,59,40,224,167,59,80,104,172,59,222,255,176,59,209,166,181,59,40,93,186,59,228,34,191,59,2,248,195,59,131,220,200,59,101,208,205,59,168,211,210,59,74,230,215,59,76,8,221,59,172,57,226,59,105,122,231,59,131,202,236,59,249,41,242,59,202,152,247,59,245,22,253,59,60,82,1,60,170,32,4,60,196,246,6,60,137,212,9,60,249,185,12,60,19,167,15,60,216,155,18,60,69,152,21,60,92,156,24,60,26,168,27,60,129,187,30,60,143,214,33,60,69,249,36,60,160,35,40,60,162,85,43,60,73,143,46,60,149,208,49,60,133,25,53,60,26,106,56,60,81,194,59,60,44,34,63,60,168,137,66,60,199,248,69,60,134,111,73,60,230,237,76,60,231,115,80,60,134,1,84,60,197,150,87,60,162,51,91,60,28,216,94,60,52,132,98,60,232,55,102,60,56,243,105,60,35,182,109,60,170,128,113,60,202,82,117,60,131,44,121,60,214,13,125,60,96,123,128,60,161,115,130,60,174,111,132,60,134,111,134,60,40,115,136,60,149,122,138,60,205,133,140,60,206,148,142,60,152,167,144,60,44,190,146,60,136,216,148,60,173,246,150,60,154,24,153,60,78,62,155,60,202,103,157,60,13,149,159,60,23,198,161,60,231,250,163,60,125,51,166,60,217,111,168,60,249,175,170,60,223,243,172,60,137,59,175,60,247,134,177,60,40,214,179,60,29,41,182,60,213,127,184,60,80,218,186,60,140,56,189,60,138,154,191,60,74,0,194,60,202,105,196,60,11,215,198,60,12,72,201,60,205,188,203,60,77,53,206,60,140,177,208,60,137,49,211,60,69,181,213,60,189,60,216,60,243,199,218,60,230,86,221,60,149,233,223,60,0,128,226,60,39,26,229,60,8,184,231,60,164,89,234,60,250,254,236,60,9,168,239,60,210,84,242,60,83,5,245,60,141,185,247,60,126,113,250,60,39,45,253,60,134,236,255,60,206,87,1,61,52,187,2,61,117,32,4,61,144,135,5,61,133,240,6,61,84,91,8,61,253,199,9,61,128,54,11,61,219,166,12,61,16,25,14,61,29,141,15,61,3,3,17,61,193,122,18,61,87,244,19,61,197,111,21,61,10,237,22,61,39,108,24,61,26,237,25,61,228,111,27,61,132,244,28,61,251,122,30,61,71,3,32,61,105,141,33,61,96,25,35,61,45,167,36,61,206,54,38,61,67,200,39,61,141,91,41,61,171,240,42,61,156,135,44,61,96,32,46,61,248,186,47,61,99,87,49,61,160,245,50,61,175,149,52,61,144,55,54,61,67,219,55,61,199,128,57,61,28,40,59,61,65,209,60,61,56,124,62,61,254,40,64,61,148,215,65,61,250,135,67,61,47,58,69,61,51,238,70,61,5,164,72,61,166,91,74,61,20,21,76,61,80,208,77,61,90,141,79,61,49,76,81,61,212,12,83,61,68,207,84,61,128,147,86,61,135,89,88,61,90,33,90,61,248,234,91,61,97,182,93,61,148,131,95,61,145,82,97,61,88,35,99,61,232,245,100,61,65,202,102,61,100,160,104,61,78,120,106,61,1,82,108,61,123,45,110,61,188,10,112,61,197,233,113,61,148,202,115,61,41,173,117,61,133,145,119,61,166,119,121,61,140,95,123,61,55,73,125,61,166,52,127,61,237,144,128,61,105,136,129,61,198,128,130,61,5,122,131,61,37,116,132,61,39,111,133,61,9,107,134,61,204,103,135,61,112,101,136,61,244,99,137,61,88,99,138,61,157,99,139,61,193,100,140,61,196,102,141,61,167,105,142,61,106,109,143,61,11,114,144,61,139,119,145,61,234,125,146,61,40,133,147,61,67,141,148,61,61,150,149,61,20,160,150,61,201,170,151,61,92,182,152,61,203,194,153,61,24,208,154,61,66,222,155,61,72,237,156,61,42,253,157,61,233,13,159,61,132,31,160,61,250,49,161,61,76,69,162,61,122,89,163,61,130,110,164,61,101,132,165,61,35,155,166,61,188,178,167,61,47,203,168,61,124,228,169,61,162,254,170,61,163,25,172,61,124,53,173,61,47,82,174,61,187,111,175,61,31,142,176,61,92,173,177,61,113,205,178,61,94,238,179,61,35,16,181,61,192,50,182,61,52,86,183,61,127,122,184,61,160,159,185,61,153,197,186,61,104,236,187,61,13,20,189,61,136,60,190,61,217,101,191,61,255,143,192,61,250,186,193,61,202,230,194,61,111,19,196,61,233,64,197,61,55,111,198,61,89,158,199,61,78,206,200,61,23,255,201,61,179,48,203,61,35,99,204,61,101,150,205,61,121,202,206,61,96,255,207,61,25,53,209,61,164,107,210,61,0,163,211,61,45,219,212,61,44,20,214,61,251,77,215,61,154,136,216,61,10,196,217,61,74,0,219,61,89,61,220,61,56,123,221,61,230,185,222,61,99,249,223,61,174,57,225,61,200,122,226,61,176,188,227,61,102,255,228,61,233,66,230,61,58,135,231,61,88,204,232,61,66,18,234,61,249,88,235,61,124,160,236,61,203,232,237,61,230,49,239,61,204,123,240,61,125,198,241,61,249,17,243,61,63,94,244,61,79,171,245,61,42,249,246,61,206,71,248,61,60,151,249,61,114,231,250,61,114,56,252,61,58,138,253,61,202,220,254,61,17,24,0,62,33,194,0,62,149,108,1,62,108,23,2,62,166,194,2,62,68,110,3,62,69,26,4,62,168,198,4,62,111,115,5,62,152,32,6,62,35,206,6,62,17,124,7,62,98,42,8,62,20,217,8,62,40,136,9,62,157,55,10,62,117,231,10,62,173,151,11,62,71,72,12,62,66,249,12,62,158,170,13,62,91,92,14,62,120,14,15,62,246,192,15,62,213,115,16,62,19,39,17,62,177,218,17,62,175,142,18,62,13,67,19,62,202,247,19,62,231,172,20,62,99,98,21,62,62,24,22,62,120,206,22,62,16,133,23,62,7,60,24,62,92,243,24,62,16,171,25,62,33,99,26,62,145,27,27,62,94,212,27,62,137,141,28,62,17,71,29,62,246,0,30,62,56,187,30,62,215,117,31,62,211,48,32,62,43,236,32,62,224,167,33,62,241,99,34,62,93,32,35,62,38,221,35,62,74,154,36,62,202,87,37,62,165,21,38,62,219,211,38,62,108,146,39,62,88,81,40,62,159,16,41,62,64,208,41,62,59,144,42,62,144,80,43,62,63,17,44,62,72,210,44,62,170,147,45,62,102,85,46,62,122,23,47,62,232,217,47,62,175,156,48,62,206,95,49,62,69,35,50,62,21,231,50,62,61,171,51,62,189,111,52,62,148,52,53,62,195,249,53,62,73,191,54,62,38,133,55,62,91,75,56,62,230,17,57,62,199,216,57,62,255,159,58,62,141,103,59,62,113,47,60,62,171,247,60,62,59,192,61,62,31,137,62,62,89,82,63,62,232,27,64,62,204,229,64,62,5,176,65,62,146,122,66,62,115,69,67,62,168,16,68,62,49,220,68,62,14,168,69,62,62,116,70,62,194,64,71,62,152,13,72,62,193,218,72,62,61,168,73,62,12,118,74,62,44,68,75,62,159,18,76,62,100,225,76,62,122,176,77,62,225,127,78,62,154,79,79,62,164,31,80,62,255,239,80,62,170,192,81,62,166,145,82,62,242,98,83,62,141,52,84,62,121,6,85,62,180,216,85,62,63,171,86,62,25,126,87,62,65,81,88,62,185,36,89,62,126,248,89,62,147,204,90,62,245,160,91,62,165,117,92,62,163,74,93,62,238,31,94,62,135,245,94,62,109,203,95,62,159,161,96,62,30,120,97,62,233,78,98,62,1,38,99,62,100,253,99,62,19,213,100,62,14,173,101,62,84,133,102,62,229,93,103,62,193,54,104,62,231,15,105,62,88,233,105,62,19,195,106,62,24,157,107,62,103,119,108,62,255,81,109,62,224,44,110,62,11,8,111,62,126,227,111,62,58,191,112,62,62,155,113,62,139,119,114,62,31,84,115,62,251,48,116,62,31,14,117,62,138,235,117,62,59,201,118,62,52,167,119,62,115,133,120,62,248,99,121,62,196,66,122,62,213,33,123,62,44,1,124,62,200,224,124,62,170,192,125,62,208,160,126,62,59,129,127,62,245,48,128,62,111,161,128,62,11,18,129,62,201,130,129,62,168,243,129,62,169,100,130,62,204,213,130,62,15,71,131,62,117,184,131,62,251,41,132,62,162,155,132,62,107,13,133,62,84,127,133,62,93,241,133,62,136,99,134,62,210,213,134,62,61,72,135,62,200,186,135,62,116,45,136,62,63,160,136,62,42,19,137,62,52,134,137,62,94,249,137,62,168,108,138,62,17,224,138,62,153,83,139,62,64,199,139,62,6,59,140,62,235,174,140,62,239,34,141,62,17,151,141,62,82,11,142,62,177,127,142,62,46,244,142,62,201,104,143,62,130,221,143,62,89,82,144,62,78,199,144,62,96,60,145,62,143,177,145,62,220,38,146,62,70,156,146,62,205,17,147,62,113,135,147,62,50,253,147,62,16,115,148,62,9,233,148,62,32,95,149,62,82,213,149,62,161,75,150,62,12,194,150,62,146,56,151,62,53,175,151,62,243,37,152,62,204,156,152,62,193,19,153,62,209,138,153,62,252,1,154,62,66,121,154,62,163,240,154,62,31,104,155,62,181,223,155,62,101,87,156,62,48,207,156,62,21,71,157,62,20,191,157,62,45,55,158,62,96,175,158,62,172,39,159,62,18,160,159,62,145,24,160,62,41,145,160,62,218,9,161,62,165,130,161,62,136,251,161,62,132,116,162,62,152,237,162,62,197,102,163,62,10,224,163,62,103,89,164,62,220,210,164,62,105,76,165,62,14,198,165,62,202,63,166,62,158,185,166,62,137,51,167,62,139,173,167,62,164,39,168,62,213,161,168,62,27,28,169,62],"i8",O3,_.GLOBAL_BASE+520696),C3([121,150,169,62,237,16,170,62,119,139,170,62,24,6,171,62,206,128,171,62,155,251,171,62,125,118,172,62,117,241,172,62,130,108,173,62,165,231,173,62,221,98,174,62,42,222,174,62,140,89,175,62,2,213,175,62,142,80,176,62,46,204,176,62,226,71,177,62,170,195,177,62,135,63,178,62,119,187,178,62,124,55,179,62,148,179,179,62,191,47,180,62,254,171,180,62,80,40,181,62,181,164,181,62,45,33,182,62,184,157,182,62,85,26,183,62,5,151,183,62,199,19,184,62,156,144,184,62,130,13,185,62,123,138,185,62,133,7,186,62,161,132,186,62,206,1,187,62,13,127,187,62,93,252,187,62,190,121,188,62,48,247,188,62,178,116,189,62,70,242,189,62,233,111,190,62,157,237,190,62,98,107,191,62,54,233,191,62,26,103,192,62,14,229,192,62,17,99,193,62,36,225,193,62,70,95,194,62,119,221,194,62,184,91,195,62,7,218,195,62,100,88,196,62,209,214,196,62,75,85,197,62,212,211,197,62,107,82,198,62,16,209,198,62,195,79,199,62,132,206,199,62,82,77,200,62,45,204,200,62,21,75,201,62,11,202,201,62,13,73,202,62,29,200,202,62,56,71,203,62,97,198,203,62,149,69,204,62,214,196,204,62,34,68,205,62,123,195,205,62,223,66,206,62,79,194,206,62,202,65,207,62,81,193,207,62,226,64,208,62,127,192,208,62,38,64,209,62,216,191,209,62,148,63,210,62,91,191,210,62,44,63,211,62,7,191,211,62,235,62,212,62,218,190,212,62,210,62,213,62,211,190,213,62,222,62,214,62,242,190,214,62,15,63,215,62,53,191,215,62,99,63,216,62,154,191,216,62,217,63,217,62,32,192,217,62,112,64,218,62,199,192,218,62,38,65,219,62,140,193,219,62,250,65,220,62,112,194,220,62,236,66,221,62,112,195,221,62,250,67,222,62,139,196,222,62,34,69,223,62,192,197,223,62,100,70,224,62,14,199,224,62,189,71,225,62,115,200,225,62,46,73,226,62,239,201,226,62,181,74,227,62,127,203,227,62,79,76,228,62,36,205,228,62,253,77,229,62,219,206,229,62,190,79,230,62,164,208,230,62,142,81,231,62,125,210,231,62,111,83,232,62,100,212,232,62,93,85,233,62,89,214,233,62,89,87,234,62,91,216,234,62,96,89,235,62,104,218,235,62,114,91,236,62,126,220,236,62,141,93,237,62,158,222,237,62,176,95,238,62,196,224,238,62,218,97,239,62,241,226,239,62,10,100,240,62,35,229,240,62,62,102,241,62,89,231,241,62,116,104,242,62,145,233,242,62,173,106,243,62,202,235,243,62,230,108,244,62,3,238,244,62,31,111,245,62,59,240,245,62,86,113,246,62,112,242,246,62,137,115,247,62,161,244,247,62,184,117,248,62,206,246,248,62,226,119,249,62,244,248,249,62,4,122,250,62,18,251,250,62,30,124,251,62,40,253,251,62,47,126,252,62,52,255,252,62,54,128,253,62,52,1,254,62,48,130,254,62,40,3,255,62,29,132,255,62,135,2,0,63,254,66,0,63,115,131,0,63,230,195,0,63,86,4,1,63,197,68,1,63,49,133,1,63,155,197,1,63,3,6,2,63,103,70,2,63,202,134,2,63,42,199,2,63,135,7,3,63,225,71,3,63,56,136,3,63,141,200,3,63,222,8,4,63,44,73,4,63,119,137,4,63,191,201,4,63,3,10,5,63,68,74,5,63,130,138,5,63,188,202,5,63,242,10,6,63,36,75,6,63,83,139,6,63,126,203,6,63,165,11,7,63,199,75,7,63,230,139,7,63,1,204,7,63,23,12,8,63,41,76,8,63,54,140,8,63,63,204,8,63,67,12,9,63,67,76,9,63,62,140,9,63,52,204,9,63,37,12,10,63,18,76,10,63,249,139,10,63,219,203,10,63,184,11,11,63,144,75,11,63,98,139,11,63,47,203,11,63,246,10,12,63,184,74,12,63,116,138,12,63,43,202,12,63,219,9,13,63,134,73,13,63,43,137,13,63,202,200,13,63,98,8,14,63,245,71,14,63,129,135,14,63,7,199,14,63,135,6,15,63,0,70,15,63,114,133,15,63,222,196,15,63,67,4,16,63,161,67,16,63,249,130,16,63,73,194,16,63,147,1,17,63,213,64,17,63,17,128,17,63,69,191,17,63,114,254,17,63,151,61,18,63,181,124,18,63,203,187,18,63,218,250,18,63,225,57,19,63,225,120,19,63,216,183,19,63,200,246,19,63,176,53,20,63,143,116,20,63,103,179,20,63,54,242,20,63,253,48,21,63,188,111,21,63,114,174,21,63,32,237,21,63,197,43,22,63,98,106,22,63,246,168,22,63,129,231,22,63,3,38,23,63,125,100,23,63,237,162,23,63,84,225,23,63,178,31,24,63,7,94,24,63,83,156,24,63,149,218,24,63,206,24,25,63,253,86,25,63,35,149,25,63,63,211,25,63,82,17,26,63,90,79,26,63,89,141,26,63,78,203,26,63,57,9,27,63,25,71,27,63,240,132,27,63,188,194,27,63,126,0,28,63,54,62,28,63,227,123,28,63,134,185,28,63,30,247,28,63,172,52,29,63,47,114,29,63,167,175,29,63,20,237,29,63,118,42,30,63,206,103,30,63,26,165,30,63,91,226,30,63,145,31,31,63,188,92,31,63,219,153,31,63,239,214,31,63,247,19,32,63,244,80,32,63,230,141,32,63,203,202,32,63,165,7,33,63,115,68,33,63,53,129,33,63,235,189,33,63,150,250,33,63,52,55,34,63,198,115,34,63,75,176,34,63,197,236,34,63,50,41,35,63,146,101,35,63,230,161,35,63,46,222,35,63,105,26,36,63,151,86,36,63,185,146,36,63,205,206,36,63,213,10,37,63,208,70,37,63,190,130,37,63,158,190,37,63,114,250,37,63,56,54,38,63,241,113,38,63,157,173,38,63,59,233,38,63,204,36,39,63,79,96,39,63,197,155,39,63,45,215,39,63,135,18,40,63,211,77,40,63,18,137,40,63,66,196,40,63,101,255,40,63,121,58,41,63,128,117,41,63,120,176,41,63,98,235,41,63,62,38,42,63,11,97,42,63,202,155,42,63,122,214,42,63,28,17,43,63,175,75,43,63,52,134,43,63,170,192,43,63,16,251,43,63,105,53,44,63,178,111,44,63,236,169,44,63,23,228,44,63,51,30,45,63,64,88,45,63,61,146,45,63,43,204,45,63,10,6,46,63,218,63,46,63,154,121,46,63,74,179,46,63,235,236,46,63,124,38,47,63,254,95,47,63,112,153,47,63,210,210,47,63,36,12,48,63,102,69,48,63,152,126,48,63,186,183,48,63,204,240,48,63,205,41,49,63,191,98,49,63,160,155,49,63,113,212,49,63,49,13,50,63,225,69,50,63,128,126,50,63,15,183,50,63,141,239,50,63,251,39,51,63,87,96,51,63,163,152,51,63,222,208,51,63,8,9,52,63,34,65,52,63,42,121,52,63,33,177,52,63,7,233,52,63,219,32,53,63,159,88,53,63,81,144,53,63,242,199,53,63,129,255,53,63,255,54,54,63,108,110,54,63,198,165,54,63,16,221,54,63,71,20,55,63,109,75,55,63,129,130,55,63,131,185,55,63,116,240,55,63,82,39,56,63,30,94,56,63,217,148,56,63,129,203,56,63,23,2,57,63,155,56,57,63,13,111,57,63,108,165,57,63,185,219,57,63,244,17,58,63,28,72,58,63,50,126,58,63,53,180,58,63,38,234,58,63,4,32,59,63,207,85,59,63,135,139,59,63,45,193,59,63,192,246,59,63,64,44,60,63,173,97,60,63,7,151,60,63,78,204,60,63,130,1,61,63,163,54,61,63,177,107,61,63,171,160,61,63,146,213,61,63,102,10,62,63,39,63,62,63,212,115,62,63,110,168,62,63,244,220,62,63,103,17,63,63,198,69,63,63,17,122,63,63,73,174,63,63,109,226,63,63,126,22,64,63,122,74,64,63,99,126,64,63,56,178,64,63,248,229,64,63,165,25,65,63,62,77,65,63,195,128,65,63,52,180,65,63,144,231,65,63,216,26,66,63,13,78,66,63,44,129,66,63,56,180,66,63,47,231,66,63,18,26,67,63,224,76,67,63,154,127,67,63,64,178,67,63,208,228,67,63,77,23,68,63,180,73,68,63,7,124,68,63,69,174,68,63,111,224,68,63,131,18,69,63,131,68,69,63,110,118,69,63,68,168,69,63,5,218,69,63,177,11,70,63,72,61,70,63,202,110,70,63,55,160,70,63,143,209,70,63,210,2,71,63,255,51,71,63,23,101,71,63,26,150,71,63,8,199,71,63,224,247,71,63,163,40,72,63,81,89,72,63,233,137,72,63,107,186,72,63,216,234,72,63,48,27,73,63,114,75,73,63,158,123,73,63,181,171,73,63,181,219,73,63,161,11,74,63,118,59,74,63,54,107,74,63,224,154,74,63,116,202,74,63,242,249,74,63,90,41,75,63,173,88,75,63,233,135,75,63,15,183,75,63,32,230,75,63,26,21,76,63,254,67,76,63,204,114,76,63,132,161,76,63,38,208,76,63,177,254,76,63,38,45,77,63,133,91,77,63,206,137,77,63,0,184,77,63,28,230,77,63,34,20,78,63,17,66,78,63,234,111,78,63,172,157,78,63,88,203,78,63,238,248,78,63,108,38,79,63,213,83,79,63,38,129,79,63,97,174,79,63,134,219,79,63,147,8,80,63,138,53,80,63,107,98,80,63,52,143,80,63,231,187,80,63,131,232,80,63,8,21,81,63,119,65,81,63,206,109,81,63,15,154,81,63,57,198,81,63,76,242,81,63,71,30,82,63,44,74,82,63,250,117,82,63,177,161,82,63,81,205,82,63,218,248,82,63,76,36,83,63,166,79,83,63,234,122,83,63,22,166,83,63,44,209,83,63,42,252,83,63,17,39,84,63,224,81,84,63,153,124,84,63,58,167,84,63,196,209,84,63,54,252,84,63,146,38,85,63,214,80,85,63,2,123,85,63,24,165,85,63,22,207,85,63,252,248,85,63,204,34,86,63,131,76,86,63,36,118,86,63,172,159,86,63,30,201,86,63,120,242,86,63,186,27,87,63,229,68,87,63,248,109,87,63,244,150,87,63,216,191,87,63,165,232,87,63,90,17,88,63,248,57,88,63,126,98,88,63,236,138,88,63,67,179,88,63,130,219,88,63,169,3,89,63,185,43,89,63,177,83,89,63,145,123,89,63,90,163,89,63,11,203,89,63,164,242,89,63,37,26,90,63,143,65,90,63,225,104,90,63,27,144,90,63,62,183,90,63,72,222,90,63,59,5,91,63,22,44,91,63,217,82,91,63,133,121,91,63,24,160,91,63,148,198,91,63,248,236,91,63,68,19,92,63,120,57,92,63,149,95,92,63,153,133,92,63,134,171,92,63,91,209,92,63,24,247,92,63,189,28,93,63,74,66,93,63,191,103,93,63,28,141,93,63,98,178,93,63,143,215,93,63,165,252,93,63,162,33,94,63,136,70,94,63,86,107,94,63,11,144,94,63,169,180,94,63,47,217,94,63,157,253,94,63,243,33,95,63,49,70,95,63,88,106,95,63,102,142,95,63,92,178,95,63,59,214,95,63,1,250,95,63,175,29,96,63,70,65,96,63,196,100,96,63,43,136,96,63,122,171,96,63,176,206,96,63,207,241,96,63,214,20,97,63,197,55,97,63,155,90,97,63,90,125,97,63,1,160,97,63,144,194,97,63,8,229,97,63,103,7,98,63,174,41,98,63,221,75,98,63,245,109,98,63,244,143,98,63,220,177,98,63,171,211,98,63,99,245,98,63,3,23,99,63,139,56,99,63,251,89,99,63,83,123,99,63,147,156,99,63,188,189,99,63,204,222,99,63,197,255,99,63,166,32,100,63,110,65,100,63,32,98,100,63,185,130,100,63,58,163,100,63,164,195,100,63,245,227,100,63,47,4,101,63,82,36,101,63,92,68,101,63,78,100,101,63,41,132,101,63,236,163,101,63,151,195,101,63,43,227,101,63,167,2,102,63,11,34,102,63,87,65,102,63,139,96,102,63,168,127,102,63,174,158,102,63,155,189,102,63,113,220,102,63,47,251,102,63,214,25,103,63,101,56,103,63,220,86,103,63,59,117,103,63,132,147,103,63,180,177,103,63,205,207,103,63,206,237,103,63,184,11,104,63,138,41,104,63,69,71,104,63,233,100,104,63,116,130,104,63,233,159,104,63,69,189,104,63,139,218,104,63,185,247,104,63,207,20,105,63,207,49,105,63,182,78,105,63,135,107,105,63,64,136,105,63,225,164,105,63,108,193,105,63,223,221,105,63,59,250,105,63,127,22,106,63,172,50,106,63,195,78,106,63,193,106,106,63,169,134,106,63,121,162,106,63,51,190,106,63,213,217,106,63,96,245,106,63,212,16,107,63,48,44,107,63,118,71,107,63,165,98,107,63,188,125,107,63,189,152,107,63,167,179,107,63,121,206,107,63,53,233,107,63,218,3,108,63,104,30,108,63,223,56,108,63,63,83,108,63,136,109,108,63,187,135,108,63,214,161,108,63,219,187,108,63,201,213,108,63,161,239,108,63,97,9,109,63,11,35,109,63,159,60,109,63,27,86,109,63,129,111,109,63,209,136,109,63,9,162,109,63,44,187,109,63,56,212,109,63,45,237,109,63,12,6,110,63,212,30,110,63,134,55,110,63,33,80,110,63,166,104,110,63,21,129,110,63,110,153,110,63,176,177,110,63,220,201,110,63,241,225,110,63,241,249,110,63,218,17,111,63,173,41,111,63,106,65,111,63,16,89,111,63,161,112,111,63,28,136,111,63,128,159,111,63,207,182,111,63,7,206,111,63,42,229,111,63,54,252,111,63,45,19,112,63,14,42,112,63,217,64,112,63,142,87,112,63,46,110,112,63,184,132,112,63,43,155,112,63,138,177,112,63,210,199,112,63,5,222,112,63,35,244,112,63,42,10,113,63,29,32,113,63,249,53,113,63,193,75,113,63,114,97,113,63,15,119,113,63,150,140,113,63,7,162,113,63,99,183,113,63,170,204,113,63,220,225,113,63,249,246,113,63,0,12,114,63,242,32,114,63,207,53,114,63,151,74,114,63,73,95,114,63,231,115,114,63,112,136,114,63,227,156,114,63,66,177,114,63,140,197,114,63,193,217,114,63,225,237,114,63,236,1,115,63,227,21,115,63,197,41,115,63,146,61,115,63,74,81,115,63,238,100,115,63,125,120,115,63,248,139,115,63,94,159,115,63,175,178,115,63,236,197,115,63,21,217,115,63,41,236,115,63,41,255,115,63,21,18,116,63,236,36,116,63,175,55,116,63,94,74,116,63,248,92,116,63,127,111,116,63,241,129,116,63,80,148,116,63,154,166,116,63,208,184,116,63,242,202,116,63,1,221,116,63,251,238,116,63,226,0,117,63,181,18,117,63,116,36,117,63,31,54,117,63,183,71,117,63,59,89,117,63,171,106,117,63,8,124,117,63,81,141,117,63,135,158,117,63,169,175,117,63,184,192,117,63,179,209,117,63,155,226,117,63,112,243,117,63,50,4,118,63,224,20,118,63,123,37,118,63,3,54,118,63,120,70,118,63,217,86,118,63,40,103,118,63,100,119,118,63,140,135,118,63,162,151,118,63,165,167,118,63,149,183,118,63,114,199,118,63,61,215,118,63,245,230,118,63,154,246,118,63,44,6,119,63,172,21,119,63,26,37,119,63,117,52,119,63,189,67,119,63,243,82,119,63,22,98,119,63,40,113,119,63,39,128,119,63,19,143,119,63,238,157,119,63,182,172,119,63,108,187,119,63,16,202,119,63,162,216,119,63,34,231,119,63,144,245,119,63,236,3,120,63,55,18,120,63,111,32,120,63,150,46,120,63,170,60,120,63,174,74,120,63,159,88,120,63,127,102,120,63,77,116,120,63,10,130,120,63,181,143,120,63,79,157,120,63,215,170,120,63,78,184,120,63,180,197,120,63,8,211,120,63,76,224,120,63,126,237,120,63,158,250,120,63,174,7,121,63,173,20,121,63,155,33,121,63,119,46,121,63,67,59,121,63,254,71,121,63,168,84,121,63,66,97,121,63,202,109,121,63,66,122,121,63,169,134,121,63,0,147,121,63,70,159,121,63,124,171,121,63,161,183,121,63,181,195,121,63,186,207,121,63,173,219,121,63,145,231,121,63,100,243,121,63,40,255,121,63,219,10,122,63,126,22,122,63,16,34,122,63,147,45,122,63,6,57,122,63,105,68,122,63,188,79,122,63,255,90,122,63,51,102,122,63,86,113,122,63,106,124,122,63,111,135,122,63,99,146,122,63,72,157,122,63,30,168,122,63,228,178,122,63,155,189,122,63,66,200,122,63,218,210,122,63,99,221,122,63,221,231,122,63,71,242,122,63,162,252,122,63,238,6,123,63,43,17,123,63,89,27,123,63,120,37,123,63,137,47,123,63,138,57,123,63,124,67,123,63,96,77,123,63,53,87,123,63,252,96,123,63,179,106,123,63,92,116,123,63,247,125,123,63,131,135,123,63,1,145,123,63,112,154,123,63,209,163,123,63,36,173,123,63,104,182,123,63,158,191,123,63,198,200,123,63,224,209,123,63,236,218,123,63,234,227,123,63,218,236,123,63,188,245,123,63,144,254,123,63,86,7,124,63,14,16,124,63,185,24,124,63,86,33,124,63,230,41,124,63,104,50,124,63,220,58,124,63,67,67,124,63,156,75,124,63,232,83,124,63,39,92,124,63,88,100,124,63,124,108,124,63,147,116,124,63,157,124,124,63,153,132,124,63,137,140,124,63,107,148,124,63,65,156,124,63,9,164,124,63,197,171,124,63,116,179,124,63,22,187,124,63,172,194,124,63,52,202,124,63,176,209,124,63,32,217,124,63,131,224,124,63,217,231,124,63,35,239,124,63,97,246,124,63,146,253,124,63,183,4,125,63,208,11,125,63,221,18,125,63,221,25,125,63,209,32,125,63,185,39,125,63,150,46,125,63,102,53,125,63,42,60,125,63,227,66,125,63,143,73,125,63,48,80,125,63,197,86,125,63,78,93,125,63,204,99,125,63,62,106,125,63,165,112,125,63,0,119,125,63,80,125,125,63,148,131,125,63,205,137,125,63,251,143,125,63,29,150,125,63,52,156,125,63,64,162,125,63,65,168,125,63,55,174,125,63,34,180,125,63,2,186,125,63,215,191,125,63,161,197,125,63,96,203,125,63,21,209,125,63,190,214,125,63,93,220,125,63,242,225,125,63,124,231,125,63,251,236,125,63,112,242,125,63,218,247,125,63,58,253,125,63,143,2,126,63,219,7,126,63,28,13,126,63,82,18,126,63,127,23,126,63,161,28,126,63,186,33,126,63,200,38,126,63,204,43,126,63,199,48,126,63,183,53,126,63,158,58,126,63,123,63,126,63,78,68,126,63,23,73,126,63,215,77,126,63,141,82,126,63,58,87,126,63,221,91,126,63,118,96,126,63,6,101,126,63,141,105,126,63,10,110,126,63,126,114,126,63,233,118,126,63,75,123,126,63,164,127,126,63,243,131,126,63,57,136,126,63,119,140,126,63,171,144,126,63,214,148,126,63,249,152,126,63,18,157,126,63,35,161,126,63,44,165,126,63,43,169,126,63,34,173,126,63,16,177,126,63,246,180,126,63,211,184,126,63,167,188,126,63,115,192,126,63,55,196,126,63,243,199,126,63,166,203,126,63,81,207,126,63,243,210,126,63,142,214,126,63,32,218,126,63,171,221,126,63,45,225,126,63,167,228,126,63,26,232,126,63,132,235,126,63,231,238,126,63,66,242,126,63,149,245,126,63,224,248,126,63,36,252,126,63,96,255,126,63,148,2,127,63,193,5,127,63,230,8,127,63,4,12,127,63,27,15,127,63,42,18,127,63,50,21,127,63,50,24,127,63,43,27,127,63,29,30,127,63,8,33,127,63,236,35,127,63,201,38,127,63,158,41,127,63,109,44,127,63,53,47,127,63,246,49,127,63,175,52,127,63,99,55,127,63,15,58,127,63,181,60,127,63,83,63,127,63,236,65,127,63,125,68,127,63,8,71,127,63,141,73,127,63,11,76,127,63,131,78,127,63,244,80,127,63,95,83,127,63,195,85,127,63,33,88,127,63,121,90,127,63,203,92,127,63,23,95,127,63,92,97,127,63,155,99,127,63,213,101,127,63,8,104,127,63,54,106,127,63,93,108,127,63,127,110,127,63,155,112,127,63,177,114,127,63,193,116,127,63,203,118,127,63,208,120,127,63,207,122,127,63,201,124,127,63,189,126,127,63,171,128,127,63,148,130,127,63,120,132,127,63,86,134,127,63,47,136,127,63,2,138,127,63,209,139,127,63,153,141,127,63,93,143,127,63,28,145,127,63,213,146,127,63,137,148,127,63,57,150,127,63,227,151,127,63,136,153,127,63,40,155,127,63,196,156,127,63,90,158,127,63,236,159,127,63,121,161,127,63,1,163,127,63,132,164,127,63,3,166,127,63,125,167,127,63,242,168,127,63,99,170,127,63,207,171,127,63,55,173,127,63,154,174,127,63,249,175,127,63,84,177,127,63,170,178,127,63,251,179,127,63,73,181,127,63,146,182,127,63,215,183,127,63,24,185,127,63,85,186,127,63,141,187,127,63,193,188,127,63,242,189,127,63,30,191,127,63,71,192,127,63,107,193,127,63,140,194,127,63,168,195,127,63,193,196,127,63,214,197,127,63,231,198,127,63,245,199,127,63,255,200,127,63,5,202,127,63,7,203,127,63,6,204,127,63,1,205,127,63,249,205,127,63,237,206,127,63,222,207,127,63,203,208,127,63,181,209,127,63,156,210,127,63,127,211,127,63,95,212,127,63,59,213,127,63,20,214,127,63,234,214,127,63,189,215,127,63,141,216,127,63,90,217,127,63,35,218,127,63,233,218,127,63,173,219,127,63,109,220,127,63,43,221,127,63,229,221,127,63,156,222,127,63,81,223,127,63,3,224,127,63,178,224,127,63,94,225,127,63,7,226,127,63,174,226,127,63,82,227,127,63,243,227,127,63,146,228,127,63,46,229,127,63,199,229,127,63,94,230,127,63,242,230,127,63,132,231,127,63,19,232,127,63,160,232,127,63,42,233,127,63,178,233,127,63,56,234,127,63,187,234,127,63,60,235,127,63,187,235,127,63,55,236,127,63,177,236,127,63,41,237,127,63,159,237,127,63,18,238,127,63,132,238,127,63,243,238,127,63,96,239,127,63,204,239,127,63,53,240,127,63,156,240,127,63,1,241,127,63,101,241,127,63,198,241,127,63,37,242,127,63,131,242,127,63,222,242,127,63,56,243,127,63,144,243,127,63,231,243,127,63,59,244,127,63,142,244,127,63,223,244,127,63,46,245,127,63,124,245,127,63,200,245,127,63,19,246,127,63,91,246,127,63,163,246,127,63,233,246,127,63,45,247,127,63,111,247,127,63,177,247,127,63,240,247,127,63,47,248,127,63,108,248,127,63,167,248,127,63,225,248,127,63,26,249,127,63,82,249,127,63,136,249,127,63,188,249,127,63,240,249,127,63,34,250,127,63,83,250,127,63,131,250,127,63,178,250,127,63,224,250,127,63,12,251,127,63,55,251,127,63,97,251,127,63,138,251,127,63,178,251,127,63,217,251,127,63,255,251,127,63,36,252,127,63,72,252,127,63,107,252,127,63,141,252,127,63,173,252,127,63,205,252,127,63,237,252,127,63,11,253,127,63,40,253,127,63,69,253,127,63,96,253,127,63,123,253,127,63,149,253,127,63,174,253,127,63,199,253,127,63,222,253,127,63,245,253,127,63,12,254,127,63,33,254,127,63,54,254,127,63,74,254,127,63,93,254,127,63,112,254,127,63,130,254,127,63,148,254,127,63,165,254,127,63,181,254,127,63,197,254,127,63,212,254,127,63,227,254,127,63,241,254,127,63,254,254,127,63,11,255,127,63,24,255,127,63,36,255,127,63,47,255,127,63,59,255,127,63,69,255,127,63,79,255,127,63,89,255,127,63,99,255,127,63,108,255,127,63,116,255,127,63,124,255,127,63,132,255,127,63,140,255,127,63,147,255,127,63,154,255,127,63,160,255,127,63,166,255,127,63,172,255,127,63,178,255,127,63,183,255,127,63,188,255,127,63,193,255,127,63,197,255,127,63,202,255,127,63,206,255,127,63,209,255,127,63,213,255,127,63,216,255,127,63,220,255,127,63,223,255,127,63,225,255,127,63,228,255,127,63,230,255,127,63,233,255,127,63,235,255,127,63,237,255,127,63,239,255,127,63,240,255,127,63,242,255,127,63,243,255,127,63,245,255,127,63,246,255,127,63,247,255,127,63,248,255,127,63,249,255,127,63,250,255,127,63,251,255,127,63,251,255,127,63,252,255,127,63,252,255,127,63,253,255,127,63,253,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,198,63,120,51,98,136,11,53,151,200,193,53,80,233,61,54,183,247,156,54,46,124,234,54,153,192,35,55,244,2,90,55,56,3,140,55,227,228,174,55,177,166,213,55,108,36,0,56,146,101,23,56,201,150,48,56,18,184,75,56,81,201,104,56,94,229,131,56,29,94,148,56,229,206,165,56,167,55,184,56,128,152,203,56,85,241,223,56,36,66,245,56,126,197,5,57,238,101,17,57,99,130,29,57,207,26,42,57,63,47,55,57,179,191,68,57,30,204,82,57,141,84,97,57,243,88,112,57,94,217,127,57,227,234,135,57,18,39,144,57,64,161,152,57,105,89,161,57,146,79,170,57,181,131,179,57,215,245,188,57,245,165,198,57,14,148,208,57,34,192,218,57,46,42,229,57,57,210,239,57,60,184,250,57,27,238,2,58,22,159,8,58,13,111,14,58,0,94,20,58,239,107,26,58,218,152,32,58,192,228,38,58,161,79,45,58,124,217,51,58,83,130,58,58,37,74,65,58,240,48,72,58,182,54,79,58,116,91,86,58,45,159,93,58,222,1,101,58,136,131,108,58,42,36,116,58,196,227,123,58,44,225,129,58,241,223,133,58,49,238,137,58,238,11,142,58,37,57,146,58,215,117,150,58,5,194,154,58,174,29,159,58,209,136,163,58,110,3,168,58,134,141,172,58,24,39,177,58,36,208,181,58,169,136,186,58,169,80,191,58,33,40,196,58,19,15,201,58,126,5,206,58,98,11,211,58,191,32,216,58,148,69,221,58,225,121,226,58,166,189,231,58,227,16,237,58,152,115,242,58,196,229,247,58,103,103,253,58,65,124,1,59,137,76,4,59,141,36,7,59,76,4,10,59,198,235,12,59,251,218,15,59,235,209,18,59,149,208,21,59,251,214,24,59,26,229,27,59,244,250,30,59,136,24,34,59,215,61,37,59,223,106,40,59,161,159,43,59,29,220,46,59,83,32,50,59,66,108,53,59,234,191,56,59,76,27,60,59,103,126,63,59,59,233,66,59,199,91,70,59,12,214,73,59,10,88,77,59,193,225,80,59,48,115,84,59,86,12,88,59,53,173,91,59,204,85,95,59,26,6,99,59,32,190,102,59,222,125,106,59,82,69,110,59,127,20,114,59,97,235,117,59,251,201,121,59,76,176,125,59,41,207,128,59,8,202,130,59,194,200,132,59,87,203,134,59,198,209,136,59,17,220,138,59,55,234,140,59,55,252,142,59,18,18,145,59,199,43,147,59,87,73,149,59,194,106,151,59,6,144,153,59,37,185,155,59,30,230,157,59,241,22,160,59,158,75,162,59,37,132,164,59,134,192,166,59,192,0,169,59,212,68,171,59,193,140,173,59,137,216,175,59,41,40,178,59,163,123,180,59,245,210,182,59,33,46,185,59,38,141,187,59,4,240,189,59,186,86,192,59,73,193,194,59,177,47,197,59,242,161,199,59,10,24,202,59,251,145,204,59,196,15,207,59,102,145,209,59,223,22,212,59,49,160,214,59,90,45,217,59,91,190,219,59,51,83,222,59,227,235,224,59,107,136,227,59,201,40,230,59,255,204,232,59,12,117,235,59,240,32,238,59,171,208,240,59,61,132,243,59,165,59,246,59,228,246,248,59,250,181,251,59,229,120,254,59,212,159,0,60,32,5,2,60,87,108,3,60,121,213,4,60,134,64,6,60,126,173,7,60,96,28,9,60,45,141,10,60,229,255,11,60,136,116,13,60,21,235,14,60,141,99,16,60,239,221,17,60,59,90,19,60,114,216,20,60,147,88,22,60,158,218,23,60,147,94,25,60,115,228,26,60,60,108,28,60,240,245,29,60,141,129,31,60,20,15,33,60,133,158,34,60,224,47,36,60,36,195,37,60,82,88,39,60,105,239,40,60,106,136,42,60,84,35,44,60,40,192,45,60,229,94,47,60,139,255,48,60,26,162,50,60,146,70,52,60,243,236,53,60,61,149,55,60,112,63,57,60,140,235,58,60,145,153,60,60,126,73,62,60,84,251,63,60,18,175,65,60,185,100,67,60,72,28,69,60,192,213,70,60,31,145,72,60,103,78,74,60,151,13,76,60,175,206,77,60,176,145,79,60,152,86,81,60,103,29,83,60,31,230,84,60,190,176,86,60,69,125,88,60,179,75,90,60,9,28,92,60,71,238,93,60,107,194,95,60,119,152,97,60,106,112,99,60,68,74,101,60,5,38,103,60,173,3,105,60,60,227,106,60,178,196,108,60,14,168,110,60,81,141,112,60,123,116,114,60,139,93,116,60,130,72,118,60,95,53,120,60,34,36,122,60,203,20,124,60,90,7,126,60,208,251,127,60,22,249,128,60,54,245,129,60,74,242,130,60,80,240,131,60,73,239,132,60,53,239,133,60,19,240,134,60,229,241,135,60,169,244,136,60,95,248,137,60,8,253,138,60,164,2,140,60,50,9,141,60,178,16,142,60,37,25,143,60,139,34,144,60,226,44,145,60,44,56,146,60,104,68,147,60,150,81,148,60,182,95,149,60,201,110,150,60,205,126,151,60,196,143,152,60,172,161,153,60,135,180,154,60,83,200,155,60,17,221,156,60,193,242,157,60,98,9,159,60,245,32,160,60,122,57,161,60,241,82,162,60,89,109,163,60,178,136,164,60,253,164,165,60,57,194,166,60,103,224,167,60,134,255,168,60,151,31,170,60,152,64,171,60,139,98,172,60,111,133,173,60,68,169,174,60,10,206,175,60,193,243,176,60,105,26,178,60,2,66,179,60,139,106,180,60,6,148,181,60,113,190,182,60,205,233,183,60,26,22,185,60,87,67,186,60,133,113,187,60,163,160,188,60,177,208,189,60,177,1,191,60,160,51,192,60,128,102,193,60,80,154,194,60,16,207,195,60,193,4,197,60,97,59,198,60,242,114,199,60,114,171,200,60,227,228,201,60,67,31,203,60,147,90,204,60,211,150,205,60,3,212,206,60,34,18,208,60,49,81,209,60,48,145,210,60,30,210,211,60,252,19,213,60,201,86,214,60,133,154,215,60,49,223,216,60,204,36,218,60,86,107,219,60,208,178,220,60,56,251,221,60,144,68,223,60,214,142,224,60,12,218,225,60,48,38,227,60,67,115,228,60,69,193,229,60,54,16,231,60,21,96,232,60,227,176,233,60,160,2,235,60,75,85,236,60,228,168,237,60,108,253,238,60,226,82,240,60,70,169,241,60,153,0,243,60,218,88,244,60,8,178,245,60,37,12,247,60,48,103,248,60,41,195,249,60,15,32,251,60,228,125,252,60,166,220,253,60,85,60,255,60,121,78,0,61,63,255,0,61,123,176,1,61,46,98,2,61,88,20,3,61,248,198,3,61,15,122,4,61,156,45,5,61,161,225,5,61,27,150,6,61,12,75,7,61,116,0,8,61,82,182,8,61,167,108,9,61,113,35,10,61,179,218,10,61,106,146,11,61,152,74,12,61,60,3,13,61,87,188,13,61,231,117,14,61,238,47,15,61,107,234,15,61,94,165,16,61,199,96,17,61,166,28,18,61,251,216,18,61,198,149,19,61,7,83,20,61,190,16,21,61,234,206,21,61,141,141,22,61,165,76,23,61,52,12,24,61,56,204,24,61,177,140,25,61,161,77,26,61,6,15,27,61,224,208,27,61,48,147,28,61,246,85,29,61,49,25,30,61,226,220,30,61,8,161,31,61,164,101,32,61,181,42,33,61,59,240,33,61,55,182,34,61,168,124,35,61,142,67,36,61,233,10,37,61,186,210,37,61,255,154,38,61,186,99,39,61,234,44,40,61,143,246,40,61,168,192,41,61,55,139,42,61,59,86,43,61,180,33,44,61,161,237,44,61,4,186,45,61,219,134,46,61,38,84,47,61,231,33,48,61,28,240,48,61,198,190,49,61,229,141,50,61,120,93,51,61,127,45,52,61,251,253,52,61,236,206,53,61,81,160,54,61,42,114,55,61,120,68,56,61,58,23,57,61,112,234,57,61,27,190,58,61,58,146,59,61,204,102,60,61,211,59,61,61,79,17,62,61,62,231,62,61,161,189,63,61,120,148,64,61,195,107,65,61,130,67,66,61,181,27,67,61,92,244,67,61,118,205,68,61,4,167,69,61,6,129,70,61,124,91,71,61,101,54,72,61,194,17,73,61,146,237,73,61,214,201,74,61,141,166,75,61,184,131,76,61,86,97,77,61,104,63,78,61,236,29,79,61,229,252,79,61,80,220,80,61,46,188,81,61,128,156,82,61,69,125,83,61,125,94,84,61,40,64,85,61,69,34,86,61,214,4,87,61,218,231,87,61,81,203,88,61,58,175,89,61,150,147,90,61,101,120,91,61,167,93,92,61,91,67,93,61,130,41,94,61,28,16,95,61,40,247,95,61,167,222,96,61,152,198,97,61,251,174,98,61,209,151,99,61,25,129,100,61,212,106,101,61,0,85,102,61,159,63,103,61,176,42,104,61,51,22,105,61,41,2,106,61,144,238,106,61,105,219,107,61,180,200,108,61,113,182,109,61,160,164,110,61,65,147,111,61,84,130,112,61,216,113,113,61,206,97,114,61,54,82,115,61,15,67,116,61,89,52,117,61,22,38,118,61,67,24,119,61,226,10,120,61,243,253,120,61,117,241,121,61,104,229,122,61,204,217,123,61,162,206,124,61,232,195,125,61,160,185,126,61,201,175,127,61,49,83,128,61,183,206,128,61,117,74,129,61,107,198,129,61,154,66,130,61,1,191,130,61,160,59,131,61,120,184,131,61,136,53,132,61,209,178,132,61,81,48,133,61,10,174,133,61,251,43,134,61,37,170,134,61,134,40,135,61,32,167,135,61,242,37,136,61,252,164,136,61,62,36,137,61,184,163,137,61,106,35,138,61,84,163,138,61,118,35,139,61,209,163,139,61,99,36,140,61,45,165,140,61,46,38,141,61,104,167,141,61,218,40,142,61,131,170,142,61,100,44,143,61,125,174,143,61,206,48,144,61,86,179,144,61,23,54,145,61,14,185,145,61,62,60,146,61,165,191,146,61,67,67,147,61,26,199,147,61,39,75,148,61,109,207,148,61,234,83,149,61,158,216,149,61,138,93,150,61,173,226,150,61,7,104,151,61,153,237,151,61,98,115,152,61,99,249,152,61,155,127,153,61,10,6,154,61,176,140,154,61,142,19,155,61,163,154,155,61,239,33,156,61,114,169,156,61,44,49,157,61,29,185,157,61,69,65,158,61,165,201,158,61,59,82,159,61,8,219,159,61,13,100,160,61,72,237,160,61,186,118,161,61,99,0,162,61,67,138,162,61,90,20,163,61,167,158,163,61,43,41,164,61,230,179,164,61,216,62,165,61,0,202,165,61,95,85,166,61,245,224,166,61,193,108,167,61,196,248,167,61,254,132,168,61,110,17,169,61,20,158,169,61,241,42,170,61,4,184,170,61,78,69,171,61,206,210,171,61,133,96,172,61,113,238,172,61,149,124,173,61,238,10,174,61,126,153,174,61,67,40,175,61,63,183,175,61,114,70,176,61,218,213,176,61,120,101,177,61,77,245,177,61,88,133,178,61,152,21,179,61,15,166,179,61,187,54,180,61,158,199,180,61,182,88,181,61,4,234,181,61,137,123,182,61,67,13,183,61,50,159,183,61,88,49,184,61,179,195,184,61,68,86,185,61,11,233,185,61,7,124,186,61,57,15,187,61,160,162,187,61,61,54,188,61,16,202,188,61,24,94,189,61,85,242,189,61,200,134,190,61,112,27,191,61,78,176,191,61,97,69,192,61,170,218,192,61,39,112,193,61,218,5,194,61,194,155,194,61,224,49,195,61,50,200,195,61,186,94,196,61,119,245,196,61,104,140,197,61,143,35,198,61,235,186,198,61,124,82,199,61,66,234,199,61,61,130,200,61,108,26,201,61,209,178,201,61,106,75,202,61,57,228,202,61,59,125,203,61,115,22,204,61,224,175,204,61,129,73,205,61,86,227,205,61,97,125,206,61,159,23,207,61,19,178,207,61,187,76,208,61,151,231,208,61,168,130,209,61,237,29,210,61,103,185,210,61,21,85,211,61,248,240,211,61,14,141,212,61,89,41,213,61,216,197,213,61,140,98,214,61,115,255,214,61,143,156,215,61,223,57,216,61,99,215,216,61,27,117,217,61,7,19,218,61,38,177,218,61,122,79,219,61,2,238,219,61,189,140,220,61,173,43,221,61,208,202,221,61,39,106,222,61,178,9,223,61,112,169,223,61,98,73,224,61,136,233,224,61,226,137,225,61,111,42,226,61,47,203,226,61,35,108,227,61,74,13,228,61,165,174,228,61,52,80,229,61,245,241,229,61,234,147,230,61,19,54,231,61,110,216,231,61,253,122,232,61,191,29,233,61,180,192,233,61,221,99,234,61,56,7,235,61,199,170,235,61,136,78,236,61,125,242,236,61,164,150,237,61,255,58,238,61,140,223,238,61,76,132,239,61,63,41,240,61,101,206,240,61,189,115,241,61,73,25,242,61,7,191,242,61,247,100,243,61,26,11,244,61,112,177,244,61,248,87,245,61,179,254,245,61,160,165,246,61,192,76,247,61,18,244,247,61,151,155,248,61,77,67,249,61,55,235,249,61,82,147,250,61,159,59,251,61,31,228,251,61,209,140,252,61,181,53,253,61,203,222,253,61,19,136,254,61,141,49,255,61,57,219,255,61,140,66,0,62,148,151,0,62,181,236,0,62,238,65,1,62,65,151,1,62,173,236,1,62,49,66,2,62,206,151,2,62,132,237,2,62,83,67,3,62,59,153,3,62,59,239,3,62,84,69,4,62,134,155,4,62,209,241,4,62,52,72,5,62,176,158,5,62,68,245,5,62,242,75,6,62,183,162,6,62,150,249,6,62,141,80,7,62,156,167,7,62,196,254,7,62,5,86,8,62,94,173,8,62,207,4,9,62,89,92,9,62,252,179,9,62,183,11,10,62,138,99,10,62,118,187,10,62,122,19,11,62,150,107,11,62,203,195,11,62,24,28,12,62,125,116,12,62,250,204,12,62,144,37,13,62,62,126,13,62,4,215,13,62,227,47,14,62,217,136,14,62,232,225,14,62,15,59,15,62,78,148,15,62,165,237,15,62,20,71,16,62,155,160,16,62,58,250,16,62,241,83,17,62,193,173,17,62,168,7,18,62,167,97,18,62,190,187,18,62,237,21,19,62,51,112,19,62,146,202,19,62,9,37,20,62,151,127,20,62,61,218,20,62,251,52,21,62,209,143,21,62,190,234,21,62,195,69,22,62,224,160,22,62,21,252,22,62,97,87,23,62,197,178,23,62,64,14,24,62,211,105,24,62,126,197,24,62,64,33,25,62,26,125,25,62,11,217,25,62,20,53,26,62,52,145,26,62,108,237,26,62,187,73,27,62,34,166,27,62,160,2,28,62,53,95,28,62,226,187,28,62,166,24,29,62,129,117,29,62,116,210,29,62,126,47,30,62,159,140,30,62,215,233,30,62,39,71,31,62,141,164,31,62,11,2,32,62,160,95,32,62,76,189,32,62,16,27,33,62,234,120,33,62,219,214,33,62,228,52,34,62,3,147,34,62,58,241,34,62,135,79,35,62,235,173,35,62,103,12,36,62,249,106,36,62,162,201,36,62,98,40,37,62,56,135,37,62,38,230,37,62,42,69,38,62,69,164,38,62,119,3,39,62,192,98,39,62,31,194,39,62,149,33,40,62,33,129,40,62,197,224,40,62,126,64,41,62,79,160,41,62,54,0,42,62,51,96,42,62,72,192,42,62,114,32,43,62,179,128,43,62,11,225,43,62,121,65,44,62,253,161,44,62,152,2,45,62,73,99,45,62,16,196,45,62,238,36,46,62,226,133,46,62,237,230,46,62,13,72,47,62,68,169,47,62,145,10,48,62,245,107,48,62,110,205,48,62,254,46,49,62,163,144,49,62,95,242,49,62,49,84,50,62,25,182,50,62,23,24,51,62,43,122,51,62,85,220,51,62,148,62,52,62,234,160,52,62,86,3,53,62,216,101,53,62,111,200,53,62,28,43,54,62,223,141,54,62,184,240,54,62,167,83,55,62,171,182,55,62,197,25,56,62,245,124,56,62,59,224,56,62,150,67,57,62,7,167,57,62,141,10,58,62,41,110,58,62,219,209,58,62,162,53,59,62,126,153,59,62,112,253,59,62,120,97,60,62,149,197,60,62,199,41,61,62,15,142,61,62,108,242,61,62,222,86,62,62,102,187,62,62,3,32,63,62,181,132,63,62,125,233,63,62,90,78,64,62,75,179,64,62,83,24,65,62,111,125,65,62,160,226,65,62,231,71,66,62,66,173,66,62,179,18,67,62,57,120,67,62,211,221,67,62,131,67,68,62,71,169,68,62,33,15,69,62,15,117,69,62,18,219,69,62,42,65,70,62,87,167,70,62,153,13,71,62,240,115,71,62,91,218,71,62,219,64,72,62,111,167,72,62,25,14,73,62,215,116,73,62,169,219,73,62,144,66,74,62,140,169,74,62,157,16,75,62,193,119,75,62,251,222,75,62,73,70,76,62,171,173,76,62,34,21,77,62,173,124,77,62,76,228,77,62,0,76,78,62,200,179,78,62,164,27,79,62,149,131,79,62,154,235,79,62,179,83,80,62,225,187,80,62,34,36,81,62,120,140,81,62,225,244,81,62,95,93,82,62,241,197,82,62,151,46,83,62,81,151,83,62,31,0,84,62,1,105,84,62,247,209,84,62,0,59,85,62,30,164,85,62,79,13,86,62,149,118,86,62,238,223,86,62,91,73,87,62,219,178,87,62,112,28,88,62,24,134,88,62,211,239,88,62,163,89,89,62,134,195,89,62,124,45,90,62,134,151,90,62,164,1,91,62,213,107,91,62,26,214,91,62,114,64,92,62,221,170,92,62,92,21,93,62,239,127,93,62,148,234,93,62,77,85,94,62,26,192,94,62,249,42,95,62,236,149,95,62,242,0,96,62,11,108,96,62,55,215,96,62,119,66,97,62,202,173,97,62,47,25,98,62,168,132,98,62,52,240,98,62,210,91,99,62,132,199,99,62,73,51,100,62,32,159,100,62,11,11,101,62,8,119,101,62,24,227,101,62,59,79,102,62,113,187,102,62,186,39,103,62,21,148,103,62,131,0,104,62,3,109,104,62,151,217,104,62,60,70,105,62,245,178,105,62,192,31,106,62,157,140,106,62,141,249,106,62,144,102,107,62,165,211,107,62,204,64,108,62,6,174,108,62,82,27,109,62,176,136,109,62,33,246,109,62,164,99,110,62,57,209,110,62,225,62,111,62,154,172,111,62,102,26,112,62,68,136,112,62,52,246,112,62,55,100,113,62,75,210,113,62,113,64,114,62,169,174,114,62,243,28,115,62,80,139,115,62,190,249,115,62,61,104,116,62,207,214,116,62,115,69,117,62,40,180,117,62,239,34,118,62,200,145,118,62,179,0,119,62,175,111,119,62,189,222,119,62,221,77,120,62,14,189,120,62,80,44,121,62,165,155,121,62,10,11,122,62,130,122,122,62,10,234,122,62,164,89,123,62,80,201,123,62,13,57,124,62,219,168,124,62,186,24,125,62,171,136,125,62,173,248,125,62,192,104,126,62,228,216,126,62,26,73,127,62,96,185,127,62,220,20,128,62,16,77,128,62,77,133,128,62,147,189,128,62,225,245,128,62,55,46,129,62,150,102,129,62,253,158,129,62,109,215,129,62,229,15,130,62,102,72,130,62,238,128,130,62,128,185,130,62,25,242,130,62,187,42,131,62,102,99,131,62,24,156,131,62,211,212,131,62,150,13,132,62,98,70,132,62,53,127,132,62,17,184,132,62,245,240,132,62,226,41,133,62,214,98,133,62,211,155,133,62,216,212,133,62,229,13,134,62,250,70,134,62,23,128,134,62,61,185,134,62,106,242,134,62,160,43,135,62,221,100,135,62,35,158,135,62,112,215,135,62,198,16,136,62,35,74,136,62,137,131,136,62,247,188,136,62,108,246,136,62,233,47,137,62,111,105,137,62,252,162,137,62,145,220,137,62,46,22,138,62,211,79,138,62,127,137,138,62,52,195,138,62,240,252,138,62,180,54,139,62,128,112,139,62,84,170,139,62,47,228,139,62,18,30,140,62,253,87,140,62,239,145,140,62,233,203,140,62,235,5,141,62,245,63,141,62,6,122,141,62,31,180,141,62,63,238,141,62,103,40,142,62],"i8",O3,_.GLOBAL_BASE+530936),C3([150,98,142,62,205,156,142,62,12,215,142,62,82,17,143,62,159,75,143,62,245,133,143,62,81,192,143,62,181,250,143,62,33,53,144,62,147,111,144,62,14,170,144,62,143,228,144,62,25,31,145,62,169,89,145,62,65,148,145,62,224,206,145,62,134,9,146,62,52,68,146,62,233,126,146,62,165,185,146,62,105,244,146,62,52,47,147,62,6,106,147,62,223,164,147,62,191,223,147,62,167,26,148,62,150,85,148,62,139,144,148,62,136,203,148,62,140,6,149,62,152,65,149,62,170,124,149,62,195,183,149,62,227,242,149,62,11,46,150,62,57,105,150,62,111,164,150,62,171,223,150,62,238,26,151,62,56,86,151,62,138,145,151,62,226,204,151,62,65,8,152,62,167,67,152,62,19,127,152,62,135,186,152,62,1,246,152,62,130,49,153,62,10,109,153,62,153,168,153,62,47,228,153,62,203,31,154,62,110,91,154,62,24,151,154,62,200,210,154,62,127,14,155,62,61,74,155,62,2,134,155,62,205,193,155,62,158,253,155,62,119,57,156,62,85,117,156,62,59,177,156,62,39,237,156,62,25,41,157,62,18,101,157,62,18,161,157,62,24,221,157,62,36,25,158,62,55,85,158,62,80,145,158,62,112,205,158,62,150,9,159,62,195,69,159,62,246,129,159,62,47,190,159,62,111,250,159,62,180,54,160,62,1,115,160,62,83,175,160,62,172,235,160,62,11,40,161,62,112,100,161,62,219,160,161,62,77,221,161,62,196,25,162,62,66,86,162,62,198,146,162,62,81,207,162,62,225,11,163,62,119,72,163,62,20,133,163,62,182,193,163,62,95,254,163,62,13,59,164,62,194,119,164,62,125,180,164,62,61,241,164,62,4,46,165,62,208,106,165,62,162,167,165,62,123,228,165,62,89,33,166,62,61,94,166,62,39,155,166,62,23,216,166,62,12,21,167,62,7,82,167,62,8,143,167,62,15,204,167,62,28,9,168,62,46,70,168,62,70,131,168,62,100,192,168,62,136,253,168,62,177,58,169,62,223,119,169,62,20,181,169,62,78,242,169,62,141,47,170,62,211,108,170,62,29,170,170,62,109,231,170,62,195,36,171,62,31,98,171,62,127,159,171,62,230,220,171,62,81,26,172,62,194,87,172,62,57,149,172,62,181,210,172,62,54,16,173,62,189,77,173,62,73,139,173,62,218,200,173,62,113,6,174,62,13,68,174,62,174,129,174,62,85,191,174,62,0,253,174,62,177,58,175,62,103,120,175,62,35,182,175,62,227,243,175,62,169,49,176,62,116,111,176,62,68,173,176,62,25,235,176,62,243,40,177,62,210,102,177,62,182,164,177,62,160,226,177,62,142,32,178,62,129,94,178,62,121,156,178,62,119,218,178,62,121,24,179,62,128,86,179,62,140,148,179,62,157,210,179,62,178,16,180,62,205,78,180,62,236,140,180,62,16,203,180,62,57,9,181,62,103,71,181,62,154,133,181,62,209,195,181,62,13,2,182,62,78,64,182,62,147,126,182,62,221,188,182,62,44,251,182,62,127,57,183,62,215,119,183,62,52,182,183,62,149,244,183,62,251,50,184,62,101,113,184,62,212,175,184,62,71,238,184,62,191,44,185,62,59,107,185,62,188,169,185,62,65,232,185,62,202,38,186,62,88,101,186,62,235,163,186,62,129,226,186,62,28,33,187,62,188,95,187,62,95,158,187,62,7,221,187,62,180,27,188,62,100,90,188,62,25,153,188,62,210,215,188,62,143,22,189,62,80,85,189,62,22,148,189,62,223,210,189,62,173,17,190,62,127,80,190,62,85,143,190,62,47,206,190,62,13,13,191,62,239,75,191,62,213,138,191,62,191,201,191,62,173,8,192,62,159,71,192,62,149,134,192,62,143,197,192,62,141,4,193,62,143,67,193,62,148,130,193,62,158,193,193,62,171,0,194,62,188,63,194,62,209,126,194,62,234,189,194,62,6,253,194,62,38,60,195,62,74,123,195,62,113,186,195,62,157,249,195,62,204,56,196,62,254,119,196,62,52,183,196,62,110,246,196,62,171,53,197,62,236,116,197,62,49,180,197,62,121,243,197,62,196,50,198,62,19,114,198,62,102,177,198,62,188,240,198,62,21,48,199,62,114,111,199,62,210,174,199,62,54,238,199,62,157,45,200,62,7,109,200,62,117,172,200,62,230,235,200,62,90,43,201,62,209,106,201,62,76,170,201,62,202,233,201,62,75,41,202,62,208,104,202,62,88,168,202,62,226,231,202,62,112,39,203,62,1,103,203,62,149,166,203,62,45,230,203,62,199,37,204,62,100,101,204,62,4,165,204,62,168,228,204,62,78,36,205,62,248,99,205,62,164,163,205,62,83,227,205,62,5,35,206,62,186,98,206,62,114,162,206,62,45,226,206,62,234,33,207,62,171,97,207,62,110,161,207,62,52,225,207,62,253,32,208,62,200,96,208,62,150,160,208,62,103,224,208,62,59,32,209,62,17,96,209,62,234,159,209,62,198,223,209,62,164,31,210,62,133,95,210,62,104,159,210,62,78,223,210,62,55,31,211,62,33,95,211,62,15,159,211,62,255,222,211,62,241,30,212,62,230,94,212,62,221,158,212,62,215,222,212,62,211,30,213,62,209,94,213,62,210,158,213,62,213,222,213,62,219,30,214,62,226,94,214,62,236,158,214,62,248,222,214,62,7,31,215,62,24,95,215,62,42,159,215,62,63,223,215,62,87,31,216,62,112,95,216,62,139,159,216,62,169,223,216,62,200,31,217,62,234,95,217,62,14,160,217,62,51,224,217,62,91,32,218,62,133,96,218,62,176,160,218,62,222,224,218,62,13,33,219,62,63,97,219,62,114,161,219,62,167,225,219,62,222,33,220,62,23,98,220,62,82,162,220,62,142,226,220,62,204,34,221,62,12,99,221,62,78,163,221,62,146,227,221,62,215,35,222,62,29,100,222,62,102,164,222,62,176,228,222,62,252,36,223,62,73,101,223,62,152,165,223,62,232,229,223,62,58,38,224,62,142,102,224,62,227,166,224,62,57,231,224,62,145,39,225,62,234,103,225,62,69,168,225,62,161,232,225,62,255,40,226,62,94,105,226,62,190,169,226,62,32,234,226,62,131,42,227,62,231,106,227,62,76,171,227,62,179,235,227,62,27,44,228,62,132,108,228,62,238,172,228,62,90,237,228,62,199,45,229,62,52,110,229,62,163,174,229,62,19,239,229,62,133,47,230,62,247,111,230,62,106,176,230,62,222,240,230,62,83,49,231,62,202,113,231,62,65,178,231,62,185,242,231,62,50,51,232,62,172,115,232,62,38,180,232,62,162,244,232,62,31,53,233,62,156,117,233,62,26,182,233,62,153,246,233,62,25,55,234,62,153,119,234,62,26,184,234,62,156,248,234,62,31,57,235,62,162,121,235,62,38,186,235,62,170,250,235,62,47,59,236,62,181,123,236,62,59,188,236,62,194,252,236,62,73,61,237,62,209,125,237,62,89,190,237,62,226,254,237,62,107,63,238,62,245,127,238,62,127,192,238,62,10,1,239,62,149,65,239,62,32,130,239,62,171,194,239,62,55,3,240,62,196,67,240,62,80,132,240,62,221,196,240,62,106,5,241,62,247,69,241,62,132,134,241,62,18,199,241,62,160,7,242,62,45,72,242,62,187,136,242,62,74,201,242,62,216,9,243,62,102,74,243,62,244,138,243,62,131,203,243,62,17,12,244,62,159,76,244,62,46,141,244,62,188,205,244,62,74,14,245,62,216,78,245,62,102,143,245,62,244,207,245,62,129,16,246,62,15,81,246,62,156,145,246,62,41,210,246,62,182,18,247,62,67,83,247,62,207,147,247,62,91,212,247,62,231,20,248,62,115,85,248,62,254,149,248,62,136,214,248,62,19,23,249,62,157,87,249,62,38,152,249,62,175,216,249,62,56,25,250,62,192,89,250,62,72,154,250,62,207,218,250,62,86,27,251,62,220,91,251,62,97,156,251,62,230,220,251,62,106,29,252,62,238,93,252,62,113,158,252,62,243,222,252,62,117,31,253,62,245,95,253,62,118,160,253,62,245,224,253,62,116,33,254,62,241,97,254,62,110,162,254,62,235,226,254,62,102,35,255,62,224,99,255,62,90,164,255,62,211,228,255,62,165,18,0,63,225,50,0,63,27,83,0,63,86,115,0,63,144,147,0,63,201,179,0,63,2,212,0,63,58,244,0,63,114,20,1,63,169,52,1,63,224,84,1,63,22,117,1,63,76,149,1,63,129,181,1,63,181,213,1,63,233,245,1,63,28,22,2,63,78,54,2,63,128,86,2,63,178,118,2,63,226,150,2,63,18,183,2,63,65,215,2,63,112,247,2,63,157,23,3,63,203,55,3,63,247,87,3,63,35,120,3,63,78,152,3,63,120,184,3,63,161,216,3,63,202,248,3,63,242,24,4,63,25,57,4,63,63,89,4,63,101,121,4,63,137,153,4,63,173,185,4,63,208,217,4,63,243,249,4,63,20,26,5,63,52,58,5,63,84,90,5,63,115,122,5,63,145,154,5,63,173,186,5,63,202,218,5,63,229,250,5,63,255,26,6,63,24,59,6,63,48,91,6,63,72,123,6,63,94,155,6,63,116,187,6,63,136,219,6,63,155,251,6,63,174,27,7,63,191,59,7,63,208,91,7,63,223,123,7,63,237,155,7,63,250,187,7,63,7,220,7,63,18,252,7,63,28,28,8,63,37,60,8,63,44,92,8,63,51,124,8,63,57,156,8,63,61,188,8,63,64,220,8,63,67,252,8,63,68,28,9,63,68,60,9,63,66,92,9,63,64,124,9,63,60,156,9,63,55,188,9,63,49,220,9,63,41,252,9,63,33,28,10,63,23,60,10,63,12,92,10,63,255,123,10,63,242,155,10,63,227,187,10,63,211,219,10,63,193,251,10,63,174,27,11,63,154,59,11,63,133,91,11,63,110,123,11,63,86,155,11,63,60,187,11,63,33,219,11,63,5,251,11,63,231,26,12,63,200,58,12,63,168,90,12,63,134,122,12,63,98,154,12,63,62,186,12,63,23,218,12,63,240,249,12,63,199,25,13,63,156,57,13,63,112,89,13,63,66,121,13,63,19,153,13,63,227,184,13,63,176,216,13,63,125,248,13,63,72,24,14,63,17,56,14,63,216,87,14,63,159,119,14,63,99,151,14,63,38,183,14,63,232,214,14,63,167,246,14,63,101,22,15,63,34,54,15,63,221,85,15,63,150,117,15,63,78,149,15,63,4,181,15,63,184,212,15,63,106,244,15,63,27,20,16,63,202,51,16,63,120,83,16,63,36,115,16,63,206,146,16,63,118,178,16,63,28,210,16,63,193,241,16,63,100,17,17,63,6,49,17,63,165,80,17,63,67,112,17,63,223,143,17,63,121,175,17,63,17,207,17,63,167,238,17,63,60,14,18,63,206,45,18,63,95,77,18,63,238,108,18,63,123,140,18,63,7,172,18,63,144,203,18,63,23,235,18,63,157,10,19,63,32,42,19,63,162,73,19,63,34,105,19,63,159,136,19,63,27,168,19,63,149,199,19,63,13,231,19,63,131,6,20,63,247,37,20,63,104,69,20,63,216,100,20,63,70,132,20,63,178,163,20,63,27,195,20,63,131,226,20,63,233,1,21,63,76,33,21,63,174,64,21,63,13,96,21,63,106,127,21,63,197,158,21,63,31,190,21,63,117,221,21,63,202,252,21,63,29,28,22,63,109,59,22,63,188,90,22,63,8,122,22,63,82,153,22,63,153,184,22,63,223,215,22,63,34,247,22,63,100,22,23,63,162,53,23,63,223,84,23,63,26,116,23,63,82,147,23,63,136,178,23,63,187,209,23,63,237,240,23,63,28,16,24,63,73,47,24,63,115,78,24,63,155,109,24,63,193,140,24,63,228,171,24,63,6,203,24,63,36,234,24,63,65,9,25,63,91,40,25,63,115,71,25,63,136,102,25,63,155,133,25,63,171,164,25,63,185,195,25,63,197,226,25,63,206,1,26,63,213,32,26,63,217,63,26,63,219,94,26,63,218,125,26,63,215,156,26,63,210,187,26,63,202,218,26,63,191,249,26,63,178,24,27,63,162,55,27,63,144,86,27,63,123,117,27,63,100,148,27,63,74,179,27,63,46,210,27,63,15,241,27,63,237,15,28,63,201,46,28,63,162,77,28,63,121,108,28,63,77,139,28,63,31,170,28,63,237,200,28,63,185,231,28,63,131,6,29,63,74,37,29,63,14,68,29,63,207,98,29,63,142,129,29,63,74,160,29,63,3,191,29,63,186,221,29,63,110,252,29,63,31,27,30,63,205,57,30,63,121,88,30,63,34,119,30,63,200,149,30,63,107,180,30,63,12,211,30,63,170,241,30,63,69,16,31,63,221,46,31,63,114,77,31,63,5,108,31,63,148,138,31,63,33,169,31,63,171,199,31,63,50,230,31,63,182,4,32,63,56,35,32,63,182,65,32,63,50,96,32,63,170,126,32,63,32,157,32,63,147,187,32,63,3,218,32,63,112,248,32,63,218,22,33,63,65,53,33,63,165,83,33,63,6,114,33,63,100,144,33,63,191,174,33,63,23,205,33,63,108,235,33,63,190,9,34,63,13,40,34,63,89,70,34,63,162,100,34,63,232,130,34,63,43,161,34,63,107,191,34,63,167,221,34,63,225,251,34,63,24,26,35,63,75,56,35,63,123,86,35,63,168,116,35,63,211,146,35,63,249,176,35,63,29,207,35,63,62,237,35,63,91,11,36,63,118,41,36,63,141,71,36,63,161,101,36,63,177,131,36,63,191,161,36,63,201,191,36,63,208,221,36,63,212,251,36,63,213,25,37,63,210,55,37,63,204,85,37,63,195,115,37,63,183,145,37,63,167,175,37,63,148,205,37,63,126,235,37,63,101,9,38,63,72,39,38,63,40,69,38,63,4,99,38,63,221,128,38,63,179,158,38,63,134,188,38,63,85,218,38,63,33,248,38,63,233,21,39,63,174,51,39,63,112,81,39,63,46,111,39,63,233,140,39,63,160,170,39,63,84,200,39,63,4,230,39,63,178,3,40,63,91,33,40,63,1,63,40,63,164,92,40,63,67,122,40,63,223,151,40,63,120,181,40,63,12,211,40,63,158,240,40,63,43,14,41,63,182,43,41,63,60,73,41,63,192,102,41,63,63,132,41,63,187,161,41,63,52,191,41,63,169,220,41,63,26,250,41,63,136,23,42,63,242,52,42,63,89,82,42,63,188,111,42,63,28,141,42,63,119,170,42,63,208,199,42,63,36,229,42,63,117,2,43,63,194,31,43,63,12,61,43,63,82,90,43,63,148,119,43,63,211,148,43,63,14,178,43,63,69,207,43,63,120,236,43,63,168,9,44,63,212,38,44,63,252,67,44,63,33,97,44,63,66,126,44,63,95,155,44,63,120,184,44,63,142,213,44,63,159,242,44,63,173,15,45,63,184,44,45,63,190,73,45,63,193,102,45,63,191,131,45,63,186,160,45,63,177,189,45,63,165,218,45,63,148,247,45,63,128,20,46,63,103,49,46,63,75,78,46,63,43,107,46,63,7,136,46,63,224,164,46,63,180,193,46,63,132,222,46,63,81,251,46,63,26,24,47,63,222,52,47,63,159,81,47,63,92,110,47,63,21,139,47,63,202,167,47,63,123,196,47,63,40,225,47,63,209,253,47,63,118,26,48,63,23,55,48,63,180,83,48,63,77,112,48,63,226,140,48,63,115,169,48,63,0,198,48,63,137,226,48,63,14,255,48,63,142,27,49,63,11,56,49,63,132,84,49,63,248,112,49,63,105,141,49,63,214,169,49,63,62,198,49,63,162,226,49,63,2,255,49,63,95,27,50,63,182,55,50,63,10,84,50,63,90,112,50,63,166,140,50,63,237,168,50,63,48,197,50,63,111,225,50,63,170,253,50,63,225,25,51,63,19,54,51,63,66,82,51,63,108,110,51,63,146,138,51,63,180,166,51,63,209,194,51,63,234,222,51,63,0,251,51,63,16,23,52,63,29,51,52,63,37,79,52,63,41,107,52,63,41,135,52,63,37,163,52,63,28,191,52,63,15,219,52,63,253,246,52,63,232,18,53,63,206,46,53,63,176,74,53,63,141,102,53,63,102,130,53,63,59,158,53,63,11,186,53,63,215,213,53,63,159,241,53,63,98,13,54,63,33,41,54,63,220,68,54,63,146,96,54,63,68,124,54,63,241,151,54,63,154,179,54,63,63,207,54,63,223,234,54,63,123,6,55,63,18,34,55,63,165,61,55,63,52,89,55,63,190,116,55,63,67,144,55,63,196,171,55,63,65,199,55,63,185,226,55,63,45,254,55,63,156,25,56,63,7,53,56,63,109,80,56,63,207,107,56,63,44,135,56,63,133,162,56,63,217,189,56,63,40,217,56,63,115,244,56,63,186,15,57,63,252,42,57,63,57,70,57,63,114,97,57,63,166,124,57,63,214,151,57,63,1,179,57,63,40,206,57,63,74,233,57,63,103,4,58,63,128,31,58,63,148,58,58,63,163,85,58,63,174,112,58,63,180,139,58,63,182,166,58,63,179,193,58,63,171,220,58,63,159,247,58,63,142,18,59,63,120,45,59,63,94,72,59,63,63,99,59,63,27,126,59,63,243,152,59,63,197,179,59,63,148,206,59,63,93,233,59,63,34,4,60,63,226,30,60,63,157,57,60,63,84,84,60,63,5,111,60,63,178,137,60,63,91,164,60,63,254,190,60,63,157,217,60,63,55,244,60,63,204,14,61,63,93,41,61,63,232,67,61,63,111,94,61,63,241,120,61,63,110,147,61,63,231,173,61,63,91,200,61,63,201,226,61,63,51,253,61,63,152,23,62,63,249,49,62,63,84,76,62,63,171,102,62,63,252,128,62,63,73,155,62,63,145,181,62,63,212,207,62,63,19,234,62,63,76,4,63,63,128,30,63,63,176,56,63,63,219,82,63,63,0,109,63,63,33,135,63,63,61,161,63,63,84,187,63,63,102,213,63,63,115,239,63,63,123,9,64,63,127,35,64,63,125,61,64,63,118,87,64,63,106,113,64,63,90,139,64,63,68,165,64,63,42,191,64,63,10,217,64,63,229,242,64,63,188,12,65,63,141,38,65,63,90,64,65,63,33,90,65,63,228,115,65,63,161,141,65,63,89,167,65,63,13,193,65,63,187,218,65,63,100,244,65,63,8,14,66,63,167,39,66,63,65,65,66,63,214,90,66,63,102,116,66,63,241,141,66,63,119,167,66,63,248,192,66,63,115,218,66,63,234,243,66,63,91,13,67,63,199,38,67,63,47,64,67,63,145,89,67,63,238,114,67,63,69,140,67,63,152,165,67,63,230,190,67,63,46,216,67,63,113,241,67,63,175,10,68,63,232,35,68,63,28,61,68,63,75,86,68,63,116,111,68,63,153,136,68,63,184,161,68,63,210,186,68,63,230,211,68,63,246,236,68,63,0,6,69,63,5,31,69,63,5,56,69,63,0,81,69,63,245,105,69,63,230,130,69,63,209,155,69,63,182,180,69,63,151,205,69,63,114,230,69,63,72,255,69,63,25,24,70,63,229,48,70,63,171,73,70,63,108,98,70,63,40,123,70,63,222,147,70,63,143,172,70,63,59,197,70,63,226,221,70,63,131,246,70,63,31,15,71,63,182,39,71,63,71,64,71,63,211,88,71,63,90,113,71,63,220,137,71,63,88,162,71,63,207,186,71,63,64,211,71,63,172,235,71,63,19,4,72,63,116,28,72,63,209,52,72,63,39,77,72,63,121,101,72,63,197,125,72,63,11,150,72,63,77,174,72,63,137,198,72,63,191,222,72,63,240,246,72,63,28,15,73,63,66,39,73,63,99,63,73,63,127,87,73,63,149,111,73,63,166,135,73,63,177,159,73,63,183,183,73,63,183,207,73,63,178,231,73,63,168,255,73,63,152,23,74,63,131,47,74,63,104,71,74,63,72,95,74,63,34,119,74,63,247,142,74,63,199,166,74,63,145,190,74,63,85,214,74,63,20,238,74,63,206,5,75,63,130,29,75,63,49,53,75,63,218,76,75,63,126,100,75,63,28,124,75,63,181,147,75,63,72,171,75,63,213,194,75,63,93,218,75,63,224,241,75,63,93,9,76,63,213,32,76,63,71,56,76,63,179,79,76,63,26,103,76,63,124,126,76,63,216,149,76,63,46,173,76,63,127,196,76,63,202,219,76,63,16,243,76,63,80,10,77,63,139,33,77,63,192,56,77,63,240,79,77,63,26,103,77,63,62,126,77,63,93,149,77,63,118,172,77,63,137,195,77,63,151,218,77,63,160,241,77,63,163,8,78,63,160,31,78,63,151,54,78,63,137,77,78,63,118,100,78,63,93,123,78,63,62,146,78,63,25,169,78,63,239,191,78,63,192,214,78,63,138,237,78,63,79,4,79,63,15,27,79,63,201,49,79,63,125,72,79,63,43,95,79,63,212,117,79,63,119,140,79,63,21,163,79,63,172,185,79,63,63,208,79,63,203,230,79,63,82,253,79,63,211,19,80,63,79,42,80,63,197,64,80,63,53,87,80,63,159,109,80,63,4,132,80,63,99,154,80,63,189,176,80,63,16,199,80,63,94,221,80,63,167,243,80,63,233,9,81,63,38,32,81,63,93,54,81,63,143,76,81,63,187,98,81,63,225,120,81,63,1,143,81,63,28,165,81,63,48,187,81,63,64,209,81,63,73,231,81,63,77,253,81,63,75,19,82,63,67,41,82,63,53,63,82,63,34,85,82,63,9,107,82,63,234,128,82,63,198,150,82,63,155,172,82,63,107,194,82,63,53,216,82,63,250,237,82,63,185,3,83,63,113,25,83,63,37,47,83,63,210,68,83,63,121,90,83,63,27,112,83,63,183,133,83,63,77,155,83,63,222,176,83,63,104,198,83,63,237,219,83,63,108,241,83,63,230,6,84,63,89,28,84,63,199,49,84,63,46,71,84,63,145,92,84,63,237,113,84,63,67,135,84,63,148,156,84,63,223,177,84,63,35,199,84,63,99,220,84,63,156,241,84,63,207,6,85,63,253,27,85,63,37,49,85,63,71,70,85,63,99,91,85,63,121,112,85,63,138,133,85,63,149,154,85,63,153,175,85,63,152,196,85,63,146,217,85,63,133,238,85,63,114,3,86,63,90,24,86,63,60,45,86,63,24,66,86,63,238,86,86,63,190,107,86,63,136,128,86,63,76,149,86,63,11,170,86,63,196,190,86,63,118,211,86,63,35,232,86,63,203,252,86,63,108,17,87,63,7,38,87,63,156,58,87,63,44,79,87,63,182,99,87,63,58,120,87,63,183,140,87,63,47,161,87,63,162,181,87,63,14,202,87,63,116,222,87,63,213,242,87,63,47,7,88,63,132,27,88,63,211,47,88,63,28,68,88,63,95,88,88,63,156,108,88,63,211,128,88,63,4,149,88,63,47,169,88,63,85,189,88,63,116,209,88,63,142,229,88,63,162,249,88,63,175,13,89,63,183,33,89,63,185,53,89,63,181,73,89,63,171,93,89,63,155,113,89,63,134,133,89,63,106,153,89,63,72,173,89,63,33,193,89,63,243,212,89,63,192,232,89,63,135,252,89,63,71,16,90,63,2,36,90,63,183,55,90,63,102,75,90,63,15,95,90,63,178,114,90,63,79,134,90,63,230,153,90,63,119,173,90,63,3,193,90,63,136,212,90,63,7,232,90,63,129,251,90,63,244,14,91,63,98,34,91,63,201,53,91,63,43,73,91,63,135,92,91,63,220,111,91,63,44,131,91,63,118,150,91,63,186,169,91,63,248,188,91,63,47,208,91,63,97,227,91,63,141,246,91,63,179,9,92,63,212,28,92,63,238,47,92,63,2,67,92,63,16,86,92,63,24,105,92,63,26,124,92,63,23,143,92,63,13,162,92,63,253,180,92,63,232,199,92,63,204,218,92,63,171,237,92,63,131,0,93,63,86,19,93,63,34,38,93,63,233,56,93,63,169,75,93,63,100,94,93,63,24,113,93,63,199,131,93,63,112,150,93,63,18,169,93,63,175,187,93,63,70,206,93,63,215,224,93,63,97,243,93,63,230,5,94,63,101,24,94,63,222,42,94,63,81,61,94,63,190,79,94,63,36,98,94,63,133,116,94,63,224,134,94,63,53,153,94,63,132,171,94,63,205,189,94,63,16,208,94,63,77,226,94,63,132,244,94,63,181,6,95,63,224,24,95,63,5,43,95,63,36,61,95,63,61,79,95,63,80,97,95,63,93,115,95,63,101,133,95,63,102,151,95,63,97,169,95,63,86,187,95,63,69,205,95,63,46,223,95,63,18,241,95,63,239,2,96,63,198,20,96,63,151,38,96,63,98,56,96,63,40,74,96,63,231,91,96,63,160,109,96,63,84,127,96,63,1,145,96,63,168,162,96,63,73,180,96,63,229,197,96,63,122,215,96,63,10,233,96,63,147,250,96,63,22,12,97,63,148,29,97,63,11,47,97,63,125,64,97,63,232,81,97,63,77,99,97,63,173,116,97,63,6,134,97,63,90,151,97,63,167,168,97,63,239,185,97,63,48,203,97,63,108,220,97,63,162,237,97,63,209,254,97,63,251,15,98,63,30,33,98,63,60,50,98,63,84,67,98,63,101,84,98,63,113,101,98,63,119,118,98,63,119,135,98,63,112,152,98,63,100,169,98,63,82,186,98,63,58,203,98,63,28,220,98,63,247,236,98,63,205,253,98,63,157,14,99,63,103,31,99,63,43,48,99,63,233,64,99,63,161,81,99,63,83,98,99,63,255,114,99,63,165,131,99,63,69,148,99,63,224,164,99,63,116,181,99,63,2,198,99,63,138,214,99,63,13,231,99,63,137,247,99,63,255,7,100,63,112,24,100,63,218,40,100,63,62,57,100,63,157,73,100,63,246,89,100,63,72,106,100,63,149,122,100,63,219,138,100,63,28,155,100,63,87,171,100,63,140,187,100,63,186,203,100,63,227,219,100,63,6,236,100,63,35,252,100,63,58,12,101,63,75,28,101,63,86,44,101,63,91,60,101,63,91,76,101,63,84,92,101,63,71,108,101,63,53,124,101,63,28,140,101,63,254,155,101,63,217,171,101,63,175,187,101,63,126,203,101,63,72,219,101,63,12,235,101,63,202,250,101,63,130,10,102,63,52,26,102,63,224,41,102,63,134,57,102,63,38,73,102,63,193,88,102,63,85,104,102,63,227,119,102,63,108,135,102,63,238,150,102,63,107,166,102,63,226,181,102,63,83,197,102,63,190,212,102,63,35,228,102,63,130,243,102,63,219,2,103,63,46,18,103,63,124,33,103,63,195,48,103,63,5,64,103,63,64,79,103,63,118,94,103,63,166,109,103,63,208,124,103,63,244,139,103,63,18,155,103,63,42,170,103,63,61,185,103,63,73,200,103,63,80,215,103,63,80,230,103,63,75,245,103,63,64,4,104,63,47,19,104,63,24,34,104,63,251,48,104,63,217,63,104,63,176,78,104,63,130,93,104,63,78,108,104,63,20,123,104,63,212,137,104,63,142,152,104,63,66,167,104,63,240,181,104,63,153,196,104,63,60,211,104,63,217,225,104,63,112,240,104,63,1,255,104,63,140,13,105,63,17,28,105,63,145,42,105,63,11,57,105,63,127,71,105,63,237,85,105,63,85,100,105,63,183,114,105,63,20,129,105,63,106,143,105,63,187,157,105,63,6,172,105,63,75,186,105,63,139,200,105,63,196,214,105,63,248,228,105,63,38,243,105,63,78,1,106,63,112,15,106,63,141,29,106,63,163,43,106,63,180,57,106,63,191,71,106,63,196,85,106,63,196,99,106,63,189,113,106,63,177,127,106,63,159,141,106,63,135,155,106,63,106,169,106,63,70,183,106,63,29,197,106,63,238,210,106,63,186,224,106,63,127,238,106,63,63,252,106,63,249,9,107,63,173,23,107,63,91,37,107,63,4,51,107,63,167,64,107,63,68,78,107,63,219,91,107,63,109,105,107,63,249,118,107,63,127,132,107,63,255,145,107,63,122,159,107,63,238,172,107,63,94,186,107,63,199,199,107,63,42,213,107,63,136,226,107,63,224,239,107,63,51,253,107,63,128,10,108,63,198,23,108,63,8,37,108,63,67,50,108,63,121,63,108,63,169,76,108,63,211,89,108,63,248,102,108,63,23,116,108,63,48,129,108,63,68,142,108,63,82,155,108,63,90,168,108,63,92,181,108,63,89,194,108,63,80,207,108,63,65,220,108,63,45,233,108,63,19,246,108,63,243,2,109,63,206,15,109,63,163,28,109,63,114,41,109,63,60,54,109,63,0,67,109,63,190,79,109,63,119,92,109,63,42,105,109,63,215,117,109,63,127,130,109,63,33,143,109,63,189,155,109,63,84,168,109,63,229,180,109,63,113,193,109,63,247,205,109,63,119,218,109,63,242,230,109,63,103,243,109,63,214,255,109,63,64,12,110,63,164,24,110,63,3,37,110,63,91,49,110,63,175,61,110,63,253,73,110,63,69,86,110,63,135,98,110,63,196,110,110,63,252,122,110,63,45,135,110,63,90,147,110,63,128,159,110,63,161,171,110,63,189,183,110,63,211,195,110,63,227,207,110,63,238,219,110,63,243,231,110,63,243,243,110,63,237,255,110,63,226,11,111,63,209,23,111,63,186,35,111,63,158,47,111,63,125,59,111,63,85,71,111,63,41,83,111,63,247,94,111,63,191,106,111,63,130,118,111,63,63,130,111,63,247,141,111,63,169,153,111,63,86,165,111,63,253,176,111,63,159,188,111,63,59,200,111,63,210,211,111,63,99,223,111,63,239,234,111,63,117,246,111,63,246,1,112,63,114,13,112,63,231,24,112,63,88,36,112,63,195,47,112,63,40,59,112,63,137,70,112,63,227,81,112,63,56,93,112,63,136,104,112,63,210,115,112,63,23,127,112,63,87,138,112,63,145,149,112,63,197,160,112,63,244,171,112,63,30,183,112,63,66,194,112,63,97,205,112,63,123,216,112,63,143,227,112,63,157,238,112,63,167,249,112,63,171,4,113,63,169,15,113,63,162,26,113,63,150,37,113,63,132,48,113,63,109,59,113,63,81,70,113,63,47,81,113,63,8,92,113,63,219,102,113,63,170,113,113,63,114,124,113,63,54,135,113,63,244,145,113,63,173,156,113,63,96,167,113,63,14,178,113,63,183,188,113,63,91,199,113,63,249,209,113,63,146,220,113,63,37,231,113,63,179,241,113,63,60,252,113,63,192,6,114,63,62,17,114,63,183,27,114,63,43,38,114,63,154,48,114,63,3,59,114,63,103,69,114,63,197,79,114,63,31,90,114,63,115,100,114,63,194,110,114,63,11,121,114,63,79,131,114,63,143,141,114,63,200,151,114,63,253,161,114,63,44,172,114,63,87,182,114,63,123,192,114,63,155,202,114,63,182,212,114,63,203,222,114,63,219,232,114,63,230,242,114,63,235,252,114,63,236,6,115,63,231,16,115,63,221,26,115,63,206,36,115,63,186,46,115,63,160,56,115,63,130,66,115,63,94,76,115,63,53,86,115,63,7,96,115,63,212,105,115,63,155,115,115,63,94,125,115,63,27,135,115,63,211,144,115,63,134,154,115,63,52,164,115,63,221,173,115,63,128,183,115,63,31,193,115,63,184,202,115,63,77,212,115,63,220,221,115,63,102,231,115,63,235,240,115,63,107,250,115,63,230,3,116,63,92,13,116,63,204,22,116,63,56,32,116,63,159,41,116,63,0,51,116,63,93,60,116,63,180,69,116,63,6,79,116,63,84,88,116,63,156,97,116,63,223,106,116,63,29,116,116,63,87,125,116,63,139,134,116,63,186,143,116,63,228,152,116,63,9,162,116,63,41,171,116,63,68,180,116,63,91,189,116,63,108,198,116,63,120,207,116,63,127,216,116,63,129,225,116,63,127,234,116,63,119,243,116,63,106,252,116,63,89,5,117,63,66,14,117,63,38,23,117,63,6,32,117,63,225,40,117,63,182,49,117,63,135,58,117,63,83,67,117,63,26,76,117,63,220,84,117,63,153,93,117,63,81,102,117,63,4,111,117,63,179,119,117,63,92,128,117,63,1,137,117,63,160,145,117,63,59,154,117,63,209,162,117,63,98,171,117,63,239,179,117,63,118,188,117,63,249,196,117,63,118,205,117,63,239,213,117,63,99,222,117,63,210,230,117,63,61,239,117,63,162,247,117,63,3,0,118,63,95,8,118,63,182,16,118,63,8,25,118,63,86,33,118,63,159,41,118,63,227,49,118,63,34,58,118,63,92,66,118,63,146,74,118,63,195,82,118,63,239,90,118,63,22,99,118,63,57,107,118,63,86,115,118,63,112,123,118,63,132,131,118,63,148,139,118,63,158,147,118,63,165,155,118,63,166,163,118,63,163,171,118,63,155,179,118,63,142,187,118,63,125,195,118,63,103,203,118,63,76,211,118,63,45,219,118,63,9,227,118,63,224,234,118,63,178,242,118,63,128,250,118,63,74,2,119,63,14,10,119,63,206,17,119,63,137,25,119,63,64,33,119,63,242,40,119,63,160,48,119,63,72,56,119,63,237,63,119,63,140,71,119,63,39,79,119,63,190,86,119,63,79,94,119,63,220,101,119,63,101,109,119,63,233,116,119,63,105,124,119,63,228,131,119,63,90,139,119,63,204,146,119,63,57,154,119,63,162,161,119,63,6,169,119,63,101,176,119,63,192,183,119,63,23,191,119,63,105,198,119,63,182,205,119,63,255,212,119,63,68,220,119,63,132,227,119,63,191,234,119,63,246,241,119,63,41,249,119,63,87,0,120,63,129,7,120,63,166,14,120,63,198,21,120,63,227,28,120,63,250,35,120,63,14,43,120,63,28,50,120,63,39,57,120,63,45,64,120,63,46,71,120,63,44,78,120,63,36,85,120,63,25,92,120,63,9,99,120,63,244,105,120,63,219,112,120,63,190,119,120,63,156,126,120,63,118,133,120,63,76,140,120,63,29,147,120,63,234,153,120,63,179,160,120,63,119,167,120,63,55,174,120,63,242,180,120,63,169,187,120,63,92,194,120,63,11,201,120,63,181,207,120,63,91,214,120,63,252,220,120,63,154,227,120,63,51,234,120,63,199,240,120,63,88,247,120,63,228,253,120,63,108,4,121,63,240,10,121,63,111,17,121,63,234,23,121,63,97,30,121,63,211,36,121,63,66,43,121,63,172,49,121,63,18,56,121,63,116,62,121,63,209,68,121,63,42,75,121,63,127,81,121,63,208,87,121,63,29,94,121,63,101,100,121,63,170,106,121,63,234,112,121,63,38,119,121,63,93,125,121,63,145,131,121,63,193,137,121,63,236,143,121,63,19,150,121,63,54,156,121,63,85,162,121,63,112,168,121,63,134,174,121,63,153,180,121,63,167,186,121,63,178,192,121,63,184,198,121,63,186,204,121,63,184,210,121,63,178,216,121,63,168,222,121,63,154,228,121,63,135,234,121,63,113,240,121,63,87,246,121,63,56,252,121,63,22,2,122,63,239,7,122,63,197,13,122,63,150,19,122,63,100,25,122,63,45,31,122,63,243,36,122,63,180,42,122,63,113,48,122,63,43,54,122,63,224,59,122,63,146,65,122,63,63,71,122,63,233,76,122,63,142,82,122,63,48,88,122,63,206,93,122,63,103,99,122,63,253,104,122,63,143,110,122,63,29,116,122,63,167,121,122,63,45,127,122,63,175,132,122,63,45,138,122,63,168,143,122,63,30,149,122,63,145,154,122,63,255,159,122,63,106,165,122,63,209,170,122,63,52,176,122,63,147,181,122,63,239,186,122,63,70,192,122,63,154,197,122,63,234,202,122,63,54,208,122,63,126,213,122,63,194,218,122,63,3,224,122,63,64,229,122,63,121,234,122,63,174,239,122,63,223,244,122,63,13,250,122,63,55,255,122,63,93,4,123,63,127,9,123,63,157,14,123,63,184,19,123,63,207,24,123,63,227,29,123,63,242,34,123,63,254,39,123,63,6,45,123,63,10,50,123,63,11,55,123,63,8,60,123,63,1,65,123,63,247,69,123,63,233,74,123,63,215,79,123,63,193,84,123,63,168,89,123,63,139,94,123,63,107,99,123,63,71,104,123,63,31,109,123,63,243,113,123,63,196,118,123,63,146,123,123,63,91,128,123,63,33,133,123,63,228,137,123,63,163,142,123,63,94,147,123,63,22,152,123,63,202,156,123,63,122,161,123,63,39,166,123,63,208,170,123,63,118,175,123,63,24,180,123,63,183,184,123,63,82,189,123,63,233,193,123,63,125,198,123,63,14,203,123,63,155,207,123,63,36,212,123,63,170,216,123,63,45,221,123,63,172,225,123,63,39,230,123,63,159,234,123,63,19,239,123,63,132,243,123,63,242,247,123,63,92,252,123,63,195,0,124,63,38,5,124,63,133,9,124,63,226,13,124,63,58,18,124,63,144,22,124,63,226,26,124,63,48,31,124,63,123,35,124,63,195,39,124,63,7,44,124,63,72,48,124,63,134,52,124,63,192,56,124,63,247,60,124,63,42,65,124,63,90,69,124,63,135,73,124,63,176,77,124,63,214,81,124,63,249,85,124,63,24,90,124,63,52,94,124,63,77,98,124,63,98,102,124,63,116,106,124,63,131,110,124,63,142,114,124,63,150,118,124,63,155,122,124,63,157,126,124,63,155,130,124,63,150,134,124,63,142,138,124,63,130,142,124,63,116,146,124,63,98,150,124,63,77,154,124,63,52,158,124,63,24,162,124,63,249,165,124,63,215,169,124,63,178,173,124,63,137,177,124,63,94,181,124,63,47,185,124,63,253,188,124,63,199,192,124,63,143,196,124,63,83,200,124,63,20,204,124,63,211,207,124,63,141,211,124,63,69,215,124,63,250,218,124,63,171,222,124,63,90,226,124,63,5,230,124,63,173,233,124,63,82,237,124,63,244,240,124,63,147,244,124,63,46,248,124,63,199,251,124,63,93,255,124,63,239,2,125,63,127,6,125,63,11,10,125,63,148,13,125,63,27,17,125,63,158,20,125,63,30,24,125,63,155,27,125,63,21,31,125,63,140,34,125,63,0,38,125,63,114,41,125,63,224,44,125,63,75,48,125,63,179,51,125,63,24,55,125,63,122,58,125,63,217,61,125,63,54,65,125,63,143,68,125,63,229,71,125,63,56,75,125,63,137,78,125,63,214,81,125,63,33,85,125,63,104,88,125,63,173,91,125,63,239,94,125,63,46,98,125,63,106,101,125,63,163,104,125,63,217,107,125,63,12,111,125,63,61,114,125,63,106,117,125,63,149,120,125,63,189,123,125,63,226,126,125,63,4,130,125,63,36,133,125,63,64,136,125,63,90,139,125,63,112,142,125,63,133,145,125,63,150,148,125,63,164,151,125,63,176,154,125,63,185,157,125,63,191,160,125,63,194,163,125,63,194,166,125,63,192,169,125,63,187,172,125,63,179,175,125,63,168,178,125,63,155,181,125,63,139,184,125,63,120,187,125,63,99,190,125,63,74,193,125,63,48,196,125,63,18,199,125,63,241,201,125,63,206,204,125,63,169,207,125,63,128,210,125,63,85,213,125,63,39,216,125,63,247,218,125,63,196,221,125,63,142,224,125,63,85,227,125,63,26,230,125,63,220,232,125,63,156,235,125,63,89,238,125,63,19,241,125,63,203,243,125,63,128,246,125,63,51,249,125,63,227,251,125,63,144,254,125,63,59,1,126,63,227,3,126,63,137,6,126,63,44,9,126,63,204,11,126,63,106,14,126,63,6,17,126,63,158,19,126,63,53,22,126,63,200,24,126,63,90,27,126,63,232,29,126,63,116,32,126,63,254,34,126,63,133,37,126,63,10,40,126,63,140,42,126,63,12,45,126,63,137,47,126,63,4,50,126,63,124,52,126,63,242,54,126,63,101,57,126,63,214,59,126,63,68,62,126,63,176,64,126,63,26,67,126,63,129,69,126,63,230,71,126,63,72,74,126,63,168,76,126,63,5,79,126,63,96,81,126,63,185,83,126,63,15,86,126,63,99,88,126,63,181,90,126,63,4,93,126,63,81,95,126,63,155,97,126,63,227,99,126,63,41,102,126,63,108,104,126,63,173,106,126,63,236,108,126,63,40,111,126,63,98,113,126,63,154,115,126,63,208,117,126,63,3,120,126,63,51,122,126,63,98,124,126,63,142,126,126,63,184,128,126,63,224,130,126,63,5,133,126,63,40,135,126,63,73,137,126,63,104,139,126,63,132,141,126,63,159,143,126,63,183,145,126,63,204,147,126,63,224,149,126,63,241,151,126,63,0,154,126,63,13,156,126,63,24,158,126,63,32,160,126,63,38,162,126,63,42,164,126,63,44,166,126,63,44,168,126,63,41,170,126,63,37,172,126,63,30,174,126,63,21,176,126,63,10,178,126,63,253,179,126,63,238,181,126,63,220,183,126,63,201,185,126,63,179,187,126,63,155,189,126,63,129,191,126,63,101,193,126,63,71,195,126,63,39,197,126,63,5,199,126,63,224,200,126,63,186,202,126,63,145,204,126,63,103,206,126,63,58,208,126,63,12,210,126,63,219,211,126,63,168,213,126,63,115,215,126,63,61,217,126,63,4,219,126,63,201,220,126,63,140,222,126,63,77,224,126,63,12,226,126,63,202,227,126,63,133,229,126,63,62,231,126,63,245,232,126,63,170,234,126,63,94,236,126,63,15,238,126,63,190,239,126,63,108,241,126,63,23,243,126,63,193,244,126,63,104,246,126,63,14,248,126,63,178,249,126,63,84,251,126,63,243,252,126,63,145,254,126,63,46,0,127,63,200,1,127,63,96,3,127,63,247,4,127,63,139,6,127,63,30,8,127,63,175,9,127,63,62,11,127,63,203,12,127,63,86,14,127,63,223,15,127,63,103,17,127,63,237,18,127,63,112,20,127,63,242,21,127,63,115,23,127,63,241,24,127,63,110,26,127,63,233,27,127,63,98,29,127,63,217,30,127,63,78,32,127,63,194,33,127,63,52,35,127,63,164,36,127,63,18,38,127,63,127,39,127,63,234,40,127,63,83,42,127,63,186,43,127,63,32,45,127,63,131,46,127,63,230,47,127,63,70,49,127,63,165,50,127,63,2,52,127,63,93,53,127,63,182,54,127,63,14,56,127,63,100,57,127,63,185,58,127,63,12,60,127,63,93,61,127,63,172,62,127,63,250,63,127,63,70,65,127,63,145,66,127,63,217,67,127,63,33,69,127,63,102,70,127,63,170,71,127,63,236,72,127,63,45,74,127,63,108,75,127,63,169,76,127,63,229,77,127,63,31,79,127,63,88,80,127,63,143,81,127,63,196,82,127,63,248,83,127,63,42,85,127,63,91,86,127,63,138,87,127,63,184,88,127,63,228,89,127,63,14,91,127,63,55,92,127,63,94,93,127,63,132,94,127,63,169,95,127,63,203,96,127,63,237,97,127,63,12,99,127,63,42,100,127,63,71,101,127,63,98,102,127,63,124,103,127,63,148,104,127,63,171,105,127,63,192,106,127,63,212,107,127,63,230,108,127,63,247,109,127,63,6,111,127,63,20,112,127,63,33,113,127,63,44,114,127,63,53,115,127,63,61,116,127,63,68,117,127,63,73,118,127,63,77,119,127,63,79,120,127,63,80,121,127,63,80,122,127,63,78,123,127,63,75,124,127,63,70,125,127,63,64,126,127,63,57,127,127,63,48,128,127,63,38,129,127,63,27,130,127,63,14,131,127,63,0,132,127,63,240,132,127,63,223,133,127,63,205,134,127,63,185,135,127,63,164,136,127,63,142,137,127,63,118,138,127,63,93,139,127,63,67,140,127,63,40,141,127,63,11,142,127,63,237,142,127,63,205,143,127,63,173,144,127,63,139,145,127,63,103,146,127,63,67,147,127,63,29,148,127,63,246,148,127,63,205,149,127,63,164,150,127,63,121,151,127,63,77,152,127,63,31,153,127,63,241,153,127,63,193,154,127,63,144,155,127,63,93,156,127,63,42,157,127,63,245,157,127,63,191,158,127,63,136,159,127,63,79,160,127,63,22,161,127,63,219,161,127,63,159,162,127,63,98,163,127,63,36,164,127,63,228,164,127,63,163,165,127,63,98,166,127,63,31,167,127,63,219,167,127,63,149,168,127,63,79,169,127,63,7,170,127,63,190,170,127,63,117,171,127,63,42,172,127,63,221,172,127,63,144,173,127,63,66,174,127,63,242,174,127,63,162,175,127,63,80,176,127,63,253,176,127,63,169,177,127,63,85,178,127,63,254,178,127,63,167,179,127,63,79,180,127,63,246,180,127,63,156,181,127,63,64,182,127,63,228,182,127,63,134,183,127,63,40,184,127,63,200,184,127,63,103,185,127,63,6,186,127,63,163,186,127,63,63,187,127,63,219,187,127,63,117,188,127,63,14,189,127,63,166,189,127,63,61,190,127,63,212,190,127,63,105,191,127,63,253,191,127,63,144,192,127,63,34,193,127,63,180,193,127,63,68,194,127,63,211,194,127,63,98,195,127,63,239,195,127,63,123,196,127,63,7,197,127,63,145,197,127,63,27,198,127,63,163,198,127,63,43,199,127,63,178,199,127,63,56,200,127,63,189,200,127,63,65,201,127,63,196,201,127,63,70,202,127,63,199,202,127,63,71,203,127,63,199,203,127,63,69,204,127,63,195,204,127,63,64,205,127,63,187,205,127,63,54,206,127,63,177,206,127,63,42,207,127,63,162,207,127,63,26,208,127,63,144,208,127,63,6,209,127,63,123,209,127,63,239,209,127,63,98,210,127,63,213,210,127,63,70,211,127,63,183,211,127,63,39,212,127,63,150,212,127,63,4,213,127,63,114,213,127,63],"i8",O3,_.GLOBAL_BASE+541176),C3([222,213,127,63,74,214,127,63,181,214,127,63,32,215,127,63,137,215,127,63,242,215,127,63,89,216,127,63,192,216,127,63,39,217,127,63,140,217,127,63,241,217,127,63,85,218,127,63,184,218,127,63,27,219,127,63,124,219,127,63,221,219,127,63,61,220,127,63,157,220,127,63,251,220,127,63,89,221,127,63,183,221,127,63,19,222,127,63,111,222,127,63,202,222,127,63,36,223,127,63,126,223,127,63,215,223,127,63,47,224,127,63,134,224,127,63,221,224,127,63,51,225,127,63,137,225,127,63,221,225,127,63,49,226,127,63,133,226,127,63,215,226,127,63,41,227,127,63,122,227,127,63,203,227,127,63,27,228,127,63,106,228,127,63,185,228,127,63,7,229,127,63,84,229,127,63,161,229,127,63,237,229,127,63,56,230,127,63,131,230,127,63,205,230,127,63,23,231,127,63,96,231,127,63,168,231,127,63,239,231,127,63,54,232,127,63,125,232,127,63,195,232,127,63,8,233,127,63,76,233,127,63,144,233,127,63,212,233,127,63,23,234,127,63,89,234,127,63,154,234,127,63,219,234,127,63,28,235,127,63,92,235,127,63,155,235,127,63,218,235,127,63,24,236,127,63,86,236,127,63,147,236,127,63,207,236,127,63,11,237,127,63,71,237,127,63,130,237,127,63,188,237,127,63,246,237,127,63,47,238,127,63,104,238,127,63,160,238,127,63,216,238,127,63,15,239,127,63,69,239,127,63,123,239,127,63,177,239,127,63,230,239,127,63,27,240,127,63,79,240,127,63,130,240,127,63,182,240,127,63,232,240,127,63,26,241,127,63,76,241,127,63,125,241,127,63,174,241,127,63,222,241,127,63,14,242,127,63,61,242,127,63,108,242,127,63,154,242,127,63,200,242,127,63,245,242,127,63,34,243,127,63,79,243,127,63,123,243,127,63,166,243,127,63,209,243,127,63,252,243,127,63,38,244,127,63,80,244,127,63,121,244,127,63,162,244,127,63,203,244,127,63,243,244,127,63,27,245,127,63,66,245,127,63,105,245,127,63,143,245,127,63,181,245,127,63,219,245,127,63,0,246,127,63,37,246,127,63,73,246,127,63,109,246,127,63,145,246,127,63,180,246,127,63,215,246,127,63,250,246,127,63,28,247,127,63,62,247,127,63,95,247,127,63,128,247,127,63,160,247,127,63,193,247,127,63,225,247,127,63,0,248,127,63,31,248,127,63,62,248,127,63,93,248,127,63,123,248,127,63,152,248,127,63,182,248,127,63,211,248,127,63,240,248,127,63,12,249,127,63,40,249,127,63,68,249,127,63,95,249,127,63,122,249,127,63,149,249,127,63,175,249,127,63,202,249,127,63,227,249,127,63,253,249,127,63,22,250,127,63,47,250,127,63,71,250,127,63,96,250,127,63,120,250,127,63,143,250,127,63,166,250,127,63,190,250,127,63,212,250,127,63,235,250,127,63,1,251,127,63,23,251,127,63,44,251,127,63,66,251,127,63,87,251,127,63,108,251,127,63,128,251,127,63,148,251,127,63,168,251,127,63,188,251,127,63,208,251,127,63,227,251,127,63,246,251,127,63,8,252,127,63,27,252,127,63,45,252,127,63,63,252,127,63,81,252,127,63,98,252,127,63,115,252,127,63,132,252,127,63,149,252,127,63,165,252,127,63,182,252,127,63,198,252,127,63,213,252,127,63,229,252,127,63,244,252,127,63,3,253,127,63,18,253,127,63,33,253,127,63,47,253,127,63,62,253,127,63,76,253,127,63,89,253,127,63,103,253,127,63,116,253,127,63,130,253,127,63,143,253,127,63,155,253,127,63,168,253,127,63,181,253,127,63,193,253,127,63,205,253,127,63,217,253,127,63,228,253,127,63,240,253,127,63,251,253,127,63,6,254,127,63,17,254,127,63,28,254,127,63,38,254,127,63,49,254,127,63,59,254,127,63,69,254,127,63,79,254,127,63,89,254,127,63,98,254,127,63,108,254,127,63,117,254,127,63,126,254,127,63,135,254,127,63,144,254,127,63,152,254,127,63,161,254,127,63,169,254,127,63,177,254,127,63,185,254,127,63,193,254,127,63,201,254,127,63,208,254,127,63,216,254,127,63,223,254,127,63,230,254,127,63,237,254,127,63,244,254,127,63,251,254,127,63,2,255,127,63,8,255,127,63,14,255,127,63,21,255,127,63,27,255,127,63,33,255,127,63,39,255,127,63,45,255,127,63,50,255,127,63,56,255,127,63,61,255,127,63,67,255,127,63,72,255,127,63,77,255,127,63,82,255,127,63,87,255,127,63,92,255,127,63,96,255,127,63,101,255,127,63,105,255,127,63,110,255,127,63,114,255,127,63,118,255,127,63,122,255,127,63,126,255,127,63,130,255,127,63,134,255,127,63,138,255,127,63,142,255,127,63,145,255,127,63,149,255,127,63,152,255,127,63,155,255,127,63,159,255,127,63,162,255,127,63,165,255,127,63,168,255,127,63,171,255,127,63,174,255,127,63,176,255,127,63,179,255,127,63,182,255,127,63,184,255,127,63,187,255,127,63,189,255,127,63,192,255,127,63,194,255,127,63,196,255,127,63,198,255,127,63,201,255,127,63,203,255,127,63,205,255,127,63,207,255,127,63,209,255,127,63,210,255,127,63,212,255,127,63,214,255,127,63,216,255,127,63,217,255,127,63,219,255,127,63,220,255,127,63,222,255,127,63,223,255,127,63,225,255,127,63,226,255,127,63,227,255,127,63,229,255,127,63,230,255,127,63,231,255,127,63,232,255,127,63,233,255,127,63,234,255,127,63,235,255,127,63,236,255,127,63,237,255,127,63,238,255,127,63,239,255,127,63,240,255,127,63,241,255,127,63,241,255,127,63,242,255,127,63,243,255,127,63,244,255,127,63,244,255,127,63,245,255,127,63,246,255,127,63,246,255,127,63,247,255,127,63,247,255,127,63,248,255,127,63,248,255,127,63,249,255,127,63,249,255,127,63,250,255,127,63,250,255,127,63,250,255,127,63,251,255,127,63,251,255,127,63,251,255,127,63,252,255,127,63,252,255,127,63,252,255,127,63,253,255,127,63,253,255,127,63,253,255,127,63,253,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,69,78,67,79,68,69,82,0,79,103,103,86,111,114,98,105,115,69,110,99,111,100,101,114,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",O3,_.GLOBAL_BASE+551416);var bt=_.alignMemory(C3(12,"i8",Yo),8);t4(bt%8==0);function dC(r){j9[bt]=j9[r],j9[bt+1]=j9[r+1],j9[bt+2]=j9[r+2],j9[bt+3]=j9[r+3]}function Br(r){j9[bt]=j9[r],j9[bt+1]=j9[r+1],j9[bt+2]=j9[r+2],j9[bt+3]=j9[r+3],j9[bt+4]=j9[r+4],j9[bt+5]=j9[r+5],j9[bt+6]=j9[r+6],j9[bt+7]=j9[r+7]}var ir=uC,Xa=Z$,jo=0;function Xo(r){return N9[jo>>2]=r,r}var T2={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _B(r){switch(r){case 30:return $C;case 85:return Xr/$C;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return Xo(T2.EINVAL),-1}n._memset=AS;var xB=!0;n._strlen=nS,n._strcat=oS,n._bitshift64Shl=gS;function Sk(){n.abort()}n._i64Add=sS;var bk=H4,Dk={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},On={ttys:[],init:function(){},shutdown:function(){},register:function(r,l){On.ttys[r]={input:[],output:[],ops:l},k.registerDevice(r,On.stream_ops)},stream_ops:{open:function(r){var l=On.ttys[r.node.rdev];if(!l)throw new k.ErrnoError(T2.ENODEV);r.tty=l,r.seekable=!1},close:function(r){r.tty.ops.flush(r.tty)},flush:function(r){r.tty.ops.flush(r.tty)},read:function(r,l,u,f,Y){if(!r.tty||!r.tty.ops.get_char)throw new k.ErrnoError(T2.ENXIO);for(var e=0,X0=0;X00?l=f.slice(0,Y).toString("utf-8"):l=null}else typeof window<"u"&&typeof window.prompt=="function"?(l=window.prompt("Input: "),l!==null&&(l+=` `)):typeof readline=="function"&&(l=readline(),l!==null&&(l+=` -`));if(!l)return null;r.input=en(l,!0)}return r.input.shift()},put_char:function(r,l){l===null||l===10?(n.print(Vo(r.output,0)),r.output=[]):l!=0&&r.output.push(l)},flush:function(r){r.output&&r.output.length>0&&(n.print(Vo(r.output,0)),r.output=[])}},default_tty1_ops:{put_char:function(r,l){l===null||l===10?(n.printErr(Vo(r.output,0)),r.output=[]):l!=0&&r.output.push(l)},flush:function(r){r.output&&r.output.length>0&&(n.printErr(Vo(r.output,0)),r.output=[])}}},M9={ops_table:null,mount:function(r){return M9.createNode(null,"/",16895,0)},createNode:function(r,l,u,f){if(k.isBlkdev(u)||k.isFIFO(u))throw new k.ErrnoError(T2.EPERM);M9.ops_table||(M9.ops_table={dir:{node:{getattr:M9.node_ops.getattr,setattr:M9.node_ops.setattr,lookup:M9.node_ops.lookup,mknod:M9.node_ops.mknod,rename:M9.node_ops.rename,unlink:M9.node_ops.unlink,rmdir:M9.node_ops.rmdir,readdir:M9.node_ops.readdir,symlink:M9.node_ops.symlink},stream:{llseek:M9.stream_ops.llseek}},file:{node:{getattr:M9.node_ops.getattr,setattr:M9.node_ops.setattr},stream:{llseek:M9.stream_ops.llseek,read:M9.stream_ops.read,write:M9.stream_ops.write,allocate:M9.stream_ops.allocate,mmap:M9.stream_ops.mmap,msync:M9.stream_ops.msync}},link:{node:{getattr:M9.node_ops.getattr,setattr:M9.node_ops.setattr,readlink:M9.node_ops.readlink},stream:{}},chrdev:{node:{getattr:M9.node_ops.getattr,setattr:M9.node_ops.setattr},stream:k.chrdev_stream_ops}});var Y=k.createNode(r,l,u,f);return k.isDir(Y.mode)?(Y.node_ops=M9.ops_table.dir.node,Y.stream_ops=M9.ops_table.dir.stream,Y.contents={}):k.isFile(Y.mode)?(Y.node_ops=M9.ops_table.file.node,Y.stream_ops=M9.ops_table.file.stream,Y.usedBytes=0,Y.contents=null):k.isLink(Y.mode)?(Y.node_ops=M9.ops_table.link.node,Y.stream_ops=M9.ops_table.link.stream):k.isChrdev(Y.mode)&&(Y.node_ops=M9.ops_table.chrdev.node,Y.stream_ops=M9.ops_table.chrdev.stream),Y.timestamp=Date.now(),r&&(r.contents[l]=Y),Y},getFileDataAsRegularArray:function(r){if(r.contents&&r.contents.subarray){for(var l=[],u=0;ur.contents.length&&(r.contents=M9.getFileDataAsRegularArray(r),r.usedBytes=r.contents.length),!r.contents||r.contents.subarray){var u=r.contents?r.contents.buffer.byteLength:0;if(u>=l)return;var f=1024*1024;l=Math.max(l,u*(u0&&r.contents.set(Y.subarray(0,r.usedBytes),0);return}for(!r.contents&&l>0&&(r.contents=[]);r.contents.lengthl)r.contents.length=l;else for(;r.contents.length=r.node.usedBytes)return 0;var X0=Math.min(r.node.usedBytes-Y,f);if(t4(X0>=0),X0>8&&e.subarray)l.set(e.subarray(Y,Y+X0),u);else for(var r1=0;r10||Y+fP5.timestamp)&&(Y.push(k5),f++)});var e=[];if(Object.keys(l.entries).forEach(function(k5){var w2=l.entries[k5],P5=r.entries[k5];P5||(e.push(k5),f++)}),!f)return u(null);var X0=!1,r1=0,x2=r.type==="remote"?r.db:l.db,s=x2.transaction([S8.DB_STORE_NAME],"readwrite"),l1=s.objectStore(S8.DB_STORE_NAME);function C(k5){if(k5)return C.errored?void 0:(C.errored=!0,u(k5));if(++r1>=f)return u(null)}s.onerror=function(k5){C(this.error),k5.preventDefault()},Y.sort().forEach(function(k5){l.type==="local"?S8.loadRemoteEntry(l1,k5,function(w2,P5){if(w2)return C(w2);S8.storeLocalEntry(k5,P5,C)}):S8.loadLocalEntry(k5,function(w2,P5){if(w2)return C(w2);S8.storeRemoteEntry(l1,k5,P5,C)})}),e.sort().reverse().forEach(function(k5){l.type==="local"?S8.removeLocalEntry(k5,C):S8.removeRemoteEntry(l1,k5,C)})}},ft={isWindows:!1,staticInit:function(){ft.isWindows=!!process.platform.match(/^win/)},mount:function(r){return t4(d),ft.createNode(null,"/",ft.getMode(r.opts.root),0)},createNode:function(r,l,u,f){if(!k.isDir(u)&&!k.isFile(u)&&!k.isLink(u))throw new k.ErrnoError(T2.EINVAL);var Y=k.createNode(r,l,u);return Y.node_ops=ft.node_ops,Y.stream_ops=ft.stream_ops,Y},getMode:function(r){var l;try{l=b8.lstatSync(r),ft.isWindows&&(l.mode=l.mode|(l.mode&146)>>1)}catch(u){throw u.code?new k.ErrnoError(T2[u.code]):u}return l.mode},realPath:function(r){for(var l=[];r.parent!==r;)l.push(r.name),r=r.parent;return l.push(r.mount.opts.root),l.reverse(),m9.join.apply(null,l)},flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function(r){return r in ft.flagsToPermissionStringMap?ft.flagsToPermissionStringMap[r]:r},node_ops:{getattr:function(r){var l=ft.realPath(r),u;try{u=b8.lstatSync(l)}catch(f){throw f.code?new k.ErrnoError(T2[f.code]):f}return ft.isWindows&&!u.blksize&&(u.blksize=4096),ft.isWindows&&!u.blocks&&(u.blocks=(u.size+u.blksize-1)/u.blksize|0),{dev:u.dev,ino:u.ino,mode:u.mode,nlink:u.nlink,uid:u.uid,gid:u.gid,rdev:u.rdev,size:u.size,atime:u.atime,mtime:u.mtime,ctime:u.ctime,blksize:u.blksize,blocks:u.blocks}},setattr:function(r,l){var u=ft.realPath(r);try{if(l.mode!==void 0&&(b8.chmodSync(u,l.mode),r.mode=l.mode),l.timestamp!==void 0){var f=new Date(l.timestamp);b8.utimesSync(u,f,f)}l.size!==void 0&&b8.truncateSync(u,l.size)}catch(Y){throw Y.code?new k.ErrnoError(T2[Y.code]):Y}},lookup:function(r,l){var u=m9.join2(ft.realPath(r),l),f=ft.getMode(u);return ft.createNode(r,l,f)},mknod:function(r,l,u,f){var Y=ft.createNode(r,l,u,f),e=ft.realPath(Y);try{k.isDir(Y.mode)?b8.mkdirSync(e,Y.mode):b8.writeFileSync(e,"",{mode:Y.mode})}catch(X0){throw X0.code?new k.ErrnoError(T2[X0.code]):X0}return Y},rename:function(r,l,u){var f=ft.realPath(r),Y=m9.join2(ft.realPath(l),u);try{b8.renameSync(f,Y)}catch(e){throw e.code?new k.ErrnoError(T2[e.code]):e}},unlink:function(r,l){var u=m9.join2(ft.realPath(r),l);try{b8.unlinkSync(u)}catch(f){throw f.code?new k.ErrnoError(T2[f.code]):f}},rmdir:function(r,l){var u=m9.join2(ft.realPath(r),l);try{b8.rmdirSync(u)}catch(f){throw f.code?new k.ErrnoError(T2[f.code]):f}},readdir:function(r){var l=ft.realPath(r);try{return b8.readdirSync(l)}catch(u){throw u.code?new k.ErrnoError(T2[u.code]):u}},symlink:function(r,l,u){var f=m9.join2(ft.realPath(r),l);try{b8.symlinkSync(u,f)}catch(Y){throw Y.code?new k.ErrnoError(T2[Y.code]):Y}},readlink:function(r){var l=ft.realPath(r);try{return l=b8.readlinkSync(l),l=RB.relative(RB.resolve(r.mount.opts.root),l),l}catch(u){throw u.code?new k.ErrnoError(T2[u.code]):u}}},stream_ops:{open:function(r){var l=ft.realPath(r.node);try{k.isFile(r.node.mode)&&(r.nfd=b8.openSync(l,ft.flagsToPermissionString(r.flags)))}catch(u){throw u.code?new k.ErrnoError(T2[u.code]):u}},close:function(r){try{k.isFile(r.node.mode)&&r.nfd&&b8.closeSync(r.nfd)}catch(l){throw l.code?new k.ErrnoError(T2[l.code]):l}},read:function(r,l,u,f,Y){if(f===0)return 0;var e=new Buffer(f),X0;try{X0=b8.readSync(r.nfd,e,0,f,Y)}catch(x2){throw new k.ErrnoError(T2[x2.code])}if(X0>0)for(var r1=0;r18)throw new k.ErrnoError(T2.ELOOP);for(var Y=m9.normalizeArray(r.split("/").filter(function(k5){return!!k5}),!1),e=k.root,X0="/",r1=0;r140)throw new k.ErrnoError(T2.ELOOP)}}return{path:X0,node:e}},getPath:function(r){for(var l;;){if(k.isRoot(r)){var u=r.mount.mountpoint;return l?u[u.length-1]!=="/"?u+"/"+l:u+l:u}l=l?r.name+"/"+l:r.name,r=r.parent}},hashName:function(r,l){for(var u=0,f=0;f>>0)%k.nameTable.length},hashAddNode:function(r){var l=k.hashName(r.parent.id,r.name);r.name_next=k.nameTable[l],k.nameTable[l]=r},hashRemoveNode:function(r){var l=k.hashName(r.parent.id,r.name);if(k.nameTable[l]===r)k.nameTable[l]=r.name_next;else for(var u=k.nameTable[l];u;){if(u.name_next===r){u.name_next=r.name_next;break}u=u.name_next}},lookupNode:function(r,l){var u=k.mayLookup(r);if(u)throw new k.ErrnoError(u,r);for(var f=k.hashName(r.id,l),Y=k.nameTable[f];Y;Y=Y.name_next){var e=Y.name;if(Y.parent.id===r.id&&e===l)return Y}return k.lookup(r,l)},createNode:function(r,l,u,f){if(!k.FSNode){k.FSNode=function(r1,x2,s,l1){r1||(r1=this),this.parent=r1,this.mount=r1.mount,this.mounted=null,this.id=k.nextInode++,this.name=x2,this.mode=s,this.node_ops={},this.stream_ops={},this.rdev=l1},k.FSNode.prototype={};var Y=365,e=146;Object.defineProperties(k.FSNode.prototype,{read:{get:function(){return(this.mode&Y)===Y},set:function(r1){r1?this.mode|=Y:this.mode&=~Y}},write:{get:function(){return(this.mode&e)===e},set:function(r1){r1?this.mode|=e:this.mode&=~e}},isFolder:{get:function(){return k.isDir(this.mode)}},isDevice:{get:function(){return k.isChrdev(this.mode)}}})}var X0=new k.FSNode(r,l,u,f);return k.hashAddNode(X0),X0},destroyNode:function(r){k.hashRemoveNode(r)},isRoot:function(r){return r===r.parent},isMountpoint:function(r){return!!r.mounted},isFile:function(r){return(r&61440)===32768},isDir:function(r){return(r&61440)===16384},isLink:function(r){return(r&61440)===40960},isChrdev:function(r){return(r&61440)===8192},isBlkdev:function(r){return(r&61440)===24576},isFIFO:function(r){return(r&61440)===4096},isSocket:function(r){return(r&49152)===49152},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(r){var l=k.flagModes[r];if(typeof l>"u")throw new Error("Unknown file open mode: "+r);return l},flagsToPermissionString:function(r){var l=r&2097155,u=["r","w","rw"][l];return r&512&&(u+="w"),u},nodePermissions:function(r,l){return k.ignorePermissions?0:l.indexOf("r")!==-1&&!(r.mode&292)||l.indexOf("w")!==-1&&!(r.mode&146)||l.indexOf("x")!==-1&&!(r.mode&73)?T2.EACCES:0},mayLookup:function(r){var l=k.nodePermissions(r,"x");return l||(r.node_ops.lookup?0:T2.EACCES)},mayCreate:function(r,l){try{var u=k.lookupNode(r,l);return T2.EEXIST}catch{}return k.nodePermissions(r,"wx")},mayDelete:function(r,l,u){var f;try{f=k.lookupNode(r,l)}catch(e){return e.errno}var Y=k.nodePermissions(r,"wx");if(Y)return Y;if(u){if(!k.isDir(f.mode))return T2.ENOTDIR;if(k.isRoot(f)||k.getPath(f)===k.cwd())return T2.EBUSY}else if(k.isDir(f.mode))return T2.EISDIR;return 0},mayOpen:function(r,l){return r?k.isLink(r.mode)?T2.ELOOP:k.isDir(r.mode)&&(l&2097155||l&512)?T2.EISDIR:k.nodePermissions(r,k.flagsToPermissionString(l)):T2.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(r,l){r=r||0,l=l||k.MAX_OPEN_FDS;for(var u=r;u<=l;u++)if(!k.streams[u])return u;throw new k.ErrnoError(T2.EMFILE)},getStream:function(r){return k.streams[r]},createStream:function(r,l,u){k.FSStream||(k.FSStream=function(){},k.FSStream.prototype={},Object.defineProperties(k.FSStream.prototype,{object:{get:function(){return this.node},set:function(X0){this.node=X0}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}));var f=new k.FSStream;for(var Y in r)f[Y]=r[Y];r=f;var e=k.nextfd(l,u);return r.fd=e,k.streams[e]=r,r},closeStream:function(r){k.streams[r]=null},getStreamFromPtr:function(r){return k.streams[r-1]},getPtrForStream:function(r){return r?r.fd+1:0},chrdev_stream_ops:{open:function(r){var l=k.getDevice(r.node.rdev);r.stream_ops=l.stream_ops,r.stream_ops.open&&r.stream_ops.open(r)},llseek:function(){throw new k.ErrnoError(T2.ESPIPE)}},major:function(r){return r>>8},minor:function(r){return r&255},makedev:function(r,l){return r<<8|l},registerDevice:function(r,l){k.devices[r]={stream_ops:l}},getDevice:function(r){return k.devices[r]},getMounts:function(r){for(var l=[],u=[r];u.length;){var f=u.pop();l.push(f),u.push.apply(u,f.mounts)}return l},syncfs:function(r,l){typeof r=="function"&&(l=r,r=!1);var u=k.getMounts(k.root.mount),f=0;function Y(e){if(e)return Y.errored?void 0:(Y.errored=!0,l(e));++f>=u.length&&l(null)}u.forEach(function(e){if(!e.type.syncfs)return Y(null);e.type.syncfs(e,r,Y)})},mount:function(r,l,u){var f=u==="/",Y=!u,e;if(f&&k.root)throw new k.ErrnoError(T2.EBUSY);if(!f&&!Y){var X0=k.lookupPath(u,{follow_mount:!1});if(u=X0.path,e=X0.node,k.isMountpoint(e))throw new k.ErrnoError(T2.EBUSY);if(!k.isDir(e.mode))throw new k.ErrnoError(T2.ENOTDIR)}var r1={type:r,opts:l,mountpoint:u,mounts:[]},x2=r.mount(r1);return x2.mount=r1,r1.root=x2,f?k.root=x2:e&&(e.mounted=r1,e.mount&&e.mount.mounts.push(r1)),x2},unmount:function(r){var l=k.lookupPath(r,{follow_mount:!1});if(!k.isMountpoint(l.node))throw new k.ErrnoError(T2.EINVAL);var u=l.node,f=u.mounted,Y=k.getMounts(f);Object.keys(k.nameTable).forEach(function(X0){for(var r1=k.nameTable[X0];r1;){var x2=r1.name_next;Y.indexOf(r1.mount)!==-1&&k.destroyNode(r1),r1=x2}}),u.mounted=null;var e=u.mount.mounts.indexOf(f);t4(e!==-1),u.mount.mounts.splice(e,1)},lookup:function(r,l){return r.node_ops.lookup(r,l)},mknod:function(r,l,u){var f=k.lookupPath(r,{parent:!0}),Y=f.node,e=m9.basename(r);if(!e||e==="."||e==="..")throw new k.ErrnoError(T2.EINVAL);var X0=k.mayCreate(Y,e);if(X0)throw new k.ErrnoError(X0);if(!Y.node_ops.mknod)throw new k.ErrnoError(T2.EPERM);return Y.node_ops.mknod(Y,e,l,u)},create:function(r,l){return l=l!==void 0?l:438,l&=4095,l|=32768,k.mknod(r,l,0)},mkdir:function(r,l){return l=l!==void 0?l:511,l&=1023,l|=16384,k.mknod(r,l,0)},mkdev:function(r,l,u){return typeof u>"u"&&(u=l,l=438),l|=8192,k.mknod(r,l,u)},symlink:function(r,l){if(!m9.resolve(r))throw new k.ErrnoError(T2.ENOENT);var u=k.lookupPath(l,{parent:!0}),f=u.node;if(!f)throw new k.ErrnoError(T2.ENOENT);var Y=m9.basename(l),e=k.mayCreate(f,Y);if(e)throw new k.ErrnoError(e);if(!f.node_ops.symlink)throw new k.ErrnoError(T2.EPERM);return f.node_ops.symlink(f,Y,r)},rename:function(r,l){var u=m9.dirname(r),f=m9.dirname(l),Y=m9.basename(r),e=m9.basename(l),X0,r1,x2;try{X0=k.lookupPath(r,{parent:!0}),r1=X0.node,X0=k.lookupPath(l,{parent:!0}),x2=X0.node}catch{throw new k.ErrnoError(T2.EBUSY)}if(!r1||!x2)throw new k.ErrnoError(T2.ENOENT);if(r1.mount!==x2.mount)throw new k.ErrnoError(T2.EXDEV);var s=k.lookupNode(r1,Y),l1=m9.relative(r,f);if(l1.charAt(0)!==".")throw new k.ErrnoError(T2.EINVAL);if(l1=m9.relative(l,u),l1.charAt(0)!==".")throw new k.ErrnoError(T2.ENOTEMPTY);var C;try{C=k.lookupNode(x2,e)}catch{}if(s!==C){var k5=k.isDir(s.mode),w2=k.mayDelete(r1,Y,k5);if(w2)throw new k.ErrnoError(w2);if(w2=C?k.mayDelete(x2,e,k5):k.mayCreate(x2,e),w2)throw new k.ErrnoError(w2);if(!r1.node_ops.rename)throw new k.ErrnoError(T2.EPERM);if(k.isMountpoint(s)||C&&k.isMountpoint(C))throw new k.ErrnoError(T2.EBUSY);if(x2!==r1&&(w2=k.nodePermissions(r1,"w"),w2))throw new k.ErrnoError(w2);try{k.trackingDelegate.willMovePath&&k.trackingDelegate.willMovePath(r,l)}catch(P5){console.log("FS.trackingDelegate['willMovePath']('"+r+"', '"+l+"') threw an exception: "+P5.message)}k.hashRemoveNode(s);try{r1.node_ops.rename(s,x2,e)}catch(P5){throw P5}finally{k.hashAddNode(s)}try{k.trackingDelegate.onMovePath&&k.trackingDelegate.onMovePath(r,l)}catch(P5){console.log("FS.trackingDelegate['onMovePath']('"+r+"', '"+l+"') threw an exception: "+P5.message)}}},rmdir:function(r){var l=k.lookupPath(r,{parent:!0}),u=l.node,f=m9.basename(r),Y=k.lookupNode(u,f),e=k.mayDelete(u,f,!0);if(e)throw new k.ErrnoError(e);if(!u.node_ops.rmdir)throw new k.ErrnoError(T2.EPERM);if(k.isMountpoint(Y))throw new k.ErrnoError(T2.EBUSY);try{k.trackingDelegate.willDeletePath&&k.trackingDelegate.willDeletePath(r)}catch(X0){console.log("FS.trackingDelegate['willDeletePath']('"+r+"') threw an exception: "+X0.message)}u.node_ops.rmdir(u,f),k.destroyNode(Y);try{k.trackingDelegate.onDeletePath&&k.trackingDelegate.onDeletePath(r)}catch(X0){console.log("FS.trackingDelegate['onDeletePath']('"+r+"') threw an exception: "+X0.message)}},readdir:function(r){var l=k.lookupPath(r,{follow:!0}),u=l.node;if(!u.node_ops.readdir)throw new k.ErrnoError(T2.ENOTDIR);return u.node_ops.readdir(u)},unlink:function(r){var l=k.lookupPath(r,{parent:!0}),u=l.node,f=m9.basename(r),Y=k.lookupNode(u,f),e=k.mayDelete(u,f,!1);if(e)throw e===T2.EISDIR&&(e=T2.EPERM),new k.ErrnoError(e);if(!u.node_ops.unlink)throw new k.ErrnoError(T2.EPERM);if(k.isMountpoint(Y))throw new k.ErrnoError(T2.EBUSY);try{k.trackingDelegate.willDeletePath&&k.trackingDelegate.willDeletePath(r)}catch(X0){console.log("FS.trackingDelegate['willDeletePath']('"+r+"') threw an exception: "+X0.message)}u.node_ops.unlink(u,f),k.destroyNode(Y);try{k.trackingDelegate.onDeletePath&&k.trackingDelegate.onDeletePath(r)}catch(X0){console.log("FS.trackingDelegate['onDeletePath']('"+r+"') threw an exception: "+X0.message)}},readlink:function(r){var l=k.lookupPath(r),u=l.node;if(!u)throw new k.ErrnoError(T2.ENOENT);if(!u.node_ops.readlink)throw new k.ErrnoError(T2.EINVAL);return m9.resolve(k.getPath(l.node.parent),u.node_ops.readlink(u))},stat:function(r,l){var u=k.lookupPath(r,{follow:!l}),f=u.node;if(!f)throw new k.ErrnoError(T2.ENOENT);if(!f.node_ops.getattr)throw new k.ErrnoError(T2.EPERM);return f.node_ops.getattr(f)},lstat:function(r){return k.stat(r,!0)},chmod:function(r,l,u){var f;if(typeof r=="string"){var Y=k.lookupPath(r,{follow:!u});f=Y.node}else f=r;if(!f.node_ops.setattr)throw new k.ErrnoError(T2.EPERM);f.node_ops.setattr(f,{mode:l&4095|f.mode&-4096,timestamp:Date.now()})},lchmod:function(r,l){k.chmod(r,l,!0)},fchmod:function(r,l){var u=k.getStream(r);if(!u)throw new k.ErrnoError(T2.EBADF);k.chmod(u.node,l)},chown:function(r,l,u,f){var Y;if(typeof r=="string"){var e=k.lookupPath(r,{follow:!f});Y=e.node}else Y=r;if(!Y.node_ops.setattr)throw new k.ErrnoError(T2.EPERM);Y.node_ops.setattr(Y,{timestamp:Date.now()})},lchown:function(r,l,u){k.chown(r,l,u,!0)},fchown:function(r,l,u){var f=k.getStream(r);if(!f)throw new k.ErrnoError(T2.EBADF);k.chown(f.node,l,u)},truncate:function(r,l){if(l<0)throw new k.ErrnoError(T2.EINVAL);var u;if(typeof r=="string"){var f=k.lookupPath(r,{follow:!0});u=f.node}else u=r;if(!u.node_ops.setattr)throw new k.ErrnoError(T2.EPERM);if(k.isDir(u.mode))throw new k.ErrnoError(T2.EISDIR);if(!k.isFile(u.mode))throw new k.ErrnoError(T2.EINVAL);var Y=k.nodePermissions(u,"w");if(Y)throw new k.ErrnoError(Y);u.node_ops.setattr(u,{size:l,timestamp:Date.now()})},ftruncate:function(r,l){var u=k.getStream(r);if(!u)throw new k.ErrnoError(T2.EBADF);if(!(u.flags&2097155))throw new k.ErrnoError(T2.EINVAL);k.truncate(u.node,l)},utime:function(r,l,u){var f=k.lookupPath(r,{follow:!0}),Y=f.node;Y.node_ops.setattr(Y,{timestamp:Math.max(l,u)})},open:function(r,l,u,f,Y){if(r==="")throw new k.ErrnoError(T2.ENOENT);l=typeof l=="string"?k.modeStringToFlags(l):l,u=typeof u>"u"?438:u,l&64?u=u&4095|32768:u=0;var e;if(typeof r=="object")e=r;else{r=m9.normalize(r);try{var X0=k.lookupPath(r,{follow:!(l&131072)});e=X0.node}catch{}}var r1=!1;if(l&64)if(e){if(l&128)throw new k.ErrnoError(T2.EEXIST)}else e=k.mknod(r,u,0),r1=!0;if(!e)throw new k.ErrnoError(T2.ENOENT);if(k.isChrdev(e.mode)&&(l&=-513),!r1){var x2=k.mayOpen(e,l);if(x2)throw new k.ErrnoError(x2)}l&512&&k.truncate(e,0),l&=-641;var s=k.createStream({node:e,path:k.getPath(e),flags:l,seekable:!0,position:0,stream_ops:e.stream_ops,ungotten:[],error:!1},f,Y);s.stream_ops.open&&s.stream_ops.open(s),n.logReadFiles&&!(l&1)&&(k.readFiles||(k.readFiles={}),r in k.readFiles||(k.readFiles[r]=1,n.printErr("read file: "+r)));try{if(k.trackingDelegate.onOpenFile){var l1=0;(l&2097155)!==1&&(l1|=k.tracking.openFlags.READ),l&2097155&&(l1|=k.tracking.openFlags.WRITE),k.trackingDelegate.onOpenFile(r,l1)}}catch(C){console.log("FS.trackingDelegate['onOpenFile']('"+r+"', flags) threw an exception: "+C.message)}return s},close:function(r){try{r.stream_ops.close&&r.stream_ops.close(r)}catch(l){throw l}finally{k.closeStream(r.fd)}},llseek:function(r,l,u){if(!r.seekable||!r.stream_ops.llseek)throw new k.ErrnoError(T2.ESPIPE);return r.position=r.stream_ops.llseek(r,l,u),r.ungotten=[],r.position},read:function(r,l,u,f,Y){if(f<0||Y<0)throw new k.ErrnoError(T2.EINVAL);if((r.flags&2097155)===1)throw new k.ErrnoError(T2.EBADF);if(k.isDir(r.node.mode))throw new k.ErrnoError(T2.EISDIR);if(!r.stream_ops.read)throw new k.ErrnoError(T2.EINVAL);var e=!0;if(typeof Y>"u")Y=r.position,e=!1;else if(!r.seekable)throw new k.ErrnoError(T2.ESPIPE);var X0=r.stream_ops.read(r,l,u,f,Y);return e||(r.position+=X0),X0},write:function(r,l,u,f,Y,e){if(f<0||Y<0)throw new k.ErrnoError(T2.EINVAL);if(!(r.flags&2097155))throw new k.ErrnoError(T2.EBADF);if(k.isDir(r.node.mode))throw new k.ErrnoError(T2.EISDIR);if(!r.stream_ops.write)throw new k.ErrnoError(T2.EINVAL);r.flags&1024&&k.llseek(r,0,2);var X0=!0;if(typeof Y>"u")Y=r.position,X0=!1;else if(!r.seekable)throw new k.ErrnoError(T2.ESPIPE);var r1=r.stream_ops.write(r,l,u,f,Y,e);X0||(r.position+=r1);try{r.path&&k.trackingDelegate.onWriteToFile&&k.trackingDelegate.onWriteToFile(r.path)}catch(x2){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+x2.message)}return r1},allocate:function(r,l,u){if(l<0||u<=0)throw new k.ErrnoError(T2.EINVAL);if(!(r.flags&2097155))throw new k.ErrnoError(T2.EBADF);if(!k.isFile(r.node.mode)&&!k.isDir(node.mode))throw new k.ErrnoError(T2.ENODEV);if(!r.stream_ops.allocate)throw new k.ErrnoError(T2.EOPNOTSUPP);r.stream_ops.allocate(r,l,u)},mmap:function(r,l,u,f,Y,e,X0){if((r.flags&2097155)===1)throw new k.ErrnoError(T2.EACCES);if(!r.stream_ops.mmap)throw new k.ErrnoError(T2.ENODEV);return r.stream_ops.mmap(r,l,u,f,Y,e,X0)},msync:function(r,l,u,f,Y){return!r||!r.stream_ops.msync?0:r.stream_ops.msync(r,l,u,f,Y)},munmap:function(r){return 0},ioctl:function(r,l,u){if(!r.stream_ops.ioctl)throw new k.ErrnoError(T2.ENOTTY);return r.stream_ops.ioctl(r,l,u)},readFile:function(r,l){if(l=l||{},l.flags=l.flags||"r",l.encoding=l.encoding||"binary",l.encoding!=="utf8"&&l.encoding!=="binary")throw new Error('Invalid encoding type "'+l.encoding+'"');var u,f=k.open(r,l.flags),Y=k.stat(r),e=Y.size,X0=new Uint8Array(e);return k.read(f,X0,0,e,0),l.encoding==="utf8"?u=Vo(X0,0):l.encoding==="binary"&&(u=X0),k.close(f),u},writeFile:function(r,l,u){if(u=u||{},u.flags=u.flags||"w",u.encoding=u.encoding||"utf8",u.encoding!=="utf8"&&u.encoding!=="binary")throw new Error('Invalid encoding type "'+u.encoding+'"');var f=k.open(r,u.flags,u.mode);if(u.encoding==="utf8"){var Y=new Uint8Array(Jo(l)+1),e=Gn(l,Y,0,Y.length);k.write(f,Y,0,e,0,u.canOwn)}else u.encoding==="binary"&&k.write(f,l,0,l.length,0,u.canOwn);k.close(f)},cwd:function(){return k.currentPath},chdir:function(r){var l=k.lookupPath(r,{follow:!0});if(!k.isDir(l.node.mode))throw new k.ErrnoError(T2.ENOTDIR);var u=k.nodePermissions(l.node,"x");if(u)throw new k.ErrnoError(u);k.currentPath=l.path},createDefaultDirectories:function(){k.mkdir("/tmp"),k.mkdir("/home"),k.mkdir("/home/web_user")},createDefaultDevices:function(){k.mkdir("/dev"),k.registerDevice(k.makedev(1,3),{read:function(){return 0},write:function(u,f,Y,e,X0){return e}}),k.mkdev("/dev/null",k.makedev(1,3)),On.register(k.makedev(5,0),On.default_tty_ops),On.register(k.makedev(6,0),On.default_tty1_ops),k.mkdev("/dev/tty",k.makedev(5,0)),k.mkdev("/dev/tty1",k.makedev(6,0));var r;if(typeof crypto<"u"){var l=new Uint8Array(1);r=function(){return crypto.getRandomValues(l),l[0]}}else d?r=void 0:r=function(){return Math.random()*256|0};k.createDevice("/dev","random",r),k.createDevice("/dev","urandom",r),k.mkdir("/dev/shm"),k.mkdir("/dev/shm/tmp")},createStandardStreams:function(){n.stdin?k.createDevice("/dev","stdin",n.stdin):k.symlink("/dev/tty","/dev/stdin"),n.stdout?k.createDevice("/dev","stdout",null,n.stdout):k.symlink("/dev/tty","/dev/stdout"),n.stderr?k.createDevice("/dev","stderr",null,n.stderr):k.symlink("/dev/tty1","/dev/stderr");var r=k.open("/dev/stdin","r");N9[_k>>2]=k.getPtrForStream(r),t4(r.fd===0,"invalid handle for stdin ("+r.fd+")");var l=k.open("/dev/stdout","w");N9[xk>>2]=k.getPtrForStream(l),t4(l.fd===1,"invalid handle for stdout ("+l.fd+")");var u=k.open("/dev/stderr","w");N9[Lk>>2]=k.getPtrForStream(u),t4(u.fd===2,"invalid handle for stderr ("+u.fd+")")},ensureErrnoError:function(){k.ErrnoError||(k.ErrnoError=function(l,u){this.node=u,this.setErrno=function(f){this.errno=f;for(var Y in T2)if(T2[Y]===f){this.code=Y;break}},this.setErrno(l),this.message=Dk[l]},k.ErrnoError.prototype=new Error,k.ErrnoError.prototype.constructor=k.ErrnoError,[T2.ENOENT].forEach(function(r){k.genericErrors[r]=new k.ErrnoError(r),k.genericErrors[r].stack=""}))},staticInit:function(){k.ensureErrnoError(),k.nameTable=new Array(4096),k.mount(M9,{},"/"),k.createDefaultDirectories(),k.createDefaultDevices()},init:function(r,l,u){t4(!k.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),k.init.initialized=!0,k.ensureErrnoError(),n.stdin=r||n.stdin,n.stdout=l||n.stdout,n.stderr=u||n.stderr,k.createStandardStreams()},quit:function(){k.init.initialized=!1;for(var r=0;rthis.length-1||k5<0)){var w2=k5%this.chunkSize,P5=k5/this.chunkSize|0;return this.getter(P5)[w2]}},e.prototype.setDataGetter=function(k5){this.getter=k5},e.prototype.cacheLength=function(){var k5=new XMLHttpRequest;if(k5.open("HEAD",u,!1),k5.send(null),!(k5.status>=200&&k5.status<300||k5.status===304))throw new Error("Couldn't load "+u+". Status: "+k5.status);var w2=Number(k5.getResponseHeader("Content-length")),P5,G9=(P5=k5.getResponseHeader("Accept-Ranges"))&&P5==="bytes",K9=1024*1024;G9||(K9=w2);var ye=function(te,It){if(te>It)throw new Error("invalid range ("+te+", "+It+") or no bytes requested!");if(It>w2-1)throw new Error("only "+w2+" bytes available! programmer error!");var i4=new XMLHttpRequest;if(i4.open("GET",u,!1),w2!==K9&&i4.setRequestHeader("Range","bytes="+te+"-"+It),typeof Uint8Array<"u"&&(i4.responseType="arraybuffer"),i4.overrideMimeType&&i4.overrideMimeType("text/plain; charset=x-user-defined"),i4.send(null),!(i4.status>=200&&i4.status<300||i4.status===304))throw new Error("Couldn't load "+u+". Status: "+i4.status);return i4.response!==void 0?new Uint8Array(i4.response||[]):en(i4.responseText||"",!0)},Dt=this;Dt.setDataGetter(function(te){var It=te*K9,i4=(te+1)*K9-1;if(i4=Math.min(i4,w2-1),typeof Dt.chunks[te]>"u"&&(Dt.chunks[te]=ye(It,i4)),typeof Dt.chunks[te]>"u")throw new Error("doXHR failed!");return Dt.chunks[te]}),this._length=w2,this._chunkSize=K9,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!p)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var X0=new e;Object.defineProperty(X0,"length",{get:function(){return this.lengthKnown||this.cacheLength(),this._length}}),Object.defineProperty(X0,"chunkSize",{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}});var r1={isDevice:!1,contents:X0}}else var r1={isDevice:!1,url:u};var x2=k.createFile(r,l,r1,f,Y);r1.contents?x2.contents=r1.contents:r1.url&&(x2.contents=null,x2.url=r1.url),Object.defineProperty(x2,"usedBytes",{get:function(){return this.contents.length}});var s={},l1=Object.keys(x2.stream_ops);return l1.forEach(function(C){var k5=x2.stream_ops[C];s[C]=function(){if(!k.forceLoadFile(x2))throw new k.ErrnoError(T2.EIO);return k5.apply(null,arguments)}}),s.read=function(k5,w2,P5,G9,K9){if(!k.forceLoadFile(x2))throw new k.ErrnoError(T2.EIO);var ye=k5.node.contents;if(K9>=ye.length)return 0;var Dt=Math.min(ye.length-K9,G9);if(t4(Dt>=0),ye.slice)for(var te=0;te=0;f--){var Y=r[f];Y==="."?r.splice(f,1):Y===".."?(r.splice(f,1),u++):u&&(r.splice(f,1),u--)}if(l)for(;u--;u)r.unshift("..");return r},normalize:function(r){var l=r.charAt(0)==="/",u=r.substr(-1)==="/";return r=m9.normalizeArray(r.split("/").filter(function(f){return!!f}),!l).join("/"),!r&&!l&&(r="."),r&&u&&(r+="/"),(l?"/":"")+r},dirname:function(r){var l=m9.splitPath(r),u=l[0],f=l[1];return!u&&!f?".":(f&&(f=f.substr(0,f.length-1)),u+f)},basename:function(r){if(r==="/")return"/";var l=r.lastIndexOf("/");return l===-1?r:r.substr(l+1)},extname:function(r){return m9.splitPath(r)[3]},join:function(){var r=Array.prototype.slice.call(arguments,0);return m9.normalize(r.join("/"))},join2:function(r,l){return m9.normalize(r+"/"+l)},resolve:function(){for(var r="",l=!1,u=arguments.length-1;u>=-1&&!l;u--){var f=u>=0?arguments[u]:k.cwd();if(typeof f!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!f)return"";r=f+"/"+r,l=f.charAt(0)==="/"}return r=m9.normalizeArray(r.split("/").filter(function(Y){return!!Y}),!l).join("/"),(l?"/":"")+r||"."},relative:function(r,l){r=m9.resolve(r).substr(1),l=m9.resolve(l).substr(1);function u(s){for(var l1=0;l1=0&&s[C]==="";C--);return l1>C?[]:s.slice(l1,C-l1+1)}for(var f=u(r.split("/")),Y=u(l.split("/")),e=Math.min(f.length,Y.length),X0=e,r1=0;r10){var r1=Date.now(),x2=J1.mainLoop.queue.shift();if(x2.func(x2.arg),J1.mainLoop.remainingBlockers){var s=J1.mainLoop.remainingBlockers,l1=s%1==0?s-1:Math.floor(s);x2.counted?J1.mainLoop.remainingBlockers=l1:(l1=l1+.5,J1.mainLoop.remainingBlockers=(8*s+l1)/9)}console.log('main loop blocker "'+x2.name+'" took '+(Date.now()-r1)+" ms"),J1.mainLoop.updateStatus(),setTimeout(J1.mainLoop.runner,0);return}if(!(e1&&J1.mainLoop.currentFrameNumber%J1.mainLoop.timingValue!=0){J1.mainLoop.scheduler();return}J1.mainLoop.method==="timeout"&&n.ctx&&(n.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),J1.mainLoop.method=""),J1.mainLoop.runIter(function(){typeof f<"u"?_.dynCall("vi",r,[f]):_.dynCall("v",r)}),!(e0?eE(0,1e3/l):eE(1,1),J1.mainLoop.scheduler()),u)throw"SimulateInfiniteLoop"}var J1={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){J1.mainLoop.scheduler=null,J1.mainLoop.currentlyRunningMainloop++},resume:function(){J1.mainLoop.currentlyRunningMainloop++;var r=J1.mainLoop.timingMode,l=J1.mainLoop.timingValue,u=J1.mainLoop.func;J1.mainLoop.func=null,LB(u,0,!1,J1.mainLoop.arg,!0),eE(r,l),J1.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var r=n.statusMessage||"Please wait...",l=J1.mainLoop.remainingBlockers,u=J1.mainLoop.expectedBlockers;l?l"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);var r={};r.canHandle=function(e){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},r.handle=function(e,X0,r1,x2){var s=null;if(J1.hasBlobConstructor)try{s=new Blob([e],{type:J1.getMimetype(X0)}),s.size!==e.length&&(s=new Blob([new Uint8Array(e).buffer],{type:J1.getMimetype(X0)}))}catch(w2){_.warnOnce("Blob constructor present but fails: "+w2+"; falling back to blob builder")}if(!s){var l1=new J1.BlobBuilder;l1.append(new Uint8Array(e).buffer),s=l1.getBlob()}var C=J1.URLObject.createObjectURL(s),k5=new Image;k5.onload=function(){t4(k5.complete,"Image "+X0+" could not be decoded");var P5=document.createElement("canvas");P5.width=k5.width,P5.height=k5.height;var G9=P5.getContext("2d");G9.drawImage(k5,0,0),n.preloadedImages[X0]=P5,J1.URLObject.revokeObjectURL(C),r1&&r1(e)},k5.onerror=function(P5){console.log("Image "+C+" could not be decoded"),x2&&x2()},k5.src=C},n.preloadPlugins.push(r);var l={};l.canHandle=function(e){return!n.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},l.handle=function(e,X0,r1,x2){var s=!1;function l1(G9){s||(s=!0,n.preloadedAudios[X0]=G9,r1&&r1(e))}function C(){s||(s=!0,n.preloadedAudios[X0]=new Audio,x2&&x2())}if(J1.hasBlobConstructor){try{var k5=new Blob([e],{type:J1.getMimetype(X0)})}catch{return C()}var w2=J1.URLObject.createObjectURL(k5),P5=new Audio;P5.addEventListener("canplaythrough",function(){l1(P5)},!1),P5.onerror=function(K9){if(s)return;console.log("warning: browser could not fully decode audio "+X0+", trying slower base64 approach");function ye(Dt){for(var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",It="=",i4="",V7=0,J7=0,Qr=0;Qr=6;){var tl=V7>>J7-6&63;J7-=6,i4+=te[tl]}return J7==2?(i4+=te[(V7&3)<<4],i4+=It+It):J7==4&&(i4+=te[(V7&15)<<2],i4+=It),i4}P5.src="data:audio/x-"+X0.substr(-3)+";base64,"+ye(e),l1(P5)},P5.src=w2,J1.safeSetTimeout(function(){l1(P5)},1e4)}else return C()},n.preloadPlugins.push(l);var u=n.canvas;function f(){J1.pointerLock=document.pointerLockElement===u||document.mozPointerLockElement===u||document.webkitPointerLockElement===u||document.msPointerLockElement===u}u&&(u.requestPointerLock=u.requestPointerLock||u.mozRequestPointerLock||u.webkitRequestPointerLock||u.msRequestPointerLock||function(){},u.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},u.exitPointerLock=u.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",f,!1),document.addEventListener("mozpointerlockchange",f,!1),document.addEventListener("webkitpointerlockchange",f,!1),document.addEventListener("mspointerlockchange",f,!1),n.elementPointerLock&&u.addEventListener("click",function(Y){!J1.pointerLock&&u.requestPointerLock&&(u.requestPointerLock(),Y.preventDefault())},!1))},createContext:function(r,l,u,f){if(l&&n.ctx&&r==n.canvas)return n.ctx;var Y,e;if(l){var X0={antialias:!1,alpha:!1};if(f)for(var r1 in f)X0[r1]=f[r1];e=GL.createContext(r,X0),e&&(Y=GL.getContext(e).GLctx),r.style.backgroundColor="black"}else Y=r.getContext("2d");return Y?(u&&(l||t4(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=Y,l&&GL.makeContextCurrent(e),n.useWebGL=l,J1.moduleContextCreatedCallbacks.forEach(function(x2){x2()}),J1.init()),Y):null},destroyContext:function(r,l,u){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(r,l,u){J1.lockPointer=r,J1.resizeCanvas=l,J1.vrDevice=u,typeof J1.lockPointer>"u"&&(J1.lockPointer=!0),typeof J1.resizeCanvas>"u"&&(J1.resizeCanvas=!1),typeof J1.vrDevice>"u"&&(J1.vrDevice=null);var f=n.canvas;function Y(){J1.isFullScreen=!1;var X0=f.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===X0?(f.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},f.cancelFullScreen=f.cancelFullScreen.bind(document),J1.lockPointer&&f.requestPointerLock(),J1.isFullScreen=!0,J1.resizeCanvas&&J1.setFullScreenCanvasSize()):(X0.parentNode.insertBefore(f,X0),X0.parentNode.removeChild(X0),J1.resizeCanvas&&J1.setWindowedCanvasSize()),n.onFullScreen&&n.onFullScreen(J1.isFullScreen),J1.updateCanvasDimensions(f)}J1.fullScreenHandlersInstalled||(J1.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",Y,!1),document.addEventListener("mozfullscreenchange",Y,!1),document.addEventListener("webkitfullscreenchange",Y,!1),document.addEventListener("MSFullscreenChange",Y,!1));var e=document.createElement("div");f.parentNode.insertBefore(e,f),e.appendChild(f),e.requestFullScreen=e.requestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen||(e.webkitRequestFullScreen?function(){e.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),u?e.requestFullScreen({vrDisplay:u}):e.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(r){var l=Date.now();if(J1.nextRAF===0)J1.nextRAF=l+1e3/60;else for(;l+2>=J1.nextRAF;)J1.nextRAF+=1e3/60;var u=Math.max(J1.nextRAF-l,0);setTimeout(r,u)},requestAnimationFrame:function(l){typeof window>"u"?J1.fakeRequestAnimationFrame(l):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||J1.fakeRequestAnimationFrame),window.requestAnimationFrame(l))},safeCallback:function(r){return function(){if(!i0)return r.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){J1.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(J1.allowAsyncCallbacks=!0,J1.queuedAsyncCallbacks.length>0){var r=J1.queuedAsyncCallbacks;J1.queuedAsyncCallbacks=[],r.forEach(function(l){l()})}},safeRequestAnimationFrame:function(r){return J1.requestAnimationFrame(function(){i0||(J1.allowAsyncCallbacks?r():J1.queuedAsyncCallbacks.push(r))})},safeSetTimeout:function(r,l){return n.noExitRuntime=!0,setTimeout(function(){i0||(J1.allowAsyncCallbacks?r():J1.queuedAsyncCallbacks.push(r))},l)},safeSetInterval:function(r,l){return n.noExitRuntime=!0,setInterval(function(){i0||J1.allowAsyncCallbacks&&r()},l)},getMimetype:function(r){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[r.substr(r.lastIndexOf(".")+1)]},getUserMedia:function(r){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(r)},getMovementX:function(r){return r.movementX||r.mozMovementX||r.webkitMovementX||0},getMovementY:function(r){return r.movementY||r.mozMovementY||r.webkitMovementY||0},getMouseWheelDelta:function(r){var l=0;switch(r.type){case"DOMMouseScroll":l=r.detail;break;case"mousewheel":l=r.wheelDelta;break;case"wheel":l=r.deltaY;break;default:throw"unrecognized mouse wheel event: "+r.type}return l},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(r){if(J1.pointerLock)r.type!="mousemove"&&"mozMovementX"in r?J1.mouseMovementX=J1.mouseMovementY=0:(J1.mouseMovementX=J1.getMovementX(r),J1.mouseMovementY=J1.getMovementY(r)),typeof SDL<"u"?(J1.mouseX=SDL.mouseX+J1.mouseMovementX,J1.mouseY=SDL.mouseY+J1.mouseMovementY):(J1.mouseX+=J1.mouseMovementX,J1.mouseY+=J1.mouseMovementY);else{var l=n.canvas.getBoundingClientRect(),u=n.canvas.width,f=n.canvas.height,Y=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,e=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(r.type==="touchstart"||r.type==="touchend"||r.type==="touchmove"){var X0=r.touch;if(X0===void 0)return;var r1=X0.pageX-(Y+l.left),x2=X0.pageY-(e+l.top);r1=r1*(u/l.width),x2=x2*(f/l.height);var s={x:r1,y:x2};if(r.type==="touchstart")J1.lastTouches[X0.identifier]=s,J1.touches[X0.identifier]=s;else if(r.type==="touchend"||r.type==="touchmove"){var l1=J1.touches[X0.identifier];l1||(l1=s),J1.lastTouches[X0.identifier]=l1,J1.touches[X0.identifier]=s}return}var C=r.pageX-(Y+l.left),k5=r.pageY-(e+l.top);C=C*(u/l.width),k5=k5*(f/l.height),J1.mouseMovementX=C-J1.mouseX,J1.mouseMovementY=k5-J1.mouseY,J1.mouseX=C,J1.mouseY=k5}},xhrLoad:function(r,l,u){var f=new XMLHttpRequest;f.open("GET",r,!0),f.responseType="arraybuffer",f.onload=function(){f.status==200||f.status==0&&f.response?l(f.response):u()},f.onerror=u,f.send(null)},asyncLoad:function(r,l,u,f){J1.xhrLoad(r,function(Y){t4(Y,'Loading data file "'+r+'" failed (no arrayBuffer).'),l(new Uint8Array(Y)),f||Cr("al "+r)},function(Y){if(u)u();else throw'Loading data file "'+r+'" failed.'}),f||Pn("al "+r)},resizeListeners:[],updateResizeListeners:function(){var r=n.canvas;J1.resizeListeners.forEach(function(l){l(r.width,r.height)})},setCanvasSize:function(r,l,u){var f=n.canvas;J1.updateCanvasDimensions(f,r,l),u||J1.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){if(typeof SDL<"u"){var r=j$[SDL.screen+_.QUANTUM_SIZE*0>>2];r=r|8388608,N9[SDL.screen+_.QUANTUM_SIZE*0>>2]=r}J1.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var r=j$[SDL.screen+_.QUANTUM_SIZE*0>>2];r=r&-8388609,N9[SDL.screen+_.QUANTUM_SIZE*0>>2]=r}J1.updateResizeListeners()},updateCanvasDimensions:function(r,l,u){l&&u?(r.widthNative=l,r.heightNative=u):(l=r.widthNative,u=r.heightNative);var f=l,Y=u;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(f/Y>2]=l),l}function zk(){n.printErr("missing function: floor0_exportbundle"),es(-1)}if(jo=_.staticAlloc(4),N9[jo>>2]=0,n.requestFullScreen=function(l,u,f){J1.requestFullScreen(l,u,f)},n.requestAnimationFrame=function(l){J1.requestAnimationFrame(l)},n.setCanvasSize=function(l,u,f){J1.setCanvasSize(l,u,f)},n.pauseMainLoop=function(){J1.mainLoop.pause()},n.resumeMainLoop=function(){J1.mainLoop.resume()},n.getUserMedia=function(){J1.getUserMedia()},n.createContext=function(l,u,f,Y){return J1.createContext(l,u,f,Y)},k.staticInit(),V$.unshift(function(){!n.noFSInit&&!k.init.initialized&&k.init()}),Du.push(function(){k.ignorePermissions=!1}),J$.push(function(){k.quit()}),n.FS_createFolder=k.createFolder,n.FS_createPath=k.createPath,n.FS_createDataFile=k.createDataFile,n.FS_createPreloadedFile=k.createPreloadedFile,n.FS_createLazyFile=k.createLazyFile,n.FS_createLink=k.createLink,n.FS_createDevice=k.createDevice,V$.unshift(function(){On.init()}),J$.push(function(){On.shutdown()}),d)var b8=void 0,RB=void 0;bu=v7=_.alignMemory(jr),O$=!0,q$=bu+Kp,H$=P7=_.alignMemory(q$),t4(H$>0]=f[t>>0],f[w2+1>>0]=f[t+1>>0],f[w2+2>>0]=f[t+2>>0],f[w2+3>>0]=f[t+3>>0]}function O_(t){t=t|0,f[w2>>0]=f[t>>0],f[w2+1>>0]=f[t+1>>0],f[w2+2>>0]=f[t+2>>0],f[w2+3>>0]=f[t+3>>0],f[w2+4>>0]=f[t+4>>0],f[w2+5>>0]=f[t+5>>0],f[w2+6>>0]=f[t+6>>0],f[w2+7>>0]=f[t+7>>0]}function SS(t){t=t|0,j6=t}function bS(){return j6|0}function mC(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0;m=C,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,o=R9(256)|0,a=t+8|0,e[a>>2]=o,$=t+12|0,e[$>>2]=o,f[o>>0]=0,g=t+16|0,e[g>>2]=256}function DS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0;L=C,a=o>>3,$=t+12|0,B=e[$>>2]|0,S=(B|0)==0,!S&&(b=a<<3,v=o-b|0,w=t+8|0,D=e[w>>2]|0,y=D+a|0,e[$>>2]=y,x=t+4|0,e[x>>2]=v,e[t>>2]=a,g=8+(v<<2)|0,h=e[g>>2]|0,m=f[y>>0]|0,I=m&255,E=I&h,Q=E&255,f[y>>0]=Q)}function O2(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0;H0=C,h=a>>>0>32;do if(!h){if(m=e[t>>2]|0,x=t+16|0,a0=e[x>>2]|0,c0=a0+-4|0,S0=(m|0)<(c0|0),$=t+12|0,g=e[$>>2]|0,S0)N=g;else{if(T0=(g|0)==0,T0)return;if(J0=(a0|0)>2147483391,J0||(q0=t+8|0,Z0=e[q0>>2]|0,I=a0+256|0,E=K7(Z0,I)|0,Q=(E|0)==0,Q))break;e[q0>>2]=E,B=e[x>>2]|0,S=B+256|0,e[x>>2]=S,b=e[t>>2]|0,v=E+b|0,e[$>>2]=v,N=v}w=8+(a<<2)|0,D=e[w>>2]|0,y=D&o,M=t+4|0,L=e[M>>2]|0,R=L+a|0,F=y<>0]|0,G=T&255,V=G|F,X=V&255,f[N>>0]=X,K=(R|0)>7;do if(K&&(W=e[M>>2]|0,r0=8-W|0,s0=y>>>r0,J=s0&255,o0=e[$>>2]|0,q=o0+1|0,f[q>>0]=J,d0=(R|0)>15,d0&&(t0=e[M>>2]|0,j=16-t0|0,u0=y>>>j,$0=u0&255,l0=e[$>>2]|0,Z=l0+2|0,f[Z>>0]=$0,I0=(R|0)>23,I0&&(g0=e[M>>2]|0,f0=24-g0|0,n0=y>>>f0,h0=n0&255,p0=e[$>>2]|0,C0=p0+3|0,f[C0>>0]=h0,Q0=(R|0)>31,Q0))))if(b0=e[M>>2]|0,E0=(b0|0)==0,E0){M0=e[$>>2]|0,v0=M0+4|0,f[v0>>0]=0;break}else{y0=32-b0|0,w0=y>>>y0,B0=w0&255,_0=e[$>>2]|0,K0=_0+4|0,f[K0>>0]=B0;break}while(!1);N0=(R|0)/8&-1,U0=e[t>>2]|0,O0=U0+N0|0,e[t>>2]=O0,k0=e[$>>2]|0,V0=k0+N0|0,e[$>>2]=V0,F0=R&7,e[M>>2]=F0;return}while(!1);L0=t+8|0,G0=e[L0>>2]|0,z0=(G0|0)==0,z0||p2(G0),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0}function pC(t){t=t|0;var o=0,a=0,$=0,g=0,h=0;h=C,o=t+8|0,a=e[o>>2]|0,$=(a|0)==0,$||p2(a),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0}function Ii(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0;Q=C,o=t+12|0,a=e[o>>2]|0,$=(a|0)==0,!$&&(g=t+8|0,h=e[g>>2]|0,e[o>>2]=h,m=h,f[m>>0]=0,e[t>>2]=0,I=t+4|0,e[I>>2]=0)}function EC(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0;if(_0=C,$=o>>>0>32,$)return a=-1,a|0;if(g=8+(o<<2)|0,D=e[g>>2]|0,X=t+4|0,j=e[X>>2]|0,p0=j+o|0,S0=e[t>>2]|0,Q0=t+16|0,b0=e[Q0>>2]|0,E0=b0+-4|0,h=(S0|0)<(E0|0),!h){if(m=p0+7|0,I=m>>3,E=b0-I|0,Q=(S0|0)>(E|0),Q)return a=-1,a|0;if(B=(p0|0)==0,B)return a=0,a|0}return S=t+12|0,b=e[S>>2]|0,v=f[b>>0]|0,w=v&255,y=w>>>j,x=(p0|0)>8,x?(M=b+1|0,L=f[M>>0]|0,R=L&255,F=8-j|0,T=R<16,G?(V=b+2|0,K=f[V>>0]|0,a0=K&255,W=16-j|0,r0=a0<24,J?(o0=b+3|0,q=f[o0>>0]|0,d0=q&255,t0=24-j|0,u0=d0<>0]|0,g0=I0&255,f0=32-j|0,n0=g0<>2]|0,S=$+o|0,b=e[t>>2]|0,v=t+16|0,w=e[v>>2]|0,D=S+7|0,y=D>>3,x=w-y|0,M=(b|0)>(x|0),M){B=t+12|0,e[B>>2]=0,e[t>>2]=w,L=1,e[a>>2]=L;return}else{g=(S|0)/8&-1,h=t+12|0,m=e[h>>2]|0,I=m+g|0,e[h>>2]=I,E=b+g|0,e[t>>2]=E,Q=S&7,L=Q,e[a>>2]=L;return}}function n4(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0;L0=C,E=o>>>0>32;do if(E)$=t+16|0,g=e[$>>2]|0,I=t+4|0,h=t,m=I,v0=g;else{if(Q=8+(o<<2)|0,R=e[Q>>2]|0,s0=t+4|0,Z=e[s0>>2]|0,E0=Z+o|0,T0=e[t>>2]|0,N0=t+16|0,U0=e[N0>>2]|0,O0=U0+-4|0,B=(T0|0)<(O0|0),!B){if(S=E0+7|0,b=S>>3,v=U0-b|0,w=(T0|0)>(v|0),w){h=t,m=s0,v0=U0;break}if(D=(E0|0)==0,D)return a=0,a|0}return y=t+12|0,x=e[y>>2]|0,M=f[x>>0]|0,L=M&255,F=L>>>Z,T=(E0|0)>8,T?(N=x+1|0,G=f[N>>0]|0,V=G&255,X=8-Z|0,K=V<16,W?(r0=x+2|0,J=f[r0>>0]|0,o0=J&255,q=16-Z|0,d0=o0<24,j?(u0=x+3|0,c0=f[u0>>0]|0,$0=c0&255,l0=24-Z|0,I0=$0<>0]|0,C0=p0&255,S0=32-Z|0,Q0=C0<>2]=B0,_0=T0+w0|0,e[t>>2]=_0,K0=E0&7,e[s0>>2]=K0,a=y0,a|0}while(!1);return M0=t+12|0,e[M0>>2]=0,e[h>>2]=v0,e[m>>2]=1,a=-1,a|0}function D8(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0;return E=C,o=e[t>>2]|0,a=t+4|0,$=e[a>>2]|0,g=$+7|0,h=(g|0)/8&-1,m=h+o|0,m|0}function $Q(t){t=t|0;var o=0,a=0,$=0,g=0;return g=C,o=t+8|0,a=e[o>>2]|0,a|0}function _S(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0;if(T=C,g=(t|0)==0,g)return a=-1,a|0;u4(t|0,0,360)|0,h=t+4|0,e[h>>2]=16384,b=t+24|0,e[b>>2]=1024,v=R9(16384)|0,e[t>>2]=v,w=R9(4096)|0,D=t+16|0,e[D>>2]=w,y=R9(8192)|0,x=t+20|0,e[x>>2]=y,M=(v|0)==0;do if(M)I=w;else{if(L=(w|0)==0,m=(y|0)==0,R=m|L,R){p2(v),$=e[D>>2]|0,I=$;break}return S=t+336|0,e[S>>2]=o,a=0,a|0}while(!1);return E=(I|0)==0,E||p2(I),Q=e[x>>2]|0,B=(Q|0)==0,B||p2(Q),u4(t|0,0,360)|0,a=-1,a|0}function xS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0;return S=C,o=(t|0)==0,o||(a=e[t>>2]|0,$=(a|0)==0,$||p2(a),g=t+16|0,h=e[g>>2]|0,m=(h|0)==0,m||p2(h),I=t+20|0,E=e[I>>2]|0,Q=(E|0)==0,Q||p2(E),u4(t|0,0,360)|0),0}function LS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0;if(U0=C,o=(t|0)==0,!o){if(a=e[t>>2]|0,v=a+22|0,f[v>>0]=0,G=e[t>>2]|0,d0=G+23|0,f[d0>>0]=0,n0=e[t>>2]|0,b0=n0+24|0,f[b0>>0]=0,E0=e[t>>2]|0,y0=E0+25|0,f[y0>>0]=0,w0=t+4|0,$=e[w0>>2]|0,g=($|0)>0,g)for(h=e[t>>2]|0,_0=0,v0=0;;)if(S=_0<<8,b=_0>>>24,w=h+v0|0,D=f[w>>0]|0,y=D&255,x=y^b,M=144+(x<<2)|0,L=e[M>>2]|0,R=L^S,F=v0+1|0,T=(F|0)<($|0),T)_0=R,v0=F;else{B0=R;break}else B0=0;if(m=t+12|0,I=e[m>>2]|0,E=(I|0)>0,E)for(Q=t+8|0,B=e[Q>>2]|0,M0=B0,T0=0;;)if(N=M0<<8,V=M0>>>24,X=B+T0|0,K=f[X>>0]|0,a0=K&255,W=a0^V,r0=144+(W<<2)|0,s0=e[r0>>2]|0,J=s0^N,o0=T0+1|0,q=(o0|0)<(I|0),q)M0=J,T0=o0;else{K0=J;break}else K0=B0;t0=K0&255,j=e[t>>2]|0,u0=j+22|0,f[u0>>0]=t0,c0=K0>>>8,$0=c0&255,l0=e[t>>2]|0,Z=l0+23|0,f[Z>>0]=$0,I0=K0>>>16,g0=I0&255,f0=e[t>>2]|0,h0=f0+24|0,f[h0>>0]=g0,p0=K0>>>24,C0=p0&255,S0=e[t>>2]|0,Q0=S0+25|0,f[Q0>>0]=C0}}function MS(t,o,a,$,g,h){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0;var m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0;if(m2=C,n0=(t|0)==0,n0||(_0=e[t>>2]|0,L0=(_0|0)==0,L0))return I=-1,I|0;if(x0=(o|0)==0,x0)return I=0,I|0;j0=(a|0)>0;e:do if(j0){for(f2=0,k2=0;;){if(S1=(o+(k2<<3)|0)+4|0,q1=e[S1>>2]|0,s2=(q1|0)<0,w=2147483647-q1|0,V=(f2|0)>(w|0),N2=s2|V,N2){I=-1;break}if(t0=q1+f2|0,c0=k2+1|0,$0=(c0|0)<(a|0),$0)f2=t0,k2=c0;else{o2=t0;break e}}return I|0}else o2=0;while(!1);l0=(o2|0)/255&-1,Z=l0+1|0,I0=t+12|0,g0=e[I0>>2]|0,f0=(g0|0)==0,v=t+8|0,f0||(h0=e[v>>2]|0,p0=h0-g0|0,e[v>>2]=p0,C0=(h0|0)==(g0|0),C0||(S0=_0+g0|0,oA(_0|0,S0|0,p0|0)|0),e[I0>>2]=0),Q0=t+4|0,b0=e[Q0>>2]|0,E0=b0-o2|0,y0=e[v>>2]|0,w0=(E0|0)>(y0|0);do if(!w0){if(B0=2147483647-o2|0,K0=(b0|0)>(B0|0),K0)return M0=e[t>>2]|0,v0=(M0|0)==0,v0||p2(M0),T0=t+16|0,N0=e[T0>>2]|0,U0=(N0|0)==0,U0||p2(N0),O0=t+20|0,k0=e[O0>>2]|0,V0=(k0|0)==0,V0||p2(k0),u4(t|0,0,360)|0,I=-1,I|0;if(F0=b0+o2|0,G0=(F0|0)<2147482623,z0=F0+1024|0,m=G0?z0:F0,J0=e[t>>2]|0,q0=K7(J0,m)|0,Z0=(q0|0)==0,!Z0){e[Q0>>2]=m,e[t>>2]=q0;break}return P0=e[t>>2]|0,H0=(P0|0)==0,H0||p2(P0),o1=t+16|0,Y0=e[o1>>2]|0,i1=(Y0|0)==0,i1||p2(Y0),n1=t+20|0,d1=e[n1>>2]|0,g1=(d1|0)==0,g1||p2(d1),u4(t|0,0,360)|0,I=-1,I|0}while(!1);if(m1=RS(t,Z)|0,h1=(m1|0)==0,!h1)return I=-1,I|0;if(j0)for(Q=e[v>>2]|0,v1=Q,D2=0;B1=e[t>>2]|0,w1=B1+v1|0,k1=o+(D2<<3)|0,L1=e[k1>>2]|0,M1=(o+(D2<<3)|0)+4|0,D1=e[M1>>2]|0,ge(w1|0,L1|0,D1|0)|0,R1=e[M1>>2]|0,F1=e[v>>2]|0,U1=F1+R1|0,e[v>>2]=U1,b1=D2+1|0,t2=(b1|0)==(a|0),!t2;)v1=U1,D2=b1;if(u1=(o2|0)>254,A1=t+28|0,c1=e[A1>>2]|0,s1=t+16|0,$1=e[s1>>2]|0,u1){for(E1=t+352|0,I1=t+20|0,Q1=e[I1>>2]|0,p1=(l0|0)>1,Q2=0;P1=c1+Q2|0,Z1=$1+(P1<<2)|0,e[Z1>>2]=255,G1=E1,x1=G1,z1=e[x1>>2]|0,H1=G1+4|0,Y1=H1,V1=e[Y1>>2]|0,X1=Q1+(P1<<3)|0,n2=X1,j1=n2,e[j1>>2]=z1,O1=n2+4|0,c2=O1,e[c2>>2]=V1,W1=Q2+1|0,h2=(W1|0)<(l0|0),h2;)Q2=W1;L2=p1?l0:1,B=E1,$2=Q1,S2=L2}else E=t+20|0,S=e[E>>2]|0,b=t+352|0,B=b,$2=S,S2=0;return E2=(o2|0)%255&-1,a2=c1+S2|0,K1=$1+(a2<<2)|0,e[K1>>2]=E2,d2=$2+(a2<<3)|0,i2=d2,l2=i2,e[l2>>2]=g,r2=i2+4|0,A2=r2,e[A2>>2]=h,e2=B,D=e2,e[D>>2]=g,y=e2+4|0,x=y,e[x>>2]=h,M=$1+(c1<<2)|0,L=e[M>>2]|0,R=L|256,e[M>>2]=R,F=c1+Z|0,e[A1>>2]=F,T=t+344|0,N=T,G=N,X=e[G>>2]|0,K=N+4|0,a0=K,W=e[a0>>2]|0,r0=rs(X|0,W|0,1,0)|0,s0=j6,J=T,o0=J,e[o0>>2]=r0,q=J+4|0,d0=q,e[d0>>2]=s0,j=($|0)==0,j?(I=0,I|0):(u0=t+328|0,e[u0>>2]=1,I=0,I|0)}function oE(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0;return M=C,C=C+16|0,y=M,a=e[o>>2]|0,e[y>>2]=a,$=o+4|0,E=e[$>>2]|0,Q=y+4|0,e[Q>>2]=E,B=o+12|0,S=e[B>>2]|0,b=o+16|0,v=b,w=v,D=e[w>>2]|0,g=v+4|0,h=g,m=e[h>>2]|0,I=MS(t,y,1,S,D,m)|0,C=M,I|0}function lQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0;return g=C,a=gQ(t,o,1,4096)|0,a|0}function cQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0;return M=C,h=(t|0)==0,h||(m=e[t>>2]|0,I=(m|0)==0,I)?(a=0,a|0):(E=t+328|0,Q=e[E>>2]|0,B=(Q|0)==0,$=t+28|0,g=e[$>>2]|0,y=(g|0)==0,B?y?D=0:(S=t+332|0,b=e[S>>2]|0,v=(b|0)==0,v?x=7:D=0):y?D=0:x=7,(x|0)==7&&(D=1),w=gQ(t,o,D,4096)|0,a=w,a|0)}function RS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0;return h0=C,g=t+24|0,h=e[g>>2]|0,y=h-o|0,K=t+28|0,u0=e[K>>2]|0,l0=(y|0)>(u0|0),l0?($=0,$|0):(Z=2147483647-o|0,I0=(h|0)>(Z|0),I0?(g0=e[t>>2]|0,f0=(g0|0)==0,f0||p2(g0),m=t+16|0,I=e[m>>2]|0,E=(I|0)==0,E||p2(I),Q=t+20|0,B=e[Q>>2]|0,S=(B|0)==0,S||p2(B),u4(t|0,0,360)|0,$=-1,$|0):(b=h+o|0,v=(b|0)<2147483615,w=b+32|0,a=v?w:b,D=t+16|0,x=e[D>>2]|0,M=a<<2,L=K7(x,M)|0,R=(L|0)==0,R?(F=e[t>>2]|0,T=(F|0)==0,T||p2(F),N=e[D>>2]|0,G=(N|0)==0,G||p2(N),V=t+20|0,X=e[V>>2]|0,a0=(X|0)==0,a0||p2(X),u4(t|0,0,360)|0,$=-1,$|0):(e[D>>2]=L,W=t+20|0,r0=e[W>>2]|0,s0=a<<3,J=K7(r0,s0)|0,o0=(J|0)==0,o0?(q=e[t>>2]|0,d0=(q|0)==0,d0||p2(q),t0=e[D>>2]|0,j=(t0|0)==0,j||p2(t0),c0=e[W>>2]|0,$0=(c0|0)==0,$0||p2(c0),u4(t|0,0,360)|0,$=-1,$|0):(e[W>>2]=J,e[g>>2]=a,$=0,$|0))))}function gQ(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0;if(S5=C,y=t+28|0,x=e[y>>2]|0,d1=(x|0)>255,g=d1?255:x,I1=(t|0)==0,I1||(R1=e[t>>2]|0,Y1=(R1|0)==0,a2=(g|0)==0,b3=a2|Y1,b3))return h=0,h|0;t2=t+332|0,V2=e[t2>>2]|0,j2=(V2|0)==0;e:do if(j2)for(Q0=t+16|0,g3=0;;){if(N0=(g3|0)<(g|0),!N0){I=a,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,z5=g3,V5=14;break e}if(Z0=e[Q0>>2]|0,Y0=Z0+(g3<<2)|0,i1=e[Y0>>2]|0,x0=i1&255,n1=(x0|0)==255,g1=g3+1|0,n1)g3=g1;else{I=a,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,z5=g1,V5=14;break}}else if(M=(g|0)>0,M){for(W=t+16|0,$0=t+20|0,Q5=0,D5=-1,d5=-1,l5=-1,X2=-1,g2=-1,w5=-1,r5=-1,a5=-1,t3=0,T3=0,Q3=0;;){if(m1=(Q5|0)>($|0),h1=(t3|0)>3,q3=m1&h1,q3){m=1,q5=D5,M5=d5,Y2=l5,p5=X2,$5=g2,u5=w5,y5=r5,T1=a5,u3=Q3;break}if(u1=e[W>>2]|0,A1=u1+(Q3<<2)|0,c1=e[A1>>2]|0,s1=c1&255,$1=s1+Q5|0,j0=(s1|0)==255,j0?(h5=D5,z2=d5,f5=l5,n5=X2,R5=g2,e5=w5,c5=r5,F2=a5,s6=0,H3=T3):(E1=e[$0>>2]|0,Q1=E1+(Q3<<3)|0,p1=Q1,B1=p1,w1=e[B1>>2]|0,v1=p1+4|0,k1=v1,L1=e[k1>>2]|0,M1=T3+1|0,S1=w1&255,D1=ns(w1|0,L1|0,8)|0,F1=j6,U1=D1&255,b1=ns(w1|0,L1|0,16)|0,P1=j6,Z1=b1&255,G1=ns(w1|0,L1|0,24)|0,x1=j6,z1=G1&255,q1=L1&255,H1=ns(w1|0,L1|0,40)|0,V1=j6,X1=H1&255,n2=ns(w1|0,L1|0,48)|0,j1=j6,O1=n2&255,c2=ns(w1|0,L1|0,56)|0,W1=j6,h2=c2&255,h5=S1,z2=Z1,f5=z1,n5=q1,R5=X1,e5=O1,c5=h2,F2=U1,s6=M1,H3=M1),s2=Q3+1|0,E2=(s2|0)<(g|0),E2)Q5=$1,D5=h5,d5=z2,l5=f5,X2=n5,g2=R5,w5=e5,r5=c5,a5=F2,t3=s6,T3=H3,Q3=s2;else{m=a,q5=h5,M5=z2,Y2=f5,p5=n5,$5=R5,u5=e5,y5=c5,T1=F2,u3=s2;break}}K1=(u3|0)==255,K1?(a3=q5,B3=M5,G5=Y2,W5=p5,D3=$5,f3=u5,y3=y5,X3=T1,H5=255):(I=m,v5=q5,J5=M5,i3=Y2,E5=p5,I3=$5,h3=u5,K5=y5,r3=T1,z5=u3,V5=14)}else I=a,v5=-1,J5=-1,i3=-1,E5=-1,I3=-1,h3=-1,K5=-1,r3=-1,z5=0,V5=14;while(!1);if((V5|0)==14){if(d2=(I|0)==0,d2)return h=0,h|0;a3=v5,B3=J5,G5=i3,W5=E5,D3=I3,f3=h3,y3=K5,X3=r3,H5=z5}if($2=t+40|0,f[$2>>0]=79,f[$2+1>>0]=103,f[$2+2>>0]=103,f[$2+3>>0]=83,i2=t+44|0,f[i2>>0]=0,l2=t+45|0,f[l2>>0]=0,r2=t+16|0,A2=e[r2>>2]|0,e2=e[A2>>2]|0,o2=e2>>>8,S=o2&1,f2=S^1,k2=f2|2,E=j2?k2:f2,c3=E&255,f[l2>>0]=c3,D2=t+328|0,S2=e[D2>>2]|0,Q2=(S2|0)!=0,N2=(x|0)==(H5|0),X5=Q2&N2,X5&&(Q=j2?k2:f2,L2=Q|4,U2=L2&255,f[l2>>0]=U2),e[t2>>2]=1,m2=t+46|0,f[m2>>0]=a3,W2=t+47|0,f[W2>>0]=X3,P2=t+48|0,f[P2>>0]=B3,G2=t+49|0,f[G2>>0]=G5,q2=t+50|0,f[q2>>0]=W5,Z2=t+51|0,f[Z2>>0]=D3,A5=t+52|0,f[A5>>0]=f3,H2=t+53|0,f[H2>>0]=y3,N1=t+336|0,t5=e[N1>>2]|0,T5=t5&255,i5=t+54|0,f[i5>>0]=T5,x5=t5>>>8,I5=x5&255,b5=t+55|0,f[b5>>0]=I5,Y5=t5>>>16,g5=Y5&255,b2=t+56|0,f[b2>>0]=g5,B5=t5>>>24,s5=B5&255,R2=t+57|0,f[R2>>0]=s5,M2=t+340|0,y2=e[M2>>2]|0,L=(y2|0)==-1,L?(e[M2>>2]=0,F=0):F=y2,R=F+1|0,e[M2>>2]=R,T=F&255,N=t+58|0,f[N>>0]=T,G=F>>>8,V=G&255,X=t+59|0,f[X>>0]=V,K=F>>>16,a0=K&255,r0=t+60|0,f[r0>>0]=a0,s0=F>>>24,J=s0&255,o0=t+61|0,f[o0>>0]=J,q=t+62|0,d0=H5&255,t0=t+66|0,f[q>>0]=0,f[q+1>>0]=0,f[q+2>>0]=0,f[q+3>>0]=0,f[t0>>0]=d0,j=(H5|0)>0,j){if(u0=e[A2>>2]|0,c0=u0&255,l0=t+67|0,f[l0>>0]=c0,Z=u0&255,L5=(H5|0)==1,L5)B=Z;else for(g0=1,b0=Z;;)if(b=e[r2>>2]|0,I0=b+(g0<<2)|0,f0=e[I0>>2]|0,n0=f0&255,h0=g0+27|0,p0=(t+40|0)+h0|0,f[p0>>0]=n0,C0=f0&255,S0=C0+b0|0,E0=g0+1|0,m5=(E0|0)==(H5|0),m5){B=S0;break}else g0=E0,b0=S0;v=e[t>>2]|0,w=e[y>>2]|0,D=e[r2>>2]|0,v0=v,k0=w,F0=D,N5=B}else v0=R1,k0=x,F0=A2,N5=0;return e[o>>2]=$2,y0=H5+27|0,w0=t+324|0,e[w0>>2]=y0,B0=o+4|0,e[B0>>2]=y0,_0=t+12|0,K0=e[_0>>2]|0,M0=v0+K0|0,T0=o+8|0,e[T0>>2]=M0,U0=o+12|0,e[U0>>2]=N5,O0=k0-H5|0,e[y>>2]=O0,V0=F0+(H5<<2)|0,L0=O0<<2,oA(F0|0,V0|0,L0|0)|0,G0=t+20|0,z0=e[G0>>2]|0,J0=z0+(H5<<3)|0,q0=e[y>>2]|0,P0=q0<<3,oA(z0|0,J0|0,P0|0)|0,H0=e[_0>>2]|0,o1=H0+N5|0,e[_0>>2]=o1,LS(o),h=1,h|0}function FS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0;return Y0=C,$=t+104|0,g=e[$>>2]|0,D=t+88|0,X=g+12|0,e[D>>2]=0,e[D+4>>2]=0,e[D+8>>2]=0,e[D+12>>2]=0,j=e[X>>2]|0,Ii(j),p0=g+16|0,M0=e[p0>>2]|0,Ii(M0),z0=g+20|0,P0=e[z0>>2]|0,Ii(P0),H0=g+24|0,h=e[H0>>2]|0,Ii(h),m=g+28|0,I=e[m>>2]|0,Ii(I),E=g+32|0,Q=e[E>>2]|0,Ii(Q),B=g+36|0,S=e[B>>2]|0,Ii(S),b=g+40|0,v=e[b>>2]|0,Ii(v),w=g+44|0,y=e[w>>2]|0,Ii(y),x=g+48|0,M=e[x>>2]|0,Ii(M),L=g+52|0,R=e[L>>2]|0,Ii(R),F=g+56|0,T=e[F>>2]|0,Ii(T),N=g+60|0,G=e[N>>2]|0,Ii(G),V=g+64|0,K=e[V>>2]|0,Ii(K),a0=g+68|0,W=e[a0>>2]|0,Ii(W),r0=e[6416]|0,s0=r0+12|0,J=e[s0>>2]|0,o0=HQ[J&1](t)|0,q=(o0|0)==0,q?(d0=(o|0)==0,d0?(a=0,a|0):(t0=Nu(t)|0,u0=(t0|0)==0,u0?(c0=t+4|0,$0=$Q(c0)|0,e[o>>2]=$0,l0=D8(c0)|0,Z=o+4|0,e[Z>>2]=l0,I0=o+8|0,e[I0>>2]=0,g0=t+44|0,f0=e[g0>>2]|0,n0=o+12|0,e[n0>>2]=f0,h0=t+48|0,C0=h0,S0=C0,Q0=e[S0>>2]|0,b0=C0+4|0,E0=b0,y0=e[E0>>2]|0,w0=o+16|0,B0=w0,_0=B0,e[_0>>2]=Q0,K0=B0+4|0,v0=K0,e[v0>>2]=y0,T0=t+56|0,N0=T0,U0=N0,O0=e[U0>>2]|0,k0=N0+4|0,V0=k0,F0=e[V0>>2]|0,L0=o+24|0,G0=L0,J0=G0,e[J0>>2]=O0,q0=G0+4|0,Z0=q0,e[Z0>>2]=F0,a=0,a|0):(a=-131,a|0))):(a=o0,a|0)}function TS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0;Q0=C,a=t+28|0,$=e[a>>2]|0,C0=o,b0=C0+48|0;do e[C0>>2]=0,C0=C0+4|0;while((C0|0)<(b0|0));w=$+3372|0,V=e[w>>2]|0,t0=(V|0)>0,t0&&(g0=t+8|0,f0=e[g0>>2]|0,n0=e[$>>2]|0,h0=n0>>1,p0=$+4|0,g=e[p0>>2]|0,h=(g|0)/(n0|0)&-1,m=o+24|0,e[m>>2]=h,e[o>>2]=1,I=$+3360|0,E=e[I>>2]|0,Q=+(E|0),B=+(h0|0),S=Q*B,b=+(f0|0),v=S/b,D=+z7(v),y=~~D,x=o+12|0,e[x>>2]=y,M=$+3364|0,L=e[M>>2]|0,R=+(L|0),F=R*B,T=F/b,N=+z7(T),G=~~N,X=o+16|0,e[X>>2]=G,K=$+3368|0,a0=e[K>>2]|0,W=+(a0|0),r0=W*B,s0=r0/b,J=+z7(s0),o0=~~J,q=o+20|0,e[q>>2]=o0,d0=o+32|0,l1[d0>>3]=7,j=+(V|0),u0=$+3376|0,c0=+l1[u0>>3],$0=j*c0,l0=~~$0,Z=o+8|0,e[Z>>2]=l0,I0=o+4|0,e[I0>>2]=l0)}function NS(t){t=t|0;var o=0,a=0,$=0,g=0;$=C,o=t,g=o+48|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(g|0))}function Nu(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0;return B=C,a=t+64|0,$=e[a>>2]|0,g=$+104|0,h=e[g>>2]|0,m=h+80|0,I=e[m>>2]|0,E=(I|0)!=0,o=E&1,o|0}function GS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0;if(F6=C,Q=t+104|0,B=e[Q>>2]|0,W1=t+64|0,b2=e[W1>>2]|0,M5=b2+104|0,g2=e[M5>>2]|0,F2=b2+4|0,G5=e[F2>>2]|0,T3=G5+28|0,U5=e[T3>>2]|0,S=g2+112|0,T=+l1[S>>3],o0=+z7(T),g0=~~o0,w0=(B+12|0)+(g0<<2)|0,V0=e[w0>>2]|0,Y0=D8(V0)|0,s1=Y0<<3,L1=t+28|0,x1=e[L1>>2]|0,h2=(x1|0)==0,e2=g2+96|0,m2=e[e2>>2]|0,h2?(T5=g2+100|0,x5=e[T5>>2]|0,q=m2,b0=T5,B0=x5):(j2=g2+104|0,I5=e[j2>>2]|0,b5=g2+100|0,Y5=e[b5>>2]|0,g5=o5(I5,m2)|0,B5=o5(I5,Y5)|0,q=g5,b0=b5,B0=B5),s5=U5+(x1<<2)|0,R2=e[s5>>2]|0,M2=R2>>1,y2=U5+3372|0,Q5=e[y2>>2]|0,N5=+(Q5|0),m5=U5+3376|0,L5=+l1[m5>>3],q5=N5*L5,Y2=~~q5,p5=g2+80|0,$5=e[p5>>2]|0,u5=($5|0)==0,y5=g2+120|0,u5)return T1=e[y5>>2]|0,D5=(T1|0)==0,D5?(e[y5>>2]=t,a=0,a|0):(a=-1,a|0);if(e[y5>>2]=t,d5=g2+92|0,l5=e[d5>>2]|0,X2=(l5|0)>0,X2){h2?c5=l5:(w5=g2+104|0,r5=e[w5>>2]|0,a5=o5(r5,l5)|0,c5=a5),h5=U5+3384|0,z2=+l1[h5>>3],f5=15/z2,n5=g2+84|0,R5=e[n5>>2]|0,e5=s1-c5|0,v5=R5+e5|0,J5=(v5|0)>(Y2|0);e:do if(J5)if(i3=(g0|0)>0,E5=(s1|0)>(c5|0),R6=E5&i3,R6)if(I3=s1-c5|0,h3=I3+R5|0,K5=(h3|0)>(Y2|0),K5)for(V3=g0;;){if(r3=V3+-1|0,a3=(B+12|0)+(r3<<2)|0,B3=e[a3>>2]|0,W5=D8(B3)|0,D3=W5<<3,f3=(V3|0)>1,y3=(D3|0)>(c5|0),M6=y3&f3,!M6){Z5=r3;break e}if(I=e[n5>>2]|0,X3=D3-c5|0,q3=X3+I|0,X5=(q3|0)>(Y2|0),X5)V3=r3;else{Z5=r3;break}}else Z5=g0;else Z5=g0;else if(b3=(v5|0)<(Y2|0),b3)if(t3=g0+1|0,s6=(t3|0)<15,H3=(s1|0)<(c5|0),r6=H3&s6,r6)if(c3=s1-c5|0,g3=c3+R5|0,u3=(g3|0)<(Y2|0),u3)for(z5=t3;;){if(Q3=(B+12|0)+(z5<<2)|0,H5=e[Q3>>2]|0,V5=D8(H5)|0,S5=V5<<3,Y3=z5+1|0,$6=(Y3|0)<15,n3=(S5|0)<(c5|0),S6=n3&$6,!S6){Z5=z5;break e}if(m=e[n5>>2]|0,l3=S5-c5|0,N3=l3+m|0,E6=(N3|0)<(Y2|0),E6)z5=Y3;else{Z5=z5;break}}else Z5=g0;else Z5=g0;else Z5=g0;while(!1);k3=+(Z5|0),_3=+l1[S>>3],S3=k3-_3,a6=+z7(S3),i6=+(M2|0),b=a6/i6,v=G5+8|0,w=e[v>>2]|0,D=+(w|0),y=D*b,x=-f5,M=yf5,L3=L?f5:v6,R=L3/D,F=R*i6,N=F+_3,l1[S>>3]=N,G=+z7(N),V=~~G,X=(B+12|0)+(V<<2)|0,K=e[X>>2]|0,a0=D8(K)|0,W=a0<<3,E=e[e2>>2]|0,r0=E,x3=V,n6=W}else r0=m2,x3=g0,n6=s1;s0=(r0|0)>0,J=(n6|0)<(q|0),h6=J&s0;e:do if(h6)if(d0=g2+88|0,t0=e[d0>>2]|0,j=n6-q|0,u0=j+t0|0,c0=(u0|0)<0,c0)for(d3=x3,o6=n6;;){if($0=d3+1|0,l0=(d3|0)>13,l0){J3=$0,C6=o6;break e}if(Z=(B+12|0)+($0<<2)|0,I0=e[Z>>2]|0,f0=D8(I0)|0,n0=f0<<3,h0=e[d0>>2]|0,p0=n0-q|0,C0=p0+h0|0,S0=(C0|0)<0,S0)d3=$0,o6=n0;else{J3=$0,C6=n0;break}}else J3=x3,C6=n6;else J3=x3,C6=n6;while(!1);Q0=e[b0>>2]|0,E0=(Q0|0)>0,y0=(C6|0)>(B0|0),b6=y0&E0;e:do if(b6)if(_0=g2+88|0,K0=e[_0>>2]|0,M0=C6-B0|0,v0=M0+K0|0,T0=e[y2>>2]|0,N0=(v0|0)>(T0|0),N0)for(d6=J3,z3=C6;;){if(U0=d6+-1|0,O0=(d6|0)<1,O0){m3=U0,M3=z3;break e}if(k0=(B+12|0)+(U0<<2)|0,F0=e[k0>>2]|0,L0=D8(F0)|0,G0=L0<<3,z0=e[_0>>2]|0,J0=G0-B0|0,q0=J0+z0|0,Z0=e[y2>>2]|0,P0=(q0|0)>(Z0|0),P0)d6=U0,z3=G0;else{m3=U0,M3=G0;break}}else m3=J3,M3=C6;else m3=J3,M3=C6;while(!1);if(H0=(m3|0)<0,H0)o1=e[y2>>2]|0,i1=g2+88|0,x0=e[i1>>2]|0,n1=o1+B0|0,d1=n1-x0|0,g1=(d1|0)/8&-1,m1=g2+124|0,e[m1>>2]=0,h1=B+12|0,u1=e[h1>>2]|0,A1=D8(u1)|0,c1=(A1|0)>(g1|0),c1?($1=e[h1>>2]|0,j0=g1<<3,DS($1,j0),E1=e[h1>>2]|0,I1=D8(E1)|0,Q1=I1<<3,K3=Q1):K3=M3;else{if(p1=g2+88|0,B1=e[p1>>2]|0,w1=q+7|0,v1=w1-B1|0,k1=(v1|0)/8&-1,M1=(m3|0)>14,g=M1?14:m3,S1=g2+124|0,e[S1>>2]=g,D1=(B+12|0)+(g<<2)|0,R1=e[D1>>2]|0,F1=D8(R1)|0,U1=k1-F1|0,b1=(U1|0)>0,P1=e[D1>>2]|0,b1)for(G1=P1,L6=U1;;)if(Z1=L6+-1|0,O2(G1,0,8),z1=(L6|0)>1,q1=e[D1>>2]|0,z1)G1=q1,L6=Z1;else{h=q1;break}else h=P1;H1=D8(h)|0,Y1=H1<<3,K3=Y1}V1=e[e2>>2]|0,X1=(V1|0)>0,X1?e6=37:(n2=e[b0>>2]|0,j1=(n2|0)>0,j1&&(e6=37));do if((e6|0)==37){if(O1=(B0|0)>0,c2=(K3|0)>(B0|0),G6=O1&c2,G6){s2=K3-B0|0,E2=g2+88|0,a2=e[E2>>2]|0,K1=s2+a2|0,e[E2>>2]=K1;break}if(d2=(q|0)>0,$2=(K3|0)<(q|0),X6=d2&$2,X6){i2=K3-q|0,l2=g2+88|0,r2=e[l2>>2]|0,A2=i2+r2|0,e[l2>>2]=A2;break}if(o2=g2+88|0,f2=e[o2>>2]|0,t2=(f2|0)>(Y2|0),t2)if(O1){k2=K3-B0|0,D2=f2+k2|0,S2=(D2|0)<(Y2|0),o=S2?Y2:D2,e[o2>>2]=o;break}else{e[o2>>2]=Y2;break}else if(d2){Q2=K3-q|0,N2=f2+Q2|0,L2=(N2|0)>(Y2|0),$=L2?Y2:N2,e[o2>>2]=$;break}else{e[o2>>2]=Y2;break}}while(!1);return U2=e[d5>>2]|0,W2=(U2|0)>0,W2?(P2=e[L1>>2]|0,V2=(P2|0)==0,V2?H2=U2:(G2=g2+104|0,q2=e[G2>>2]|0,Z2=o5(q2,U2)|0,H2=Z2),A5=K3-H2|0,N1=g2+84|0,t5=e[N1>>2]|0,i5=A5+t5|0,e[N1>>2]=i5,a=0,a|0):(a=0,a|0)}function uQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0;return B0=C,$=t+104|0,g=e[$>>2]|0,D=g+120|0,X=e[D>>2]|0,j=(X|0)==0,j?(a=0,a|0):(p0=(o|0)==0,p0||(C0=X+104|0,S0=e[C0>>2]|0,Q0=X+64|0,b0=e[Q0>>2]|0,h=b0+104|0,m=e[h>>2]|0,I=m+80|0,E=e[I>>2]|0,y0=(E|0)==0,y0?E0=7:(Q=g+124|0,B=e[Q>>2]|0,E0=B),S=(S0+12|0)+(E0<<2)|0,b=e[S>>2]|0,v=$Q(b)|0,e[o>>2]=v,w=e[S>>2]|0,y=D8(w)|0,x=o+4|0,e[x>>2]=y,M=o+8|0,e[M>>2]=0,L=X+44|0,R=e[L>>2]|0,F=o+12|0,e[F>>2]=R,T=X+48|0,N=T,G=N,V=e[G>>2]|0,K=N+4|0,a0=K,W=e[a0>>2]|0,r0=o+16|0,s0=r0,J=s0,e[J>>2]=V,o0=s0+4|0,q=o0,e[q>>2]=W,d0=X+56|0,t0=d0,u0=t0,c0=e[u0>>2]|0,$0=t0+4|0,l0=$0,Z=e[l0>>2]|0,I0=o+24|0,g0=I0,f0=g0,e[f0>>2]=c0,n0=g0+4|0,h0=n0,e[h0>>2]=Z),e[D>>2]=0,a=1,a|0)}function US(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0;F=C,L=o,T=L+112|0;do e[L>>2]=0,L=L+4|0;while((L|0)<(T|0));if(a=o+64|0,e[a>>2]=t,$=o+76|0,e[$>>2]=0,Q=o+68|0,e[Q>>2]=0,B=e[t>>2]|0,S=(B|0)==0,S)return 0;for(b=ce(1,72)|0,v=o+104|0,e[v>>2]=b,w=b+4|0,s[w>>2]=-9999,D=o+4|0,y=b+12|0,g=b+40|0,M=0;;)if(h=(M|0)==7,h){e[g>>2]=D,mC(D),M=8;continue}else{if(m=ce(1,20)|0,I=y+(M<<2)|0,e[I>>2]=m,mC(m),E=M+1|0,x=(E|0)==15,x)break;M=E;continue}return 0}function z8(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0;return K=C,a=o+7|0,$=a&-8,w=t+72|0,L=e[w>>2]|0,R=L+$|0,F=t+76|0,T=e[F>>2]|0,N=(R|0)>(T|0),G=t+68|0,V=e[G>>2]|0,N?(g=(V|0)==0,g||(h=V,m=R9(8)|0,I=t+80|0,E=e[I>>2]|0,Q=E+L|0,e[I>>2]=Q,B=t+84|0,S=e[B>>2]|0,b=m+4|0,e[b>>2]=S,e[m>>2]=h,e[B>>2]=m),e[F>>2]=$,v=R9($)|0,e[G>>2]=v,e[w>>2]=0,y=v,x=0,D=y+x|0,M=x+$|0,e[w>>2]=M,D|0):(y=V,x=L,D=y+x|0,M=x+$|0,e[w>>2]=M,D|0)}function PS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0;if(t0=C,$=t+104|0,g=e[$>>2]|0,D=t+84|0,G=e[D>>2]|0,V=(G|0)==0,!V)for(o0=G;X=o0+4|0,K=e[X>>2]|0,a0=e[o0>>2]|0,p2(a0),p2(o0),W=(K|0)==0,!W;)o0=K;if(r0=t+80|0,h=e[r0>>2]|0,m=(h|0)==0,o=t+68|0,a=e[o>>2]|0,m?y=a:(I=t+76|0,E=e[I>>2]|0,Q=E+h|0,B=K7(a,Q)|0,e[o>>2]=B,S=e[r0>>2]|0,b=e[I>>2]|0,v=b+S|0,e[I>>2]=v,e[r0>>2]=0,y=B),w=t+72|0,e[w>>2]=0,e[D>>2]=0,x=(y|0)==0,x||p2(y),M=(g|0)==0,M){q=t,j=q+112|0;do e[q>>2]=0,q=q+4|0;while((q|0)<(j|0));return 0}else J=0;for(;;){if(L=(g+12|0)+(J<<2)|0,R=e[L>>2]|0,pC(R),F=(J|0)==7,F){J=8;continue}if(T=e[L>>2]|0,p2(T),N=J+1|0,s0=(N|0)==15,s0)break;J=N}p2(g),q=t,j=q+112|0;do e[q>>2]=0,q=q+4|0;while((q|0)<(j|0));return 0}function OS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0;return x=C,$=HS(t,o,1)|0,g=($|0)==0,g?(E=t+104|0,Q=e[E>>2]|0,B=Bb(o)|0,S=Q+60|0,e[S>>2]=B,b=ce(1,180)|0,e[Q>>2]=b,KS(b,o),v=Q+80|0,TS(o,v),w=t+64|0,D=w,h=D,e[h>>2]=3,m=D+4|0,I=m,e[I>>2]=0,a=0,a|0):(a=1,a|0)}function dQ(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0;if(P2=C,B=(t|0)==0,!B){if(S=t+4|0,w0=e[S>>2]|0,V0=(w0|0)!=0,V0?(Y0=w0+28|0,s1=e[Y0>>2]|0,k0=s1):k0=0,L1=t+104|0,x1=e[L1>>2]|0,W1=(x1|0)!=0,W1){if(A2=e[x1>>2]|0,b=(A2|0)==0,b||(WS(A2),N=e[x1>>2]|0,p2(N)),q=x1+12|0,f0=e[q>>2]|0,C0=(f0|0)==0,C0||(S0=e[f0>>2]|0,wC(S0),Q0=e[q>>2]|0,b0=e[Q0>>2]|0,p2(b0),E0=e[q>>2]|0,p2(E0)),y0=x1+16|0,B0=e[y0>>2]|0,_0=(B0|0)==0,_0||(K0=e[B0>>2]|0,wC(K0),M0=e[y0>>2]|0,v0=e[M0>>2]|0,p2(v0),T0=e[y0>>2]|0,p2(T0)),N0=x1+48|0,U0=e[N0>>2]|0,O0=(U0|0)==0,!O0){if(F0=(k0|0)==0,F0)p1=U0;else if(L0=k0+16|0,G0=e[L0>>2]|0,z0=(G0|0)>0,z0){if(J0=k0+800|0,q0=e[J0>>2]|0,Z0=25640+(q0<<2)|0,P0=e[Z0>>2]|0,H0=P0+16|0,o1=e[H0>>2]|0,i1=e[U0>>2]|0,ss[o1&7](i1),x0=e[L0>>2]|0,n1=(x0|0)>1,n1)for(g1=1;o=e[N0>>2]|0,d1=J0+(g1<<2)|0,m1=e[d1>>2]|0,h1=25640+(m1<<2)|0,u1=e[h1>>2]|0,A1=u1+16|0,c1=e[A1>>2]|0,$1=o+(g1<<2)|0,j0=e[$1>>2]|0,ss[c1&7](j0),E1=g1+1|0,I1=e[L0>>2]|0,Q1=(E1|0)<(I1|0),Q1;)g1=E1;a=e[N0>>2]|0,p1=a}else p1=U0;p2(p1)}if(B1=x1+52|0,w1=e[B1>>2]|0,v1=(w1|0)==0,!v1){if(k1=(k0|0)==0,k1)K1=w1;else if(M1=k0+20|0,S1=e[M1>>2]|0,D1=(S1|0)>0,D1){if(R1=k0+1312|0,F1=e[R1>>2]|0,U1=25648+(F1<<2)|0,b1=e[U1>>2]|0,P1=b1+16|0,Z1=e[P1>>2]|0,G1=e[w1>>2]|0,ss[Z1&7](G1),z1=e[M1>>2]|0,q1=(z1|0)>1,q1)for(Y1=1;$=e[B1>>2]|0,H1=R1+(Y1<<2)|0,V1=e[H1>>2]|0,X1=25648+(V1<<2)|0,n2=e[X1>>2]|0,j1=n2+16|0,O1=e[j1>>2]|0,c2=$+(Y1<<2)|0,h2=e[c2>>2]|0,ss[O1&7](h2),s2=Y1+1|0,E2=e[M1>>2]|0,a2=(s2|0)<(E2|0),a2;)Y1=s2;g=e[B1>>2]|0,K1=g}else K1=w1;p2(K1)}if(d2=x1+56|0,$2=e[d2>>2]|0,i2=($2|0)==0,!i2){if(l2=(k0|0)==0,l2)L2=$2;else if(r2=k0+28|0,e2=e[r2>>2]|0,o2=(e2|0)>0,o2){if(QQ($2),f2=e[r2>>2]|0,t2=(f2|0)>1,t2)for(D2=1;h=e[d2>>2]|0,k2=h+(D2*52|0)|0,QQ(k2),S2=D2+1|0,Q2=e[r2>>2]|0,N2=(S2|0)<(Q2|0),N2;)D2=S2;m=e[d2>>2]|0,L2=m}else L2=$2;p2(L2)}v=x1+60|0,w=e[v>>2]|0,D=(w|0)==0,D||Qb(w),y=x1+80|0,NS(y),x=x1+20|0,LQ(x),M=x1+32|0,LQ(M)}if(L=t+8|0,R=e[L>>2]|0,F=(R|0)==0,!F){if(V0)if(T=w0+4|0,G=e[T>>2]|0,V=(G|0)>0,V){for(K=R,p0=G,U2=0;X=K+(U2<<2)|0,a0=e[X>>2]|0,W=(a0|0)==0,W?J=p0:(p2(a0),E=e[T>>2]|0,J=E),r0=U2+1|0,s0=(r0|0)<(J|0),!!s0;)I=e[L>>2]|0,K=I,p0=J,U2=r0;Q=e[L>>2]|0,o0=Q}else o0=R;else o0=R;p2(o0),d0=t+12|0,t0=e[d0>>2]|0,j=(t0|0)==0,j||p2(t0)}W1&&(u0=x1+64|0,c0=e[u0>>2]|0,$0=(c0|0)==0,$0||p2(c0),l0=x1+68|0,Z=e[l0>>2]|0,I0=(Z|0)==0,I0||p2(Z),g0=x1+72|0,n0=e[g0>>2]|0,h0=(n0|0)==0,h0||p2(n0),p2(x1)),m2=t,V2=m2+112|0;do e[m2>>2]=0,m2=m2+4|0;while((m2|0)<(V2|0))}}function hQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0;if(V0=C,I=t+4|0,E=e[I>>2]|0,L=t+104|0,r0=e[L>>2]|0,l0=r0+64|0,b0=e[l0>>2]|0,v0=(b0|0)==0,v0||p2(b0),e[l0>>2]=0,T0=r0+68|0,N0=e[T0>>2]|0,U0=(N0|0)==0,U0||p2(N0),e[T0>>2]=0,Q=r0+72|0,B=e[Q>>2]|0,S=(B|0)==0,S||p2(B),e[Q>>2]=0,b=t+20|0,v=e[b>>2]|0,w=v+o|0,D=t+16|0,y=e[D>>2]|0,x=(w|0)<(y|0),x)a=E+4|0,h=e[a>>2]|0,o0=h,k0=11;else if(M=o<<1,R=v+M|0,e[D>>2]=R,F=E+4|0,T=e[F>>2]|0,N=(T|0)>0,N)if(G=t+8|0,V=e[G>>2]|0,X=e[V>>2]|0,K=R<<2,a0=K7(X,K)|0,W=e[G>>2]|0,e[W>>2]=a0,s0=e[F>>2]|0,J=(s0|0)>1,J)for($0=1;;)if($=e[D>>2]|0,u0=e[G>>2]|0,c0=u0+($0<<2)|0,Z=e[c0>>2]|0,I0=$<<2,g0=K7(Z,I0)|0,f0=e[G>>2]|0,n0=f0+($0<<2)|0,e[n0>>2]=g0,h0=$0+1|0,p0=e[F>>2]|0,C0=(h0|0)<(p0|0),C0)$0=h0;else{o0=p0,k0=11;break}else o0=s0,k0=11;if((k0|0)==11&&(q=(o0|0)>0,q)){for(d0=t+8|0,t0=e[b>>2]|0,j=t+12|0,O0=0;;)if(S0=e[d0>>2]|0,Q0=S0+(O0<<2)|0,E0=e[Q0>>2]|0,y0=E0+(t0<<2)|0,w0=e[j>>2]|0,B0=w0+(O0<<2)|0,e[B0>>2]=y0,_0=O0+1|0,K0=(_0|0)<(o0|0),K0)O0=_0;else{g=j;break}return M0=e[g>>2]|0,M0|0}return m=t+12|0,g=m,M0=e[g>>2]|0,M0|0}function qS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0;if(q0=C,I=t+4|0,E=e[I>>2]|0,L=E+28|0,r0=e[L>>2]|0,l0=(o|0)<1,!l0)return S0=t+20|0,Q0=e[S0>>2]|0,E0=Q0+o|0,y0=t+16|0,w0=e[y0>>2]|0,B0=(E0|0)>(w0|0),B0?($=-131,C=q0,$|0):(e[S0>>2]=E0,_0=t+28|0,K0=e[_0>>2]|0,M0=(K0|0)==0,!M0||(v0=t+48|0,T0=e[v0>>2]|0,N0=E0-T0|0,O0=r0+4|0,k0=e[O0>>2]|0,V0=(N0|0)>(k0|0),!V0)?($=0,C=q0,$|0):(IQ(t),$=0,C=q0,$|0));if(b0=C,C=C+128|0,U0=t+28|0,F0=e[U0>>2]|0,L0=(F0|0)==0,L0&&IQ(t),G0=r0+4|0,Q=e[G0>>2]|0,B=Q*3|0,hQ(t,B)|0,S=t+20|0,b=e[S>>2]|0,v=t+32|0,e[v>>2]=b,w=e[G0>>2]|0,D=w*3|0,y=b+D|0,e[S>>2]=y,x=E+4|0,M=e[x>>2]|0,R=(M|0)>0,!R)return $=0,C=q0,$|0;for(F=t+8|0,T=b,z0=0;;){if(N=(T|0)>64,N?(G=e[G0>>2]|0,V=(T|0)>(G|0),a=V?G:T,X=e[F>>2]|0,K=X+(z0<<2)|0,a0=e[K>>2]|0,h=T-a|0,W=a0+(h<<2)|0,+mQ(W,b0,a,32),s0=e[F>>2]|0,J=s0+(z0<<2)|0,o0=e[J>>2]|0,q=e[v>>2]|0,d0=o0+(q<<2)|0,m=q+-32|0,t0=o0+(m<<2)|0,j=e[S>>2]|0,u0=j-q|0,pQ(b0,t0,32,d0,u0)):(c0=e[F>>2]|0,$0=c0+(z0<<2)|0,Z=e[$0>>2]|0,I0=Z+(T<<2)|0,g0=e[S>>2]|0,f0=g0-T|0,n0=f0<<2,u4(I0|0,0,n0|0)|0),h0=z0+1|0,p0=e[x>>2]|0,C0=(h0|0)<(p0|0),!C0){$=0;break}g=e[v>>2]|0,T=g,z0=h0}return C=q0,$|0}function fQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0;if(ue=C,S=t+4|0,b=e[S>>2]|0,s2=b+28|0,S5=e[s2>>2]|0,a6=t+104|0,R6=e[a6>>2]|0,C6=R6+60|0,B6=e[C6>>2]|0,V6=t+48|0,a9=e[V6>>2]|0,v=t+40|0,G=e[v>>2]|0,d0=S5+(G<<2)|0,n0=e[d0>>2]|0,_0=(n0|0)/2&-1,L0=a9-_0|0,x0=o+104|0,j0=e[x0>>2]|0,S1=t+28|0,q1=e[S1>>2]|0,E2=(q1|0)==0,E2||(f2=t+32|0,P2=e[f2>>2]|0,x5=(P2|0)==-1,x5))return $=0,$|0;y2=ZS(t)|0,y5=(y2|0)==-1;do if(y5){if(z2=e[f2>>2]|0,I3=(z2|0)==0,I3)return $=0,$|0;X3=t+44|0,e[X3>>2]=0,h=X3,V3=0;break}else if(Q3=e[S5>>2]|0,Y3=S5+4|0,U5=e[Y3>>2]|0,$6=(Q3|0)==(U5|0),n3=t+44|0,$6){e[n3>>2]=0,h=n3,V3=0;break}else{e[n3>>2]=y2,h=n3,V3=y2;break}while(!1);if(l3=e[V6>>2]|0,N3=e[v>>2]|0,E6=S5+(N3<<2)|0,k3=e[E6>>2]|0,_3=(k3|0)/4&-1,S3=_3+l3|0,i6=S5+(V3<<2)|0,Z5=e[i6>>2]|0,x3=(Z5|0)/4&-1,d3=S3+x3|0,J3=(Z5|0)/2&-1,d6=d3+J3|0,m3=t+20|0,L6=e[m3>>2]|0,M6=(L6|0)<(d6|0),M6)return $=0,$|0;if(S6=o+84|0,r6=e[S6>>2]|0,h6=(r6|0)==0,!h6)for(w9=r6;b6=w9+4|0,G6=e[b6>>2]|0,X6=e[w9>>2]|0,p2(X6),p2(w9),v6=(G6|0)==0,!v6;)w9=G6;L3=o+80|0,n6=e[L3>>2]|0,o6=(n6|0)==0,o6||(z3=o+68|0,M3=e[z3>>2]|0,K3=o+76|0,e6=e[K3>>2]|0,F6=e6+n6|0,l6=K7(M3,F6)|0,e[z3>>2]=l6,o3=e[L3>>2]|0,K6=e[K3>>2]|0,A3=K6+o3|0,e[K3>>2]=A3,e[L3>>2]=0),c6=o+72|0,e[c6>>2]=0,e[S6>>2]=0,R3=t+36|0,Y6=e[R3>>2]|0,A6=o+24|0,e[A6>>2]=Y6,D6=e[v>>2]|0,U6=o+28|0,e[U6>>2]=D6,t9=e[h>>2]|0,Q6=o+32|0,e[Q6>>2]=t9,e9=(D6|0)==0;do if(e9)if(c9=jS(t)|0,P6=(c9|0)==0,J6=j0+8|0,P6){e[J6>>2]=1;break}else{e[J6>>2]=0;break}else if(G3=(Y6|0)==0,n9=(t9|0)==0,Y9=G3|n9,s9=j0+8|0,Y9){e[s9>>2]=0;break}else{e[s9>>2]=1;break}while(!1);T6=o+64|0,e[T6>>2]=t,i9=t+64|0,_6=i9,O6=_6,U3=e[O6>>2]|0,q6=_6+4|0,d9=q6,o9=e[d9>>2]|0,B9=rs(U3|0,o9|0,1,0)|0,Q9=j6,y9=i9,h9=y9,e[h9>>2]=B9,f9=y9+4|0,H9=f9,e[H9>>2]=Q9,y6=o+56|0,H6=y6,w=H6,e[w>>2]=U3,D=H6+4|0,y=D,e[y>>2]=o9,x=t+56|0,M=x,L=M,R=e[L>>2]|0,F=M+4|0,T=F,N=e[T>>2]|0,V=o+48|0,X=V,K=X,e[K>>2]=R,a0=X+4|0,W=a0,e[W>>2]=N,r0=e[v>>2]|0,s0=S5+(r0<<2)|0,J=e[s0>>2]|0,o0=o+36|0,e[o0>>2]=J,q=j0+4|0,t0=+s[q>>2],j=+s[B6>>2],u0=t0>j,u0?(s[B6>>2]=t0,c0=t0):c0=j,$0=+vb(c0,t),s[B6>>2]=$0,s[q>>2]=$0,l0=b+4|0,Z=e[l0>>2]|0,I0=Z<<2,g0=I0+7|0,f0=g0&-8,h0=e[c6>>2]|0,p0=f0+h0|0,C0=o+76|0,S0=e[C0>>2]|0,Q0=(p0|0)>(S0|0),b0=o+68|0,E0=e[b0>>2]|0,Q0?(y0=(E0|0)==0,y0||(w0=E0,B0=R9(8)|0,K0=e[L3>>2]|0,M0=K0+h0|0,e[L3>>2]=M0,v0=e[S6>>2]|0,T0=B0+4|0,e[T0>>2]=v0,e[B0>>2]=w0,e[S6>>2]=B0),e[C0>>2]=f0,N0=R9(f0)|0,e[b0>>2]=N0,e[c6>>2]=0,g=e[l0>>2]|0,O0=N0,k0=0,G0=g,P0=f0):(O0=E0,k0=h0,G0=Z,P0=S0),U0=O0+k0|0,V0=k0+f0|0,e[c6>>2]=V0,e[o>>2]=U0,F0=G0<<2,z0=F0+7|0,J0=z0&-8,q0=J0+V0|0,Z0=(q0|0)>(P0|0),Z0?(H0=(O0|0)==0,H0||(o1=O0,Y0=R9(8)|0,i1=e[L3>>2]|0,n1=i1+V0|0,e[L3>>2]=n1,d1=e[S6>>2]|0,g1=Y0+4|0,e[g1>>2]=d1,e[Y0>>2]=o1,e[S6>>2]=Y0),e[C0>>2]=J0,m1=R9(J0)|0,e[b0>>2]=m1,e[c6>>2]=0,m=e[l0>>2]|0,u1=m1,A1=0,s1=m,V5=J0):(u1=O0,A1=V0,s1=G0,V5=P0),h1=u1+A1|0,c1=A1+J0|0,e[c6>>2]=c1,e[j0>>2]=h1,$1=(s1|0)>0;e:do if($1)for(E1=t+8|0,k1=c1,M1=V5,D1=u1,A9=0;;){if(I1=e[o0>>2]|0,Q1=I1+L0|0,p1=Q1<<2,B1=p1+7|0,w1=B1&-8,v1=w1+k1|0,L1=(v1|0)>(M1|0),L1?(R1=(D1|0)==0,R1||(F1=D1,U1=R9(8)|0,b1=e[L3>>2]|0,P1=b1+k1|0,e[L3>>2]=P1,Z1=e[S6>>2]|0,G1=U1+4|0,e[G1>>2]=Z1,e[U1>>2]=F1,e[S6>>2]=U1),e[C0>>2]=w1,x1=R9(w1)|0,e[b0>>2]=x1,e[c6>>2]=0,H1=x1,Y1=0):(H1=D1,Y1=k1),z1=H1+Y1|0,V1=Y1+w1|0,e[c6>>2]=V1,X1=e[j0>>2]|0,n2=X1+(A9<<2)|0,e[n2>>2]=z1,j1=e[j0>>2]|0,O1=j1+(A9<<2)|0,c2=e[O1>>2]|0,W1=e[E1>>2]|0,h2=W1+(A9<<2)|0,a2=e[h2>>2]|0,ge(c2|0,a2|0,p1|0)|0,K1=e[j0>>2]|0,d2=K1+(A9<<2)|0,$2=e[d2>>2]|0,i2=$2+(L0<<2)|0,l2=e[o>>2]|0,r2=l2+(A9<<2)|0,e[r2>>2]=i2,A2=A9+1|0,e2=e[l0>>2]|0,o2=(A2|0)<(e2|0),!o2)break e;I=e[c6>>2]|0,E=e[C0>>2]|0,Q=e[b0>>2]|0,k1=I,M1=E,D1=Q,A9=A2}while(!1);if(t2=e[f2>>2]|0,k2=(t2|0)==0,!k2&&(D2=e[V6>>2]|0,S2=(D2|0)<(t2|0),!S2))return e[f2>>2]=-1,Q2=o+44|0,e[Q2>>2]=1,$=1,$|0;if(N2=S5+4|0,L2=e[N2>>2]|0,U2=(L2|0)/2&-1,m2=d3-U2|0,W2=(m2|0)>0,!W2)return $=1,$|0;if(V2=e[R6>>2]|0,XS(V2,m2),G2=e[m3>>2]|0,q2=G2-m2|0,e[m3>>2]=q2,Z2=e[l0>>2]|0,A5=(Z2|0)>0,A5&&(H2=t+8|0,N1=e[H2>>2]|0,t5=e[N1>>2]|0,T5=t5+(m2<<2)|0,i5=q2<<2,oA(t5|0,T5|0,i5|0)|0,j2=e[l0>>2]|0,I5=(j2|0)>1,I5))for(g5=1;B=e[m3>>2]|0,b5=e[H2>>2]|0,Y5=b5+(g5<<2)|0,b2=e[Y5>>2]|0,B5=b2+(m2<<2)|0,s5=B<<2,oA(b2|0,B5|0,s5|0)|0,R2=g5+1|0,M2=e[l0>>2]|0,Q5=(R2|0)<(M2|0),Q5;)g5=R2;return N5=e[v>>2]|0,e[R3>>2]=N5,m5=e[h>>2]|0,e[v>>2]=m5,e[V6>>2]=U2,L5=e[f2>>2]|0,q5=(L5|0)==0,q5?(f3=(m2|0)<0,y3=f3<<31>>31,q3=x,X5=q3,b3=e[X5>>2]|0,t3=q3+4|0,s6=t3,T3=e[s6>>2]|0,H3=rs(b3|0,T3|0,m2|0,y3|0)|0,c3=j6,g3=x,u3=g3,e[u3>>2]=H3,z5=g3+4|0,H5=z5,e[H5>>2]=c3,$=1,$|0):(M5=L5-m2|0,Y2=(M5|0)<1,a=Y2?-1:M5,e[f2>>2]=a,p5=(a|0)>(U2|0),p5?(c5=(m2|0)<0,F2=c5<<31>>31,v5=x,J5=v5,i3=e[J5>>2]|0,E5=v5+4|0,h3=E5,K5=e[h3>>2]|0,r3=rs(i3|0,K5|0,m2|0,F2|0)|0,a3=j6,B3=x,G5=B3,e[G5>>2]=r3,W5=B3+4|0,D3=W5,e[D3>>2]=a3,$=1,$|0):($5=a+m2|0,u5=$5-U2|0,T1=(u5|0)<0,D5=T1<<31>>31,d5=x,l5=d5,X2=e[l5>>2]|0,g2=d5+4|0,w5=g2,r5=e[w5>>2]|0,a5=rs(X2|0,r5|0,u5|0,D5|0)|0,h5=j6,f5=x,n5=f5,e[n5>>2]=a5,R5=f5+4|0,e5=R5,e[e5>>2]=h5,$=1,$|0))}function HS(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0;if(n5=C,Q=o+28|0,B=e[Q>>2]|0,v1=(B|0)==0,v1||(Z1=B+8|0,O1=e[Z1>>2]|0,l2=(O1|0)<1,l2)||(N2=e[B>>2]|0,H2=(N2|0)<64,H2)||(b2=B+4|0,M5=e[b2>>2]|0,S=(M5|0)<(N2|0),S))return $=1,$|0;T=B+3656|0,o0=e[T>>2]|0,z2=t,R5=z2+112|0;do e[z2>>2]=0,z2=z2+4|0;while((z2|0)<(R5|0));g0=ce(1,136)|0,w0=t+104|0,e[w0>>2]=g0,V0=t+4|0,e[V0>>2]=o,Y0=e[Z1>>2]|0,s1=Y0+-1|0,B1=q8(s1)|0,w1=g0+44|0,e[w1>>2]=B1,k1=ce(1,4)|0,L1=g0+12|0,e[L1>>2]=k1,M1=ce(1,4)|0,S1=g0+16|0,e[S1>>2]=M1,D1=ce(1,20)|0,e[k1>>2]=D1,R1=ce(1,20)|0,e[M1>>2]=R1,F1=e[B>>2]|0,U1=F1>>o0,yC(D1,U1),b1=e[S1>>2]|0,P1=e[b1>>2]|0,G1=e[b2>>2]|0,x1=G1>>o0,yC(P1,x1),z1=e[B>>2]|0,q1=q8(z1)|0,H1=q1+-7|0,Y1=g0+4|0,e[Y1>>2]=H1,V1=e[b2>>2]|0,X1=q8(V1)|0,n2=X1+-7|0,j1=g0+8|0,e[j1>>2]=n2,c2=(a|0)==0;e:do if(c2){if(y2=B+2848|0,Q5=e[y2>>2]|0,N5=(Q5|0)==0,N5&&(m5=B+24|0,L5=e[m5>>2]|0,q5=ce(L5,56)|0,e[y2>>2]=q5,Y2=e[m5>>2]|0,p5=(Y2|0)>0,p5)){for(Q1=Y2,w5=0;;){if($5=(B+1824|0)+(w5<<2)|0,u5=e[$5>>2]|0,y5=(u5|0)==0,y5){T1=Q1;break}if(d5=e[y2>>2]|0,l5=d5+(w5*56|0)|0,X2=Vb(l5,u5)|0,b=(X2|0)==0,!b){f5=20;break}if(v=e[$5>>2]|0,vC(v),e[$5>>2]=0,w=w5+1|0,D=e[m5>>2]|0,y=(w|0)<(D|0),y)Q1=D,w5=w;else break e}if((f5|0)==20&&(I=e[m5>>2]|0,T1=I),D5=(T1|0)>0,D5)for(p1=T1,h5=0;A1=(B+1824|0)+(h5<<2)|0,c1=e[A1>>2]|0,$1=(c1|0)==0,$1?I1=p1:(vC(c1),e[A1>>2]=0,E=e[m5>>2]|0,I1=E),j0=h5+1|0,E1=(j0|0)<(I1|0),E1;)p1=I1,h5=j0;return dQ(t),$=-1,$|0}}else{if(W1=g0+20|0,h2=e[B>>2]|0,xQ(W1,h2),s2=g0+32|0,E2=e[b2>>2]|0,xQ(s2,E2),a2=B+2848|0,K1=e[a2>>2]|0,d2=(K1|0)==0,d2&&($2=B+24|0,i2=e[$2>>2]|0,r2=ce(i2,56)|0,e[a2>>2]=r2,A2=e[$2>>2]|0,e2=(A2|0)>0,e2&&(o2=B+1824|0,f2=e[o2>>2]|0,_Q(r2,f2)|0,t2=e[$2>>2]|0,k2=(t2|0)>1,k2)))for(S2=1;g=e[a2>>2]|0,D2=g+(S2*56|0)|0,Q2=(B+1824|0)+(S2<<2)|0,L2=e[Q2>>2]|0,_Q(D2,L2)|0,U2=S2+1|0,m2=e[$2>>2]|0,W2=(U2|0)<(m2|0),W2;)S2=U2;P2=B+28|0,V2=e[P2>>2]|0,G2=ce(V2,52)|0,q2=g0+56|0,e[q2>>2]=G2,Z2=e[P2>>2]|0,A5=(Z2|0)>0;t:do if(A5)for(N1=B+2868|0,t5=o+8|0,i5=G2,g2=0;;){if(T5=i5+(g2*52|0)|0,x5=(B+2852|0)+(g2<<2)|0,j2=e[x5>>2]|0,I5=e[j2>>2]|0,b5=B+(I5<<2)|0,Y5=e[b5>>2]|0,g5=(Y5|0)/2&-1,B5=e[t5>>2]|0,wb(T5,j2,N1,g5,B5),s5=g2+1|0,R2=e[P2>>2]|0,M2=(s5|0)<(R2|0),!M2)break t;h=e[q2>>2]|0,i5=h,g2=s5}while(!1);e[t>>2]=1}while(!1);if(x=e[b2>>2]|0,M=t+16|0,e[M>>2]=x,L=o+4|0,R=e[L>>2]|0,F=R<<2,N=R9(F)|0,G=t+8|0,e[G>>2]=N,V=R9(F)|0,X=t+12|0,e[X>>2]=V,K=(R|0)>0,K&&(a0=ce(x,4)|0,e[N>>2]=a0,W=(R|0)>1,W))for(J=1;m=e[G>>2]|0,r0=ce(x,4)|0,s0=m+(J<<2)|0,e[s0>>2]=r0,q=J+1|0,d0=(q|0)<(R|0),d0;)J=q;if(t0=t+36|0,e[t0>>2]=0,j=t+40|0,e[j>>2]=0,u0=e[b2>>2]|0,c0=(u0|0)/2&-1,$0=t+48|0,e[$0>>2]=c0,l0=t+20|0,e[l0>>2]=c0,Z=B+16|0,I0=e[Z>>2]|0,f0=ce(I0,4)|0,n0=g0+48|0,e[n0>>2]=f0,h0=B+20|0,p0=e[h0>>2]|0,C0=ce(p0,4)|0,S0=g0+52|0,e[S0>>2]=C0,Q0=e[Z>>2]|0,b0=(Q0|0)>0,b0)for(r5=0;B0=(B+800|0)+(r5<<2)|0,_0=e[B0>>2]|0,K0=25640+(_0<<2)|0,M0=e[K0>>2]|0,v0=M0+8|0,T0=e[v0>>2]|0,N0=(B+1056|0)+(r5<<2)|0,U0=e[N0>>2]|0,O0=mi[T0&15](t,U0)|0,k0=e[n0>>2]|0,F0=k0+(r5<<2)|0,e[F0>>2]=O0,L0=r5+1|0,G0=e[Z>>2]|0,z0=(L0|0)<(G0|0),z0;)r5=L0;if(E0=e[h0>>2]|0,y0=(E0|0)>0,y0)a5=0;else return $=0,$|0;for(;;)if(J0=(B+1312|0)+(a5<<2)|0,q0=e[J0>>2]|0,Z0=25648+(q0<<2)|0,P0=e[Z0>>2]|0,H0=P0+8|0,o1=e[H0>>2]|0,i1=(B+1568|0)+(a5<<2)|0,x0=e[i1>>2]|0,n1=mi[o1&15](t,x0)|0,d1=e[S0>>2]|0,g1=d1+(a5<<2)|0,e[g1>>2]=n1,m1=a5+1|0,h1=e[h0>>2]|0,u1=(m1|0)<(h1|0),u1)a5=m1;else{$=0;break}return $|0}function IQ(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0;if(M0=C,C=C+64|0,g=M0,h=t+20|0,y=e[h>>2]|0,K=y<<2,o=K,u0=C,C=C+((1*o|0)+15&-16)|0,C0=t+28|0,e[C0>>2]=1,Q0=t+48|0,b0=e[Q0>>2]|0,E0=y-b0|0,y0=(E0|0)>32,!y0){C=M0;return}if(m=t+4|0,I=e[m>>2]|0,E=I+4|0,Q=e[E>>2]|0,B=(Q|0)>0,!B){C=M0;return}for(S=t+8|0,b=y,w0=0;;){if(v=(b|0)>0,v)for(w=e[S>>2]|0,D=w+(w0<<2)|0,x=e[D>>2]|0,B0=0;M=B0^-1,L=b+M|0,R=x+(L<<2)|0,F=e[R>>2]|0,T=u0+(B0<<2)|0,e[T>>2]=F,N=B0+1|0,G=(b|0)>(N|0),G;)B0=N;if(V=e[Q0>>2]|0,X=b-V|0,+mQ(u0,g,X,16),a0=e[h>>2]|0,W=e[Q0>>2]|0,a=a0-W|0,r0=u0+(a<<2)|0,$=a+-16|0,s0=u0+($<<2)|0,pQ(g,s0,16,r0,W),J=e[h>>2]|0,o0=(J|0)>0,o0)for(q=e[S>>2]|0,d0=q+(w0<<2)|0,t0=e[d0>>2]|0,_0=0;j=u0+(_0<<2)|0,c0=e[j>>2]|0,$0=_0^-1,l0=J+$0|0,Z=t0+(l0<<2)|0,e[Z>>2]=c0,I0=_0+1|0,g0=(J|0)>(I0|0),g0;)_0=I0;if(f0=w0+1|0,n0=e[m>>2]|0,h0=n0+4|0,p0=e[h0>>2]|0,S0=(f0|0)<(p0|0),S0)b=J,w0=f0;else break}C=M0}function YS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0;A2=C,O2(o,5653314,24),m=e[t>>2]|0,O2(o,m,16),I=t+4|0,G=e[I>>2]|0,O2(o,G,24),d0=e[I>>2]|0,n0=(d0|0)>1;e:do if(n0)for(_0=t+8|0,L0=e[_0>>2]|0,g=f[L0>>0]|0,x0=g,O1=1;;){if(j0=x0<<24>>24==0,j0){j1=O1;break e}if(S1=L0+O1|0,E=f[S1>>0]|0,D=E<<24>>24>24,D){j1=O1;break e}if(y=O1+1|0,x=(y|0)<(d0|0),x)x0=E,O1=y;else{j1=y;break}}else j1=1;while(!1);M=(j1|0)==(d0|0);e:do if(M){if(O2(o,1,1),L=t+8|0,R=e[L>>2]|0,F=f[R>>0]|0,T=F<<24>>24,N=T+-1|0,O2(o,N,5),V=e[I>>2]|0,X=(V|0)>1,X)for(w=V,H1=0,W1=1;;){if(K=e[L>>2]|0,a0=K+W1|0,W=f[a0>>0]|0,r0=W1+-1|0,s0=K+r0|0,J=f[s0>>0]|0,o0=W<<24>>24>J<<24>>24,o0)for(q=J<<24>>24,t0=W<<24>>24,c0=w,Y1=H1,$2=q;;)if(j=W1-Y1|0,u0=c0-Y1|0,$0=q8(u0)|0,O2(o,j,$0),l0=$2+1|0,n2=(l0|0)==(t0|0),h=e[I>>2]|0,n2){g0=h,V1=W1;break}else c0=h,Y1=W1,$2=l0;else g0=w,V1=H1;if(Z=W1+1|0,I0=(Z|0)<(g0|0),I0)w=g0,H1=V1,W1=Z;else{$=g0,q1=V1,c2=Z;break}}else $=V,q1=0,c2=1;f0=c2-q1|0,h0=$-q1|0,p0=q8(h0)|0,O2(o,f0,p0)}else{O2(o,0,1),C0=e[I>>2]|0,S0=(C0|0)>0;t:do if(S0)for(Q0=t+8|0,b0=e[Q0>>2]|0,s2=0;;){if(E0=b0+s2|0,y0=f[E0>>0]|0,w0=y0<<24>>24==0,w0){h2=s2;break t}if(B0=s2+1|0,K0=(B0|0)<(C0|0),K0)s2=B0;else{h2=B0;break}}else h2=0;while(!1);if(M0=(h2|0)==(C0|0),M0){if(O2(o,0,1),v0=e[I>>2]|0,T0=(v0|0)>0,!T0)break;for(N0=t+8|0,E2=0;;)if(U0=e[N0>>2]|0,O0=U0+E2|0,k0=f[O0>>0]|0,V0=k0<<24>>24,F0=V0+-1|0,O2(o,F0,5),G0=E2+1|0,z0=e[I>>2]|0,J0=(G0|0)<(z0|0),J0)E2=G0;else break e}if(O2(o,1,1),q0=e[I>>2]|0,Z0=(q0|0)>0,Z0)for(P0=t+8|0,a2=0;H0=e[P0>>2]|0,o1=H0+a2|0,Y0=f[o1>>0]|0,i1=Y0<<24>>24==0,i1?O2(o,0,1):(O2(o,1,1),n1=e[P0>>2]|0,d1=n1+a2|0,g1=f[d1>>0]|0,m1=g1<<24>>24,h1=m1+-1|0,O2(o,h1,5)),u1=a2+1|0,A1=e[I>>2]|0,c1=(u1|0)<(A1|0),c1;)a2=u1}while(!1);if(s1=t+12|0,$1=e[s1>>2]|0,O2(o,$1,4),E1=e[s1>>2]|0,(E1|0)==2|(E1|0)==1)r2=28;else if(E1|0)return a=-1,a|0;do if((r2|0)==28){if(I1=t+32|0,Q1=e[I1>>2]|0,p1=(Q1|0)==0,p1)return a=-1,a|0;if(B1=t+16|0,w1=e[B1>>2]|0,O2(o,w1,32),v1=t+20|0,k1=e[v1>>2]|0,O2(o,k1,32),L1=t+24|0,M1=e[L1>>2]|0,D1=M1+-1|0,O2(o,D1,4),R1=t+28|0,F1=e[R1>>2]|0,O2(o,F1,1),U1=e[s1>>2]|0,(U1|0)==1)b1=qb(t)|0,l2=b1;else if((U1|0)==2)P1=e[I>>2]|0,Z1=e[t>>2]|0,G1=o5(Z1,P1)|0,l2=G1;else break;if(x1=(l2|0)>0,x1)for(K1=0;z1=e[I1>>2]|0,Q=z1+(K1<<2)|0,B=e[Q>>2]|0,d2=(B|0)>-1,i2=0-B|0,S=d2?B:i2,b=e[L1>>2]|0,O2(o,S,b),v=K1+1|0,X1=(v|0)==(l2|0),!X1;)K1=v}while(!1);return a=0,a|0}function Gu(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0;return X=C,g=(o|0)<0,g||(h=t+12|0,y=e[h>>2]|0,M=y+4|0,L=e[M>>2]|0,R=(L|0)>(o|0),!R)?($=0,$|0):(F=t+20|0,T=e[F>>2]|0,N=T+(o<<2)|0,G=e[N>>2]|0,m=y+8|0,I=e[m>>2]|0,E=I+o|0,Q=f[E>>0]|0,B=Q<<24>>24,O2(a,G,B),S=e[h>>2]|0,b=S+8|0,v=e[b>>2]|0,w=v+o|0,D=f[w>>0]|0,x=D<<24>>24,$=x,$|0)}function sE(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0;return v=C,$=t+8|0,g=e[$>>2]|0,h=(g|0)>0,!h||(m=Uu(t,o)|0,I=(m|0)>-1,!I)?(a=-1,a|0):(E=t+24|0,Q=e[E>>2]|0,B=Q+(m<<2)|0,S=e[B>>2]|0,a=S,a|0)}function VS(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0;if(n0=C,E=t+8|0,Q=e[E>>2]|0,R=(Q|0)>0,!R)return g=0,C=n0,g|0;s0=e[t>>2]|0,o0=($|0)/(s0|0)&-1,q=o0<<2,h=q,d0=C,C=C+((1*h|0)+15&-16)|0,t0=(o0|0)>0;e:do if(t0){for(j=t+16|0,l0=0;;){if(N=Uu(t,a)|0,G=(N|0)==-1,G){g=-1;break}if(V=e[j>>2]|0,X=e[t>>2]|0,K=o5(X,N)|0,a0=V+(K<<2)|0,W=d0+(l0<<2)|0,e[W>>2]=a0,r0=l0+1|0,J=(r0|0)<(o0|0),J)l0=r0;else{u0=X;break e}}return C=n0,g|0}else u0=s0;while(!1);if(m=(u0|0)<1,I=t0^1,c0=m|I,c0)return g=0,C=n0,g|0;for(Z=0,g0=0;;){for(I0=0;v=d0+(I0<<2)|0,w=e[v>>2]|0,D=w+(Z<<2)|0,y=+s[D>>2],x=I0+g0|0,M=o+(x<<2)|0,L=+s[M>>2],F=L+y,s[M>>2]=F,T=I0+1|0,$0=(T|0)==(o0|0),!$0;)I0=T;if(B=Z+1|0,S=g0+o0|0,b=(B|0)<(u0|0),b)Z=B,g0=S;else{g=0;break}}return C=n0,g|0}function JS(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0;if(t5=C,K=t+8|0,a0=e[K>>2]|0,f0=(a0|0)>0,!f0)return g=0,g|0;if(B0=e[t>>2]|0,F0=(B0|0)>8,F0){if(M1=($|0)>0,!M1)return g=0,g|0;for(z1=t+16|0,e2=0;;){if(t0=Uu(t,a)|0,j=(t0|0)==-1,j){g=-1,N1=29;break}if(u0=e[z1>>2]|0,c0=e[t>>2]|0,$0=o5(c0,t0)|0,l0=(c0|0)>0,l0){for(Z=(c0|0)>1,H2=Z?c0:1,f2=e2,m2=0;I0=m2+1|0,X=m2+$0|0,g0=u0+(X<<2)|0,n0=+s[g0>>2],h0=f2+1|0,p0=o+(f2<<2)|0,C0=+s[p0>>2],S0=C0+n0,s[p0>>2]=S0,Q0=(I0|0)<(c0|0),Q0;)f2=h0,m2=I0;h2=e2+H2|0,o2=h2}else o2=e2;if(W=(o2|0)<($|0),W)e2=o2;else{g=0,N1=29;break}}if((N1|0)==29)return g|0}if(i1=t+16|0,$1=($|0)>0,$1)t2=0;else return g=0,g|0;e:for(;;){t:for(;;){if(J=Uu(t,a)|0,o0=(J|0)==-1,o0){g=-1,N1=29;break e}switch(q=e[i1>>2]|0,d0=e[t>>2]|0,d0|0){case 4:{B=J,y=q,N1=19;break t}case 3:{S=J,x=q,N1=21;break t}case 7:{I=J,v=q,N1=13;break t}case 6:{E=J,w=q,N1=15;break t}case 8:{h=q,m=J,N1=12;break t}case 5:{Q=J,D=q,N1=17;break t}case 1:{K1=J,$2=q,U2=t2,A5=0;break t}case 2:{b=J,M=q,N1=23;break t}default:}}if((N1|0)==12?(N1=0,b0=m<<3,E0=h+(b0<<2)|0,y0=+s[E0>>2],w0=t2+1|0,_0=o+(t2<<2)|0,K0=+s[_0>>2],M0=K0+y0,s[_0>>2]=M0,N0=b0,O0=h,k2=w0,W2=1,N1=14):(N1|0)==13?(N1=0,v0=I*7|0,N0=v0,O0=v,k2=t2,W2=0,N1=14):(N1|0)==15?(N1=0,J0=E*6|0,Z0=J0,H0=w,D2=t2,P2=0,N1=16):(N1|0)==17?(N1=0,g1=Q*5|0,h1=g1,A1=D,S2=t2,V2=0,N1=18):(N1|0)==19?(N1=0,Q1=B<<2,B1=Q1,v1=y,Q2=t2,G2=0,N1=20):(N1|0)==21?(N1=0,F1=S*3|0,b1=F1,Z1=x,N2=t2,q2=0,N1=22):(N1|0)==23&&(N1=0,V1=b<<1,n2=V1,O1=M,L2=t2,Z2=0,N1=24),(N1|0)==14&&(N1=0,T0=W2+1|0,V=W2+N0|0,U0=O0+(V<<2)|0,k0=+s[U0>>2],V0=k2+1|0,L0=o+(k2<<2)|0,G0=+s[L0>>2],z0=G0+k0,s[L0>>2]=z0,Z0=N0,H0=O0,D2=V0,P2=T0,N1=16),(N1|0)==16&&(N1=0,q0=P2+1|0,G=P2+Z0|0,P0=H0+(G<<2)|0,o1=+s[P0>>2],Y0=D2+1|0,x0=o+(D2<<2)|0,n1=+s[x0>>2],d1=n1+o1,s[x0>>2]=d1,h1=Z0,A1=H0,S2=Y0,V2=q0,N1=18),(N1|0)==18&&(N1=0,m1=V2+1|0,N=V2+h1|0,u1=A1+(N<<2)|0,c1=+s[u1>>2],s1=S2+1|0,j0=o+(S2<<2)|0,E1=+s[j0>>2],I1=E1+c1,s[j0>>2]=I1,B1=h1,v1=A1,Q2=s1,G2=m1,N1=20),(N1|0)==20&&(N1=0,p1=G2+1|0,T=G2+B1|0,w1=v1+(T<<2)|0,k1=+s[w1>>2],L1=Q2+1|0,S1=o+(Q2<<2)|0,D1=+s[S1>>2],R1=D1+k1,s[S1>>2]=R1,b1=B1,Z1=v1,N2=L1,q2=p1,N1=22),(N1|0)==22&&(N1=0,U1=q2+1|0,F=q2+b1|0,P1=Z1+(F<<2)|0,G1=+s[P1>>2],x1=N2+1|0,q1=o+(N2<<2)|0,H1=+s[q1>>2],Y1=H1+G1,s[q1>>2]=Y1,n2=b1,O1=Z1,L2=x1,Z2=U1,N1=24),(N1|0)==24&&(N1=0,X1=Z2+1|0,R=Z2+n2|0,j1=O1+(R<<2)|0,c2=+s[j1>>2],W1=L2+1|0,s2=o+(L2<<2)|0,E2=+s[s2>>2],a2=E2+c2,s[s2>>2]=a2,K1=n2,$2=O1,U2=W1,A5=X1),L=A5+K1|0,d2=$2+(L<<2)|0,i2=+s[d2>>2],l2=U2+1|0,r2=o+(U2<<2)|0,A2=+s[r2>>2],r0=A2+i2,s[r2>>2]=r0,s0=(l2|0)<($|0),s0)t2=l2;else{g=0,N1=29;break}}return(N1|0)==29?g|0:0}function zS(t,o,a,$,g,h){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0;var m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0;if(f0=C,B=t+8|0,S=e[B>>2]|0,T=(S|0)>0,!T||(r0=(a|0)/($|0)&-1,s0=h+a|0,J=(s0|0)/($|0)&-1,o0=(r0|0)<(J|0),!o0))return I=0,I|0;for(q=t+16|0,j=0,$0=r0;;){if(t0=Uu(t,g)|0,b=(t0|0)==-1,b){I=-1,g0=8;break}if(v=e[q>>2]|0,w=e[t>>2]|0,D=o5(w,t0)|0,y=(w|0)>0,y)for(c0=j,Z=$0,I0=0;;)if(Q=I0+D|0,x=v+(Q<<2)|0,M=+s[x>>2],L=c0+1|0,R=o+(c0<<2)|0,F=e[R>>2]|0,N=F+(Z<<2)|0,G=+s[N>>2],V=G+M,s[N>>2]=V,X=(L|0)==($|0),K=X&1,E=K+Z|0,m=X?0:L,a0=I0+1|0,W=(a0|0)<(w|0),W)c0=m,Z=E,I0=a0;else{u0=m,l0=E;break}else u0=j,l0=$0;if(d0=(l0|0)<(J|0),d0)j=u0,$0=l0;else{I=0,g0=8;break}}return(g0|0)==8?I|0:0}function Uu(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0;I1=C,g=t+40|0,h=e[g>>2]|0,y=t+36|0,K=e[y>>2]|0,u0=EC(o,K)|0,C0=(u0|0)>-1;do if(C0){if(v0=t+32|0,J0=e[v0>>2]|0,d1=J0+(u0<<2)|0,g1=e[d1>>2]|0,m=(g1|0)<0,m){I=g1>>>15,E=I&32767,Q=t+8|0,B=e[Q>>2]|0,S=g1&32767,b=B-S|0,m1=b,u1=E;break}return v=g1+-1|0,w=t+28|0,D=e[w>>2]|0,x=D+v|0,M=f[x>>0]|0,L=M<<24>>24,CC(o,L),a=v,a|0}else R=t+8|0,F=e[R>>2]|0,m1=F,u1=0;while(!1);if(T=EC(o,h)|0,N=(T|0)<0,G=(h|0)>1,V=N&G,V)for(j0=h;;)if(X=j0+-1|0,a0=EC(o,X)|0,W=(a0|0)<0,r0=(X|0)>1,s0=W&r0,s0)j0=X;else{$=W,s1=a0,$1=X;break}else $=N,s1=T,$1=h;if($)return a=-1,a|0;if(J=s1>>>16,o0=s1<<16,q=J|o0,d0=q>>>8,t0=d0&16711935,j=q<<8,c0=j&-16711936,$0=t0|c0,l0=$0>>>4,Z=l0&252645135,I0=$0<<4,g0=I0&-252645136,f0=Z|g0,n0=f0>>>2,h0=n0&858993459,p0=f0<<2,S0=p0&-858993460,Q0=h0|S0,b0=Q0>>>1,E0=b0&1431655765,y0=Q0<<1,w0=y0&-1431655766,B0=E0|w0,_0=m1-u1|0,K0=(_0|0)>1,K0)for(M0=t+20|0,T0=e[M0>>2]|0,U0=_0,h1=m1,c1=u1;;)if(N0=U0>>1,O0=N0+c1|0,k0=T0+(O0<<2)|0,V0=e[k0>>2]|0,F0=V0>>>0>B0>>>0,L0=F0?0:N0,G0=L0+c1|0,z0=F0?N0:0,q0=h1-z0|0,Z0=q0-G0|0,P0=(Z0|0)>1,P0)U0=Z0,h1=q0,c1=G0;else{A1=G0;break}else A1=u1;return H0=t+28|0,o1=e[H0>>2]|0,Y0=o1+A1|0,i1=f[Y0>>0]|0,x0=i1<<24>>24,n1=(x0|0)>($1|0),n1?(CC(o,$1),a=-1,a|0):(CC(o,x0),a=A1,a|0)}function KS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0;for(d1=C,Q=o+28|0,B=e[Q>>2]|0,F=o+4|0,J=e[F>>2]|0,I0=t+4|0,e[I0>>2]=128,y0=t+8|0,e[y0>>2]=64,k0=B+2932|0,J0=e[k0>>2]|0,q0=t+12|0,e[q0>>2]=J0,e[t>>2]=J,Z0=t+164|0,e[Z0>>2]=128,S=B+4|0,b=e[S>>2]|0,v=(b|0)/2&-1,w=t+176|0,e[w>>2]=v,D=ce(128,4)|0,y=t+36|0,e[y>>2]=D,x=t+16|0,yC(x,128),M=e[y>>2]|0,Y0=0;L=+(Y0|0),R=L*.024736950028266088,T=+Hn(+R),N=T,G=M+(Y0<<2)|0,V=N*N,s[G>>2]=V,X=Y0+1|0,o1=(X|0)==128,!o1;)Y0=X;for(K=t+40|0,e[K>>2]=2,a0=t+44|0,e[a0>>2]=4,W=t+56|0,e[W>>2]=4,r0=t+60|0,e[r0>>2]=5,s0=t+72|0,e[s0>>2]=6,o0=t+76|0,e[o0>>2]=6,q=t+88|0,e[q>>2]=9,d0=t+92|0,e[d0>>2]=8,t0=t+104|0,e[t0>>2]=13,j=t+108|0,e[j>>2]=8,u0=t+120|0,e[u0>>2]=17,c0=t+124|0,e[c0>>2]=8,$0=t+136|0,e[$0>>2]=22,l0=t+140|0,e[l0>>2]=8,g0=4,x0=0;;){if(Z=g0<<2,f0=R9(Z)|0,n0=((t+40|0)+(x0<<4)|0)+8|0,e[n0>>2]=f0,h0=(g0|0)>0,h0){for(p0=+(g0|0),C0=((t+40|0)+(x0<<4)|0)+12|0,E=+s[C0>>2],M0=E,i1=0;;)if(S0=+(i1|0),Q0=S0+.5,b0=Q0/p0,E0=b0*3.141592653589793,w0=+Hn(+E0),B0=w0,_0=f0+(i1<<2)|0,s[_0>>2]=B0,K0=M0+B0,v0=i1+1|0,P0=(v0|0)==(g0|0),P0){a=K0;break}else M0=K0,i1=v0;s[C0>>2]=a,m=C0,N0=a}else g=((t+40|0)+(x0<<4)|0)+12|0,I=+s[g>>2],m=g,N0=I;if(T0=1/N0,s[m>>2]=T0,U0=x0+1|0,H0=(U0|0)==7,H0)break;$=((t+40|0)+(U0<<4)|0)+4|0,h=e[$>>2]|0,g0=h,x0=U0}O0=J*7|0,V0=ce(O0,144)|0,F0=t+152|0,e[F0>>2]=V0,L0=e[Z0>>2]|0,G0=ce(L0,4)|0,z0=t+160|0,e[z0>>2]=G0}function WS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0;N=C,o=t+16|0,wC(o),a=t+48|0,v=e[a>>2]|0,p2(v),D=t+64|0,y=e[D>>2]|0,p2(y),x=t+80|0,M=e[x>>2]|0,p2(M),L=t+96|0,R=e[L>>2]|0,p2(R),F=t+112|0,$=e[F>>2]|0,p2($),g=t+128|0,h=e[g>>2]|0,p2(h),m=t+144|0,I=e[m>>2]|0,p2(I),E=t+36|0,Q=e[E>>2]|0,p2(Q),B=t+152|0,S=e[B>>2]|0,p2(S),b=t+160|0,w=e[b>>2]|0,p2(w),u4(t|0,0,180)|0}function ZS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0;if(X1=C,h=t+4|0,m=e[h>>2]|0,R=m+28|0,s0=e[R>>2]|0,Z=s0+2868|0,E0=t+104|0,O0=e[E0>>2]|0,H0=e[O0>>2]|0,A1=H0+168|0,v1=e[A1>>2]|0,I=H0+8|0,S=e[I>>2]|0,b=(v1|0)/(S|0)&-1,v=t+20|0,w=e[v>>2]|0,D=(w|0)/(S|0)&-1,y=D+-4|0,x=(b|0)<0,o=x?0:b,M=D+2|0,L=H0+164|0,F=e[L>>2]|0,T=(M|0)>(F|0),T&&(e[L>>2]=M,N=H0+160|0,G=e[N>>2]|0,V=M<<2,X=K7(G,V)|0,e[N>>2]=X),K=(o|0)<(y|0),K)for(a0=H0+156|0,W=H0+160|0,r0=t+8|0,J=H0+40|0,o0=H0+152|0,x1=o;;){if(q=e[a0>>2]|0,d0=q+1|0,t0=(q|0)>23,$=t0?24:d0,e[a0>>2]=$,j=e[H0>>2]|0,u0=(j|0)>0,u0){for(G1=0,Y1=0;;)if(I0=e[r0>>2]|0,g0=I0+(G1<<2)|0,f0=e[g0>>2]|0,n0=e[I>>2]|0,h0=o5(n0,x1)|0,p0=f0+(h0<<2)|0,C0=e[o0>>2]|0,S0=G1*7|0,Q0=C0+(S0*144|0)|0,b0=eb(H0,Z,p0,J,Q0)|0,y0=b0|Y1,w0=G1+1|0,B0=e[H0>>2]|0,_0=(w0|0)<(B0|0),_0)G1=w0,Y1=y0;else{g=y0;break}K0=x1+2|0,M0=e[W>>2]|0,v0=M0+(K0<<2)|0,e[v0>>2]=0,T0=g&1,N0=(T0|0)==0,N0||(U0=M0+(x1<<2)|0,e[U0>>2]=1,k0=x1+1|0,V0=M0+(k0<<2)|0,e[V0>>2]=1),F0=g&2,L0=(F0|0)==0,L0||(G0=M0+(x1<<2)|0,e[G0>>2]=1,z0=(x1|0)>0,z0&&(J0=x1+-1|0,q0=M0+(J0<<2)|0,e[q0>>2]=1)),Z0=g&4,P0=(Z0|0)==0,P0||(e[a0>>2]=-1)}else c0=x1+2|0,$0=e[W>>2]|0,l0=$0+(c0<<2)|0,e[l0>>2]=0;if(o1=x1+1|0,Z1=(o1|0)==(y|0),Z1)break;x1=o1}if(Y0=e[I>>2]|0,i1=o5(Y0,y)|0,e[A1>>2]=i1,x0=t+48|0,n1=e[x0>>2]|0,d1=t+40|0,g1=e[d1>>2]|0,m1=s0+(g1<<2)|0,h1=e[m1>>2]|0,u1=(h1|0)/4&-1,c1=u1+n1|0,s1=s0+4|0,$1=e[s1>>2]|0,j0=($1|0)/2&-1,E1=c1+j0|0,I1=e[s0>>2]|0,Q1=(I1|0)/4&-1,p1=E1+Q1|0,B1=H0+176|0,w1=e[B1>>2]|0,k1=i1-Y0|0,L1=(w1|0)<(k1|0),!L1)return a=-1,a|0;for(M1=H0+160|0,z1=w1;;){if(R1=(z1|0)<(p1|0),!R1){a=1,V1=22;break}if(e[B1>>2]=z1,F1=(z1|0)/(Y0|0)&-1,U1=e[M1>>2]|0,b1=U1+(F1<<2)|0,P1=e[b1>>2]|0,E=(P1|0)!=0,Q=(z1|0)>(n1|0),H1=Q&E,S1=Y0+z1|0,H1){q1=z1,V1=21;break}if(D1=(S1|0)<(k1|0),D1)z1=S1;else{a=-1,V1=22;break}}return(V1|0)==21?(B=H0+172|0,e[B>>2]=q1,a=0,a|0):(V1|0)==22?a|0:0}function jS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0;if(y0=C,g=t+104|0,h=e[g>>2]|0,y=e[h>>2]|0,K=t+4|0,u0=e[K>>2]|0,g0=u0+28|0,f0=e[g0>>2]|0,n0=t+48|0,h0=e[n0>>2]|0,p0=t+40|0,m=e[p0>>2]|0,I=f0+(m<<2)|0,E=e[I>>2]|0,Q=(E|0)/4&-1,B=h0-Q|0,S=Q+h0|0,b=(m|0)==0,b?(G=e[f0>>2]|0,V=(G|0)/4&-1,a=V,$=V):(v=t+36|0,w=e[v>>2]|0,D=f0+(w<<2)|0,x=e[D>>2]|0,M=(x|0)/4&-1,L=t+44|0,R=e[L>>2]|0,F=f0+(R<<2)|0,T=e[F>>2]|0,N=(T|0)/4&-1,a=N,$=M),C0=B-$|0,S0=S+a|0,X=y+172|0,a0=e[X>>2]|0,W=(a0|0)>=(C0|0),r0=(a0|0)<(S0|0),b0=W&r0,b0)return o=1,o|0;if(s0=y+8|0,J=e[s0>>2]|0,o0=(C0|0)/(J|0)&-1,q=(S0|0)/(J|0)&-1,d0=(o0|0)<(q|0),!d0)return o=0,o|0;for(t0=y+160|0,j=e[t0>>2]|0,Q0=o0;;){if(l0=j+(Q0<<2)|0,Z=e[l0>>2]|0,I0=(Z|0)==0,c0=Q0+1|0,!I0){o=1,E0=9;break}if($0=(c0|0)<(q|0),$0)Q0=c0;else{o=0,E0=9;break}}return(E0|0)==9?o|0:0}function XS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0;if(G=C,a=t+168|0,$=e[a>>2]|0,w=t+8|0,y=e[w>>2]|0,x=($|0)/(y|0)&-1,M=x+2|0,L=(o|0)/(y|0)&-1,R=t+160|0,F=e[R>>2]|0,T=F+(L<<2)|0,g=M-L|0,h=g<<2,oA(F|0,T|0,h|0)|0,m=e[a>>2]|0,I=m-o|0,e[a>>2]=I,E=t+172|0,Q=e[E>>2]|0,B=(Q|0)>-1,!B){b=t+176|0,v=e[b>>2]|0,D=v-o|0,e[b>>2]=D;return}S=Q-o|0,e[E>>2]=S,b=t+176|0,v=e[b>>2]|0,D=v-o|0,e[b>>2]=D}function eb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0;if(m3=C,K=t+4|0,a0=e[K>>2]|0,l2=t+12|0,N2=+s[l2>>2],H2=a0<<2,x=H2,b2=C,C=C+((1*x|0)+15&-16)|0,M5=t+156|0,g2=e[M5>>2]|0,F2=(g2|0)>5,G5=(g2|0)/2&-1,h=F2?G5:2,W=o+60|0,$0=+s[W>>2],Q0=G5+-2|0,N0=+(Q0|0),Z0=$0-N0,h1=Z0<0,E6=h1?0:Z0,B1=E6>$0,k3=B1?$0:E6,b1=(a0|0)>0,b1)for(n2=t+36|0,$2=e[n2>>2]|0,V5=0;r2=a+(V5<<2)|0,A2=+s[r2>>2],e2=$2+(V5<<2)|0,o2=+s[e2>>2],f2=o2*A2,t2=b2+(V5<<2)|0,s[t2>>2]=f2,k2=V5+1|0,Q3=(k2|0)==(a0|0),!Q3;)V5=k2;D2=t+16|0,EQ(D2,b2,b2),S2=+s[b2>>2],Q2=S2*S2,L2=Q2,U2=b2+4|0,m2=+s[U2>>2],W2=m2,P2=W2*W2,V2=P2*.7,G2=V2+L2,q2=b2+8|0,Z2=+s[q2>>2],A5=Z2,N1=A5*A5,t5=N1*.2,T5=G2+t5,i5=T5,x5=g+140|0,j2=e[x5>>2]|0,I5=(j2|0)==0,I5?(b5=g+136|0,Y5=+s[b5>>2],g5=Y5+i5,B5=g+132|0,s[B5>>2]=g5,s[b5>>2]=i5,T=B5,Y2=g5):(s5=g+132|0,R2=+s[s5>>2],M2=R2+i5,s[s5>>2]=M2,y2=g+136|0,Q5=+s[y2>>2],N5=Q5+i5,s[y2>>2]=N5,T=s5,Y2=M2),m5=(g+72|0)+(j2<<2)|0,L5=+s[m5>>2],q5=Y2-L5,s[T>>2]=q5,s[m5>>2]=i5,p5=e[x5>>2]|0,$5=p5+1|0,u5=(p5|0)>13,m=u5?0:$5,e[x5>>2]=m,y5=(a0|0)/2&-1,T1=(a0|0)>1;e:do if(T1)for(D5=Y2*.0625,d5=(s[w2>>2]=D5,e[w2>>2]|0),l5=d5&2147483647,X2=+(l5>>>0),w5=X2*7177114298428933e-22,r5=w5+-764.6162109375,a5=r5,h5=a5*.5,z2=h5+-15,f5=z2,M=f5,T0=S2,S5=0;;){if(v0=T0*T0,U0=S5|1,O0=b2+(U0<<2)|0,k0=+s[O0>>2],V0=k0*k0,F0=V0+v0,L0=(s[w2>>2]=F0,e[w2>>2]|0),G0=L0&2147483647,z0=+(G0>>>0),J0=z0*35885571492144663e-23,q0=J0+-382.30810546875,P0=q0>1,Y0=b2+(o1<<2)|0,s[Y0>>2]=X,i1=S5+2|0,x0=(i1|0)<(y5|0),!x0)break e;n1=M+-8,R=b2+(i1<<2)|0,F=+s[R>>2],M=n1,T0=F,S5=i1}while(!1);if(n5=(h|0)>0,n5)l3=0,V3=0;else{for(n3=0,i6=0;;){if(d1=($+(n3<<4)|0)+4|0,g1=e[d1>>2]|0,m1=(g1|0)>0,m1)for(u1=$+(n3<<4)|0,A1=e[u1>>2]|0,c1=($+(n3<<4)|0)+8|0,s1=e[c1>>2]|0,c3=0,Y3=0;;)if($1=A1+Y3|0,j0=b2+($1<<2)|0,E1=+s[j0>>2],I1=s1+(Y3<<2)|0,Q1=+s[I1>>2],p1=Q1*E1,w1=p1+c3,v1=Y3+1|0,k1=(v1|0)<(g1|0),k1)c3=w1,Y3=v1;else{T3=w1;break}else T3=0;if(L1=($+(n3<<4)|0)+12|0,M1=+s[L1>>2],S1=M1*T3,D1=(g+(n3*144|0)|0)+68|0,R1=e[D1>>2]|0,F1=(R1|0)<1,Q=F1?16:-1,I=Q+R1|0,U1=(g+(n3*144|0)|0)+(I<<2)|0,P1=+s[U1>>2],Z1=S1P1,S=x1?P1:S1,z1=S+-99999,q1=G1+99999,H1=(g+(n3*144|0)|0)+(R1<<2)|0,s[H1>>2]=S1,Y1=e[D1>>2]|0,V1=Y1+1|0,X1=(Y1|0)>15,D=X1?0:V1,e[D1>>2]=D,j1=(o+4|0)+(n3<<2)|0,O1=+s[j1>>2],c2=O1+k3,W1=q1>c2,h2=i6|5,Z5=W1?h2:i6,s2=(o+32|0)+(n3<<2)|0,E2=+s[s2>>2],a2=E2-k3,K1=z1>2]|0,c5=(e5|0)>0,c5)for(S0=$+(l3<<4)|0,c0=e[S0>>2]|0,b0=($+(l3<<4)|0)+8|0,g0=e[b0>>2]|0,g3=0,U5=0;;)if(u0=c0+U5|0,l0=b2+(u0<<2)|0,Z=+s[l0>>2],I0=g0+(U5<<2)|0,f0=+s[I0>>2],n0=f0*Z,h0=n0+g3,p0=U5+1|0,C0=(p0|0)<(e5|0),C0)g3=h0,U5=p0;else{H3=h0;break}else H3=0;for(E0=($+(l3<<4)|0)+12|0,y0=+s[E0>>2],h3=y0*H3,r3=(g+(l3*144|0)|0)+68|0,I3=e[r3>>2]|0,w0=(I3|0)<1,B=w0?16:-1,E=B+I3|0,B0=(g+(l3*144|0)|0)+(E<<2)|0,_0=+s[B0>>2],K0=h3<_0,i3=K0?_0:h3,M0=h3>_0,b=M0?_0:h3,$6=0,N3=E,_3=-99999,S3=99999;;)if(s0=(N3|0)<1,w=s0?16:-1,v=w+N3|0,J=(g+(l3*144|0)|0)+(v<<2)|0,o0=+s[J>>2],q=_3o0,N=t0?o0:S3,j=$6+1|0,z5=(j|0)==(h|0),z5){L=d0,G=N;break}else $6=j,N3=v,_3=d0,S3=N;if(v5=b-G,J5=i3-L,E5=(g+(l3*144|0)|0)+(I3<<2)|0,s[E5>>2]=h3,K5=e[r3>>2]|0,a3=K5+1|0,B3=(K5|0)>15,y=B3?0:a3,e[r3>>2]=y,W5=(o+4|0)+(l3<<2)|0,D3=+s[W5>>2],f3=D3+k3,y3=J5>f3,X3=V3|5,x3=y3?X3:V3,q3=(o+32|0)+(l3<<2)|0,X5=+s[q3>>2],b3=X5-k3,t3=v5>2]|0,Q2=o+1288|0,r6=e[Q2>>2]|0,U3=o+1284|0,y6=e[U3>>2]|0,v9=(y6|0)>0,v9){for(mt=0;o4=be+(mt<<2)|0,e[o4>>2]=-200,k4=mt+1|0,S4=(k4|0)==(y6|0),!S4;)mt=k4;if(v9){for(W3=0;Be=me+(W3<<2)|0,e[Be>>2]=-200,r0=W3+1|0,Ie=(r0|0)==(y6|0),!Ie;)W3=r0;if(v9){for(l0=y6<<2,u4(Pt|0,0,l0|0)|0,x9=0;b0=F4+(x9<<2)|0,e[b0>>2]=1,U0=x9+1|0,J4=(U0|0)==(y6|0),!J4;)x9=U0;if(v9){if(u1=y6<<2,u4(t8|0,-1,u1|0)|0,w1=(y6|0)>1,!w1)return $4=0,C=ae,$4|0;for(P1=r6+-1|0,j1=W+1112|0,i2=y6+-1|0,F=e[o>>2]|0,ke=F,b9=0,b4=0;;){Fe=b9+1|0,Te=o+(Fe<<2)|0,Ge=e[Te>>2]|0,He=z6+(b9*56|0)|0,O4=He,N8=O4+56|0;do e[O4>>2]=0,O4=O4+4|0;while((O4|0)<(N8|0));if(e[He>>2]=ke,Ye=(z6+(b9*56|0)|0)+4|0,e[Ye>>2]=Ge,J9=(Ge|0)<(r6|0),s8=J9?Ge:P1,Ve=(s8|0)<(ke|0),Ve)_t=0,n8=0,Mt=0,Rt=0,Qt=0,P4=0,a8=0,Z9=0,jt=0,Tt=0,K8=0,W8=0;else for(xe=ke,pt=0,z4=0,We=0,oe=0,D4=0,gt=0,E3=0,T9=0,dt=0,D9=0,u8=0,Nt=0;;){he=$+(xe<<2)|0,V=+s[he>>2],Ue=V*7.314285755157471,Ce=Ue+1023.5,v4=~~Ce,W9=(v4|0)>1023,k9=(v4|0)<0,m=k9?0:v4,S=W9?1023:m,Y4=(S|0)==0;do if(Y4)zt=pt,at=z4,$t=We,Bt=oe,W4=D4,De=gt,wt=E3,Wt=T9,je=dt,et=D9,g4=u8,Xt=Nt;else if(nt=a+(xe<<2)|0,Je=+s[nt>>2],V4=+s[j1>>2],ze=V4+Je,s4=!(ze>=V),s4){h4=xe+gt|0,ne=S+Nt|0,f4=o5(xe,xe)|0,I4=f4+oe|0,Se=o5(S,S)|0,s0=Se+D9|0,J=o5(S,xe)|0,o0=J+T9|0,q=z4+1|0,zt=pt,at=q,$t=We,Bt=I4,W4=D4,De=h4,wt=E3,Wt=o0,je=dt,et=s0,g4=u8,Xt=ne;break}else{R4=xe+D4|0,ot=S+u8|0,re=o5(xe,xe)|0,d4=re+We|0,N6=o5(S,S)|0,Ke=N6+dt|0,P9=o5(S,xe)|0,fe=P9+E3|0,Ne=pt+1|0,zt=Ne,at=z4,$t=d4,Bt=oe,W4=R4,De=gt,wt=fe,Wt=T9,je=Ke,et=D9,g4=ot,Xt=Nt;break}while(!1);if(d0=xe+1|0,t0=(xe|0)<(s8|0),t0)xe=d0,pt=zt,z4=at,We=$t,oe=Bt,D4=W4,gt=De,E3=wt,T9=Wt,dt=je,D9=et,u8=g4,Nt=Xt;else{_t=zt,n8=at,Mt=$t,Rt=Bt,Qt=W4,P4=De,a8=wt,Z9=Wt,jt=je,Tt=et,K8=g4,W8=Xt;break}}if(j=(z6+(b9*56|0)|0)+8|0,e[j>>2]=Qt,u0=(z6+(b9*56|0)|0)+12|0,e[u0>>2]=K8,c0=(z6+(b9*56|0)|0)+16|0,e[c0>>2]=Mt,$0=(z6+(b9*56|0)|0)+20|0,e[$0>>2]=jt,Z=(z6+(b9*56|0)|0)+24|0,e[Z>>2]=a8,I0=(z6+(b9*56|0)|0)+28|0,e[I0>>2]=_t,g0=(z6+(b9*56|0)|0)+32|0,e[g0>>2]=P4,f0=(z6+(b9*56|0)|0)+36|0,e[f0>>2]=W8,n0=(z6+(b9*56|0)|0)+40|0,e[n0>>2]=Rt,h0=(z6+(b9*56|0)|0)+44|0,e[h0>>2]=Tt,p0=(z6+(b9*56|0)|0)+48|0,e[p0>>2]=Z9,C0=(z6+(b9*56|0)|0)+52|0,e[C0>>2]=n8,S0=_t+b4|0,f6=(Fe|0)==(i2|0),f6){E8=S0;break}else ke=Ge,b9=Fe,b4=S0}}else B4=9}else B4=9}else B4=9}else B4=9;if((B4|0)==9){if(P0=(y6|0)==0,!P0)return $4=0,C=ae,$4|0;N2=z6+4|0,O4=z6,N8=O4+56|0;do e[O4>>2]=0,O4=O4+4|0;while((O4|0)<(N8|0));if(e[N2>>2]=r6,H2=(r6|0)<1,H2)Vt=0,r8=0,Kt=0,Ct=0,ct=0,se=0,yt=0,l4=0,l8=0,c8=0,H8=0,Y8=0;else for(b2=W+1112|0,pe=0,xt=0,Et=0,At=0,p4=0,E4=0,C4=0,Ze=0,c4=0,ut=0,X4=0,R8=0,ht=0;;){M5=$+(pe<<2)|0,G=+s[M5>>2],g2=G*7.314285755157471,F2=g2+1023.5,G5=~~F2,T3=(G5|0)>1023,U5=(G5|0)<0,h=U5?0:G5,B=T3?1023:h,V3=(B|0)==0;do if(V3)Jt=xt,G4=Et,U4=At,lt=p4,K4=E4,_4=C4,Z4=Ze,j4=c4,Ft=ut,g8=X4,F8=R8,T8=ht;else if(h6=a+(pe<<2)|0,K3=+s[h6>>2],A6=+s[b2>>2],c9=A6+K3,P6=!(c9>=G),P6){B9=pe+C4|0,Q9=B+ht|0,y9=o5(pe,pe)|0,h9=y9+p4|0,f9=o5(B,B)|0,H9=f9+X4|0,H6=o5(B,pe)|0,A9=H6+c4|0,Y9=Et+1|0,Jt=xt,G4=Y9,U4=At,lt=h9,K4=E4,_4=B9,Z4=Ze,j4=A9,Ft=ut,g8=H9,F8=R8,T8=Q9;break}else{J6=pe+E4|0,T6=B+R8|0,i9=o5(pe,pe)|0,_6=i9+At|0,O6=o5(B,B)|0,q6=O6+ut|0,a9=o5(B,pe)|0,d9=a9+Ze|0,o9=xt+1|0,Jt=o9,G4=Et,U4=_6,lt=p4,K4=J6,_4=C4,Z4=d9,j4=c4,Ft=q6,g8=X4,F8=T6,T8=ht;break}while(!1);if(w9=pe+1|0,S9=(w9|0)==(r6|0),S9){Vt=Jt,r8=G4,Kt=U4,Ct=lt,ct=K4,se=_4,yt=Z4,l4=j4,l8=Ft,c8=g8,H8=F8,Y8=T8;break}else pe=w9,xt=Jt,Et=G4,At=U4,p4=lt,E4=K4,C4=_4,Ze=Z4,c4=j4,ut=Ft,X4=g8,R8=F8,ht=T8}we=z6+8|0,e[we>>2]=ct,ue=z6+12|0,e[ue>>2]=H8,Ee=z6+16|0,e[Ee>>2]=Kt,V9=z6+20|0,e[V9>>2]=l8,ie=z6+24|0,e[ie>>2]=yt,F9=z6+28|0,e[F9>>2]=Vt,W6=z6+32|0,e[W6>>2]=se,$9=z6+36|0,e[$9>>2]=Y8,ve=z6+40|0,e[ve>>2]=Ct,Re=z6+44|0,e[Re>>2]=c8,de=z6+48|0,e[de>>2]=l4,_9=z6+52|0,e[_9>>2]=r8,E8=Vt}if(Q0=(E8|0)==0,Q0)return $4=0,C=ae,$4|0;e[$8>>2]=-200,e[Zt>>2]=-200,E0=y6+-1|0,BC(z6,E0,$8,Zt,W)|0,y0=e[$8>>2]|0,e[be>>2]=y0,e[me>>2]=y0,w0=e[Zt>>2]|0,B0=me+4|0,e[B0>>2]=w0,_0=be+4|0,e[_0>>2]=w0,K0=(y6|0)>2;do if(K0){M0=W+1112|0,v0=W+1096|0,T0=W+1100|0,N0=W+1104|0,Oe=2;e:for(;;){O0=(o+520|0)+(Oe<<2)|0,k0=e[O0>>2]|0,V0=Pt+(k0<<2)|0,F0=e[V0>>2]|0,L0=F4+(k0<<2)|0,G0=e[L0>>2]|0,z0=t8+(F0<<2)|0,J0=e[z0>>2]|0,q0=(J0|0)==(G0|0);t:do if(!q0){if(Z0=(o+520|0)+(F0<<2)|0,H0=e[Z0>>2]|0,o1=(o+520|0)+(G0<<2)|0,Y0=e[o1>>2]|0,e[z0>>2]=G0,i1=(W+836|0)+(F0<<2)|0,x0=e[i1>>2]|0,n1=(W+836|0)+(G0<<2)|0,d1=e[n1>>2]|0,g1=be+(F0<<2)|0,m1=e[g1>>2]|0,h1=(m1|0)<0,A1=me+(F0<<2)|0,c1=e[A1>>2]|0,h1?w=c1:(s1=(c1|0)<0,s1?w=m1:($1=c1+m1|0,j0=$1>>1,w=j0)),E1=be+(G0<<2)|0,I1=e[E1>>2]|0,Q1=(I1|0)<0,p1=me+(G0<<2)|0,B1=e[p1>>2]|0,Q1?y=B1:(v1=(B1|0)<0,v1?y=I1:(k1=B1+I1|0,L1=k1>>1,y=L1)),M1=(w|0)==-1,S1=(y|0)==-1,L8=M1|S1,L8){B4=38;break e}D1=y-w|0,R1=d1-x0|0,N4=(D1|0)>-1,L9=0-D1|0,F1=N4?D1:L9,U1=(D1|0)/(R1|0)&-1,b1=D1>>31,Z1=b1|1,G1=$+(x0<<2)|0,K=+s[G1>>2],x1=K*7.314285755157471,z1=x1+1023.5,q1=~~z1,H1=(q1|0)>1023,Y1=(q1|0)<0,I=Y1?0:q1,b=H1?1023:I,V1=o5(U1,R1)|0,f8=(V1|0)>-1,p8=0-V1|0,X1=f8?V1:p8,n2=F1-X1|0,O1=w-b|0,c2=o5(O1,O1)|0,W1=a+(x0<<2)|0,h2=+s[W1>>2],s2=+s[M0>>2],E2=s2+h2,a2=!(E2>=K),a2?B4=42:(K1=+(w|0),d2=+s[v0>>2],$2=d2+K1,l2=+(b|0),r2=$2>2],e2=K1-A2,o2=e2>l2,o2||(B4=42)));i:do if((B4|0)==42){if(B4=0,f2=x0+1|0,t2=(f2|0)<(d1|0),t2)for(m2=f2,a4=0,x8=c2,Yt=1,C8=w;;){if(k2=a4+n2|0,D2=(k2|0)<(R1|0),S2=D2?0:Z1,L2=D2?0:R1,Pe=k2-L2|0,R=C8+U1|0,A8=R+S2|0,U2=$+(m2<<2)|0,X=+s[U2>>2],W2=X*7.314285755157471,P2=W2+1023.5,V2=~~P2,G2=(V2|0)>1023,q2=(V2|0)<0,E=q2?0:V2,D=G2?1023:E,Z2=A8-D|0,A5=o5(Z2,Z2)|0,N1=A5+x8|0,t5=Yt+1|0,T5=a+(m2<<2)|0,i5=+s[T5>>2],x5=i5+s2,j2=x5>=X,I5=(D|0)!=0,o8=j2&I5,o8&&(b5=+(A8|0),Y5=+s[v0>>2],g5=Y5+b5,B5=+(D|0),s5=g5>2],M2=b5-R2,y2=M2>B5,y2)))break i;if(Q5=m2+1|0,N5=(Q5|0)<(d1|0),N5)m2=Q5,a4=Pe,x8=N1,Yt=t5,C8=A8;else{i8=N1,Ht=t5;break}}else i8=c2,Ht=1;if(m5=+s[v0>>2],L5=m5*m5,q5=+(Ht|0),Y2=L5/q5,p5=+s[N0>>2],$5=Y2>p5,!$5&&(u5=+s[T0>>2],y5=u5*u5,T1=y5/q5,D5=T1>p5,!D5&&(d5=(i8|0)/(Ht|0)&-1,l5=+(d5|0),X2=l5>p5,X2)))break;g3=be+(Oe<<2)|0,e[g3>>2]=-200,u3=me+(Oe<<2)|0,e[u3>>2]=-200;break t}while(!1);if(e[Ot>>2]=-200,e[qt>>2]=-200,e[T4>>2]=-200,e[st>>2]=-200,w5=z6+(H0*56|0)|0,r5=k0-H0|0,a5=BC(w5,r5,Ot,qt,W)|0,h5=z6+(k0*56|0)|0,z2=Y0-k0|0,f5=BC(h5,z2,T4,st,W)|0,n5=(a5|0)!=0,n5&&(e[Ot>>2]=w,R5=e[T4>>2]|0,e[qt>>2]=R5),e5=(f5|0)==0,!e5&&(c5=e[qt>>2]|0,e[T4>>2]=c5,e[st>>2]=y,n5)){v5=be+(Oe<<2)|0,e[v5>>2]=-200,J5=me+(Oe<<2)|0,e[J5>>2]=-200;break}if(i3=e[Ot>>2]|0,e[A1>>2]=i3,E5=(F0|0)==0,E5&&(e[be>>2]=i3),I3=e[qt>>2]|0,h3=be+(Oe<<2)|0,e[h3>>2]=I3,K5=e[T4>>2]|0,r3=me+(Oe<<2)|0,e[r3>>2]=K5,a3=e[st>>2]|0,e[E1>>2]=a3,B3=(G0|0)==1,B3&&(e[B0>>2]=a3),W5=K5&I3,D3=(W5|0)>-1,D3){f3=(k0|0)>0;i:do if(f3)for(e8=k0;;){if(_8=e8+-1|0,X3=F4+(_8<<2)|0,q3=e[X3>>2]|0,X5=(q3|0)==(G0|0),!X5)break i;if(e[X3>>2]=Oe,b3=(e8|0)>1,b3)e8=_8;else break}while(!1);if(m8=k0+1|0,y3=(m8|0)<(y6|0),y3)for(Ut=m8;;){if(t3=Pt+(Ut<<2)|0,s6=e[t3>>2]|0,H3=(s6|0)==(F0|0),!H3)break t;if(e[t3>>2]=Oe,I8=Ut+1|0,c3=(I8|0)<(y6|0),c3)Ut=I8;else break}}}while(!1);if(Q3=Oe+1|0,z5=(Q3|0)<(y6|0),z5)Oe=Q3;else{B4=68;break}}if((B4|0)==38)BS(1);else if((B4|0)==68){T=e[be>>2]|0,N=e[me>>2]|0,S5=T,$6=N;break}}else S5=y0,$6=y0;while(!1);if(H5=y6<<2,V5=z8(t,H5)|0,Y3=(S5|0)<0,Y3?v=$6:(n3=($6|0)<0,n3?v=S5:(l3=$6+S5|0,N3=l3>>1,v=N3)),e[V5>>2]=v,E6=e[_0>>2]|0,k3=(E6|0)<0,_3=e[B0>>2]|0,k3?M=_3:(S3=(_3|0)<0,S3?M=E6:(a6=_3+E6|0,i6=a6>>1,M=i6)),Z5=V5+4|0,e[Z5>>2]=M,K0)A4=2;else return $4=V5,C=ae,$4|0;for(;;)if(x3=A4+-2|0,d3=(o+1032|0)+(x3<<2)|0,J3=e[d3>>2]|0,d6=(o+780|0)+(x3<<2)|0,m3=e[d6>>2]|0,L6=(W+836|0)+(J3<<2)|0,M6=e[L6>>2]|0,R6=(W+836|0)+(m3<<2)|0,S6=e[R6>>2]|0,b6=V5+(J3<<2)|0,G6=e[b6>>2]|0,X6=V5+(m3<<2)|0,v6=e[X6>>2]|0,L3=(W+836|0)+(A4<<2)|0,n6=e[L3>>2]|0,o6=G6&32767,C6=v6&32767,z3=C6-o6|0,M3=S6-M6|0,h8=(z3|0)>-1,Lt=0-z3|0,e6=h8?z3:Lt,F6=n6-M6|0,l6=o5(e6,F6)|0,o3=(l6|0)/(M3|0)&-1,K6=(z3|0)<0,A3=0-o3|0,L=K6?A3:o3,x=L+o6|0,c6=be+(A4<<2)|0,B6=e[c6>>2]|0,R3=(B6|0)<0,Y6=me+(A4<<2)|0,D6=e[Y6>>2]|0,R3?Q=D6:(U6=(D6|0)<0,U6?Q=B6:(t9=D6+B6|0,Q6=t9>>1,Q=Q6)),e9=(Q|0)<0,G3=(x|0)==(Q|0),M8=e9|G3,n9=x|32768,g=M8?n9:Q,V6=V5+(A4<<2)|0,e[V6>>2]=g,s9=A4+1|0,m4=(s9|0)==(y6|0),m4){$4=V5;break}else A4=s9;return C=ae,$4|0}function Gt(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0;if(u0=C,h=o+1284|0,m=e[h>>2]|0,x=(a|0)!=0,X=($|0)!=0,d0=x&X,!d0)return t0=0,t0|0;if(K=m<<2,a0=z8(t,K)|0,W=(m|0)>0,!W)return t0=a0,t0|0;for(r0=65536-g|0,q=0;;)if(s0=a+(q<<2)|0,J=e[s0>>2]|0,I=J&32767,E=o5(I,r0)|0,Q=$+(q<<2)|0,B=e[Q>>2]|0,S=B&32767,b=o5(S,g)|0,v=E+32768|0,w=v+b|0,D=w>>16,y=a0+(q<<2)|0,e[y>>2]=D,M=e[s0>>2]|0,L=M&32768,R=(L|0)==0,R||(F=e[Q>>2]|0,T=F&32768,N=(T|0)==0,N||(G=D|32768,e[y>>2]=G)),V=q+1|0,o0=(V|0)==(m|0),o0){t0=a0;break}else q=V;return t0|0}function tb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0;if(q6=C,C=C+336|0,P6=q6+64|0,d3=q6+32|0,G3=q6,D=a+1296|0,y=e[D>>2]|0,d2=a+1284|0,R2=e[d2>>2]|0,$5=o+64|0,a5=e[$5>>2]|0,i3=a5+4|0,f3=e[i3>>2]|0,g3=f3+28|0,l3=e[g3>>2]|0,x=l3+2848|0,a0=e[x>>2]|0,c0=($|0)==0,c0)return O2(t,0,1),T5=o+36|0,i5=e[T5>>2]|0,x5=(i5|0)/2&-1,j2=x5<<2,u4(g|0,0,j2|0)|0,m=0,C=q6,m|0;if(S0=(R2|0)>0,S0)for(T0=y+832|0,C6=0;q0=$+(C6<<2)|0,m1=e[q0>>2]|0,p1=m1&32767,U1=e[T0>>2]|0,(U1|0)==4?(Z2=p1>>>4,J6=Z2):(U1|0)==1?(X1=p1>>>2,J6=X1):(U1|0)==2?($2=p1>>>3,J6=$2):(U1|0)==3?(S2=(p1>>>0)/12&-1,J6=S2):J6=p1,I5=m1&32768,b5=I5|J6,e[q0>>2]=b5,Y5=C6+1|0,v6=(Y5|0)==(R2|0),!v6;)C6=Y5;if(g5=e[$>>2]|0,e[P6>>2]=g5,b2=$+4|0,B5=e[b2>>2]|0,s5=P6+4|0,e[s5>>2]=B5,M2=(R2|0)>2,y2=a+1292|0,M2){for(z3=2;;){if(Q5=z3+-2|0,N5=(a+1032|0)+(Q5<<2)|0,m5=e[N5>>2]|0,L5=(a+780|0)+(Q5<<2)|0,q5=e[L5>>2]|0,M5=(y+836|0)+(m5<<2)|0,Y2=e[M5>>2]|0,p5=(y+836|0)+(q5<<2)|0,u5=e[p5>>2]|0,y5=$+(m5<<2)|0,T1=e[y5>>2]|0,D5=$+(q5<<2)|0,d5=e[D5>>2]|0,l5=(y+836|0)+(z3<<2)|0,X2=e[l5>>2]|0,g2=T1&32767,w5=d5&32767,r5=w5-g2|0,h5=u5-Y2|0,K3=(r5|0)>-1,n9=0-r5|0,z2=K3?r5:n9,f5=X2-Y2|0,n5=o5(z2,f5)|0,R5=(n5|0)/(h5|0)&-1,e5=(r5|0)<0,c5=0-R5|0,E=e5?c5:R5,I=E+g2|0,F2=$+(z3<<2)|0,v5=e[F2>>2]|0,J5=v5&32768,E5=(J5|0)!=0,I3=(v5|0)==(I|0),c9=E5|I3,c9)h3=I|32768,e[F2>>2]=h3,K5=P6+(z3<<2)|0,e[K5>>2]=0;else{r3=e[y2>>2]|0,a3=r3-I|0,B3=(a3|0)<(I|0),h=B3?a3:I,G5=v5-I|0,W5=(G5|0)<0;do if(W5)if(D3=0-h|0,y3=(G5|0)<(D3|0),y3){X3=G5^-1,q3=h+X3|0,T6=q3;break}else{X5=G5<<1,b3=X5^-1,T6=b3;break}else if(t3=(h|0)>(G5|0),t3){T3=G5<<1,T6=T3;break}else{s6=h+G5|0,T6=s6;break}while(!1);H3=P6+(z3<<2)|0,e[H3>>2]=T6,e[y5>>2]=g2,c3=e[D5>>2]|0,u3=c3&32767,e[D5>>2]=u3}if(Q3=z3+1|0,X6=(Q3|0)==(R2|0),X6)break;z3=Q3}S=e[P6>>2]|0,b=e[s5>>2]|0,a6=S,x3=b}else a6=g5,x3=B5;if(O2(t,1,1),z5=a+1308|0,H5=e[z5>>2]|0,V5=H5+1|0,e[z5>>2]=V5,S5=e[y2>>2]|0,Y3=S5+-1|0,U5=q8(Y3)|0,$6=U5<<1,n3=a+1304|0,N3=e[n3>>2]|0,E6=N3+$6|0,e[n3>>2]=E6,k3=e[y2>>2]|0,_3=k3+-1|0,S3=q8(_3)|0,O2(t,a6,S3),i6=e[y2>>2]|0,V3=i6+-1|0,Z5=q8(V3)|0,O2(t,x3,Z5),M=e[y>>2]|0,L=(M|0)>0,L)for(R=a+1300|0,M3=0,l6=2;;){if(F=(y+4|0)+(M3<<2)|0,T=e[F>>2]|0,N=(y+128|0)+(T<<2)|0,G=e[N>>2]|0,V=(y+192|0)+(T<<2)|0,X=e[V>>2]|0,K=1<>2]=0,e[d3+4>>2]=0,e[d3+8>>2]=0,e[d3+12>>2]=0,e[d3+16>>2]=0,e[d3+20>>2]=0,e[d3+24>>2]=0,e[d3+28>>2]=0,W=(X|0)==0,!W){if(e[G3>>2]=0,e[G3+4>>2]=0,e[G3+8>>2]=0,e[G3+12>>2]=0,e[G3+16>>2]=0,e[G3+20>>2]=0,e[G3+24>>2]=0,e[G3+28>>2]=0,r0=(X|0)==31,!r0)for(A3=0;h0=((y+320|0)+(T<<5)|0)+(A3<<2)|0,p0=e[h0>>2]|0,C0=(p0|0)<0,C0?w=1:(Q0=(l3+1824|0)+(p0<<2)|0,b0=e[Q0>>2]|0,E0=b0+4|0,y0=e[E0>>2]|0,w=y0),w0=G3+(A3<<2)|0,e[w0>>2]=w,B0=A3+1|0,_0=(B0|0)<(K|0),_0;)A3=B0;s0=(G|0)>0;e:do if(s0){if(r0)for(J3=0,L6=0,c6=0;;)if(K0=d3+(c6<<2)|0,M0=e[K0>>2]|0,v0=M0<>2]|0,Y6=0;;){if(J=G3+(Y6<<2)|0,o0=e[J>>2]|0,d0=(q|0)<(o0|0),d0){A6=Y6,U3=31;break}if(t0=Y6+1|0,j=(t0|0)<(K|0),j)Y6=t0;else{U3=33;break}}if((U3|0)==31?(U3=0,u0=d3+(B6<<2)|0,e[u0>>2]=A6,l0=A6):(U3|0)==33&&(U3=0,Q=d3+(B6<<2)|0,v=e[Q>>2]|0,l0=v),$0=l0<>2]|0,F0=a0+(V0*56|0)|0,L0=Gu(F0,m3,t)|0,G0=e[R>>2]|0,z0=G0+L0|0,e[R>>2]=z0}if(J0=(G|0)>0,J0)for(R3=0;Z0=d3+(R3<<2)|0,P0=e[Z0>>2]|0,H0=((y+320|0)+(T<<5)|0)+(P0<<2)|0,o1=e[H0>>2]|0,Y0=(o1|0)>-1,Y0&&(i1=R3+l6|0,x0=P6+(i1<<2)|0,n1=e[x0>>2]|0,d1=(a0+(o1*56|0)|0)+4|0,g1=e[d1>>2]|0,h1=(n1|0)<(g1|0),h1&&(u1=a0+(o1*56|0)|0,A1=Gu(u1,n1,t)|0,c1=e[n3>>2]|0,s1=c1+A1|0,e[n3>>2]=s1)),$1=R3+1|0,b6=($1|0)==(G|0),!b6;)R3=$1;if(j0=G+l6|0,E1=M3+1|0,I1=e[y>>2]|0,Q1=(E1|0)<(I1|0),Q1)M3=E1,l6=j0;else break}if(B1=e[$>>2]|0,w1=y+832|0,v1=e[w1>>2]|0,k1=o5(v1,B1)|0,L1=o+28|0,M1=e[L1>>2]|0,S1=l3+(M1<<2)|0,D1=e[S1>>2]|0,R1=(D1|0)/2&-1,F1=e[d2>>2]|0,b1=(F1|0)>1,b1)for(n6=0,o3=1,D6=0,Q6=k1;;){if(z1=(a+260|0)+(o3<<2)|0,q1=e[z1>>2]|0,H1=$+(q1<<2)|0,Y1=e[H1>>2]|0,V1=Y1&32767,n2=(V1|0)==(Y1|0),n2)if(j1=e[w1>>2]|0,O1=o5(j1,Y1)|0,c2=(y+836|0)+(q1<<2)|0,W1=e[c2>>2]|0,h2=O1-Q6|0,s2=W1-D6|0,e6=(h2|0)>-1,V6=0-h2|0,E2=e6?h2:V6,a2=(h2|0)/(s2|0)&-1,K1=h2>>31,i2=K1|1,l2=o5(a2,s2)|0,F6=(l2|0)>-1,s9=0-l2|0,r2=F6?l2:s9,A2=E2-r2|0,e2=(R1|0)>(W1|0),i9=e2?W1:R1,o2=(i9|0)>(D6|0),o2&&(f2=g+(D6<<2)|0,e[f2>>2]=Q6),t2=D6+1|0,k2=(t2|0)<(i9|0),k2)for(m2=t2,R6=0,_6=Q6;;)if(D2=R6+A2|0,Q2=(D2|0)<(s2|0),N2=Q2?0:i2,L2=Q2?0:s2,S6=D2-L2|0,B=_6+a2|0,O6=B+N2|0,U2=g+(m2<<2)|0,e[U2>>2]=O6,W2=m2+1|0,h6=(W2|0)==(i9|0),h6){o6=W1,U6=W1,e9=O1;break}else m2=W2,R6=S6,_6=O6;else o6=W1,U6=W1,e9=O1;else o6=n6,U6=D6,e9=Q6;if(P2=o3+1|0,V2=e[d2>>2]|0,G2=(P2|0)<(V2|0),G2)n6=o6,o3=P2,D6=U6,Q6=e9;else{L3=o6,t9=e9;break}}else L3=0,t9=k1;if(P1=o+36|0,Z1=e[P1>>2]|0,G1=(Z1|0)/2&-1,x1=(L3|0)<(G1|0),x1)K6=L3;else return m=1,C=q6,m|0;for(;;)if(q2=g+(K6<<2)|0,e[q2>>2]=t9,A5=K6+1|0,H2=e[P1>>2]|0,N1=(H2|0)/2&-1,t5=(A5|0)<(N1|0),t5)K6=A5;else{m=1;break}return C=q6,m|0}function BC(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0;if(A5=C,Q=e[t>>2]|0,B=o+-1|0,$0=(t+(B*56|0)|0)+4|0,Q0=e[$0>>2]|0,N0=(o|0)>0,N0)for(Z0=g+1108|0,h1=+s[Z0>>2],i2=0,e2=0,f2=0,S2=0,U2=0,V2=0;;)if(B1=(t+(e2*56|0)|0)+52|0,b1=e[B1>>2]|0,n2=(t+(e2*56|0)|0)+28|0,S=e[n2>>2]|0,T=S+b1|0,J=+(T|0),o0=J*h1,q=S+1|0,d0=+(q|0),t0=o0/d0,j=t0,u0=j+1,c0=(t+(e2*56|0)|0)+32|0,l0=e[c0>>2]|0,Z=+(l0|0),I0=(t+(e2*56|0)|0)+8|0,g0=e[I0>>2]|0,f0=+(g0|0),n0=f0*u0,h0=Z+S2,p0=h0+n0,C0=(t+(e2*56|0)|0)+36|0,S0=e[C0>>2]|0,b0=+(S0|0),E0=(t+(e2*56|0)|0)+12|0,y0=e[E0>>2]|0,w0=+(y0|0),B0=w0*u0,_0=b0+V2,K0=_0+B0,M0=(t+(e2*56|0)|0)+40|0,v0=e[M0>>2]|0,T0=+(v0|0),U0=(t+(e2*56|0)|0)+16|0,O0=e[U0>>2]|0,k0=+(O0|0),V0=k0*u0,F0=T0+f2,L0=F0+V0,G0=(t+(e2*56|0)|0)+48|0,z0=e[G0>>2]|0,J0=+(z0|0),q0=(t+(e2*56|0)|0)+24|0,P0=e[q0>>2]|0,H0=+(P0|0),o1=H0*u0,Y0=J0+U2,i1=Y0+o1,x0=+(b1|0),n1=+(S|0),d1=u0*n1,g1=x0+i2,m1=g1+d1,u1=e2+1|0,A2=(u1|0)==(o|0),A2){$2=m1,o2=L0,D2=p0,L2=i1,P2=K0;break}else i2=m1,e2=u1,f2=L0,S2=p0,U2=i1,V2=K0;else $2=0,o2=0,D2=0,L2=0,P2=0;return A1=e[a>>2]|0,c1=(A1|0)>-1,c1?(s1=+(Q|0),$1=D2+s1,j0=+(A1|0),E1=j0+P2,I1=o5(Q,Q)|0,Q1=+(I1|0),p1=o2+Q1,w1=o5(A1,Q)|0,v1=+(w1|0),k1=v1+L2,L1=$2+1,l2=L1,t2=p1,Q2=$1,m2=k1,G2=E1):(l2=$2,t2=o2,Q2=D2,m2=L2,G2=P2),M1=e[$>>2]|0,S1=(M1|0)>-1,S1?(D1=+(Q0|0),R1=Q2+D1,F1=+(M1|0),U1=F1+G2,P1=o5(Q0,Q0)|0,Z1=+(P1|0),G1=t2+Z1,x1=o5(M1,Q0)|0,z1=+(x1|0),q1=z1+m2,H1=l2+1,r2=H1,k2=G1,N2=R1,W2=q1,q2=U1):(r2=l2,k2=t2,N2=Q2,W2=m2,q2=G2),Y1=k2*r2,V1=N2*N2,X1=Y1-V1,j1=X1>0,j1?(O1=q2*k2,c2=N2*W2,W1=O1-c2,h2=W1/X1,s2=W2*r2,E2=N2*q2,a2=s2-E2,K1=a2/X1,d2=+(Q|0),b=K1*d2,v=b+h2,w=+z7(v),D=~~w,e[a>>2]=D,y=+(Q0|0),x=K1*y,M=x+h2,L=+z7(M),R=~~L,e[$>>2]=R,F=e[a>>2]|0,N=(F|0)>1023,N?(e[a>>2]=1023,m=e[$>>2]|0,G=m,r0=1023):(G=R,r0=F),V=(G|0)>1023,V?(e[$>>2]=1023,I=e[a>>2]|0,X=I,s0=1023):(X=r0,s0=G),K=(X|0)<0,K?(e[a>>2]=0,E=e[$>>2]|0,a0=E):a0=s0,W=(a0|0)<0,W?(e[$>>2]=0,h=0,h|0):(h=0,h|0)):(e[a>>2]=0,e[$>>2]=0,h=1,h|0)}function ib(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0;if(x0=C,m=t+836|0,I=t+840|0,M=e[I>>2]|0,W=e[t>>2]|0,O2(o,W,5),$0=e[t>>2]|0,Q0=($0|0)>0,Q0){for(N0=t+4|0,z0=0,Y0=-1;;)if(B=N0+(z0<<2)|0,S=e[B>>2]|0,O2(o,S,4),b=e[B>>2]|0,v=(Y0|0)<(b|0),a=v?b:Y0,w=z0+1|0,D=e[t>>2]|0,y=(w|0)<(D|0),y)z0=w,Y0=a;else{$=a;break}if(O0=($|0)>-1,O0)for(k0=t+128|0,V0=t+192|0,E=t+256|0,Q=t+320|0,J0=0;;){if(x=k0+(J0<<2)|0,L=e[x>>2]|0,R=L+-1|0,O2(o,R,3),F=V0+(J0<<2)|0,T=e[F>>2]|0,O2(o,T,2),N=e[F>>2]|0,G=(N|0)==0,G?(Z0=0,i1=8):(V=E+(J0<<2)|0,X=e[V>>2]|0,O2(o,X,8),g=e[F>>2]|0,K=(g|0)==31,K||(Z0=0,i1=8)),(i1|0)==8)for(;i1=0,a0=(Q+(J0<<5)|0)+(Z0<<2)|0,r0=e[a0>>2]|0,s0=r0+1|0,O2(o,s0,8),J=Z0+1|0,o0=e[F>>2]|0,q=1<>2]|0,c0=u0+-1|0,O2(o,c0,2),l0=M+-1|0,Z=q8(l0)|0,O2(o,Z,4),I0=q8(l0)|0,g0=e[t>>2]|0,f0=(g0|0)>0,!!f0)for(n0=t+4|0,h0=t+128|0,U0=g0,F0=0,q0=0,P0=0;;){if(p0=n0+(q0<<2)|0,C0=e[p0>>2]|0,S0=h0+(C0<<2)|0,b0=e[S0>>2]|0,E0=b0+F0|0,y0=(P0|0)<(E0|0),y0){for(o1=P0;w0=o1+2|0,B0=m+(w0<<2)|0,_0=e[B0>>2]|0,O2(o,_0,I0),K0=o1+1|0,L0=(K0|0)==(E0|0),!L0;)o1=K0;h=e[t>>2]|0,T0=h,H0=E0}else T0=U0,H0=P0;if(M0=q0+1|0,v0=(M0|0)<(T0|0),v0)U0=T0,F0=E0,q0=M0,P0=H0;else break}}function rb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0;W1=C,C=C+272|0,O1=W1,D=t+28|0,y=e[D>>2]|0,K=ce(1,1120)|0,u0=n4(o,5)|0,e[K>>2]=u0,C0=(u0|0)>0;e:do if(C0){for(v0=K+4|0,Z1=0,n2=-1;;){if(L=n4(o,4)|0,R=v0+(Z1<<2)|0,e[R>>2]=L,F=(L|0)<0,F)break e;if(T=(n2|0)<(L|0),g=T?L:n2,N=Z1+1|0,G=e[K>>2]|0,V=(N|0)<(G|0),V)Z1=N,n2=g;else{h=g;break}}if(J0=(h|0)>-1,J0)for(g1=K+128|0,Q1=K+192|0,F1=K+256|0,x=y+24|0,M=K+320|0,G1=0;;){if(X=n4(o,3)|0,a0=X+1|0,W=g1+(G1<<2)|0,e[W>>2]=a0,r0=n4(o,2)|0,s0=Q1+(G1<<2)|0,e[s0>>2]=r0,J=(r0|0)<0,J||(o0=(r0|0)==0,o0?(m=F1+(G1<<2)|0,I=e[m>>2]|0,t0=I):(q=n4(o,8)|0,d0=F1+(G1<<2)|0,e[d0>>2]=q,t0=q),j=(t0|0)<0,j)||(c0=e[x>>2]|0,$0=(t0|0)<(c0|0),!$0))break e;if(l0=e[s0>>2]|0,Z=(l0|0)==31,!Z)for(H1=0;;){if(h0=n4(o,8)|0,p0=h0+-1|0,S0=(M+(G1<<5)|0)+(H1<<2)|0,e[S0>>2]=p0,Q0=(h0|0)<0,Q0||(b0=e[x>>2]|0,E0=(h0|0)>(b0|0),f0=H1+1|0,E0))break e;if(I0=e[s0>>2]|0,g0=1<>2]=_0,M0=n4(o,4)|0,T0=(M0|0)<0,!T0)){if(N0=e[K>>2]|0,U0=(N0|0)>0,U0)for(O0=K+4|0,k0=K+128|0,V0=K+836|0,F0=1<>2]|0,z0=k0+(G0<<2)|0,q0=e[z0>>2]|0,Z0=q0+P1|0,P0=(Z0|0)>63,P0)break e;if(H0=(Y1|0)<(Z0|0),H0){for(X1=Y1;;){if(o1=n4(o,M0)|0,Y0=X1+2|0,i1=V0+(Y0<<2)|0,e[i1>>2]=o1,x0=(o1|0)>-1,n1=(o1|0)<(F0|0),j1=x0&n1,!j1)break e;if(d1=X1+1|0,m1=(d1|0)<(Z0|0),m1)X1=d1;else{$=d1;break}}B=e[K>>2]|0,A1=B,V1=$}else A1=U1,V1=Y1;if(h1=x1+1|0,u1=(h1|0)<(A1|0),u1)U1=A1,P1=Z0,x1=h1,Y1=V1;else{E=V0,Q=F0,b1=Z0;break}}else v=K+836|0,w=1<>2]=0,c1=K+840|0,e[c1>>2]=Q,s1=b1+2|0,$1=(b1|0)>-2,$1)for(z1=0;j0=E+(z1<<2)|0,E1=O1+(z1<<2)|0,e[E1>>2]=j0,I1=z1+1|0,p1=(I1|0)<(s1|0),p1;)z1=I1;Pu(O1,s1,4,8),B1=(s1|0)>1;t:do if(B1){for(S=e[O1>>2]|0,b=e[S>>2]|0,S1=b,q1=1;k1=O1+(q1<<2)|0,L1=e[k1>>2]|0,M1=e[L1>>2]|0,D1=(S1|0)==(M1|0),w1=q1+1|0,!D1;)if(v1=(w1|0)<(s1|0),v1)S1=M1,q1=w1;else break t;if(R1=(K|0)==0,R1)a=0;else break e;return C=W1,a|0}while(!1);return a=K,C=W1,a|0}while(!1);return p2(K),a=0,C=W1,a|0}function nb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0;if(R1=C,C=C+272|0,S1=R1,$=ce(1,1312)|0,g=$+1296|0,e[g>>2]=o,D=o+836|0,X=o+840|0,j=e[X>>2]|0,p0=$+1288|0,e[p0>>2]=j,M0=e[o>>2]|0,z0=(M0|0)>0,z0){for(Y0=o+4|0,h=o+128|0,h1=0,k1=0;;)if(m=Y0+(h1<<2)|0,I=e[m>>2]|0,E=h+(I<<2)|0,Q=e[E>>2]|0,B=Q+k1|0,S=h1+1|0,b=(S|0)<(M0|0),b)h1=S,k1=B;else{a=B;break}v=a+2|0,w=$+1284|0,e[w>>2]=v,y=(a|0)>-2,y?(F=v,v1=a,D1=7):(Pu(S1,v,4,8),w1=a)}else o1=$+1284|0,e[o1>>2]=2,F=2,v1=0,D1=7;if((D1|0)==7){for(u1=0;x=D+(u1<<2)|0,M=S1+(u1<<2)|0,e[M>>2]=x,L=u1+1|0,R=(L|0)<(F|0),R;)u1=L;for(Pu(S1,F,4,8),T=D,N=$+260|0,A1=0;K=S1+(A1<<2)|0,a0=e[K>>2]|0,W=a0,r0=W-T|0,s0=r0>>2,J=N+(A1<<2)|0,e[J>>2]=s0,o0=A1+1|0,q=(o0|0)<(F|0),q;)A1=o0;for(G=$+260|0,V=$+520|0,c1=0;t0=G+(c1<<2)|0,u0=e[t0>>2]|0,c0=V+(u0<<2)|0,e[c0>>2]=c1,$0=c1+1|0,l0=($0|0)<(F|0),l0;)c1=$0;for(d0=$+260|0,s1=0;;)if(Z=d0+(s1<<2)|0,I0=e[Z>>2]|0,g0=D+(I0<<2)|0,f0=e[g0>>2]|0,n0=$+(s1<<2)|0,e[n0>>2]=f0,h0=s1+1|0,C0=(h0|0)<(F|0),C0)s1=h0;else{w1=v1;break}}if(S0=o+832|0,Q0=e[S0>>2]|0,(Q0|0)==4?(w0=$+1292|0,e[w0>>2]=64):(Q0|0)==2?(E0=$+1292|0,e[E0>>2]=128):(Q0|0)==1?(b0=$+1292|0,e[b0>>2]=256):(Q0|0)==3&&(y0=$+1292|0,e[y0>>2]=86),B0=(w1|0)>0,!B0)return C=R1,$|0;for(_0=$+1032|0,K0=$+780|0,$1=0;;){for(v0=$1+2|0,T0=D+(v0<<2)|0,N0=e[T0>>2]|0,U0=e[p0>>2]|0,x0=1,g1=U0,j0=0,E1=0,p1=0;;)if(O0=D+(j0<<2)|0,k0=e[O0>>2]|0,V0=(k0|0)>(p1|0),F0=(k0|0)<(N0|0),L1=V0&F0,I1=L1?j0:E1,B1=L1?k0:p1,L0=(k0|0)<(g1|0),G0=(k0|0)>(N0|0),M1=L0&G0,n1=M1?j0:x0,m1=M1?k0:g1,J0=j0+1|0,q0=(J0|0)<(v0|0),q0)x0=n1,g1=m1,j0=J0,E1=I1,p1=B1;else{d1=n1,Q1=I1;break}if(Z0=_0+($1<<2)|0,e[Z0>>2]=Q1,P0=K0+($1<<2)|0,e[P0>>2]=d1,H0=$1+1|0,i1=(H0|0)==(w1|0),i1)break;$1=H0}return C=R1,$|0}function ob(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,o||p2(t)}function sb(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,o||p2(t)}function ab(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0;if(S2=C,h=o+1296|0,m=e[h>>2]|0,l0=t+64|0,b0=e[l0>>2]|0,U0=b0+4|0,P0=e[U0>>2]|0,u1=P0+28|0,w1=e[u1>>2]|0,P1=w1+2848|0,j1=e[P1>>2]|0,I=t+4|0,M=n4(I,1)|0,W=(M|0)==1,!W)return a=0,a|0;q=o+1284|0,d0=e[q>>2]|0,t0=d0<<2,j=z8(t,t0)|0,u0=o+1292|0,c0=e[u0>>2]|0,$0=c0+-1|0,Z=q8($0)|0,I0=n4(I,Z)|0,e[j>>2]=I0,g0=e[u0>>2]|0,f0=g0+-1|0,n0=q8(f0)|0,h0=n4(I,n0)|0,p0=j+4|0,e[p0>>2]=h0,C0=e[m>>2]|0,S0=(C0|0)>0;e:do if(S0){r2=0,o2=2;t:for(;;){if(B0=(m+4|0)+(r2<<2)|0,_0=e[B0>>2]|0,K0=(m+128|0)+(_0<<2)|0,M0=e[K0>>2]|0,v0=(m+192|0)+(_0<<2)|0,T0=e[v0>>2]|0,N0=1<>2]|0,F0=j1+(V0*56|0)|0,L0=sE(F0,I)|0,G0=(L0|0)==-1,G0){a=0,D2=25;break}else i2=L0;if(z0=(M0|0)>0,z0)for(J0=N0+-1|0,l2=i2,f2=0;;){if(q0=l2&J0,Z0=((m+320|0)+(_0<<5)|0)+(q0<<2)|0,H0=e[Z0>>2]|0,o1=l2>>T0,Y0=(H0|0)>-1,Y0){if(i1=j1+(H0*56|0)|0,x0=sE(i1,I)|0,n1=f2+o2|0,d1=j+(n1<<2)|0,e[d1>>2]=x0,g1=(x0|0)==-1,g1){a=0,D2=25;break t}}else m1=f2+o2|0,h1=j+(m1<<2)|0,e[h1>>2]=0;if(A1=f2+1|0,c1=(A1|0)<(M0|0),c1)l2=o1,f2=A1;else break}if(s1=M0+o2|0,$1=r2+1|0,j0=e[m>>2]|0,E1=($1|0)<(j0|0),E1)r2=$1,o2=s1;else break e}if((D2|0)==25)return a|0}while(!1);if(Q0=e[q>>2]|0,E0=(Q0|0)>2,!E0)return a=j,a|0;for(y0=o+1032|0,w0=o+780|0,A2=2;;){if(I1=A2+-2|0,Q1=y0+(I1<<2)|0,p1=e[Q1>>2]|0,B1=(m+836|0)+(p1<<2)|0,v1=e[B1>>2]|0,k1=w0+(I1<<2)|0,L1=e[k1>>2]|0,M1=(m+836|0)+(L1<<2)|0,S1=e[M1>>2]|0,D1=j+(p1<<2)|0,R1=e[D1>>2]|0,F1=j+(L1<<2)|0,U1=e[F1>>2]|0,b1=(m+836|0)+(A2<<2)|0,Z1=e[b1>>2]|0,G1=R1&32767,x1=U1&32767,z1=x1-G1|0,q1=S1-v1|0,e2=(z1|0)>-1,t2=0-z1|0,H1=e2?z1:t2,Y1=Z1-v1|0,V1=o5(H1,Y1)|0,X1=(V1|0)/(q1|0)&-1,n2=(z1|0)<0,O1=0-X1|0,g=n2?O1:X1,$=g+G1|0,c2=e[u0>>2]|0,W1=c2-$|0,h2=j+(A2<<2)|0,s2=e[h2>>2]|0,E2=(s2|0)==0,E2)r0=$|32768,e[h2>>2]=r0;else{a2=(W1|0)<($|0),K1=a2?W1:$,d2=K1<<1,$2=(s2|0)<(d2|0);do if($2)if(b=s2&1,v=(b|0)==0,v){x=s2>>1,k2=x;break}else{w=s2+1|0,D=w>>1,y=0-D|0,k2=y;break}else if(E=(W1|0)>($|0),E){Q=s2-$|0,k2=Q;break}else{B=s2-W1|0,S=B^-1,k2=S;break}while(!1);L=k2+$|0,R=L&32767,e[h2>>2]=R,F=e[Q1>>2]|0,T=j+(F<<2)|0,N=e[T>>2]|0,G=N&32767,e[T>>2]=G,V=e[k1>>2]|0,X=j+(V<<2)|0,K=e[X>>2]|0,a0=K&32767,e[X>>2]=a0}if(s0=A2+1|0,J=e[q>>2]|0,o0=(s0|0)<(J|0),o0)A2=s0;else{a=j;break}}return a|0}function Ab(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0;if(b1=C,m=o+1296|0,I=e[m>>2]|0,M=t+64|0,W=e[M>>2]|0,$0=W+4|0,Q0=e[$0>>2]|0,N0=Q0+28|0,Z0=e[N0>>2]|0,g1=t+28|0,m1=e[g1>>2]|0,E=Z0+(m1<<2)|0,Q=e[E>>2]|0,B=(Q|0)/2&-1,S=(a|0)==0,S)return d1=B<<2,u4($|0,0,d1|0)|0,g=0,g|0;if(b=e[a>>2]|0,v=I+832|0,w=e[v>>2]|0,D=o5(w,b)|0,y=(D|0)<0,x=(D|0)>255,L=x?255:D,R=y?0:L,F=o+1284|0,T=e[F>>2]|0,N=(T|0)>1,N)for(G=o+260|0,$1=0,Q1=1,B1=0,k1=R;;){if(a0=G+(Q1<<2)|0,r0=e[a0>>2]|0,s0=a+(r0<<2)|0,J=e[s0>>2]|0,o0=J&32767,q=(o0|0)==(J|0),q)if(d0=(I+836|0)+(r0<<2)|0,t0=e[d0>>2]|0,j=o5(w,J)|0,u0=(j|0)<0,c0=(j|0)>255,l0=c0?255:j,Z=u0?0:l0,I0=Z-k1|0,g0=t0-B1|0,E1=(I0|0)>-1,M1=0-I0|0,f0=E1?I0:M1,n0=(I0|0)/(g0|0)&-1,h0=I0>>31,p0=h0|1,C0=o5(n0,g0)|0,I1=(C0|0)>-1,S1=0-C0|0,S0=I1?C0:S1,b0=f0-S0|0,E0=(B|0)>(t0|0),D1=E0?t0:B,y0=(D1|0)>(B1|0),y0&&(w0=1768+(k1<<2)|0,B0=+s[w0>>2],_0=$+(B1<<2)|0,K0=+s[_0>>2],M0=K0*B0,s[_0>>2]=M0),v0=B1+1|0,T0=(v0|0)<(D1|0),T0)for(z0=v0,h1=0,R1=k1;;)if(U0=h1+b0|0,O0=(U0|0)<(g0|0),k0=O0?0:p0,V0=O0?0:g0,u1=U0-V0|0,h=R1+n0|0,F1=h+k0|0,F0=1768+(F1<<2)|0,L0=+s[F0>>2],G0=$+(z0<<2)|0,J0=+s[G0>>2],q0=J0*L0,s[G0>>2]=q0,P0=z0+1|0,c1=(P0|0)==(D1|0),c1){j0=t0,w1=t0,L1=Z;break}else z0=P0,h1=u1,R1=F1;else j0=t0,w1=t0,L1=Z;else j0=$1,w1=B1,L1=k1;if(H0=Q1+1|0,o1=(H0|0)<(T|0),o1)$1=j0,Q1=H0,B1=w1,k1=L1;else{s1=j0,v1=L1;break}}else s1=0,v1=R;if(V=(s1|0)<(B|0),!V)return g=1,g|0;for(X=1768+(v1<<2)|0,K=+s[X>>2],p1=s1;;)if(Y0=$+(p1<<2)|0,i1=+s[Y0>>2],x0=i1*K,s[Y0>>2]=x0,n1=p1+1|0,A1=(n1|0)==(B|0),A1){g=1;break}else p1=n1;return g|0}function $b(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0;return E=C,a=e[t>>2]|0,$=e[a>>2]|0,g=e[o>>2]|0,h=e[g>>2]|0,m=$-h|0,m|0}function lb(t){t=t|0;var o=0,a=0;a=C,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0}function cb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0;u0=C,g=nl(o|0)|0,h=nl(a|0)|0,y=g+2|0,K=y+h|0,$=K,W=C,C=C+((1*$|0)+15&-16)|0,kC(W|0,o|0)|0,t0=nl(W|0)|0,d0=W+t0|0,f[d0>>0]=61,f[d0+1>>0]=0,GQ(W|0,a|0)|0,r0=e[t>>2]|0,s0=t+8|0,J=e[s0>>2]|0,o0=J<<2,q=o0+8|0,m=K7(r0,q)|0,e[t>>2]=m,I=t+4|0,E=e[I>>2]|0,Q=e[s0>>2]|0,B=Q<<2,S=B+8|0,b=K7(E,S)|0,e[I>>2]=b,v=nl(W|0)|0,w=e[s0>>2]|0,D=b+(w<<2)|0,e[D>>2]=v,x=v+1|0,M=R9(x)|0,L=e[t>>2]|0,R=L+(w<<2)|0,e[R>>2]=M,F=e[t>>2]|0,T=F+(w<<2)|0,N=e[T>>2]|0,kC(N|0,W|0)|0,G=e[s0>>2]|0,V=G+1|0,e[s0>>2]=V,X=e[t>>2]|0,a0=X+(V<<2)|0,e[a0>>2]=0,C=u0}function gb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0;if(K=C,g=(t|0)==0,!g){if(h=e[t>>2]|0,y=(h|0)==0,!y){if(M=t+8|0,L=e[M>>2]|0,R=(L|0)>0,R){for(x=L,T=h,V=0;F=T+(V<<2)|0,N=e[F>>2]|0,G=(N|0)==0,G?E=x:(p2(N),a=e[M>>2]|0,E=a),m=V+1|0,I=(m|0)<(E|0),!!I;)o=e[t>>2]|0,x=E,T=o,V=m;$=e[t>>2]|0,Q=$}else Q=h;p2(Q)}B=t+4|0,S=e[B>>2]|0,b=(S|0)==0,b||p2(S),v=t+12|0,w=e[v>>2]|0,D=(w|0)==0,D||p2(w),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0}}function ub(t){t=t|0;var o=0,a=0,$=0,g=0;g=C,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,o=ce(1,3664)|0,a=t+28|0,e[a>>2]=o}function QC(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0;if(w1=C,h=t+28|0,m=e[h>>2]|0,x=(m|0)==0,x){e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,e[t+28>>2]=0;return}if(a0=m+8|0,c0=e[a0>>2]|0,S0=(c0|0)>0,S0)for(h1=c0,$1=0;s1=(m+32|0)+($1<<2)|0,I=e[s1>>2]|0,E=(I|0)==0,E?S=h1:(p2(I),o=e[a0>>2]|0,S=o),Q=$1+1|0,B=(Q|0)<(S|0),B;)h1=S,$1=Q;if(T0=m+12|0,q0=e[T0>>2]|0,m1=(q0|0)>0,m1)for(u1=q0,j0=0;D=(m+544|0)+(j0<<2)|0,y=e[D>>2]|0,M=(y|0)==0,M?K=u1:(L=(m+288|0)+(j0<<2)|0,R=e[L>>2]|0,F=25664+(R<<2)|0,T=e[F>>2]|0,N=T+8|0,G=e[N>>2]|0,ss[G&7](y),a=e[T0>>2]|0,K=a),V=j0+1|0,X=(V|0)<(K|0),X;)u1=K,j0=V;if(b=m+16|0,v=e[b>>2]|0,w=(v|0)>0,w)for(A1=v,E1=0;J=(m+1056|0)+(E1<<2)|0,o0=e[J>>2]|0,q=(o0|0)==0,q?g0=A1:(d0=(m+800|0)+(E1<<2)|0,t0=e[d0>>2]|0,j=25640+(t0<<2)|0,u0=e[j>>2]|0,$0=u0+12|0,l0=e[$0>>2]|0,ss[l0&7](o0),$=e[b>>2]|0,g0=$),Z=E1+1|0,I0=(Z|0)<(g0|0),I0;)A1=g0,E1=Z;if(W=m+20|0,r0=e[W>>2]|0,s0=(r0|0)>0,s0)for(c1=r0,I1=0;C0=(m+1568|0)+(I1<<2)|0,Q0=e[C0>>2]|0,b0=(Q0|0)==0,b0?N0=c1:(E0=(m+1312|0)+(I1<<2)|0,y0=e[E0>>2]|0,w0=25648+(y0<<2)|0,B0=e[w0>>2]|0,_0=B0+12|0,K0=e[_0>>2]|0,ss[K0&7](Q0),g=e[W>>2]|0,N0=g),M0=I1+1|0,v0=(M0|0)<(N0|0),v0;)c1=N0,I1=M0;if(f0=m+24|0,n0=e[f0>>2]|0,h0=(n0|0)>0,p0=m+2848|0,h0)for(Q1=0;U0=(m+1824|0)+(Q1<<2)|0,O0=e[U0>>2]|0,k0=(O0|0)==0,k0||vC(O0),V0=e[p0>>2]|0,F0=(V0|0)==0,F0||(L0=V0+(Q1*56|0)|0,Yb(L0)),G0=Q1+1|0,z0=e[f0>>2]|0,J0=(G0|0)<(z0|0),J0;)Q1=G0;if(Z0=e[p0>>2]|0,P0=(Z0|0)==0,P0||p2(Z0),H0=m+28|0,o1=e[H0>>2]|0,Y0=(o1|0)>0,Y0)for(p1=0;i1=(m+2852|0)+(p1<<2)|0,x0=e[i1>>2]|0,yb(x0),n1=p1+1|0,d1=e[H0>>2]|0,g1=(n1|0)<(d1|0),g1;)p1=n1;p2(m),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,e[t+28>>2]=0}function db(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0;if(X2=C,C=C+32|0,T1=X2,E=t+4|0,Q=e[E>>2]|0,c1=t+104|0,k1=e[c1>>2]|0,G1=(k1|0)==0,G1)return e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,e[a+12>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,e[a+24>>2]=0,e[a+28>>2]=0,e[$>>2]=0,e[$+4>>2]=0,e[$+8>>2]=0,e[$+12>>2]=0,e[$+16>>2]=0,e[$+20>>2]=0,e[$+24>>2]=0,e[$+28>>2]=0,e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,e[g+12>>2]=0,e[g+16>>2]=0,e[g+20>>2]=0,e[g+24>>2]=0,e[g+28>>2]=0,h=-129,C=X2,h|0;if(c2=Q+4|0,r2=e[c2>>2]|0,L2=(r2|0)<1,L2)D5=-129,l5=27;else if(mC(T1),N1=Q+28|0,B5=e[N1>>2]|0,B=(B5|0)==0,B)D5=-130,l5=27;else if(F=e[B5>>2]|0,J=(F|0)<64,J)D5=-130,l5=27;else if(I0=B5+4|0,y0=e[I0>>2]|0,k0=(y0|0)<(F|0),k0)D5=-130,l5=27;else{O2(T1,1,8),O2(T1,118,8),O2(T1,111,8),O2(T1,114,8),O2(T1,98,8),O2(T1,105,8),O2(T1,115,8),O2(T1,0,32),o1=e[c2>>2]|0,O2(T1,o1,8),h1=Q+8|0,u1=e[h1>>2]|0,O2(T1,u1,32),A1=Q+12|0,s1=e[A1>>2]|0,O2(T1,s1,32),$1=Q+16|0,j0=e[$1>>2]|0,O2(T1,j0,32),E1=Q+20|0,I1=e[E1>>2]|0,O2(T1,I1,32),Q1=e[B5>>2]|0,p1=Q1+-1|0,B1=q8(p1)|0,O2(T1,B1,4),w1=e[I0>>2]|0,v1=w1+-1|0,L1=q8(v1)|0,O2(T1,L1,4),O2(T1,1,1),M1=k1+64|0,S1=e[M1>>2]|0,D1=(S1|0)==0,D1||p2(S1),R1=D8(T1)|0,F1=R9(R1)|0,e[M1>>2]=F1,U1=T1+8|0,b1=e[U1>>2]|0,P1=D8(T1)|0,ge(F1|0,b1|0,P1|0)|0,Z1=e[M1>>2]|0,e[a>>2]=Z1,x1=D8(T1)|0,z1=a+4|0,e[z1>>2]=x1,q1=a+8|0,e[q1>>2]=1,H1=a+12|0,e[H1>>2]=0,e[H1+4>>2]=0,e[H1+8>>2]=0,e[H1+12>>2]=0,e[H1+16>>2]=0,Ii(T1),hb(T1,o),Y1=k1+68|0,V1=e[Y1>>2]|0,X1=(V1|0)==0,X1||p2(V1),n2=D8(T1)|0,j1=R9(n2)|0,e[Y1>>2]=j1,O1=e[U1>>2]|0,W1=D8(T1)|0,ge(j1|0,O1|0,W1|0)|0,h2=e[Y1>>2]|0,e[$>>2]=h2,s2=D8(T1)|0,E2=$+4|0,e[E2>>2]=s2,a2=$+8|0,K1=$+24|0,e[a2>>2]=0,e[a2+4>>2]=0,e[a2+8>>2]=0,e[a2+12>>2]=0,d2=K1,$2=d2,e[$2>>2]=1,i2=d2+4|0,l2=i2,e[l2>>2]=0,Ii(T1),A2=e[N1>>2]|0,e2=(A2|0)==0;e:do if(!e2){if(O2(T1,5,8),O2(T1,118,8),O2(T1,111,8),O2(T1,114,8),O2(T1,98,8),O2(T1,105,8),O2(T1,115,8),o2=A2+24|0,f2=e[o2>>2]|0,t2=f2+-1|0,O2(T1,t2,8),k2=e[o2>>2]|0,D2=(k2|0)>0,D2)for(Y2=0;;){if(U2=(A2+1824|0)+(Y2<<2)|0,m2=e[U2>>2]|0,W2=YS(m2,T1)|0,P2=(W2|0)==0,Q2=Y2+1|0,!P2)break e;if(S2=e[o2>>2]|0,N2=(Q2|0)<(S2|0),N2)Y2=Q2;else break}if(O2(T1,0,6),O2(T1,0,16),V2=A2+16|0,G2=e[V2>>2]|0,q2=G2+-1|0,O2(T1,q2,6),Z2=e[V2>>2]|0,A5=(Z2|0)>0,A5)for(p5=0;;){if(H2=(A2+800|0)+(p5<<2)|0,t5=e[H2>>2]|0,O2(T1,t5,16),T5=e[H2>>2]|0,i5=25640+(T5<<2)|0,x5=e[i5>>2]|0,j2=e[x5>>2]|0,I5=(j2|0)==0,I5)break e;if(b5=(A2+1056|0)+(p5<<2)|0,Y5=e[b5>>2]|0,_C[j2&3](Y5,T1),g5=p5+1|0,b2=e[V2>>2]|0,s5=(g5|0)<(b2|0),s5)p5=g5;else break}if(R2=A2+20|0,M2=e[R2>>2]|0,y2=M2+-1|0,O2(T1,y2,6),Q5=e[R2>>2]|0,N5=(Q5|0)>0,N5)for($5=0;m5=(A2+1312|0)+($5<<2)|0,L5=e[m5>>2]|0,O2(T1,L5,16),q5=e[m5>>2]|0,M5=25648+(q5<<2)|0,S=e[M5>>2]|0,b=e[S>>2]|0,v=(A2+1568|0)+($5<<2)|0,w=e[v>>2]|0,_C[b&3](w,T1),D=$5+1|0,y=e[R2>>2]|0,x=(D|0)<(y|0),x;)$5=D;if(M=A2+12|0,L=e[M>>2]|0,R=L+-1|0,O2(T1,R,6),T=e[M>>2]|0,N=(T|0)>0,N)for(u5=0;G=(A2+288|0)+(u5<<2)|0,V=e[G>>2]|0,O2(T1,V,16),X=e[G>>2]|0,K=25664+(X<<2)|0,a0=e[K>>2]|0,W=e[a0>>2]|0,r0=(A2+544|0)+(u5<<2)|0,s0=e[r0>>2]|0,YQ[W&1](Q,s0,T1),o0=u5+1|0,q=e[M>>2]|0,d0=(o0|0)<(q|0),d0;)u5=o0;if(t0=A2+8|0,j=e[t0>>2]|0,u0=j+-1|0,O2(T1,u0,6),c0=e[t0>>2]|0,$0=(c0|0)>0,$0)for(y5=0;l0=(A2+32|0)+(y5<<2)|0,Z=e[l0>>2]|0,g0=e[Z>>2]|0,O2(T1,g0,1),f0=e[l0>>2]|0,n0=f0+4|0,h0=e[n0>>2]|0,O2(T1,h0,16),p0=e[l0>>2]|0,C0=p0+8|0,S0=e[C0>>2]|0,O2(T1,S0,16),Q0=e[l0>>2]|0,b0=Q0+12|0,E0=e[b0>>2]|0,O2(T1,E0,8),w0=y5+1|0,B0=e[t0>>2]|0,_0=(w0|0)<(B0|0),_0;)y5=w0;return O2(T1,1,1),K0=k1+72|0,M0=e[K0>>2]|0,v0=(M0|0)==0,v0||p2(M0),T0=D8(T1)|0,N0=R9(T0)|0,e[K0>>2]=N0,U0=e[U1>>2]|0,O0=D8(T1)|0,ge(N0|0,U0|0,O0|0)|0,V0=e[K0>>2]|0,e[g>>2]=V0,F0=D8(T1)|0,L0=g+4|0,e[L0>>2]=F0,G0=g+8|0,z0=g+24|0,e[G0>>2]=0,e[G0+4>>2]=0,e[G0+8>>2]=0,e[G0+12>>2]=0,J0=z0,q0=J0,e[q0>>2]=2,Z0=J0+4|0,P0=Z0,e[P0>>2]=0,pC(T1),h=0,C=X2,h|0}while(!1);e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,e[a+12>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,e[a+24>>2]=0,e[a+28>>2]=0,e[$>>2]=0,e[$+4>>2]=0,e[$+8>>2]=0,e[$+12>>2]=0,e[$+16>>2]=0,e[$+20>>2]=0,e[$+24>>2]=0,e[$+28>>2]=0,e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,e[g+12>>2]=0,e[g+16>>2]=0,e[g+20>>2]=0,e[g+24>>2]=0,e[g+28>>2]=0,I=M1,d5=-130}return(l5|0)==27&&(e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,e[a+12>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,e[a+24>>2]=0,e[a+28>>2]=0,e[$>>2]=0,e[$+4>>2]=0,e[$+8>>2]=0,e[$+12>>2]=0,e[$+16>>2]=0,e[$+20>>2]=0,e[$+24>>2]=0,e[$+28>>2]=0,e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,e[g+12>>2]=0,e[g+16>>2]=0,e[g+20>>2]=0,e[g+24>>2]=0,e[g+28>>2]=0,m=k1+64|0,I=m,d5=D5),pC(T1),H0=e[I>>2]|0,Y0=(H0|0)==0,Y0||p2(H0),i1=k1+68|0,x0=e[i1>>2]|0,n1=(x0|0)==0,n1||p2(x0),d1=k1+72|0,g1=e[d1>>2]|0,m1=(g1|0)==0,m1||p2(g1),e[I>>2]=0,e[i1>>2]=0,e[d1>>2]=0,h=d5,C=X2,h|0}function hb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0;for($0=C,O2(t,3,8),O2(t,118,8),O2(t,111,8),O2(t,114,8),O2(t,98,8),O2(t,105,8),O2(t,115,8),O2(t,44,32),a=1200,g=44;m=g+-1|0,I=a+1|0,M=f[a>>0]|0,W=M<<24>>24,O2(t,W,8),J=(m|0)==0,!J;)a=I,g=m;if(o0=o+8|0,q=e[o0>>2]|0,O2(t,q,32),d0=e[o0>>2]|0,t0=(d0|0)>0,!t0){O2(t,1,1);return}for(j=o+4|0,u0=0;;){if(E=e[o>>2]|0,Q=E+(u0<<2)|0,B=e[Q>>2]|0,S=(B|0)==0,S)O2(t,0,32);else if(b=e[j>>2]|0,v=b+(u0<<2)|0,w=e[v>>2]|0,O2(t,w,32),D=e[j>>2]|0,y=D+(u0<<2)|0,x=e[y>>2]|0,L=(x|0)==0,!L)for(R=e[o>>2]|0,F=R+(u0<<2)|0,T=e[F>>2]|0,$=T,h=x;N=h+-1|0,G=$+1|0,V=f[$>>0]|0,X=V<<24>>24,O2(t,X,8),K=(N|0)==0,!K;)$=G,h=N;if(a0=u0+1|0,r0=e[o0>>2]|0,s0=(a0|0)<(r0|0),s0)u0=a0;else break}O2(t,1,1)}function mQ(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0;if(V1=C,E=$+1|0,Q=E<<3,g=Q,R=C,C=C+((1*g|0)+15&-16)|0,s0=$<<3,h=s0,Z=C,C=C+((1*h|0)+15&-16)|0,E0=(E|0)==0,E0)N=0;else{for(O0=$;;){if(H0=(O0|0)<(a|0),H0)for(Q1=0,R1=O0;;)if(A1=t+(R1<<2)|0,E1=+s[A1>>2],B=E1,S=R1-O0|0,b=t+(S<<2)|0,v=+s[b>>2],w=v,D=w*B,y=D+Q1,x=R1+1|0,D1=(x|0)==(a|0),D1){I1=y;break}else Q1=y,R1=x;else I1=0;if(M=R+(O0<<3)|0,l1[M>>3]=I1,L=O0+-1|0,F=(O0|0)==0,F)break;O0=L}I=+l1[R>>3],N=I}if(T=N*1.0000000001,G=N*1e-9,V=G+1e-10,X=($|0)>0,X)B1=T,F1=0;else return k1=T,j0=k1,C=V1,+j0;for(;;){if(b1=F1+1|0,K=B1>3],q=-o0,d0=(F1|0)>0,d0){for(P1=0,q1=q;;)if(u0=Z+(P1<<3)|0,c0=+l1[u0>>3],$0=F1-P1|0,l0=R+($0<<3)|0,I0=+l1[l0>>3],g0=I0*c0,f0=q1-g0,n0=P1+1|0,S1=(n0|0)==(F1|0),S1){m=f0;break}else P1=n0,q1=f0;if(h0=m/B1,p0=Z+(F1<<3)|0,l1[p0>>3]=h0,C0=(F1|0)/2&-1,S0=(F1|0)>1,S0){for(Q0=F1+-1|0,b0=(C0|0)>1,G1=0;y0=Z+(G1<<3)|0,w0=+l1[y0>>3],B0=Q0-G1|0,_0=Z+(B0<<3)|0,K0=+l1[_0>>3],M0=K0*h0,v0=M0+w0,l1[y0>>3]=v0,T0=w0*h0,N0=+l1[_0>>3],U0=N0+T0,l1[_0>>3]=U0,k0=G1+1|0,V0=(k0|0)<(C0|0),V0;)G1=k0;H1=b0?C0:1,q0=h0,Z1=H1}else q0=h0,Z1=0}else t0=q/B1,j=Z+(F1<<3)|0,l1[j>>3]=t0,q0=t0,Z1=0;if(F0=F1&1,L0=(F0|0)==0,L0||(G0=Z+(Z1<<3)|0,z0=+l1[G0>>3],J0=z0*q0,Z0=J0+z0,l1[G0>>3]=Z0),P0=q0*q0,o1=1-P0,Y0=o1*B1,i1=(b1|0)<($|0),i1)B1=Y0,F1=b1;else{v1=Y0;break}}if((Y1|0)==8&&(a0=Z+(U1<<3)|0,W=$-U1|0,r0=W<<3,u4(a0|0,0,r0|0)|0,v1=w1),X)p1=.99,x1=0;else return k1=v1,j0=k1,C=V1,+j0;for(;x0=Z+(x1<<3)|0,n1=+l1[x0>>3],d1=n1*p1,l1[x0>>3]=d1,g1=p1*.99,m1=x1+1|0,M1=(m1|0)==($|0),!M1;)p1=g1,x1=m1;if(X)z1=0;else return k1=v1,j0=k1,C=V1,+j0;for(;;)if(h1=Z+(z1<<3)|0,u1=+l1[h1>>3],c1=u1,s1=o+(z1<<2)|0,s[s1>>2]=c1,$1=z1+1|0,L1=($1|0)==($|0),L1){k1=v1;break}else z1=$1;return j0=k1,C=V1,+j0}function pQ(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0;if(j=C,I=g+a|0,E=I<<2,h=E,L=C,C=C+((1*h|0)+15&-16)|0,F=(o|0)==0,T=(a|0)>0,F?T&&(G=a<<2,u4(L|0,0,G|0)|0):T&&(N=a<<2,ge(L|0,o|0,N|0)|0),V=(g|0)>0,!V){C=j;return}if(X=(a|0)>0,X)r0=0,s0=a;else{K=g<<2,u4(L|0,0,K|0)|0,u4($|0,0,K|0)|0,C=j;return}for(;;){for(o0=r0,q=a,d0=0;;)if(b=o0+1|0,v=L+(o0<<2)|0,w=+s[v>>2],D=q+-1|0,y=t+(D<<2)|0,x=+s[y>>2],M=x*w,R=d0-M,a0=(b|0)==(s0|0),a0){m=R;break}else o0=b,q=D,d0=R;if(Q=L+(s0<<2)|0,s[Q>>2]=m,B=$+(r0<<2)|0,s[B>>2]=m,S=r0+1|0,J=s0+1|0,W=(S|0)==(g|0),W)break;r0=S,s0=J}C=j}function fb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0;if(_0=C,g=e[o>>2]|0,h=(g|0)>1,h?(O2(a,1,1),y=e[o>>2]|0,K=y+-1|0,O2(a,K,4)):O2(a,0,1),u0=o+1156|0,p0=e[u0>>2]|0,C0=(p0|0)>0,C0){if(O2(a,1,1),S0=e[u0>>2]|0,Q0=S0+-1|0,O2(a,Q0,8),b0=e[u0>>2]|0,m=(b0|0)>0,m)for(I=o+1160|0,E=t+4|0,Q=o+2184|0,E0=0;B=I+(E0<<2)|0,S=e[B>>2]|0,b=e[E>>2]|0,v=b+-1|0,w=q8(v)|0,O2(a,S,w),D=Q+(E0<<2)|0,x=e[D>>2]|0,M=e[E>>2]|0,L=M+-1|0,R=q8(L)|0,O2(a,x,R),F=E0+1|0,T=e[u0>>2]|0,N=(F|0)<(T|0),N;)E0=F}else O2(a,0,1);if(O2(a,0,2),G=e[o>>2]|0,V=(G|0)>1,V){if(X=t+4|0,a0=e[X>>2]|0,W=(a0|0)>0,W){for(r0=o+4|0,y0=0;d0=r0+(y0<<2)|0,t0=e[d0>>2]|0,O2(a,t0,4),j=y0+1|0,c0=e[X>>2]|0,$0=(j|0)<(c0|0),$0;)y0=j;$=e[o>>2]|0,s0=$,B0=13}}else s0=G,B0=13;if(!((B0|0)==13&&(J=(s0|0)>0,!J)))for(o0=o+1028|0,q=o+1092|0,w0=0;O2(a,0,8),l0=o0+(w0<<2)|0,Z=e[l0>>2]|0,O2(a,Z,8),I0=q+(w0<<2)|0,g0=e[I0>>2]|0,O2(a,g0,8),f0=w0+1|0,n0=e[o>>2]|0,h0=(f0|0)<(n0|0),h0;)w0=f0}function Ib(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0;s1=C,g=ce(1,3208)|0,h=t+28|0,y=e[h>>2]|0,u4(g|0,0,3208)|0,K=t+4|0,u0=e[K>>2]|0,C0=(u0|0)<1;e:do if(C0)c1=24;else if(v0=n4(o,1)|0,J0=(v0|0)<0,J0)c1=24;else{if(Y0=(v0|0)==0,Y0)e[g>>2]=1;else if(i1=n4(o,4)|0,m=i1+1|0,e[g>>2]=m,I=(i1|0)<0,I)break;if(E=n4(o,1)|0,Q=(E|0)<0,!Q){if(B=(E|0)==0,!B){if(S=n4(o,8)|0,b=S+1|0,v=g+1156|0,e[v>>2]=b,w=(S|0)<0,w)break;for(D=g+1160|0,x=g+2184|0,$=e[K>>2]|0,T=$,x0=0;;){if(F=T+-1|0,N=q8(F)|0,G=n4(o,N)|0,V=D+(x0<<2)|0,e[V>>2]=G,X=e[K>>2]|0,a0=X+-1|0,W=q8(a0)|0,r0=n4(o,W)|0,s0=x+(x0<<2)|0,e[s0>>2]=r0,J=r0|G,o0=(J|0)<0,q=(G|0)==(r0|0),g1=q|o0,g1||(d0=e[K>>2]|0,t0=(G|0)<(d0|0),j=(r0|0)<(d0|0),m1=t0&j,L=x0+1|0,!m1))break e;if(M=e[v>>2]|0,R=(L|0)<(M|0),R)T=d0,x0=L;else break}}if(c0=n4(o,2)|0,$0=(c0|0)==0,$0){if(l0=e[g>>2]|0,Z=(l0|0)>1,Z){if(I0=e[K>>2]|0,g0=(I0|0)>0,g0)for(f0=g+4|0,n1=0;;){if(B0=n4(o,4)|0,_0=f0+(n1<<2)|0,e[_0>>2]=B0,K0=e[g>>2]|0,M0=(B0|0)>=(K0|0),T0=(B0|0)<0,h1=T0|M0,y0=n1+1|0,h1)break e;if(E0=e[K>>2]|0,w0=(y0|0)<(E0|0),w0)n1=y0;else{n0=K0,c1=17;break}}}else n0=l0,c1=17;if((c1|0)==17&&(h0=(n0|0)>0,!h0))return a=g,a|0;for(p0=g+1028|0,S0=y+16|0,Q0=g+1092|0,b0=y+20|0,d1=0;;){if(n4(o,8)|0,k0=n4(o,8)|0,V0=p0+(d1<<2)|0,e[V0>>2]=k0,F0=e[S0>>2]|0,L0=(k0|0)>=(F0|0),G0=(k0|0)<0,u1=G0|L0,u1||(z0=n4(o,8)|0,q0=Q0+(d1<<2)|0,e[q0>>2]=z0,Z0=e[b0>>2]|0,P0=(z0|0)>=(Z0|0),H0=(z0|0)<0,A1=H0|P0,U0=d1+1|0,A1))break e;if(N0=e[g>>2]|0,O0=(U0|0)<(N0|0),O0)d1=U0;else{a=g;break}}return a|0}}}while(!1);return(c1|0)==24&&(o1=(g|0)==0,o1)?(a=0,a|0):(p2(g),a=0,a|0)}function mb(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,o||p2(t)}function pb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0,H8=0,K8=0,R8=0,u8=0,F8=0,g4=0,Y8=0,W8=0,ht=0,Nt=0,T8=0,Xt=0,O4=0,B4=0,ae=0,N8=0,Ai=0,Oi=0,qi=0,Hi=0,pi=0,Z8=0,Ei=0,j8=0,Ci=0,X8=0,Bi=0,$i=0,c7=0,Yi=0,Qi=0,yi=0,g7=0,wi=0,li=0,u7=0,Vi=0,Ji=0,zi=0,Ki=0,ci=0,vi=0,Wi=0,ei=0,gi=0,V8=0,ti=0,d7=0,Zi=0,h7=0,ki=0,ji=0,Si=0,bi=0,Xi=0,Di=0,ii=0,_i=0,e7=0,ui=0,J8=0,xi=0,x4=0,Li=0,G8=0,di=0,l9=0,B8=0,vt=0,Q8=0,U8=0,nn=0,yr=0,as=0,Vn=0,As=0,Jn=0,$s=0,ls=0,zn=0,cs=0,on=0,gs=0,us=0,ds=0,Kn=0,hs=0,Wn=0,Zn=0,fs=0,sn=0,jn=0,an=0,Xn=0,eo=0,Is=0,ms=0,ps=0,An=0,to=0,Es=0,wr=0,$n=0,Cs=0,Bs=0,ln=0,f7=0,io=0,Qs=0,ys=0,ro=0,no=0,oo=0,ws=0,I7=0,cn=0,vs=0,so=0,ks=0,Ss=0,bs=0,ao=0,Ds=0,_s=0,xs=0,Ls=0,Ao=0,Ms=0,Rs=0,gn=0,vr=0,un=0,Fs=0,or=0,Ts=0,$o=0,dn=0,lo=0,hn=0,Ns=0,co=0,go=0,Gs=0,uo=0,ho=0,Us=0,kr=0,fo=0,m7=0,fn=0,Sr=0,sr=0,br=0,W7=0,Dr=0,Io=0,Z7=0,S7=0,b7=0,t7=0,D7=0,_r=0,ar=0,Ar=0,xr=0,p7=0,Ps=0,hi=0,sl=0,In=0,mn=0;if(In=C,x=t+64|0,M=e[x>>2]|0,i2=M+4|0,V3=e[i2>>2]|0,Ne=V3+28|0,je=e[Ne>>2]|0,Cs=M+104|0,I7=e[Cs>>2]|0,Ls=t+104|0,dn=e[Ls>>2]|0,L=t+36|0,r0=e[L>>2]|0,l0=V3+4|0,b0=e[l0>>2]|0,U0=b0<<2,$=U0,P0=C,C=C+((1*$|0)+15&-16)|0,u1=z8(t,U0)|0,w1=e[l0>>2]|0,P1=w1<<2,j1=z8(t,P1)|0,l2=e[l0>>2]|0,N2=l2<<2,H2=z8(t,N2)|0,b2=dn+4|0,M5=+s[b2>>2],g2=e[l0>>2]|0,F2=g2<<2,g=F2,G5=C,C=C+((1*g|0)+15&-16)|0,T3=dn+8|0,U5=e[T3>>2]|0,Z5=t+28|0,h6=e[Z5>>2]|0,K3=(je+544|0)+(h6<<2)|0,A6=e[K3>>2]|0,P6=I7+56|0,B9=e[P6>>2]|0,we=(h6|0)!=0,de=we?2:0,D=de+U5|0,he=B9+(D*52|0)|0,ze=t+40|0,e[ze>>2]=h6,h4=(g2|0)>0,h4)for(Ie=+(r0|0),W3=4/Ie,m8=(s[w2>>2]=W3,e[w2>>2]|0),_t=(r0|0)/2&-1,Lt=_t<<2,Mt=m8&2147483647,ct=+(Mt>>>0),De=ct*7177114298428933e-22,j4=De+-764.6162109375,c8=j4,g4=c8+.345,Ai=g4,$i=I7+4|0,zi=t+24|0,h7=t+32|0,J8=Ai+-764.6162109375,nn=r0+-1|0,gs=(nn|0)>1,Xn=Ai+-382.30810546875,Dr=M5,Z7=0;;){if(Bs=e[t>>2]|0,ln=Bs+(Z7<<2)|0,f7=e[ln>>2]|0,io=z8(t,Lt)|0,Qs=j1+(Z7<<2)|0,e[Qs>>2]=io,ys=z8(t,Lt)|0,ro=u1+(Z7<<2)|0,e[ro>>2]=ys,no=e[zi>>2]|0,oo=e[Z5>>2]|0,ws=e[h7>>2]|0,Xb(f7,$i,je,no,oo,ws),cn=e[Z5>>2]|0,vs=(I7+12|0)+(cn<<2)|0,so=e[vs>>2]|0,ks=e[so>>2]|0,Ss=e[ro>>2]|0,EQ(ks,f7,Ss),bs=e[Z5>>2]|0,ao=(I7+20|0)+(bs*12|0)|0,zb(ao,f7),Ds=e[f7>>2]|0,_s=Ds&2147483647,xs=+(_s>>>0),Ao=xs*7177114298428933e-22,Ms=J8+Ao,Rs=Ms,gn=Rs+.345,vr=gn,s[f7>>2]=vr,un=G5+(Z7<<2)|0,s[un>>2]=vr,gs)for(V=vr,_r=1;;)if(Fs=f7+(_r<<2)|0,or=+s[Fs>>2],Ts=or*or,$o=_r+1|0,lo=f7+($o<<2)|0,hn=+s[lo>>2],Ns=hn*hn,co=Ns+Ts,go=(s[w2>>2]=co,e[w2>>2]|0),Gs=go&2147483647,uo=+(Gs>>>0),ho=uo*35885571492144663e-23,Us=Xn+ho,kr=Us,R=kr+.345,F=R,T=$o>>1,N=f7+(T<<2)|0,s[N>>2]=F,G=F>V,G?(s[un>>2]=F,wr=F):wr=V,X=_r+2|0,K=(X|0)<(nn|0),K)V=wr,_r=X;else{W=wr;break}else W=vr;if(a0=W>0,a0?(s[un>>2]=0,J=0):J=W,s0=J>Dr,Io=s0?J:Dr,o0=Z7+1|0,q=e[l0>>2]|0,d0=(o0|0)<(q|0),d0)Dr=Io,Z7=o0;else{Q=Lt,S=_t,W7=Io;break}}else b=(r0|0)/2&-1,v=b<<2,Q=v,S=b,W7=M5;t0=z8(t,Q)|0,j=z8(t,Q)|0,u0=e[l0>>2]|0,c0=(u0|0)>0;e:do if(c0){if($0=(r0|0)>1,Z=I7+48|0,$0)b7=0;else{for(S7=0;;){o6=(A6+4|0)+(S7<<2)|0,C6=e[o6>>2]|0,z3=u1+(S7<<2)|0,M3=e[z3>>2]|0,e6=e[t>>2]|0,F6=e6+(S7<<2)|0,l6=e[F6>>2]|0,o3=l6+(S<<2)|0,e[ze>>2]=h6,K6=z8(t,60)|0,A3=H2+(S7<<2)|0,e[A3>>2]=K6,hi=K6,mn=hi+60|0;do e[hi>>2]=0,hi=hi+4|0;while((hi|0)<(mn|0));if(yQ(he,o3,t0),c6=G5+(S7<<2)|0,B6=+s[c6>>2],wQ(he,l6,j,W7,B6),rl(he,t0,j,1,l6,M3,o3),R3=(A6+1028|0)+(C6<<2)|0,Y6=e[R3>>2]|0,D6=(je+800|0)+(Y6<<2)|0,U6=e[D6>>2]|0,t9=(U6|0)==1,!t9){a=-1;break}if(Q6=e[Z>>2]|0,e9=Q6+(Y6<<2)|0,G3=e[e9>>2]|0,n9=il(t,G3,o3,l6)|0,V6=e[A3>>2]|0,s9=V6+28|0,e[s9>>2]=n9,c9=Nu(t)|0,J6=(c9|0)==0,J6||(T6=e[A3>>2]|0,i9=T6+28|0,_6=e[i9>>2]|0,O6=(_6|0)==0,O6||(rl(he,t0,j,2,l6,M3,o3),U3=e[R3>>2]|0,q6=e[Z>>2]|0,a9=q6+(U3<<2)|0,d9=e[a9>>2]|0,o9=il(t,d9,o3,l6)|0,Q9=e[A3>>2]|0,y9=Q9+56|0,e[y9>>2]=o9,rl(he,t0,j,0,l6,M3,o3),h9=e[R3>>2]|0,f9=e[Z>>2]|0,H9=f9+(h9<<2)|0,y6=e[H9>>2]|0,H6=il(t,y6,o3,l6)|0,A9=e[A3>>2]|0,e[A9>>2]=H6,Y9=e[R3>>2]|0,w9=e[Z>>2]|0,ue=w9+(Y9<<2)|0,Ee=e[ue>>2]|0,V9=e[A3>>2]|0,ie=e[V9>>2]|0,F9=V9+28|0,v9=e[F9>>2]|0,W6=Gt(t,Ee,ie,v9,9362)|0,$9=e[A3>>2]|0,ve=$9+4|0,e[ve>>2]=W6,Re=e[R3>>2]|0,_9=e[Z>>2]|0,Fe=_9+(Re<<2)|0,Te=e[Fe>>2]|0,Ge=e[A3>>2]|0,He=e[Ge>>2]|0,o4=Ge+28|0,ke=e[o4>>2]|0,Ye=Gt(t,Te,He,ke,18724)|0,J9=e[A3>>2]|0,Ve=J9+8|0,e[Ve>>2]=Ye,Ue=e[R3>>2]|0,Ce=e[Z>>2]|0,v4=Ce+(Ue<<2)|0,W9=e[v4>>2]|0,k9=e[A3>>2]|0,k4=e[k9>>2]|0,Y4=k9+28|0,nt=e[Y4>>2]|0,Je=Gt(t,W9,k4,nt,28086)|0,V4=e[A3>>2]|0,s4=V4+12|0,e[s4>>2]=Je,R4=e[R3>>2]|0,ot=e[Z>>2]|0,re=ot+(R4<<2)|0,d4=e[re>>2]|0,Be=e[A3>>2]|0,N6=e[Be>>2]|0,Ke=Be+28|0,P9=e[Ke>>2]|0,fe=Gt(t,d4,N6,P9,37449)|0,ne=e[A3>>2]|0,f4=ne+16|0,e[f4>>2]=fe,I4=e[R3>>2]|0,Se=e[Z>>2]|0,a4=Se+(I4<<2)|0,Pe=e[a4>>2]|0,m4=e[A3>>2]|0,S9=e[m4>>2]|0,f6=m4+28|0,J4=e[f6>>2]|0,S4=Gt(t,Pe,S9,J4,46811)|0,be=e[A3>>2]|0,me=be+20|0,e[me>>2]=S4,z6=e[R3>>2]|0,F4=e[Z>>2]|0,T4=F4+(z6<<2)|0,st=e[T4>>2]|0,pe=e[A3>>2]|0,xe=e[pe>>2]|0,mt=pe+28|0,x9=e[mt>>2]|0,b9=Gt(t,st,xe,x9,56173)|0,Oe=e[A3>>2]|0,A4=Oe+24|0,e[A4>>2]=b9,h8=e[R3>>2]|0,N4=e[Z>>2]|0,f8=N4+(h8<<2)|0,_8=e[f8>>2]|0,e8=e[A3>>2]|0,I8=e8+28|0,Ut=e[I8>>2]|0,Pt=e8+56|0,Ot=e[Pt>>2]|0,qt=Gt(t,_8,Ut,Ot,9362)|0,t8=e[A3>>2]|0,i8=t8+32|0,e[i8>>2]=qt,x8=e[R3>>2]|0,Ht=e[Z>>2]|0,Yt=Ht+(x8<<2)|0,Vt=e[Yt>>2]|0,xt=e[A3>>2]|0,pt=xt+28|0,Jt=e[pt>>2]|0,zt=xt+56|0,r8=e[zt>>2]|0,n8=Gt(t,Vt,Jt,r8,18724)|0,Et=e[A3>>2]|0,z4=Et+36|0,e[z4>>2]=n8,G4=e[R3>>2]|0,at=e[Z>>2]|0,L9=at+(G4<<2)|0,p8=e[L9>>2]|0,b4=e[A3>>2]|0,E8=b4+28|0,L8=e[E8>>2]|0,o8=b4+56|0,M8=e[o8>>2]|0,$4=Gt(t,p8,L8,M8,28086)|0,s8=e[A3>>2]|0,Kt=s8+40|0,e[Kt>>2]=$4,At=e[R3>>2]|0,We=e[Z>>2]|0,U4=We+(At<<2)|0,$t=e[U4>>2]|0,Ct=e[A3>>2]|0,Rt=Ct+28|0,p4=e[Rt>>2]|0,oe=Ct+56|0,lt=e[oe>>2]|0,Bt=Gt(t,$t,p4,lt,37449)|0,Qt=e[A3>>2]|0,E4=Qt+44|0,e[E4>>2]=Bt,D4=e[R3>>2]|0,K4=e[Z>>2]|0,W4=K4+(D4<<2)|0,se=e[W4>>2]|0,P4=e[A3>>2]|0,C4=P4+28|0,gt=e[C4>>2]|0,_4=P4+56|0,yt=e[_4>>2]|0,a8=Gt(t,se,gt,yt,46811)|0,Ze=e[A3>>2]|0,E3=Ze+48|0,e[E3>>2]=a8,Z4=e[R3>>2]|0,wt=e[Z>>2]|0,l4=wt+(Z4<<2)|0,Z9=e[l4>>2]|0,c4=e[A3>>2]|0,T9=c4+28|0,Wt=e[T9>>2]|0,C8=c4+56|0,A8=e[C8>>2]|0,$8=Gt(t,Z9,Wt,A8,56173)|0,Zt=e[A3>>2]|0,l8=Zt+52|0,e[l8>>2]=$8)),jt=S7+1|0,ut=e[l0>>2]|0,dt=(jt|0)<(ut|0),dt)S7=jt;else{B=Z,Tt=ut;break e}}return C=In,a|0}for(;;){G6=(A6+4|0)+(b7<<2)|0,C0=e[G6>>2]|0,X6=u1+(b7<<2)|0,h0=e[X6>>2]|0,v6=e[t>>2]|0,L3=v6+(b7<<2)|0,n0=e[L3>>2]|0,I0=n0+(S<<2)|0,e[ze>>2]=h6,n6=z8(t,60)|0,v0=H2+(b7<<2)|0,e[v0>>2]=n6,hi=n6,mn=hi+60|0;do e[hi>>2]=0,hi=hi+4|0;while((hi|0)<(mn|0));for(ar=0;i6=h0+(ar<<2)|0,x3=e[i6>>2]|0,d3=x3&2147483647,J3=+(d3>>>0),d6=J3*7177114298428933e-22,m3=d6+-764.6162109375,L6=m3,M6=L6+.345,R6=M6,y=ar+S|0,S6=n0+(y<<2)|0,s[S6>>2]=R6,r6=ar+1|0,b6=(r6|0)<(S|0),b6;)ar=r6;if(yQ(he,I0,t0),g0=G5+(b7<<2)|0,f0=+s[g0>>2],wQ(he,n0,j,W7,f0),rl(he,t0,j,1,n0,h0,I0),p0=(A6+1028|0)+(C0<<2)|0,S0=e[p0>>2]|0,Q0=(je+800|0)+(S0<<2)|0,E0=e[Q0>>2]|0,y0=(E0|0)==1,!y0){a=-1;break}if(w0=e[Z>>2]|0,B0=w0+(S0<<2)|0,_0=e[B0>>2]|0,K0=il(t,_0,I0,n0)|0,M0=e[v0>>2]|0,T0=M0+28|0,e[T0>>2]=K0,N0=Nu(t)|0,O0=(N0|0)==0,O0||(k0=e[v0>>2]|0,V0=k0+28|0,F0=e[V0>>2]|0,L0=(F0|0)==0,L0||(rl(he,t0,j,2,n0,h0,I0),G0=e[p0>>2]|0,z0=e[Z>>2]|0,J0=z0+(G0<<2)|0,q0=e[J0>>2]|0,Z0=il(t,q0,I0,n0)|0,H0=e[v0>>2]|0,o1=H0+56|0,e[o1>>2]=Z0,rl(he,t0,j,0,n0,h0,I0),Y0=e[p0>>2]|0,i1=e[Z>>2]|0,x0=i1+(Y0<<2)|0,n1=e[x0>>2]|0,d1=il(t,n1,I0,n0)|0,g1=e[v0>>2]|0,e[g1>>2]=d1,m1=e[p0>>2]|0,h1=e[Z>>2]|0,A1=h1+(m1<<2)|0,c1=e[A1>>2]|0,s1=e[v0>>2]|0,$1=e[s1>>2]|0,j0=s1+28|0,E1=e[j0>>2]|0,I1=Gt(t,c1,$1,E1,9362)|0,Q1=e[v0>>2]|0,p1=Q1+4|0,e[p1>>2]=I1,B1=e[p0>>2]|0,v1=e[Z>>2]|0,k1=v1+(B1<<2)|0,L1=e[k1>>2]|0,M1=e[v0>>2]|0,S1=e[M1>>2]|0,D1=M1+28|0,R1=e[D1>>2]|0,F1=Gt(t,L1,S1,R1,18724)|0,U1=e[v0>>2]|0,b1=U1+8|0,e[b1>>2]=F1,Z1=e[p0>>2]|0,G1=e[Z>>2]|0,x1=G1+(Z1<<2)|0,z1=e[x1>>2]|0,q1=e[v0>>2]|0,H1=e[q1>>2]|0,Y1=q1+28|0,V1=e[Y1>>2]|0,X1=Gt(t,z1,H1,V1,28086)|0,n2=e[v0>>2]|0,O1=n2+12|0,e[O1>>2]=X1,c2=e[p0>>2]|0,W1=e[Z>>2]|0,h2=W1+(c2<<2)|0,s2=e[h2>>2]|0,E2=e[v0>>2]|0,a2=e[E2>>2]|0,K1=E2+28|0,d2=e[K1>>2]|0,$2=Gt(t,s2,a2,d2,37449)|0,r2=e[v0>>2]|0,A2=r2+16|0,e[A2>>2]=$2,e2=e[p0>>2]|0,o2=e[Z>>2]|0,f2=o2+(e2<<2)|0,t2=e[f2>>2]|0,k2=e[v0>>2]|0,D2=e[k2>>2]|0,S2=k2+28|0,Q2=e[S2>>2]|0,L2=Gt(t,t2,D2,Q2,46811)|0,U2=e[v0>>2]|0,m2=U2+20|0,e[m2>>2]=L2,W2=e[p0>>2]|0,P2=e[Z>>2]|0,V2=P2+(W2<<2)|0,G2=e[V2>>2]|0,q2=e[v0>>2]|0,Z2=e[q2>>2]|0,A5=q2+28|0,N1=e[A5>>2]|0,t5=Gt(t,G2,Z2,N1,56173)|0,T5=e[v0>>2]|0,i5=T5+24|0,e[i5>>2]=t5,x5=e[p0>>2]|0,j2=e[Z>>2]|0,I5=j2+(x5<<2)|0,b5=e[I5>>2]|0,Y5=e[v0>>2]|0,g5=Y5+28|0,B5=e[g5>>2]|0,s5=Y5+56|0,R2=e[s5>>2]|0,M2=Gt(t,b5,B5,R2,9362)|0,y2=e[v0>>2]|0,Q5=y2+32|0,e[Q5>>2]=M2,N5=e[p0>>2]|0,m5=e[Z>>2]|0,L5=m5+(N5<<2)|0,q5=e[L5>>2]|0,Y2=e[v0>>2]|0,p5=Y2+28|0,$5=e[p5>>2]|0,u5=Y2+56|0,y5=e[u5>>2]|0,T1=Gt(t,q5,$5,y5,18724)|0,D5=e[v0>>2]|0,d5=D5+36|0,e[d5>>2]=T1,l5=e[p0>>2]|0,X2=e[Z>>2]|0,w5=X2+(l5<<2)|0,r5=e[w5>>2]|0,a5=e[v0>>2]|0,h5=a5+28|0,z2=e[h5>>2]|0,f5=a5+56|0,n5=e[f5>>2]|0,R5=Gt(t,r5,z2,n5,28086)|0,e5=e[v0>>2]|0,c5=e5+40|0,e[c5>>2]=R5,v5=e[p0>>2]|0,J5=e[Z>>2]|0,i3=J5+(v5<<2)|0,E5=e[i3>>2]|0,I3=e[v0>>2]|0,h3=I3+28|0,K5=e[h3>>2]|0,r3=I3+56|0,a3=e[r3>>2]|0,B3=Gt(t,E5,K5,a3,37449)|0,W5=e[v0>>2]|0,D3=W5+44|0,e[D3>>2]=B3,f3=e[p0>>2]|0,y3=e[Z>>2]|0,X3=y3+(f3<<2)|0,q3=e[X3>>2]|0,X5=e[v0>>2]|0,b3=X5+28|0,t3=e[b3>>2]|0,s6=X5+56|0,H3=e[s6>>2]|0,c3=Gt(t,q3,t3,H3,46811)|0,g3=e[v0>>2]|0,u3=g3+48|0,e[u3>>2]=c3,Q3=e[p0>>2]|0,z5=e[Z>>2]|0,H5=z5+(Q3<<2)|0,V5=e[H5>>2]|0,S5=e[v0>>2]|0,Y3=S5+28|0,$6=e[Y3>>2]|0,n3=S5+56|0,l3=e[n3>>2]|0,N3=Gt(t,V5,$6,l3,56173)|0,E6=e[v0>>2]|0,k3=E6+52|0,e[k3>>2]=N3)),_3=b7+1|0,S3=e[l0>>2]|0,a6=(_3|0)<(S3|0),a6)b7=_3;else{B=Z,Tt=S3;break e}}return C=In,a|0}else w=I7+48|0,B=w,Tt=u0;while(!1);for(s[b2>>2]=W7,Ft=Tt<<2,h=Ft,X4=C,C=C+((1*h|0)+15&-16)|0,m=Ft,D9=C,C=C+((1*m|0)+15&-16)|0,g8=Nu(t)|0,et=(g8|0)!=0,H8=et?0:7,K8=I7+44|0,R8=t+24|0,u8=t+32|0,F8=je+2868|0,Y8=I7+52|0,p7=H8;;){if(W8=(dn+12|0)+(p7<<2)|0,ht=e[W8>>2]|0,O2(ht,0,1),Nt=e[K8>>2]|0,O2(ht,h6,Nt),T8=e[Z5>>2]|0,Xt=(T8|0)==0,Xt||(O4=e[R8>>2]|0,O2(ht,O4,1),B4=e[u8>>2]|0,O2(ht,B4,1)),ae=e[l0>>2]|0,N8=(ae|0)>0,N8)for(t7=0;;)if(Oi=(A6+4|0)+(t7<<2)|0,qi=e[Oi>>2]|0,Hi=j1+(t7<<2)|0,pi=e[Hi>>2]|0,Z8=(A6+1028|0)+(qi<<2)|0,Ei=e[Z8>>2]|0,j8=e[B>>2]|0,Ci=j8+(Ei<<2)|0,X8=e[Ci>>2]|0,Bi=H2+(t7<<2)|0,c7=e[Bi>>2]|0,Yi=c7+(p7<<2)|0,Qi=e[Yi>>2]|0,yi=tb(ht,t,X8,Qi,pi)|0,g7=P0+(t7<<2)|0,e[g7>>2]=yi,wi=t7+1|0,li=e[l0>>2]|0,u7=(wi|0)<(li|0),u7)t7=wi;else{I=li;break}else I=ae;if(Vi=e[Z5>>2]|0,Ji=((je+3240|0)+(Vi*60|0)|0)+(p7<<2)|0,Ki=e[Ji>>2]|0,kb(p7,F8,he,A6,u1,j1,P0,Ki,I),ci=e[A6>>2]|0,vi=(ci|0)>0,vi)for(D7=0;;){if(Wi=(A6+1092|0)+(D7<<2)|0,ei=e[Wi>>2]|0,gi=e[l0>>2]|0,V8=(gi|0)>0,V8)for($n=gi,m7=0,Ar=0;;)if(ti=(A6+4|0)+(Ar<<2)|0,d7=e[ti>>2]|0,Zi=(d7|0)==(D7|0),Zi?(ki=D9+(m7<<2)|0,ji=P0+(Ar<<2)|0,Si=e[ji>>2]|0,Ps=(Si|0)!=0,o=Ps&1,e[ki>>2]=o,bi=j1+(Ar<<2)|0,Xi=e[bi>>2]|0,Di=m7+1|0,ii=X4+(m7<<2)|0,e[ii>>2]=Xi,E=e[l0>>2]|0,ui=E,fn=Di):(ui=$n,fn=m7),_i=Ar+1|0,e7=(_i|0)<(ui|0),e7)$n=ui,m7=fn,Ar=_i;else{fo=fn;break}else fo=0;if(xi=(je+1312|0)+(ei<<2)|0,x4=e[xi>>2]|0,Li=25648+(x4<<2)|0,G8=e[Li>>2]|0,di=G8+20|0,l9=e[di>>2]|0,B8=e[Y8>>2]|0,vt=B8+(ei<<2)|0,Q8=e[vt>>2]|0,U8=xC[l9&7](t,Q8,X4,D9,fo)|0,yr=e[l0>>2]|0,as=(yr|0)>0,as)for(sr=0,xr=0;;)if(Vn=(A6+4|0)+(xr<<2)|0,As=e[Vn>>2]|0,Jn=(As|0)==(D7|0),Jn?($s=j1+(xr<<2)|0,ls=e[$s>>2]|0,zn=sr+1|0,cs=X4+(sr<<2)|0,e[cs>>2]=ls,br=zn):br=sr,on=xr+1|0,us=(on|0)<(yr|0),us)sr=br,xr=on;else{Sr=br;break}else Sr=0;if(ds=e[xi>>2]|0,Kn=25648+(ds<<2)|0,hs=e[Kn>>2]|0,Wn=hs+24|0,Zn=e[Wn>>2]|0,fs=e[Y8>>2]|0,sn=fs+(ei<<2)|0,jn=e[sn>>2]|0,VQ[Zn&3](ht,t,jn,X4,D9,Sr,U8,D7)|0,an=D7+1|0,eo=e[A6>>2]|0,Is=(an|0)<(eo|0),Is)D7=an;else break}if(ms=p7+1|0,ps=Nu(t)|0,An=(ps|0)!=0,to=An?14:7,Es=(p7|0)<(to|0),Es)p7=ms;else{a=0;break}}return C=In,a|0}function Eb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0;if(F2=C,b=t+64|0,v=e[b>>2]|0,Q1=v+4|0,F1=e[Q1>>2]|0,V1=F1+28|0,K1=e[V1>>2]|0,k2=v+104|0,G2=e[k2>>2]|0,I5=t+28|0,N5=e[I5>>2]|0,w=K1+(N5<<2)|0,V=e[w>>2]|0,t0=t+36|0,e[t0>>2]=V,h0=F1+4|0,K0=e[h0>>2]|0,G0=K0<<2,g=G0,n1=C,C=C+((1*g|0)+15&-16)|0,h=G0,j0=C,C=C+((1*h|0)+15&-16)|0,m=G0,E1=C,C=C+((1*m|0)+15&-16)|0,I=G0,I1=C,C=C+((1*I|0)+15&-16)|0,p1=e[h0>>2]|0,B1=(p1|0)>0,B1)for(w1=o+4|0,v1=o+1028|0,k1=G2+48|0,L1=V<<1,M1=L1&2147483646,X2=0;;)if(P1=w1+(X2<<2)|0,Z1=e[P1>>2]|0,G1=v1+(Z1<<2)|0,x1=e[G1>>2]|0,z1=(K1+800|0)+(x1<<2)|0,q1=e[z1>>2]|0,H1=25640+(q1<<2)|0,Y1=e[H1>>2]|0,X1=Y1+20|0,n2=e[X1>>2]|0,j1=e[k1>>2]|0,O1=j1+(x1<<2)|0,c2=e[O1>>2]|0,W1=mi[n2&15](t,c2)|0,h2=I1+(X2<<2)|0,e[h2>>2]=W1,s2=E1+(X2<<2)|0,e5=(W1|0)!=0,a=e5&1,e[s2>>2]=a,E2=e[t>>2]|0,a2=E2+(X2<<2)|0,d2=e[a2>>2]|0,u4(d2|0,0,M1|0)|0,$2=X2+1|0,i2=e[h0>>2]|0,l2=($2|0)<(i2|0),l2)X2=$2;else{s1=i2;break}else s1=p1;if(S1=o+1156|0,D1=e[S1>>2]|0,R1=(D1|0)>0,R1)for(U1=o+1160|0,b1=o+2184|0,g2=0;t2=U1+(g2<<2)|0,D2=e[t2>>2]|0,S2=E1+(D2<<2)|0,Q2=e[S2>>2]|0,N2=(Q2|0)==0,L2=b1+(g2<<2)|0,U2=e[L2>>2]|0,N2?(m2=E1+(U2<<2)|0,W2=e[m2>>2]|0,P2=(W2|0)==0,P2||(c5=10)):c5=10,(c5|0)==10&&(c5=0,e[S2>>2]=1,V2=E1+(U2<<2)|0,e[V2>>2]=1),q2=g2+1|0,Z2=(q2|0)<(D1|0),Z2;)g2=q2;if(r2=e[o>>2]|0,A2=(r2|0)>0,A2){for(e2=o+1092|0,o2=G2+52|0,f2=o+4|0,A5=s1,w5=0;;){if(H2=(A5|0)>0,H2)for($1=A5,d5=0,f5=0;;)if(N1=f2+(f5<<2)|0,t5=e[N1>>2]|0,T5=(t5|0)==(w5|0),T5?(i5=E1+(f5<<2)|0,x5=e[i5>>2]|0,j2=j0+(d5<<2)|0,R5=(x5|0)!=0,$=R5&1,e[j2>>2]=$,b5=e[t>>2]|0,Y5=b5+(f5<<2)|0,g5=e[Y5>>2]|0,b2=d5+1|0,B5=n1+(d5<<2)|0,e[B5>>2]=g5,B=e[h0>>2]|0,M2=B,l5=b2):(M2=$1,l5=d5),s5=f5+1|0,R2=(s5|0)<(M2|0),R2)$1=M2,d5=l5,f5=s5;else{D5=l5;break}else D5=0;if(y2=e2+(w5<<2)|0,Q5=e[y2>>2]|0,m5=(K1+1312|0)+(Q5<<2)|0,L5=e[m5>>2]|0,q5=25648+(L5<<2)|0,M5=e[q5>>2]|0,Y2=M5+28|0,p5=e[Y2>>2]|0,$5=e[o2>>2]|0,u5=$5+(Q5<<2)|0,y5=e[u5>>2]|0,xC[p5&7](t,y5,n1,j0,D5)|0,T1=w5+1|0,D=e[o>>2]|0,y=(T1|0)<(D|0),!y)break;Q=e[h0>>2]|0,A5=Q,w5=T1}S=e[S1>>2]|0,x=S}else x=D1;if(M=(x|0)>0,M)for(L=o+1160|0,R=e[t>>2]|0,F=o+2184|0,T=(V|0)/2&-1,N=(V|0)>1,a5=x;;){if(r5=a5+-1|0,s0=L+(r5<<2)|0,J=e[s0>>2]|0,o0=R+(J<<2)|0,q=e[o0>>2]|0,d0=F+(r5<<2)|0,j=e[d0>>2]|0,u0=R+(j<<2)|0,c0=e[u0>>2]|0,N)for(n5=0;;){$0=q+(n5<<2)|0,l0=+s[$0>>2],Z=c0+(n5<<2)|0,I0=+s[Z>>2],g0=l0>0,f0=I0>0;do if(g0)if(f0){s[$0>>2]=l0,n0=l0-I0,s[Z>>2]=n0;break}else{s[Z>>2]=l0,p0=I0+l0,s[$0>>2]=p0;break}else if(f0){s[$0>>2]=l0,C0=I0+l0,s[Z>>2]=C0;break}else{s[Z>>2]=l0,S0=l0-I0,s[$0>>2]=S0;break}while(!1);if(Q0=n5+1|0,b0=(Q0|0)<(T|0),b0)n5=Q0;else break}if(G=(a5|0)>1,G)a5=r5;else break}if(X=e[h0>>2]|0,K=(X|0)>0,!K)return C=F2,0;for(a0=o+4|0,W=o+1028|0,r0=G2+48|0,h5=0;;)if(y0=e[t>>2]|0,w0=y0+(h5<<2)|0,B0=e[w0>>2]|0,_0=a0+(h5<<2)|0,M0=e[_0>>2]|0,v0=W+(M0<<2)|0,T0=e[v0>>2]|0,N0=(K1+800|0)+(T0<<2)|0,U0=e[N0>>2]|0,O0=25640+(U0<<2)|0,k0=e[O0>>2]|0,V0=k0+24|0,F0=e[V0>>2]|0,L0=e[r0>>2]|0,z0=L0+(T0<<2)|0,J0=e[z0>>2]|0,q0=I1+(h5<<2)|0,Z0=e[q0>>2]|0,DC[F0&3](t,J0,Z0,B0)|0,P0=h5+1|0,H0=e[h0>>2]|0,o1=(P0|0)<(H0|0),o1)h5=P0;else{E=H0;break}if(E0=(E|0)>0,!E0)return C=F2,0;for(z2=0;Y0=e[t>>2]|0,i1=Y0+(z2<<2)|0,x0=e[i1>>2]|0,d1=e[I5>>2]|0,g1=(G2+12|0)+(d1<<2)|0,m1=e[g1>>2]|0,h1=e[m1>>2]|0,Cb(h1,x0,x0),u1=z2+1|0,A1=e[h0>>2]|0,c1=(u1|0)<(A1|0),c1;)z2=u1;return C=F2,0}function yC(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0;if(S1=C,a=(o|0)/4&-1,$=a<<2,w=R9($)|0,V=a+o|0,t0=V<<2,h0=R9(t0)|0,K0=o>>1,G0=+(o|0),n1=G0,E1=+tn(+n1),g=E1*1.4426950408889634,h=+z7(g),m=~~h,I=t+4|0,e[I>>2]=m,e[t>>2]=o,E=t+8|0,e[E>>2]=h0,Q=t+12|0,e[Q>>2]=w,B=(o|0)>3,!B){j0=4/G0,I1=t+16|0,s[I1>>2]=j0;return}for(S=+(o|0),b=3.141592653589793/S,v=o<<1,D=+(v|0),y=3.141592653589793/D,w1=0;F=w1<<2,T=+(F|0),N=b*T,G=+rA(+N),X=G,K=w1<<1,a0=h0+(K<<2)|0,s[a0>>2]=X,W=+Hn(+N),r0=W,s0=-r0,J=K|1,o0=h0+(J<<2)|0,s[o0>>2]=s0,q=+(J|0),d0=y*q,j=+rA(+d0),u0=j,c0=K+K0|0,$0=h0+(c0<<2)|0,s[$0>>2]=u0,l0=+Hn(+d0),Z=l0,I0=c0+1|0,g0=h0+(I0<<2)|0,s[g0>>2]=Z,f0=w1+1|0,n0=(f0|0)<(a|0),n0;)w1=f0;if(x=(o|0)/8&-1,M=(o|0)>7,!M){j0=4/G0,I1=t+16|0,s[I1>>2]=j0;return}for(L=+(o|0),R=3.141592653589793/L,v1=0;p0=v1<<2,C0=p0|2,S0=+(C0|0),Q0=R*S0,b0=+rA(+Q0),E0=b0*.5,y0=E0,w0=v1<<1,B0=w0+o|0,_0=h0+(B0<<2)|0,s[_0>>2]=y0,M0=+Hn(+Q0),v0=M0*-.5,T0=v0,N0=B0+1|0,U0=h0+(N0<<2)|0,s[U0>>2]=T0,O0=v1+1|0,k0=(O0|0)<(x|0),k0;)v1=O0;if(V0=m+-1|0,F0=1<>2]=j0;return}for(;;){for(Z0=J0,Q1=0,L1=0;;)if(q0=Z0&k1,P0=(q0|0)==0,H0=1<>Y0,x0=(i1|0)==0,x0){B1=p1;break}else Z0=i1,Q1=p1,L1=Y0;if(d1=B1^-1,g1=L0&d1,m1=g1+-1|0,h1=k1<<1,u1=w+(h1<<2)|0,e[u1>>2]=m1,A1=h1|1,c1=w+(A1<<2)|0,e[c1>>2]=B1,s1=k1+1|0,$1=(s1|0)<(x|0),$1)k1=s1;else break}j0=4/G0,I1=t+16|0,s[I1>>2]=j0}function wC(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0;Q=C,o=(t|0)==0,!o&&(a=t+8|0,$=e[a>>2]|0,g=($|0)==0,g||p2($),h=t+12|0,m=e[h>>2]|0,I=(m|0)==0,I||p2(m),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0)}function Cb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0;for(J3=C,m=e[t>>2]|0,I=m>>1,j1=m>>2,$=I+-7|0,W2=o+($<<2)|0,g=I+j1|0,i5=a+(g<<2)|0,M2=t+8|0,u5=e[M2>>2]|0,h5=u5+(j1<<2)|0,u3=h5,H5=W2,_3=i5;E5=_3+-16|0,y3=H5+8|0,E=+s[y3>>2],L=u3+12|0,r0=+s[L>>2],l0=E*r0,b0=-l0,U0=+s[H5>>2],P0=u3+8|0,u1=+s[P0>>2],w1=u1*U0,P1=b0-w1,s[E5>>2]=P1,O1=+s[H5>>2],l2=+s[L>>2],k2=l2*O1,D2=+s[y3>>2],S2=+s[P0>>2],Q2=S2*D2,N2=k2-Q2,L2=_3+-12|0,s[L2>>2]=N2,U2=H5+24|0,m2=+s[U2>>2],P2=u3+4|0,V2=+s[P2>>2],G2=m2*V2,q2=-G2,Z2=H5+16|0,A5=+s[Z2>>2],H2=+s[u3>>2],N1=H2*A5,t5=q2-N1,T5=_3+-8|0,s[T5>>2]=t5,x5=+s[Z2>>2],j2=+s[P2>>2],I5=j2*x5,b5=+s[U2>>2],Y5=+s[u3>>2],g5=Y5*b5,b2=I5-g5,B5=_3+-4|0,s[B5>>2]=b2,s5=H5+-32|0,R2=u3+16|0,y2=s5>>>0>>0,!y2;)u3=R2,H5=s5,_3=E5;for(Q5=a+(I<<2)|0,h=I+-8|0,N5=o+(h<<2)|0,Q3=h5,V5=N5,S3=i5;m5=Q3+-16|0,L5=V5+16|0,q5=+s[L5>>2],M5=Q3+-4|0,Y2=+s[M5>>2],p5=Y2*q5,$5=V5+24|0,y5=+s[$5>>2],T1=Q3+-8|0,D5=+s[T1>>2],d5=D5*y5,l5=d5+p5,s[S3>>2]=l5,X2=+s[L5>>2],g2=+s[T1>>2],w5=g2*X2,r5=+s[$5>>2],a5=+s[M5>>2],z2=a5*r5,f5=w5-z2,n5=S3+4|0,s[n5>>2]=f5,R5=+s[V5>>2],e5=Q3+-12|0,c5=+s[e5>>2],F2=c5*R5,v5=V5+8|0,J5=+s[v5>>2],i3=+s[m5>>2],I3=i3*J5,h3=I3+F2,K5=S3+8|0,s[K5>>2]=h3,r3=+s[V5>>2],a3=+s[m5>>2],B3=a3*r3,G5=+s[v5>>2],W5=+s[e5>>2],D3=W5*G5,f3=B3-D3,X3=S3+12|0,s[X3>>2]=f3,q3=V5+-32|0,X5=S3+16|0,b3=q3>>>0>>0,!b3;)Q3=m5,V5=q3,S3=X5;for($6=t+4|0,n3=e[$6>>2]|0,CQ(n3,u5,Q5,I),l3=e[t>>2]|0,N3=e[M2>>2]|0,E6=t+12|0,k3=e[E6>>2]|0,BQ(l3,N3,k3,a),t3=e[M2>>2]|0,s6=t3+(I<<2)|0,z5=s6,S5=a,a6=i5,Z5=i5;T3=a6+-16|0,H3=+s[S5>>2],c3=z5+4|0,g3=+s[c3>>2],Q=g3*H3,B=S5+4|0,S=+s[B>>2],b=+s[z5>>2],v=b*S,w=Q-v,D=a6+-4|0,s[D>>2]=w,y=+s[S5>>2],x=+s[z5>>2],M=x*y,R=+s[B>>2],F=+s[c3>>2],T=F*R,N=M+T,G=-N,s[Z5>>2]=G,V=S5+8|0,X=+s[V>>2],K=z5+12|0,a0=+s[K>>2],W=a0*X,s0=S5+12|0,J=+s[s0>>2],o0=z5+8|0,q=+s[o0>>2],d0=q*J,t0=W-d0,j=a6+-8|0,s[j>>2]=t0,u0=+s[V>>2],c0=+s[o0>>2],$0=c0*u0,Z=+s[s0>>2],I0=+s[K>>2],g0=I0*Z,f0=$0+g0,n0=-f0,h0=Z5+4|0,s[h0>>2]=n0,p0=S5+16|0,C0=+s[p0>>2],S0=z5+20|0,Q0=+s[S0>>2],E0=Q0*C0,y0=S5+20|0,w0=+s[y0>>2],B0=z5+16|0,_0=+s[B0>>2],K0=_0*w0,M0=E0-K0,v0=a6+-12|0,s[v0>>2]=M0,T0=+s[p0>>2],N0=+s[B0>>2],O0=N0*T0,k0=+s[y0>>2],V0=+s[S0>>2],F0=V0*k0,L0=O0+F0,G0=-L0,z0=Z5+8|0,s[z0>>2]=G0,J0=S5+24|0,q0=+s[J0>>2],Z0=z5+28|0,H0=+s[Z0>>2],o1=H0*q0,Y0=S5+28|0,i1=+s[Y0>>2],x0=z5+24|0,n1=+s[x0>>2],d1=n1*i1,g1=o1-d1,s[T3>>2]=g1,m1=+s[J0>>2],h1=+s[x0>>2],A1=h1*m1,c1=+s[Y0>>2],s1=+s[Z0>>2],$1=s1*c1,j0=A1+$1,E1=-j0,I1=Z5+12|0,s[I1>>2]=E1,Q1=Z5+16|0,p1=S5+32|0,B1=z5+32|0,v1=p1>>>0>>0,v1;)z5=B1,S5=p1,a6=T3,Z5=Q1;for(k1=a+(j1<<2)|0,Y3=i5,i6=k1,x3=k1;;)if(L1=i6+-16|0,M1=Y3+-16|0,S1=Y3+-4|0,D1=+s[S1>>2],R1=i6+-4|0,s[R1>>2]=D1,F1=-D1,s[x3>>2]=F1,U1=Y3+-8|0,b1=+s[U1>>2],Z1=i6+-8|0,s[Z1>>2]=b1,G1=-b1,x1=x3+4|0,s[x1>>2]=G1,z1=Y3+-12|0,q1=+s[z1>>2],H1=i6+-12|0,s[H1>>2]=q1,Y1=-q1,V1=x3+8|0,s[V1>>2]=Y1,X1=+s[M1>>2],s[L1>>2]=X1,n2=-X1,c2=x3+12|0,s[c2>>2]=n2,W1=x3+16|0,h2=W1>>>0>>0,h2)Y3=M1,i6=L1,x3=W1;else{U5=i5,V3=i5;break}for(;s2=V3+-16|0,E2=U5+12|0,a2=e[E2>>2]|0,e[s2>>2]=a2,K1=U5+8|0,d2=e[K1>>2]|0,$2=V3+-12|0,e[$2>>2]=d2,i2=U5+4|0,r2=e[i2>>2]|0,A2=V3+-8|0,e[A2>>2]=r2,e2=e[U5>>2]|0,o2=V3+-4|0,e[o2>>2]=e2,f2=U5+16|0,t2=s2>>>0>Q5>>>0,t2;)U5=f2,V3=s2}function EQ(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0;if(J5=C,v=e[t>>2]|0,w=v>>1,o1=v>>2,c1=v>>3,k1=v<<2,$=k1,G1=C,C=C+((1*$|0)+15&-16)|0,c2=G1+(w<<2)|0,g=w+o1|0,r2=o+(g<<2)|0,L2=t+8|0,N1=e[L2>>2]|0,D=N1+(w<<2)|0,X=(c1|0)>0,X){for(h=g+1|0,j=o+(h<<2)|0,p0=c1+-1|0,M0=p0>>>1,z0=M0<<1,q0=w+-2|0,Z0=q0-z0|0,P0=g+-4|0,H0=M0<<2,Y0=P0-H0|0,s5=D,L5=0,h5=r2,R5=j;i1=h5+-16|0,x0=s5+-8|0,n1=h5+-8|0,d1=+s[n1>>2],g1=+s[R5>>2],m1=g1+d1,h1=+s[i1>>2],u1=R5+8|0,A1=+s[u1>>2],s1=A1+h1,$1=s5+-4|0,j0=+s[$1>>2],E1=s1*j0,I1=+s[x0>>2],Q1=I1*m1,p1=Q1+E1,S=L5+w|0,B1=G1+(S<<2)|0,s[B1>>2]=p1,w1=+s[x0>>2],v1=w1*s1,L1=+s[$1>>2],M1=L1*m1,S1=v1-M1,D1=L5|1,b=D1+w|0,R1=G1+(b<<2)|0,s[R1>>2]=S1,F1=R5+16|0,U1=L5+2|0,b1=(U1|0)<(c1|0),b1;)s5=x0,L5=U1,h5=i1,R5=F1;P1=z0+2|0,g2=N1+(Z0<<2)|0,w5=o+(Y0<<2)|0,H2=Z0,B5=g2,m5=P1,a5=w5}else H2=w,B5=D,m5=0,a5=r2;if(Z1=o+4|0,x1=w-c1|0,z1=(m5|0)<(x1|0),z1){for(q1=w+-1|0,H1=q1-m5|0,Y1=H1-c1|0,V1=Y1>>>1,X1=V1<<1,n2=m5+X1|0,j1=V1<<2,O1=j1+5|0,W1=-2-X1|0,M2=B5,M5=m5,z2=a5,c5=Z1;h2=M2+-8|0,s2=z2+-16|0,E2=z2+-8|0,a2=+s[E2>>2],K1=+s[c5>>2],d2=a2-K1,$2=+s[s2>>2],i2=c5+8|0,l2=+s[i2>>2],A2=$2-l2,e2=M2+-4|0,o2=+s[e2>>2],f2=A2*o2,t2=+s[h2>>2],k2=t2*d2,D2=k2+f2,E=M5+w|0,S2=G1+(E<<2)|0,s[S2>>2]=D2,Q2=+s[h2>>2],N2=Q2*A2,U2=+s[e2>>2],m2=U2*d2,W2=N2-m2,P2=M5|1,Q=P2+w|0,V2=G1+(Q<<2)|0,s[V2>>2]=W2,G2=c5+16|0,q2=M5+2|0,Z2=(q2|0)<(x1|0),Z2;)M2=h2,M5=q2,z2=s2,c5=G2;A5=n2+2|0,l5=o+(O1<<2)|0,B=H2+W1|0,X2=N1+(B<<2)|0,R2=X2,q5=A5,e5=l5}else R2=B5,q5=m5,e5=Z1;if(t5=(q5|0)<(w|0),t5)for(T5=o+(v<<2)|0,y2=R2,Y2=q5,f5=T5,F2=e5;i5=y2+-8|0,x5=f5+-16|0,j2=f5+-8|0,I5=+s[j2>>2],b5=-I5,Y5=+s[F2>>2],g5=b5-Y5,b2=+s[x5>>2],y=-b2,x=F2+8|0,M=+s[x>>2],L=y-M,R=y2+-4|0,F=+s[R>>2],T=L*F,N=+s[i5>>2],G=N*g5,V=G+T,m=Y2+w|0,K=G1+(m<<2)|0,s[K>>2]=V,a0=+s[i5>>2],W=a0*L,r0=+s[R>>2],s0=r0*g5,J=W-s0,o0=Y2|1,I=o0+w|0,q=G1+(I<<2)|0,s[q>>2]=J,d0=F2+16|0,t0=Y2+2|0,u0=(t0|0)<(w|0),u0;)y2=i5,Y2=t0,f5=x5,F2=d0;if($5=t+4|0,u5=e[$5>>2]|0,CQ(u5,N1,c2,w),d5=e[t>>2]|0,y5=e[L2>>2]|0,T1=t+12|0,D5=e[T1>>2]|0,BQ(d5,y5,D5,G1),c0=(o1|0)>0,!c0){C=J5;return}for($0=a+(w<<2)|0,l0=e[L2>>2]|0,Z=l0+(w<<2)|0,I0=t+16|0,Q5=Z,p5=0,r5=G1,n5=$0;g0=n5+-4|0,f0=+s[r5>>2],n0=+s[Q5>>2],h0=n0*f0,C0=r5+4|0,S0=+s[C0>>2],Q0=Q5+4|0,b0=+s[Q0>>2],E0=b0*S0,y0=E0+h0,w0=+s[I0>>2],B0=y0*w0,_0=a+(p5<<2)|0,s[_0>>2]=B0,K0=+s[r5>>2],v0=+s[Q0>>2],T0=v0*K0,N0=+s[C0>>2],U0=+s[Q5>>2],O0=U0*N0,k0=T0-O0,V0=+s[I0>>2],F0=k0*V0,s[g0>>2]=F0,L0=r5+8|0,G0=Q5+8|0,J0=p5+1|0,N5=(J0|0)==(o1|0),!N5;)Q5=G0,p5=J0,r5=L0,n5=g0;C=J5}function CQ(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0,H8=0,K8=0,R8=0,u8=0,F8=0,g4=0,Y8=0,W8=0,ht=0,Nt=0,T8=0,Xt=0,O4=0,B4=0,ae=0,N8=0,Ai=0,Oi=0,qi=0,Hi=0,pi=0,Z8=0,Ei=0,j8=0,Ci=0,X8=0,Bi=0,$i=0,c7=0,Yi=0,Qi=0,yi=0,g7=0,wi=0,li=0,u7=0,Vi=0,Ji=0,zi=0,Ki=0,ci=0,vi=0,Wi=0,ei=0,gi=0,V8=0,ti=0,d7=0,Zi=0,h7=0,ki=0,ji=0,Si=0,bi=0,Xi=0,Di=0,ii=0,_i=0,e7=0,ui=0,J8=0,xi=0,x4=0,Li=0,G8=0,di=0,l9=0,B8=0,vt=0,Q8=0,U8=0,nn=0,yr=0;if(yr=C,C0=t+-6|0,S0=(t|0)>6,S0)for(I=$+-8|0,Y5=a+(I<<2)|0,R3=$>>1,B=R3+-8|0,e8=a+(B<<2)|0,g=o,B8=Y5,Q8=e8;ht=B8+24|0,Hi=+s[ht>>2],Qi=Q8+24|0,vi=+s[Qi>>2],Si=Hi-vi,Q0=B8+28|0,N0=+s[Q0>>2],Z0=Q8+28|0,h1=+s[Z0>>2],B1=N0-h1,b1=vi+Hi,s[ht>>2]=b1,n2=+s[Z0>>2],$2=n2+N0,s[Q0>>2]=$2,S2=g+4|0,Z2=+s[S2>>2],g5=Z2*B1,q5=+s[g>>2],X2=q5*Si,c5=X2+g5,s[Qi>>2]=c5,B3=+s[g>>2],s6=B3*B1,Y3=+s[S2>>2],i6=Y3*Si,S6=s6-i6,s[Z0>>2]=S6,z3=B8+16|0,Y6=+s[z3>>2],c9=Q8+16|0,o9=+s[c9>>2],w9=Y6-o9,Re=B8+20|0,Ve=+s[Re>>2],V4=Q8+20|0,fe=+s[V4>>2],f6=Ve-fe,xe=o9+Y6,s[z3>>2]=xe,I8=+s[V4>>2],Vt=I8+Ve,s[Re>>2]=Vt,at=g+20|0,Kt=+s[at>>2],Bt=Kt*f6,_4=g+16|0,T9=+s[_4>>2],Ft=T9*w9,u8=Ft+Bt,s[c9>>2]=u8,W8=+s[_4>>2],Nt=W8*f6,T8=+s[at>>2],Xt=T8*w9,O4=Nt-Xt,s[V4>>2]=O4,B4=B8+8|0,ae=+s[B4>>2],N8=Q8+8|0,Ai=+s[N8>>2],Oi=ae-Ai,qi=B8+12|0,pi=+s[qi>>2],Z8=Q8+12|0,Ei=+s[Z8>>2],j8=pi-Ei,Ci=Ai+ae,s[B4>>2]=Ci,X8=+s[Z8>>2],Bi=X8+pi,s[qi>>2]=Bi,$i=g+36|0,c7=+s[$i>>2],Yi=c7*j8,yi=g+32|0,g7=+s[yi>>2],wi=g7*Oi,li=wi+Yi,s[N8>>2]=li,u7=+s[yi>>2],Vi=u7*j8,Ji=+s[$i>>2],zi=Ji*Oi,Ki=Vi-zi,s[Z8>>2]=Ki,ci=+s[B8>>2],Wi=+s[Q8>>2],ei=ci-Wi,gi=B8+4|0,V8=+s[gi>>2],ti=Q8+4|0,d7=+s[ti>>2],Zi=V8-d7,h7=Wi+ci,s[B8>>2]=h7,ki=+s[ti>>2],ji=ki+V8,s[gi>>2]=ji,bi=g+52|0,Xi=+s[bi>>2],Di=Xi*Zi,ii=g+48|0,_i=+s[ii>>2],e7=_i*ei,ui=e7+Di,s[Q8>>2]=ui,J8=+s[ii>>2],xi=J8*Zi,x4=+s[bi>>2],b0=x4*ei,E0=xi-b0,s[ti>>2]=E0,y0=B8+-32|0,w0=Q8+-32|0,B0=g+64|0,_0=w0>>>0>>0,!_0;)g=B0,B8=y0,Q8=w0;if(K0=(C0|0)>1,K0)for(G8=1;;){if(M0=1<>G8,U0=4<>1,S=O0+-8|0,N=U0+1|0,d0=U0<<1,$0=d0|1,I0=U0*3|0,f0=I0+1|0,h0=U0<<2,di=0;;){for(V0=o5(di,T0)|0,F0=a+(V0<<2)|0,m=E+V0|0,L0=a+(m<<2)|0,u0=S+V0|0,G0=a+(u0<<2)|0,h=o,vt=L0,U8=G0;z0=vt+24|0,J0=+s[z0>>2],q0=U8+24|0,P0=+s[q0>>2],H0=J0-P0,o1=vt+28|0,Y0=+s[o1>>2],i1=U8+28|0,x0=+s[i1>>2],n1=Y0-x0,d1=P0+J0,s[z0>>2]=d1,g1=+s[i1>>2],m1=g1+Y0,s[o1>>2]=m1,u1=h+4|0,A1=+s[u1>>2],c1=A1*n1,s1=+s[h>>2],$1=s1*H0,j0=$1+c1,s[q0>>2]=j0,E1=+s[h>>2],I1=E1*n1,Q1=+s[u1>>2],p1=Q1*H0,w1=I1-p1,s[i1>>2]=w1,v1=h+(U0<<2)|0,k1=vt+16|0,L1=+s[k1>>2],M1=U8+16|0,S1=+s[M1>>2],D1=L1-S1,R1=vt+20|0,F1=+s[R1>>2],U1=U8+20|0,P1=+s[U1>>2],Z1=F1-P1,G1=S1+L1,s[k1>>2]=G1,x1=+s[U1>>2],z1=x1+F1,s[R1>>2]=z1,q1=h+(N<<2)|0,H1=+s[q1>>2],Y1=H1*Z1,V1=+s[v1>>2],X1=V1*D1,j1=X1+Y1,s[M1>>2]=j1,O1=+s[v1>>2],c2=O1*Z1,W1=+s[q1>>2],h2=W1*D1,s2=c2-h2,s[U1>>2]=s2,E2=h+(d0<<2)|0,a2=vt+8|0,K1=+s[a2>>2],d2=U8+8|0,i2=+s[d2>>2],l2=K1-i2,r2=vt+12|0,A2=+s[r2>>2],e2=U8+12|0,o2=+s[e2>>2],f2=A2-o2,t2=i2+K1,s[a2>>2]=t2,k2=+s[e2>>2],D2=k2+A2,s[r2>>2]=D2,Q2=h+($0<<2)|0,N2=+s[Q2>>2],L2=N2*f2,U2=+s[E2>>2],m2=U2*l2,W2=m2+L2,s[d2>>2]=W2,P2=+s[E2>>2],V2=P2*f2,G2=+s[Q2>>2],q2=G2*l2,A5=V2-q2,s[e2>>2]=A5,H2=h+(I0<<2)|0,N1=+s[vt>>2],t5=+s[U8>>2],T5=N1-t5,i5=vt+4|0,x5=+s[i5>>2],j2=U8+4|0,I5=+s[j2>>2],b5=x5-I5,b2=t5+N1,s[vt>>2]=b2,B5=+s[j2>>2],s5=B5+x5,s[i5>>2]=s5,R2=h+(f0<<2)|0,M2=+s[R2>>2],y2=M2*b5,Q5=+s[H2>>2],N5=Q5*T5,m5=N5+y2,s[U8>>2]=m5,L5=+s[H2>>2],M5=L5*b5,Y2=+s[R2>>2],p5=Y2*T5,$5=M5-p5,s[j2>>2]=$5,u5=h+(h0<<2)|0,y5=vt+-32|0,T1=U8+-32|0,D5=T1>>>0>>0,!D5;)h=u5,vt=y5,U8=T1;if(d5=di+1|0,l5=(d5|0)<(M0|0),l5)di=d5;else break}if(g2=G8+1|0,Li=(g2|0)==(C0|0),Li)break;G8=g2}if(k0=($|0)>0,k0)l9=0;else return;for(;w5=a+(l9<<2)|0,Q=l9|30,r5=a+(Q<<2)|0,a5=+s[r5>>2],T=l9|14,h5=a+(T<<2)|0,z2=+s[h5>>2],f5=a5-z2,q=l9|31,n5=a+(q<<2)|0,R5=+s[n5>>2],c0=l9|15,e5=a+(c0<<2)|0,F2=+s[e5>>2],v5=R5-F2,J5=z2+a5,s[r5>>2]=J5,i3=F2+R5,s[n5>>2]=i3,s[h5>>2]=f5,s[e5>>2]=v5,l0=l9|28,E5=a+(l0<<2)|0,I3=+s[E5>>2],Z=l9|12,h3=a+(Z<<2)|0,K5=+s[h3>>2],r3=I3-K5,g0=l9|29,a3=a+(g0<<2)|0,G5=+s[a3>>2],n0=l9|13,W5=a+(n0<<2)|0,D3=+s[W5>>2],f3=G5-D3,y3=K5+I3,s[E5>>2]=y3,X3=D3+G5,s[a3>>2]=X3,q3=r3*.9238795042037964,X5=f3*.3826834261417389,b3=q3-X5,s[h3>>2]=b3,t3=r3*.3826834261417389,T3=f3*.9238795042037964,H3=T3+t3,s[W5>>2]=H3,p0=l9|26,c3=a+(p0<<2)|0,g3=+s[c3>>2],b=l9|10,u3=a+(b<<2)|0,Q3=+s[u3>>2],z5=g3-Q3,v=l9|27,H5=a+(v<<2)|0,V5=+s[H5>>2],w=l9|11,S5=a+(w<<2)|0,U5=+s[S5>>2],$6=V5-U5,n3=Q3+g3,s[c3>>2]=n3,l3=U5+V5,s[H5>>2]=l3,N3=z5-$6,E6=N3*.7071067690849304,s[u3>>2]=E6,k3=$6+z5,_3=k3*.7071067690849304,s[S5>>2]=_3,D=l9|24,S3=a+(D<<2)|0,a6=+s[S3>>2],y=l9|8,V3=a+(y<<2)|0,Z5=+s[V3>>2],x3=a6-Z5,x=l9|25,d3=a+(x<<2)|0,J3=+s[d3>>2],M=l9|9,d6=a+(M<<2)|0,m3=+s[d6>>2],L6=J3-m3,M6=Z5+a6,s[S3>>2]=M6,R6=m3+J3,s[d3>>2]=R6,r6=x3*.3826834261417389,h6=L6*.9238795042037964,b6=r6-h6,G6=L6*.3826834261417389,X6=x3*.9238795042037964,v6=G6+X6,L=l9|22,L3=a+(L<<2)|0,n6=+s[L3>>2],R=l9|6,o6=a+(R<<2)|0,C6=+s[o6>>2],M3=n6-C6,F=l9|7,K3=a+(F<<2)|0,e6=+s[K3>>2],G=l9|23,F6=a+(G<<2)|0,l6=+s[F6>>2],o3=e6-l6,K6=C6+n6,s[L3>>2]=K6,A3=l6+e6,s[F6>>2]=A3,s[o6>>2]=o3,s[K3>>2]=M3,V=l9|4,c6=a+(V<<2)|0,B6=+s[c6>>2],X=l9|20,A6=a+(X<<2)|0,D6=+s[A6>>2],U6=B6-D6,K=l9|5,t9=a+(K<<2)|0,Q6=+s[t9>>2],a0=l9|21,e9=a+(a0<<2)|0,G3=+s[e9>>2],n9=Q6-G3,V6=D6+B6,s[A6>>2]=V6,s9=G3+Q6,s[e9>>2]=s9,P6=n9*.9238795042037964,J6=U6*.3826834261417389,T6=P6+J6,i9=n9*.3826834261417389,_6=U6*.9238795042037964,O6=i9-_6,W=l9|2,U3=a+(W<<2)|0,q6=+s[U3>>2],r0=l9|18,a9=a+(r0<<2)|0,d9=+s[a9>>2],B9=q6-d9,s0=l9|3,Q9=a+(s0<<2)|0,y9=+s[Q9>>2],J=l9|19,h9=a+(J<<2)|0,f9=+s[h9>>2],H9=y9-f9,y6=d9+q6,s[a9>>2]=y6,H6=f9+y9,s[h9>>2]=H6,A9=H9+B9,Y9=A9*.7071067690849304,we=H9-B9,ue=we*.7071067690849304,Ee=+s[w5>>2],o0=l9|16,V9=a+(o0<<2)|0,ie=+s[V9>>2],F9=Ee-ie,t0=l9|1,v9=a+(t0<<2)|0,W6=+s[v9>>2],j=l9|17,$9=a+(j<<2)|0,ve=+s[$9>>2],de=W6-ve,_9=ie+Ee,s[V9>>2]=_9,Fe=ve+W6,s[$9>>2]=Fe,Te=de*.3826834261417389,Ge=F9*.9238795042037964,He=Te+Ge,o4=de*.9238795042037964,ke=F9*.3826834261417389,Ye=o4-ke,J9=Ye-v6,he=He-b6,Ue=He+b6,Ce=Ye+v6,v4=he+J9,W9=J9-he,k9=+s[S5>>2],k4=ue-k9,Y4=+s[u3>>2],nt=Y4-Y9,Je=Y4+Y9,ze=k9+ue,s4=+s[h3>>2],R4=s4-T6,ot=+s[W5>>2],re=ot-O6,d4=s4+T6,Be=ot+O6,N6=R4-re,Ke=re+R4,P9=+s[h5>>2],Ne=P9-o3,h4=+s[e5>>2],ne=h4-M3,f4=o3+P9,I4=M3+h4,Se=Ne+k4,a4=Ne-k4,Pe=N6+v4,m4=Pe*.7071067690849304,S9=N6-v4,J4=S9*.7071067690849304,Ie=m4+Se,s[o6>>2]=Ie,S4=Se-m4,s[c6>>2]=S4,be=Ke-W9,me=be*.7071067690849304,z6=ne-nt,F4=me+a4,s[w5>>2]=F4,T4=a4-me,s[U3>>2]=T4,st=Ke+W9,pe=st*.7071067690849304,mt=ne+nt,W3=z6+J4,s[Q9>>2]=W3,x9=z6-J4,s[v9>>2]=x9,b9=mt+pe,s[K3>>2]=b9,Oe=mt-pe,s[t9>>2]=Oe,A4=f4+Je,h8=f4-Je,N4=Ue+d4,f8=d4-Ue,_8=A4+N4,s[h5>>2]=_8,m8=A4-N4,s[h3>>2]=m8,Ut=Be-Ce,Pt=I4-ze,Ot=h8+Ut,s[V3>>2]=Ot,qt=h8-Ut,s[u3>>2]=qt,t8=Be+Ce,i8=I4+ze,x8=Pt+f8,s[S5>>2]=x8,Ht=Pt-f8,s[d6>>2]=Ht,Yt=i8+t8,s[e5>>2]=Yt,_t=i8-t8,s[W5>>2]=_t,xt=+s[d3>>2],pt=Fe-xt,Jt=+s[S3>>2],zt=_9-Jt,r8=Jt+_9,n8=xt+Fe,Et=zt+pt,z4=pt-zt,G4=+s[h9>>2],Lt=+s[H5>>2],L9=G4-Lt,p8=+s[c3>>2],b4=+s[a9>>2],E8=p8-b4,L8=b4+p8,o8=Lt+G4,M8=+s[E5>>2],$4=+s[A6>>2],s8=M8-$4,Mt=+s[a3>>2],At=+s[e9>>2],We=Mt-At,U4=$4+M8,$t=At+Mt,Ct=s8-We,Rt=We+s8,p4=+s[r5>>2],oe=+s[L3>>2],lt=p4-oe,ct=+s[n5>>2],Qt=+s[F6>>2],E4=ct-Qt,D4=oe+p4,K4=Qt+ct,W4=lt+L9,se=lt-L9,P4=Ct+Et,C4=P4*.7071067690849304,gt=Ct-Et,De=gt*.7071067690849304,yt=C4+W4,s[L3>>2]=yt,a8=W4-C4,s[A6>>2]=a8,Ze=Rt-z4,E3=Ze*.7071067690849304,Z4=E4-E8,wt=E3+se,s[V9>>2]=wt,l4=se-E3,s[a9>>2]=l4,Z9=Rt+z4,c4=Z9*.7071067690849304,j4=E4+E8,Wt=Z4+De,s[h9>>2]=Wt,C8=Z4-De,s[$9>>2]=C8,A8=j4+c4,s[F6>>2]=A8,$8=j4-c4,s[e9>>2]=$8,Zt=D4+L8,l8=D4-L8,jt=U4+r8,ut=U4-r8,dt=Zt+jt,s[r5>>2]=dt,je=Zt-jt,s[E5>>2]=je,c8=$t-n8,Tt=K4-o8,X4=l8+c8,s[S3>>2]=X4,D9=l8-c8,s[c3>>2]=D9,g8=$t+n8,et=K4+o8,H8=Tt+ut,s[H5>>2]=H8,K8=Tt-ut,s[d3>>2]=K8,R8=et+g8,s[n5>>2]=R8,F8=et-g8,s[a3>>2]=F8,g4=l9+32|0,Y8=(g4|0)<($|0),Y8;)l9=g4}function BQ(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0;for(Q1=C,b=t>>1,v=$+(b<<2)|0,G=o+(t<<2)|0,s1=G,$1=a,j0=$,E1=v;d0=e[$1>>2]|0,g=d0+b|0,n0=$+(g<<2)|0,_0=$1+4|0,L0=e[_0>>2]|0,h=L0+b|0,x0=$+(h<<2)|0,m=g+1|0,A1=$+(m<<2)|0,c1=+s[A1>>2],I=h+1|0,w=$+(I<<2)|0,D=+s[w>>2],y=c1-D,x=+s[n0>>2],M=+s[x0>>2],L=M+x,R=+s[s1>>2],F=L*R,T=s1+4|0,N=+s[T>>2],V=N*y,X=V+F,K=N*L,a0=R*y,W=K-a0,r0=E1+-16|0,s0=D+c1,J=s0*.5,o0=x-M,q=o0*.5,t0=X+J,s[j0>>2]=t0,j=J-X,u0=E1+-8|0,s[u0>>2]=j,c0=W+q,$0=j0+4|0,s[$0>>2]=c0,l0=W-q,Z=E1+-4|0,s[Z>>2]=l0,I0=$1+8|0,g0=e[I0>>2]|0,E=g0+b|0,f0=$+(E<<2)|0,h0=$1+12|0,p0=e[h0>>2]|0,Q=p0+b|0,C0=$+(Q<<2)|0,B=E+1|0,S0=$+(B<<2)|0,Q0=+s[S0>>2],S=Q+1|0,b0=$+(S<<2)|0,E0=+s[b0>>2],y0=Q0-E0,w0=+s[f0>>2],B0=+s[C0>>2],K0=B0+w0,M0=s1+8|0,v0=+s[M0>>2],T0=K0*v0,N0=s1+12|0,U0=+s[N0>>2],O0=U0*y0,k0=O0+T0,V0=U0*K0,F0=v0*y0,G0=V0-F0,z0=E0+Q0,J0=z0*.5,q0=w0-B0,Z0=q0*.5,P0=k0+J0,H0=j0+8|0,s[H0>>2]=P0,o1=J0-k0,s[r0>>2]=o1,Y0=G0+Z0,i1=j0+12|0,s[i1>>2]=Y0,n1=G0-Z0,d1=E1+-12|0,s[d1>>2]=n1,g1=s1+16|0,m1=$1+16|0,h1=j0+16|0,u1=h1>>>0>>0,u1;)s1=g1,$1=m1,j0=h1,E1=r0}function Bb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0;return B=C,o=t+28|0,a=e[o>>2]|0,$=a+2868|0,g=ce(1,36)|0,h=t+4|0,m=e[h>>2]|0,I=g+4|0,e[I>>2]=m,s[g>>2]=-9999,E=g+8|0,e[E>>2]=$,g|0}function Qb(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,!o&&p2(t)}function yb(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,o||p2(t)}function wb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0;A9=C,y6=t,Y9=y6+48|0;do e[y6>>2]=0,y6=y6+4|0;while((y6|0)<(Y9|0));x=e[a>>2]|0,M=t+36|0,e[M>>2]=x,i2=+(x|0),i3=i2*8,f3=i3,g3=+tn(+f3),l3=g3*1.4426950408889634,d3=+z7(l3),G6=d3+-1,F6=~~G6,L=t+32|0,e[L>>2]=F6,r0=+(g|0),l0=r0*.25,b0=l0,U0=b0*.5,P0=+($|0),u1=U0/P0,w1=+tn(+u1),P1=w1*1.4426950216293335,j1=P1+-5.965784072875977,l2=F6+1|0,N2=1<>2]=c5,v5=+($|0),J5=v5+.25,E5=J5*r0,I3=E5,h3=I3*.5,K5=h3/P0,r3=+tn(+K5),a3=r3*1.4426950216293335,B3=a3+-5.965784072875977,G5=H2*B3,W5=G5+.5,D3=~~W5,y3=1-c5|0,X3=y3+D3|0,q3=t+40|0,e[q3>>2]=X3,X5=$<<2,b3=R9(X5)|0,t3=t+16|0,e[t3>>2]=b3,s6=R9(X5)|0,T3=t+20|0,e[T3>>2]=s6,H3=R9(X5)|0,c3=t+24|0,e[c3>>2]=H3,u3=t+4|0,e[u3>>2]=o,e[t>>2]=$,Q3=t+44|0,e[Q3>>2]=g,z5=t+48|0,s[z5>>2]=1,H5=(g|0)<26e3;do if(H5)s[z5>>2]=0;else{if(V5=(g|0)<38e3,V5){s[z5>>2]=.9399999976158142;break}S5=(g|0)>46e3,S5&&(s[z5>>2]=1.274999976158142)}while(!1);Y3=P0*2,U5=+(g|0),$6=($|0)>0,k3=$6,i9=0,o9=0;e:for(;;){for(Q=k3^1,_6=i9;;){if(S3=_6+1|0,a6=+(S3|0),i6=a6*.08664337545633316,V3=i6+2.7488713472395148,Z5=+Yn(+V3),x3=Y3*Z5,J3=x3/U5,d6=+z7(J3),m3=~~d6,E=(m3|0)<=(o9|0),t9=E|Q,!t9){m=S3,I=m3,O6=_6;break}if(L6=(S3|0)<87,L6)_6=S3;else{d9=o9;break e}}for(M6=1272+(O6<<2)|0,R6=+s[M6>>2],S6=1272+(m<<2)|0,r6=+s[S6>>2],h6=r6-R6,b6=I-o9|0,X6=+(b6|0),v6=h6/X6,L3=o9-I|0,n6=o9-$|0,o6=L3>>>0>n6>>>0,H9=o6?L3:n6,n3=o9-H9|0,U6=R6,B9=o9;C6=U6+100,z3=b3+(B9<<2)|0,s[z3>>2]=C6,M3=U6+v6,K3=B9+1|0,V6=(K3|0)==(n3|0),!V6;)U6=M3,B9=K3;if(N3=(n3|0)<($|0),E6=(m|0)<87,E6)k3=N3,i9=m,o9=n3;else{d9=n3;break}}if(_3=(d9|0)<($|0),_3)for(Q9=d9;Y6=Q9+-1|0,A6=b3+(Y6<<2)|0,D6=e[A6>>2]|0,R=b3+(Q9<<2)|0,e[R>>2]=D6,F=Q9+1|0,n9=(F|0)==($|0),!n9;)Q9=F;if(e6=($|0)>0,e6){for(l6=$<<1,o3=(g|0)/(l6|0)&-1,K6=o+120|0,A3=e[K6>>2]|0,c6=o+124|0,B6=o+116|0,R3=o+112|0,P6=1,U3=0,y9=-99;;){K=o5(o3,U3)|0,a0=+(K|0),W=a0*.0007399999885819852,s0=W,J=+ts(+s0),o0=J*13.100000381469727,q=o5(K,K)|0,d0=+(q|0),t0=d0*18499999754340024e-24,j=t0,u0=+ts(+j),c0=u0*2.240000009536743,$0=c0+o0,Z=a0*9999999747378752e-20,I0=Z,g0=$0+I0,f0=g0,n0=A3+y9|0,h0=(n0|0)<(U3|0);e:do if(h0)for(p0=+s[R3>>2],C0=f0-p0,S0=C0,f9=y9;;){if(Q0=o5(f9,o3)|0,E0=+(Q0|0),y0=E0*.0007399999885819852,w0=y0,B0=+ts(+w0),_0=B0*13.100000381469727,K0=o5(Q0,Q0)|0,M0=+(K0|0),v0=M0*18499999754340024e-24,T0=v0,N0=+ts(+T0),O0=N0*2.240000009536743,k0=E0*9999999747378752e-20,V0=k0,F0=_0+V0,L0=F0+O0,G0=L0($|0);e:do if(z0)J6=P6;else for(J0=e[c6>>2]|0,q0=J0+U3|0,T6=P6;;){if(Y0=(T6|0)<(q0|0),!Y0&&(i1=o5(T6,o3)|0,x0=+(i1|0),n1=x0*.0007399999885819852,d1=n1,g1=+ts(+d1),m1=g1*13.100000381469727,h1=o5(i1,i1)|0,A1=+(h1|0),c1=A1*18499999754340024e-24,s1=c1,$1=+ts(+s1),j0=$1*2.240000009536743,E1=x0*9999999747378752e-20,I1=E1,Q1=m1+I1,p1=Q1+j0,B1=+s[B6>>2],v1=B1+f0,k1=v1,L1=p1>2]=F1,b1=U3+1|0,G3=(b1|0)==($|0),G3)break;P6=J6,U3=b1,y9=h9}if(e6)for(T=U5*.5,N=e[L>>2]|0,G=N+1|0,V=1<>2]=O1,W1=q6+1|0,e9=(W1|0)==($|0),e9){v=T;break}else q6=W1;else H6=19}else H6=19;if((H6|0)==19&&(y=U5*.5,v=y),h2=o+36|0,s2=v/P0,E2=s2,a2=o+24|0,K1=+s[a2>>2],d2=o+28|0,$2=+s[d2>>2],r2=Sb(h2,E2,$,K1,$2)|0,A2=t+8|0,e[A2>>2]=r2,e2=R9(12)|0,o2=t+12|0,e[o2>>2]=e2,f2=R9(X5)|0,e[e2>>2]=f2,t2=R9(X5)|0,k2=e2+4|0,e[k2>>2]=t2,D2=R9(X5)|0,S2=e2+8|0,e[S2>>2]=D2,!!e6)for(Q2=e[u3>>2]|0,b=e[e2>>2]|0,B=e2+4|0,w=e[B>>2]|0,S=e2+8|0,D=e[S>>2]|0,a9=0;L2=+(a9|0),U2=L2+.5,m2=U2*U5,W2=m2/Y3,P2=+tn(+W2),V2=P2*2.885390043258667,G2=V2+-11.931568145751953,q2=G2,Z2=q2<0,s9=Z2?0:q2,h=s9>=16,c9=h?16:s9,A5=~~c9,N1=+(A5|0),t5=c9-N1,T5=t5,i5=1-T5,x5=A5+1|0,j2=(Q2+132|0)+(A5<<2)|0,I5=+s[j2>>2],b5=I5,Y5=b5*i5,g5=(Q2+132|0)+(x5<<2)|0,B5=+s[g5>>2],s5=B5*t5,R2=s5,M2=R2+Y5,y2=M2,Q5=b+(a9<<2)|0,s[Q5>>2]=y2,N5=(Q2+200|0)+(A5<<2)|0,m5=+s[N5>>2],L5=m5,q5=L5*i5,Y2=(Q2+200|0)+(x5<<2)|0,p5=+s[Y2>>2],$5=p5*t5,u5=$5,y5=u5+q5,T1=y5,D5=w+(a9<<2)|0,s[D5>>2]=T1,d5=(Q2+268|0)+(A5<<2)|0,l5=+s[d5>>2],X2=l5,w5=X2*i5,r5=(Q2+268|0)+(x5<<2)|0,a5=+s[r5>>2],h5=a5*t5,z2=h5,f5=z2+w5,n5=f5,R5=D+(a9<<2)|0,s[R5>>2]=n5,e5=a9+1|0,Q6=(e5|0)==($|0),!Q6;)a9=e5}function QQ(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0;if(P0=C,a=(t|0)==0,!a){if($=t+16|0,w=e[$>>2]|0,V=(w|0)==0,V||p2(w),t0=t+20|0,h0=e[t0>>2]|0,K0=(h0|0)==0,K0||p2(h0),F0=t+24|0,L0=e[F0>>2]|0,G0=(L0|0)==0,G0||p2(L0),g=t+8|0,h=e[g>>2]|0,m=(h|0)==0,!m){for(E=h,J0=0;I=E+(J0<<2)|0,Q=e[I>>2]|0,B=e[Q>>2]|0,p2(B),S=e[g>>2]|0,b=S+(J0<<2)|0,v=e[b>>2]|0,D=v+4|0,y=e[D>>2]|0,p2(y),x=e[g>>2]|0,M=x+(J0<<2)|0,L=e[M>>2]|0,R=L+8|0,F=e[R>>2]|0,p2(F),T=e[g>>2]|0,N=T+(J0<<2)|0,G=e[N>>2]|0,X=G+12|0,K=e[X>>2]|0,p2(K),a0=e[g>>2]|0,W=a0+(J0<<2)|0,r0=e[W>>2]|0,s0=r0+16|0,J=e[s0>>2]|0,p2(J),o0=e[g>>2]|0,q=o0+(J0<<2)|0,d0=e[q>>2]|0,j=d0+20|0,u0=e[j>>2]|0,p2(u0),c0=e[g>>2]|0,$0=c0+(J0<<2)|0,l0=e[$0>>2]|0,Z=l0+24|0,I0=e[Z>>2]|0,p2(I0),g0=e[g>>2]|0,f0=g0+(J0<<2)|0,n0=e[f0>>2]|0,p0=n0+28|0,C0=e[p0>>2]|0,p2(C0),S0=e[g>>2]|0,Q0=S0+(J0<<2)|0,b0=e[Q0>>2]|0,p2(b0),E0=J0+1|0,z0=(E0|0)==17,!z0;)o=e[g>>2]|0,E=o,J0=E0;y0=e[g>>2]|0,p2(y0)}w0=t+12|0,B0=e[w0>>2]|0,_0=(B0|0)==0,_0||(M0=e[B0>>2]|0,p2(M0),v0=e[w0>>2]|0,T0=v0+4|0,N0=e[T0>>2]|0,p2(N0),U0=e[w0>>2]|0,O0=U0+8|0,k0=e[O0>>2]|0,p2(k0),V0=e[w0>>2]|0,p2(V0)),q0=t,H0=q0+52|0;do e[q0>>2]=0,q0=q0+4|0;while((q0|0)<(H0|0))}}function yQ(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0;if(Q0=C,m=e[t>>2]|0,I=m<<2,h=I,M=C,C=C+((1*h|0)+15&-16)|0,W=t+24|0,u0=e[W>>2]|0,vQ(m,u0,o,a,140,-1),c0=(m|0)>0,c0)for(h0=0;$0=o+(h0<<2)|0,l0=+s[$0>>2],Z=a+(h0<<2)|0,I0=+s[Z>>2],E=l0-I0,Q=M+(h0<<2)|0,s[Q>>2]=E,B=h0+1|0,f0=(B|0)==(m|0),!f0;)h0=B;if(S=e[W>>2]|0,b=t+4|0,v=e[b>>2]|0,w=v+128|0,D=e[w>>2]|0,vQ(m,S,M,a,0,D),c0)p0=0;else{C=Q0;return}for(;x=o+(p0<<2)|0,L=+s[x>>2],R=M+(p0<<2)|0,F=+s[R>>2],T=L-F,s[R>>2]=T,N=p0+1|0,n0=(N|0)==(m|0),!n0;)p0=N;if(!c0){C=Q0;return}for(y=e[b>>2]|0,C0=0;G=a+(C0<<2)|0,V=+s[G>>2],X=V,K=X+.5,a0=~~K,r0=(a0|0)>39,$=r0?39:a0,s0=($|0)<0,g=s0?0:$,J=M+(C0<<2)|0,o0=+s[J>>2],q=(y+336|0)+(g<<2)|0,d0=+s[q>>2],t0=d0+o0,s[G>>2]=t0,j=C0+1|0,g0=(j|0)==(m|0),!g0;)C0=j;C=Q0}function wQ(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=+$,g=+g;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0;if(E5=C,F=e[t>>2]|0,T=t+40|0,u1=e[T>>2]|0,w1=u1<<2,I=w1,P1=C,C=C+((1*I|0)+15&-16)|0,j1=t+4|0,i2=e[j1>>2]|0,Q2=i2+4|0,A5=+s[Q2>>2],g5=A5+g,N=(u1|0)>0,N)for($5=0;q=P1+($5<<2)|0,s[q>>2]=-9999,f0=$5+1|0,B0=(f0|0)<(u1|0),B0;)$5=f0;if(F0=i2+8|0,i1=+s[F0>>2],d1=g50,g1){for(m1=t+16|0,h1=e[m1>>2]|0,d5=0;A1=h1+(d5<<2)|0,c1=+s[A1>>2],s1=c1+q5,$1=a+(d5<<2)|0,s[$1>>2]=s1,j0=d5+1|0,Y2=(j0|0)==(F|0),!Y2;)d5=j0;if(E1=t+8|0,I1=e[E1>>2]|0,Q1=i2+496|0,p1=+s[Q1>>2],B1=p1-$,g1)for(v1=t+20|0,k1=e[v1>>2]|0,L1=t+32|0,M1=t+36|0,S1=t+28|0,u5=0;;){D1=o+(u5<<2)|0,R1=+s[D1>>2],F1=k1+(u5<<2)|0,U1=e[F1>>2]|0,D5=u5,a5=R1;e:for(;;)for(y5=D5;;){if(b1=y5+1|0,Z1=(b1|0)<(F|0),!Z1){S=0,v=b1,T1=y5,h5=a5;break e}if(G1=k1+(b1<<2)|0,x1=e[G1>>2]|0,z1=(x1|0)==(U1|0),!z1){S=1,v=b1,T1=y5,h5=a5;break e}if(q1=o+(b1<<2)|0,H1=+s[q1>>2],Y1=H1>a5,Y1){D5=b1,a5=H1;continue e}else y5=b1}if(V1=h5+6,X1=a+(T1<<2)|0,n2=+s[X1>>2],O1=V1>n2,O1&&(c2=e[L1>>2]|0,W1=U1>>c2,h2=(W1|0)>16,m=h2?16:W1,s2=(m|0)<0,h=s2?0:m,E2=I1+(h<<2)|0,a2=e[E2>>2]|0,K1=e[M1>>2]|0,d2=B1+h5,$2=d2,l2=$2+-30,r2=l2*.10000000149011612,A2=~~r2,e2=(A2|0)<0,o2=e2?0:A2,f2=(o2|0)>7,t2=f2?7:o2,k2=a2+(t2<<2)|0,D2=e[k2>>2]|0,S2=D2+4|0,N2=+s[S2>>2],L2=~~N2,U2=+s[D2>>2],m2=~~U2,W2=(m2|0)<(L2|0),W2))for(P2=k1+(T1<<2)|0,V2=e[P2>>2]|0,G2=e[S1>>2]|0,q2=V2-G2|0,Z2=+(q2|0),H2=K1>>1,N1=+(H2|0),t5=U2+-16,T5=+(K1|0),i5=t5*T5,x5=i5-N1,j2=x5+Z2,I5=~~j2,p5=m2,J5=I5;b5=(J5|0)>0,b5&&(R=p5+2|0,Y5=D2+(R<<2)|0,b2=+s[Y5>>2],B5=b2+h5,s5=P1+(J5<<2)|0,R2=+s[s5>>2],M2=R2>2]=B5)),y2=J5+K1|0,Q5=(y2|0)<(u1|0),N5=p5+1|0,m5=(N5|0)<(L2|0),c5=m5&Q5,c5;)p5=N5,J5=y2;if(S)u5=v;else{M=M1;break}}else i3=7}else i3=7;(i3|0)==7&&(y=t+36|0,M=y),L5=e[M>>2]|0,bb(P1,L5,u1),G=e[t>>2]|0,V=(G|0)>1;e:do if(V)for(X=t+20|0,K=t+28|0,a0=e[X>>2]|0,W=e[a0>>2]|0,r0=L5>>1,s0=W-r0|0,J=e[K>>2]|0,o0=s0-J|0,d0=e[j1>>2]|0,t0=d0+32|0,Z=1,n0=W,X2=0,F2=o0;;){c0=P1+(F2<<2)|0,$0=+s[c0>>2],l0=a0+(Z<<2)|0,I0=e[l0>>2]|0,g0=I0+n0|0,h0=g0>>1,p0=h0-J|0,C0=+s[t0>>2],S0=$0>C0,z2=S0?C0:$0,Q0=(F2|0)<(p0|0);t:do if(Q0)for(E=F2,n5=z2;;){for(b0=n5==-9999,Q=E;;){if(E0=Q+1|0,y0=P1+(E0<<2)|0,w0=+s[y0>>2],_0=w0>-9999,_0){if(K0=w0=(G|0),U0=(n0|0)>(T0|0),R5=N0|U0;t:do if(R5)g2=X2;else for(w5=X2;;){if(O0=a+(w5<<2)|0,k0=+s[O0>>2],V0=k0>2]=f5),L0=w5+1|0,G0=(L0|0)<(G|0),!G0){g2=L0;break t}if(D=a0+(L0<<2)|0,L=e[D>>2]|0,z0=(L|0)>(T0|0),z0){g2=L0;break}else w5=L0}while(!1);if(j=g2+1|0,u0=(j|0)<(G|0),!u0){l5=g2;break e}w=a0+(g2<<2)|0,x=e[w>>2]|0,Z=j,n0=x,X2=g2,F2=v5}else l5=0;while(!1);if(J0=e[T>>2]|0,q0=J0+-1|0,Z0=P1+(q0<<2)|0,P0=+s[Z0>>2],H0=(l5|0)<(G|0),H0)r5=l5;else{C=E5;return}for(;o1=a+(r5<<2)|0,Y0=+s[o1>>2],x0=Y0>2]=P0),n1=r5+1|0,M5=(n1|0)==(G|0),!M5;)r5=n1;C=E5}function rl(t,o,a,$,g,h,m){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0;var I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0;if(M0=C,E=e[t>>2]|0,Q=t+4|0,R=e[Q>>2]|0,s0=(R+12|0)+($<<2)|0,Z=+s[s0>>2],C0=(E|0)>0,!!C0)for(S0=t+48|0,Q0=+s[S0>>2],b0=t+12|0,E0=e[b0>>2]|0,B=E0+($<<2)|0,S=e[B>>2]|0,b=R+108|0,v=($|0)==1,w=Q0,D=w*.005,y=w*3e-4,B0=0;x=o+(B0<<2)|0,M=+s[x>>2],L=S+(B0<<2)|0,F=+s[L>>2],T=F+M,N=+s[b>>2],G=T>N,_0=G?N:T,V=a+(B0<<2)|0,X=+s[V>>2],K=X+Z,a0=_0>2]=I,v&&(r0=m+(B0<<2)|0,J=+s[r0>>2],o0=_0-J,q=o0>-17.200000762939453,d0=o0+17.200000762939453,t0=d0,q?(j=D*t0,u0=1-j,c0=u0,$0=c0<0,$0?y0=9999999747378752e-20:y0=c0):(l0=y*t0,I0=1-l0,g0=I0,y0=g0),f0=h+(B0<<2)|0,n0=+s[f0>>2],h0=n0*y0,s[f0>>2]=h0),p0=B0+1|0,w0=(p0|0)==(E|0),!w0;)B0=p0}function vb(t,o){t=+t,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0;return N=C,$=o+4|0,g=e[$>>2]|0,w=g+28|0,D=e[w>>2]|0,y=o+40|0,x=e[y>>2]|0,M=D+(x<<2)|0,L=e[M>>2]|0,R=(L|0)/2&-1,F=+(R|0),h=g+8|0,m=e[h>>2]|0,I=+(m|0),E=F/I,Q=D+2936|0,B=+s[Q>>2],S=B*E,b=S+t,v=b<-9999,a=v?-9999:b,+a}function kb(t,o,a,$,g,h,m,I,E){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0,E=E|0;var Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0;if(Ve=C,c0=e[a>>2]|0,$0=a+4|0,A5=e[$0>>2]|0,X3=A5+500|0,Q3=e[X3>>2]|0,E6=(Q3|0)==0,E6?W5=16:(d6=A5+508|0,v6=e[d6>>2]|0,W5=v6),o3=e[A5>>2]|0,Q6=((o+132|0)+(o3*60|0)|0)+(t<<2)|0,l0=e[Q6>>2]|0,b0=(o+252|0)+(t<<2)|0,U0=e[b0>>2]|0,P0=1624+(U0<<3)|0,u1=+l1[P0>>3],w1=(o+312|0)+(t<<2)|0,P1=e[w1>>2]|0,j1=E<<2,S=j1,i2=C,C=C+((1*S|0)+15&-16)|0,b=j1,Q2=C,C=C+((1*b|0)+15&-16)|0,y=j1,H2=C,C=C+((1*y|0)+15&-16)|0,x=j1,b2=C,C=C+((1*x|0)+15&-16)|0,M=j1,M5=C,C=C+((1*M|0)+15&-16)|0,g2=$+1156|0,F2=(c0|0)>1e3,Ye=F2?1696:1624,He=Ye+(P1<<3)|0,Ge=+l1[He>>3],G5=o5(j1,W5)|0,L=G5,D3=C,C=C+((1*L|0)+15&-16)|0,e[i2>>2]=D3,v=G5,f3=C,C=C+((1*v|0)+15&-16)|0,e[Q2>>2]=f3,w=G5,y3=C,C=C+((1*w|0)+15&-16)|0,e[H2>>2]=y3,D=G5,q3=C,C=C+((1*D|0)+15&-16)|0,e[b2>>2]=q3,X5=(E|0)>1,X5&&(b3=D3+(W5<<2)|0,t3=i2+4|0,e[t3>>2]=b3,s6=f3+(W5<<2)|0,T3=Q2+4|0,e[T3>>2]=s6,H3=y3+(W5<<2)|0,c3=H2+4|0,e[c3>>2]=H3,g3=q3+(W5<<2)|0,u3=b2+4|0,e[u3>>2]=g3,B9=(E|0)==2,!B9))for(S5=2;F=e[i2>>2]|0,G=e[Q2>>2]|0,V=e[H2>>2]|0,X=e[b2>>2]|0,V5=o5(S5,W5)|0,Y3=F+(V5<<2)|0,U5=i2+(S5<<2)|0,e[U5>>2]=Y3,$6=G+(V5<<2)|0,n3=Q2+(S5<<2)|0,e[n3>>2]=$6,l3=V+(V5<<2)|0,N3=H2+(S5<<2)|0,e[N3>>2]=l3,k3=X+(V5<<2)|0,_3=b2+(S5<<2)|0,e[_3>>2]=k3,S3=S5+1|0,o9=(S3|0)==(E|0),!o9;)S5=S3;if(z5=e[g2>>2]|0,H5=(c0|0)>0,H5)for(a6=e[b2>>2]|0,i6=(E|0)>0,V3=c0^-1,Z5=W5^-1,H6=0,w9=V3;;){if(J3=(w9|0)>(Z5|0),o4=J3?w9:Z5,m3=o4^-1,L6=c0-H6|0,M6=(W5|0)>(L6|0),Q=M6?L6:W5,ge(M5|0,m|0,j1|0)|0,u4(a6|0,0,G5|0)|0,i6)for(R6=(Q|0)>0,S6=l0-H6|0,$9=0;;){if(L3=h+($9<<2)|0,n6=e[L3>>2]|0,o6=n6+(H6<<2)|0,C6=M5+($9<<2)|0,z3=e[C6>>2]|0,M3=(z3|0)==0,M3){if(R6)for(F6=H2+($9<<2)|0,l6=e[F6>>2]|0,K6=i2+($9<<2)|0,A3=e[K6>>2]|0,c6=Q2+($9<<2)|0,B6=e[c6>>2]|0,R3=b2+($9<<2)|0,Y6=e[R3>>2]|0,v9=0;G0=l6+(v9<<2)|0,s[G0>>2]=1000000013351432e-25,z0=A3+(v9<<2)|0,s[z0>>2]=0,J0=B6+(v9<<2)|0,s[J0>>2]=0,q0=Y6+(v9<<2)|0,e[q0>>2]=0,q=v9+H6|0,Z0=n6+(q<<2)|0,e[Z0>>2]=0,H0=v9+1|0,q6=(H0|0)==(m3|0),!q6;)v9=H0}else{if(K3=H2+($9<<2)|0,e6=e[K3>>2]|0,R6){for(ie=0;d0=ie+H6|0,A6=n6+(d0<<2)|0,D6=e[A6>>2]|0,U6=1768+(D6<<2)|0,t9=e[U6>>2]|0,e9=e6+(ie<<2)|0,e[e9>>2]=t9,G3=ie+1|0,_6=(G3|0)==(m3|0),!_6;)ie=G3;if(n9=g+($9<<2)|0,V6=e[n9>>2]|0,s9=b2+($9<<2)|0,c9=e[s9>>2]|0,R6){for(V9=0;P6=(V9|0)>=(S6|0),u0=P6?Ge:u1,J6=u0,t0=V9+H6|0,T6=V6+(t0<<2)|0,i9=+s[T6>>2],y9=+rr(+i9),Z=e6+(V9<<2)|0,I0=+s[Z>>2],g0=y9/I0,f0=c9+(V9<<2)|0,_9=!(g0>2]=B,n0=V9+1|0,O6=(n0|0)==(Q|0),!O6;)V9=n0;if(R6)for(h0=i2+($9<<2)|0,p0=e[h0>>2]|0,C0=Q2+($9<<2)|0,S0=e[C0>>2]|0,F9=0;;)if(Q0=F9+H6|0,E0=V6+(Q0<<2)|0,y0=+s[E0>>2],w0=y0*y0,B0=p0+(F9<<2)|0,s[B0>>2]=w0,_0=S0+(F9<<2)|0,s[_0>>2]=w0,K0=+s[E0>>2],M0=K0<0,M0&&(v0=+s[B0>>2],T0=-v0,s[B0>>2]=T0),N0=e6+(F9<<2)|0,O0=+s[N0>>2],k0=O0*O0,s[N0>>2]=k0,V0=F9+1|0,U3=(V0|0)==(m3|0),U3){T=C0,L0=p0;break}else F9=V0;else J9=21}else J9=21}else J9=21;(J9|0)==21&&(J9=0,R=i2+($9<<2)|0,K=e[R>>2]|0,J=Q2+($9<<2)|0,T=J,L0=K),F0=e[T>>2]|0,Fe=e[$0>>2]|0,+kQ(Fe,l0,L0,F0,e6,0,H6,Q,o6)}if(o1=$9+1|0,a9=(o1|0)==(E|0),a9)break;$9=o1}if(r6=e[g2>>2]|0,h6=(r6|0)>0,h6)for(b6=(Q|0)>0,G6=I-H6|0,X6=l0-H6|0,B3=r6,ke=0;;){if(Y0=($+1160|0)+(ke<<2)|0,i1=e[Y0>>2]|0,x0=($+2184|0)+(ke<<2)|0,n1=e[x0>>2]|0,d1=h+(i1<<2)|0,g1=e[d1>>2]|0,m1=g1+(H6<<2)|0,h1=h+(n1<<2)|0,A1=e[h1>>2]|0,c1=i2+(i1<<2)|0,s1=e[c1>>2]|0,$1=i2+(n1<<2)|0,j0=e[$1>>2]|0,E1=Q2+(i1<<2)|0,I1=e[E1>>2]|0,Q1=Q2+(n1<<2)|0,p1=e[Q1>>2]|0,B1=H2+(i1<<2)|0,v1=e[B1>>2]|0,k1=H2+(n1<<2)|0,L1=e[k1>>2]|0,M1=b2+(i1<<2)|0,S1=e[M1>>2]|0,D1=b2+(n1<<2)|0,R1=e[D1>>2]|0,F1=M5+(i1<<2)|0,U1=e[F1>>2]|0,b1=(U1|0)==0,Z1=M5+(n1<<2)|0,b1?(G1=e[Z1>>2]|0,x1=(G1|0)==0,x1?X2=B3:J9=31):J9=31,(J9|0)==31){if(J9=0,e[Z1>>2]=1,e[F1>>2]=1,b6)for(W6=0;;){z1=(W6|0)<(G6|0);do if(z1){if(q1=S1+(W6<<2)|0,H1=e[q1>>2]|0,Y1=(H1|0)==0,V1=R1+(W6<<2)|0,Y1&&(X1=e[V1>>2]|0,n2=(X1|0)==0,n2)){i5=(W6|0)<(X6|0);do if(i5)x5=j0+(W6<<2)|0,j2=+s[x5>>2],I5=s1+(W6<<2)|0,b5=+s[I5>>2],Y5=b5+j2,s[I5>>2]=Y5,f9=+rr(+Y5),g5=I1+(W6<<2)|0,s[g5>>2]=f9,N=x5;else if(B5=s1+(W6<<2)|0,s5=+s[B5>>2],R2=j0+(W6<<2)|0,M2=+s[R2>>2],y2=M2+s5,Q5=y2<0,Q9=+rr(+s5),h9=+rr(+M2),N5=h9+Q9,m5=I1+(W6<<2)|0,s[m5>>2]=N5,Q5){L5=-N5,s[B5>>2]=L5,N=R2;break}else{s[B5>>2]=N5,N=R2;break}while(!1);q5=p1+(W6<<2)|0,s[q5>>2]=0,s[N>>2]=0,e[V1>>2]=1,o0=W6+H6|0,Y2=A1+(o0<<2)|0,e[Y2>>2]=0;break}O1=s1+(W6<<2)|0,c2=+s[O1>>2],H9=+rr(+c2),W1=j0+(W6<<2)|0,h2=+s[W1>>2],y6=+rr(+h2),s2=y6+H9,s[O1>>2]=s2,E2=I1+(W6<<2)|0,a2=+s[E2>>2],K1=p1+(W6<<2)|0,d2=+s[K1>>2],$2=d2+a2,s[E2>>2]=$2,e[V1>>2]=1,e[q1>>2]=1,j=W6+H6|0,l2=g1+(j<<2)|0,r2=e[l2>>2]|0,A2=A1+(j<<2)|0,e2=e[A2>>2]|0,we=(r2|0)>-1,ve=0-r2|0,o2=we?r2:ve,ue=(e2|0)>-1,de=0-e2|0,f2=ue?e2:de,t2=(o2|0)>(f2|0),t2?(k2=(r2|0)>0,D2=r2-e2|0,S2=e2-r2|0,N2=k2?D2:S2,e[A2>>2]=N2,W=e[l2>>2]|0,P2=W,q2=N2):(L2=(e2|0)>0,U2=r2-e2|0,m2=e2-r2|0,W2=L2?U2:m2,e[A2>>2]=W2,e[l2>>2]=e2,a0=e[A2>>2]|0,P2=e2,q2=a0),Ee=(P2|0)>-1,Re=0-P2|0,V2=Ee?P2:Re,G2=V2<<1,Z2=(q2|0)<(G2|0),Z2||(N1=0-q2|0,e[A2>>2]=N1,t5=e[l2>>2]|0,T5=0-t5|0,e[l2>>2]=T5)}while(!1);if(p5=v1+(W6<<2)|0,$5=+s[p5>>2],u5=L1+(W6<<2)|0,y5=+s[u5>>2],T1=y5+$5,s[u5>>2]=T1,s[p5>>2]=T1,D5=W6+1|0,d9=(D5|0)==(m3|0),d9)break;W6=D5}Te=e[$0>>2]|0,+kQ(Te,l0,s1,I1,v1,S1,H6,Q,m1),r0=e[g2>>2]|0,X2=r0}if(d5=ke+1|0,l5=(d5|0)<(X2|0),l5)B3=X2,ke=d5;else{a3=X2;break}}else a3=r6;if(w5=H6+W5|0,r5=(c0|0)>(w5|0),Y9=w9+W5|0,r5)H6=w5,w9=Y9;else{x3=a3;break}}else x3=z5;if(d3=(x3|0)>0,d3)r3=x3,A9=0;else{C=Ve;return}for(;a5=($+1160|0)+(A9<<2)|0,h5=e[a5>>2]|0,z2=m+(h5<<2)|0,f5=e[z2>>2]|0,n5=(f5|0)==0,R5=($+2184|0)+(A9<<2)|0,n5?(e5=e[R5>>2]|0,c5=m+(e5<<2)|0,v5=e[c5>>2]|0,J5=(v5|0)==0,J5?K5=r3:J9=52):J9=52,(J9|0)==52&&(J9=0,e[z2>>2]=1,i3=e[R5>>2]|0,E5=m+(i3<<2)|0,e[E5>>2]=1,s0=e[g2>>2]|0,K5=s0),I3=A9+1|0,h3=(I3|0)<(K5|0),h3;)r3=K5,A9=I3;C=Ve}function Sb(t,o,a,$,g){t=t|0,o=+o,a=a|0,$=+$,g=+g;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0;for(et=C,C=C+32480|0,W3=et+32256|0,D9=et+1792|0,x9=et,L=a<<2,b=L,R=C,C=C+((1*b|0)+15&-16)|0,r2=R9(68)|0,u4(D9|0,0,30464)|0,x3=$>0,ue=$<0,L9=0;;){for(h4=L9<<2,$4=0;s5=$4+h4|0,p5=(s5|0)<88,p5?(r5=1272+(s5<<2)|0,J5=+s[r5>>2],Z9=J5):Z9=-30,D3=s5+1|0,c3=(D3|0)<88,c3?(P6=1272+(D3<<2)|0,J6=+s[P6>>2],i9=Z9>J6,i9?c4=J6:c4=Z9):(c9=Z9>-30,c9?c4=-30:c4=Z9),_6=s5+2|0,O6=(_6|0)<88,O6?(q6=1272+(_6<<2)|0,a9=+s[q6>>2],d9=c4>a9,d9?T9=a9:T9=c4):(U3=c4>-30,U3?T9=-30:T9=c4),o9=s5+3|0,B9=(o9|0)<88,B9?(h9=1272+(o9<<2)|0,f9=+s[h9>>2],H9=T9>f9,H9?j4=f9:j4=T9):(Q9=T9>-30,Q9?j4=-30:j4=T9),y6=W3+($4<<2)|0,s[y6>>2]=j4,H6=$4+1|0,Ot=(H6|0)==56,!Ot;)$4=H6;if(Ie=(D9+(L9*1792|0)|0)+448|0,F=2792+(L9*1344|0)|0,ge(Ie|0,F|0,224)|0,J=(D9+(L9*1792|0)|0)+672|0,I0=(2792+(L9*1344|0)|0)+224|0,ge(J|0,I0|0,224)|0,y0=(D9+(L9*1792|0)|0)+896|0,k0=(2792+(L9*1344|0)|0)+448|0,ge(y0|0,k0|0,224)|0,o1=(D9+(L9*1792|0)|0)+1120|0,c1=(2792+(L9*1344|0)|0)+672|0,ge(o1|0,c1|0,224)|0,k1=(D9+(L9*1792|0)|0)+1344|0,G1=(2792+(L9*1344|0)|0)+896|0,ge(k1|0,G1|0,224)|0,c2=(D9+(L9*1792|0)|0)+1568|0,A2=(2792+(L9*1344|0)|0)+1120|0,ge(c2|0,A2|0,224)|0,U2=D9+(L9*1792|0)|0,ge(U2|0,F|0,224)|0,t5=(D9+(L9*1792|0)|0)+224|0,ge(t5|0,F|0,224)|0,x3)for(At=0;;){if(ue)for(Bt=0;Ee=16-Bt|0,L8=(Ee|0)>-1,$8=0-Ee|0,V9=L8?Ee:$8,ie=+(V9|0),F9=ie*g,v9=F9+$,W6=v9<0,I=W6?0:v9,$9=I>0,h=$9?0:I,ve=((D9+(L9*1792|0)|0)+(At*224|0)|0)+(Bt<<2)|0,Re=+s[ve>>2],de=Re+h,s[ve>>2]=de,Fe=Bt+1|0,Vt=(Fe|0)==56,!Vt;)Bt=Fe;else for(ct=0;d3=16-ct|0,o8=(d3|0)>-1,Zt=0-d3|0,G6=o8?d3:Zt,F6=+(G6|0),U6=F6*g,T6=U6+$,y9=T6<0,E=y9?0:T6,A9=((D9+(L9*1792|0)|0)+(At*224|0)|0)+(ct<<2)|0,Y9=+s[A9>>2],w9=Y9+E,s[A9>>2]=w9,we=ct+1|0,Yt=(we|0)==56,!Yt;)ct=we;if(n3=At+1|0,_t=(n3|0)==8,_t)break;At=n3}else for(Mt=0;;){if(ue)for(Qt=0;o4=16-Qt|0,M8=(o4|0)>-1,l8=0-o4|0,ke=M8?o4:l8,Ye=+(ke|0),J9=Ye*g,Ve=J9+$,he=Ve>0,m=he?0:Ve,Ce=((D9+(L9*1792|0)|0)+(Mt*224|0)|0)+(Qt<<2)|0,v4=+s[Ce>>2],W9=v4+m,s[Ce>>2]=W9,k9=Qt+1|0,t8=(k9|0)==56,!t8;)Qt=k9;else for(lt=0;k4=16-lt|0,E8=(k4|0)>-1,A8=0-k4|0,Y4=E8?k4:A8,nt=+(Y4|0),Je=nt*g,V4=Je+$,ze=((D9+(L9*1792|0)|0)+(Mt*224|0)|0)+(lt<<2)|0,R4=+s[ze>>2],ot=R4+V4,s[ze>>2]=ot,re=lt+1|0,qt=(re|0)==56,!qt;)lt=re;if(d4=Mt+1|0,i8=(d4|0)==8,i8)break;Mt=d4}for(Te=t+(L9<<2)|0,Ge=+s[Te>>2],He=Ge,We=0;;){for(Be=(We|0)<2,N6=+(We|0),v=N6*10,w=70-v,Ke=Be?50:w,P9=Ke+He,fe=P9,Et=0;Ne=((D9+(L9*1792|0)|0)+(We*224|0)|0)+(Et<<2)|0,ne=+s[Ne>>2],f4=ne+fe,s[Ne>>2]=f4,I4=Et+1|0,Oe=(I4|0)==56,!Oe;)Et=I4;for(Se=x9+(We*224|0)|0,ge(Se|0,W3|0,224)|0,a4=+(We|0),Pe=a4*10,m4=70-Pe,Lt=0;;)if(S9=(x9+(We*224|0)|0)+(Lt<<2)|0,f6=+s[S9>>2],J4=m4+f6,s[S9>>2]=J4,S4=Lt+1|0,f8=(S4|0)==56,f8){at=0;break}else Lt=S4;for(;be=((D9+(L9*1792|0)|0)+(We*224|0)|0)+(at<<2)|0,me=+s[be>>2],z6=(x9+(We*224|0)|0)+(at<<2)|0,F4=+s[z6>>2],T4=me>F4,T4&&(s[z6>>2]=me),st=at+1|0,N4=(st|0)==56,!N4;)at=st;if(pe=We+1|0,x8=(pe|0)==8,x8){U4=1;break}else We=pe}for(;;){for(xe=U4+-1|0,G4=0;;)if(mt=(x9+(xe*224|0)|0)+(G4<<2)|0,T=+s[mt>>2],N=(x9+(U4*224|0)|0)+(G4<<2)|0,G=+s[N>>2],V=T>2]=T),X=G4+1|0,h8=(X|0)==56,h8){z4=0;break}else G4=X;for(;K=(x9+(U4*224|0)|0)+(z4<<2)|0,a0=+s[K>>2],W=((D9+(L9*1792|0)|0)+(U4*224|0)|0)+(z4<<2)|0,r0=+s[W>>2],s0=a0>2]=a0),o0=z4+1|0,A4=(o0|0)==56,!A4;)z4=o0;if(q=U4+1|0,Ht=(q|0)==8,Ht)break;U4=q}if(d0=L9+1|0,xt=(d0|0)==17,xt)break;L9=d0}for(_9=o,Ue=(a|0)>0,s4=a^-1,b4=0;;){for(t0=R9(32)|0,j=r2+(b4<<2)|0,e[j>>2]=t0,u0=+(b4|0),c0=u0*.5,$0=u0*.34657350182533264,l0=$0+4.135165354540845,Z=+Yn(+l0),g0=Z/_9,f0=+iA(+g0),n0=~~f0,h0=+(n0|0),p0=h0*o,C0=p0+1,S0=C0,Q0=+tn(+S0),b0=Q0*2.885390043258667,E0=b0+-11.931568145751953,w0=+IC(+E0),B0=~~w0,_0=n0+1|0,K0=+(_0|0),M0=K0*o,v0=M0,T0=+tn(+v0),N0=T0*2.885390043258667,U0=N0+-11.931568145751953,O0=+iA(+U0),V0=~~O0,F0=(B0|0)>(b4|0),p8=F0?b4:B0,L0=(p8|0)<0,wt=L0?0:p8,G0=(V0|0)>16,Q=G0?16:V0,z0=(wt|0)>(Q|0),J0=b4+1|0,q0=(J0|0)<17,Z0=c0+3.9657840728759766,l4=0;;){if(P0=R9(232)|0,H0=t0+(l4<<2)|0,e[H0>>2]=P0,Ue)for($t=0;Y0=R+($t<<2)|0,s[Y0>>2]=999,i1=$t+1|0,b9=(i1|0)==(a|0),!b9;)$t=i1;if(!z0)for(E4=wt;;){for(x0=+(E4|0),n1=x0*.5,Ct=0,D4=0;;){if(h1=+(Ct|0),u1=h1*.125,A1=u1+n1,s1=A1+3.9032840728759766,$1=s1*.6931470036506653,j0=+Yn(+$1),E1=j0/_9,I1=~~E1,Q1=A1+4.028284072875977,p1=Q1*.6931470036506653,B1=+Yn(+p1),w1=B1/_9,v1=w1+1,L1=~~v1,M1=(I1|0)<0,B=M1?0:I1,S1=(B|0)>(a|0),a8=S1?a:B,D1=(a8|0)<(D4|0),Ze=D1?a8:D4,R1=(L1|0)<0,r8=R1?0:L1,F1=(r8|0)>(a|0),Wt=F1?a:r8,U1=(Ze|0)<(Wt|0),b1=(Ze|0)<(a|0),jt=U1&b1,jt)for(P1=((D9+(E4*1792|0)|0)+(l4*224|0)|0)+(Ct<<2)|0,Z1=+s[P1>>2],x1=(D4|0)<(a|0),z1=x1?D4:a,q1=z1^-1,H1=(I1|0)>0,x=I1^-1,Y1=H1?x:-1,V1=(Y1|0)<(q1|0),je=V1?q1:Y1,X1=je^-1,n2=(L1|0)>0,M=L1^-1,j1=n2?M:-1,O1=(j1|0)<(s4|0),c8=O1?s4:j1,W1=c8-je|0,h2=je+a|0,s2=h2^-1,E2=W1>>>0>s2>>>0,Tt=E2?W1:s2,a2=X1-Tt|0,se=Ze;;)if(K1=R+(se<<2)|0,d2=+s[K1>>2],$2=d2>Z1,$2&&(s[K1>>2]=Z1),i2=se+1|0,pt=(i2|0)==(a2|0),pt){K4=a2;break}else se=i2;else K4=Ze;if(l2=Ct+1|0,Jt=(l2|0)==56,Jt){W4=K4;break}else Ct=l2,D4=K4}if(d1=(W4|0)<(a|0),d1)for(g1=((D9+(E4*1792|0)|0)+(l4*224|0)|0)+220|0,m1=+s[g1>>2],P4=W4;e2=R+(P4<<2)|0,o2=+s[e2>>2],f2=o2>m1,f2&&(s[e2>>2]=m1),t2=P4+1|0,zt=(t2|0)==(a|0),!zt;)P4=t2;if(k2=E4+1|0,D2=(E4|0)<(Q|0),D2)E4=k2;else break}if(q0){for(Rt=0,C4=0;;){if(P2=+(Rt|0),V2=P2*.125,G2=V2+c0,q2=G2+3.9032840728759766,Z2=q2*.6931470036506653,A5=+Yn(+Z2),H2=A5/_9,N1=~~H2,T5=G2+4.028284072875977,i5=T5*.6931470036506653,x5=+Yn(+i5),j2=x5/_9,I5=j2+1,b5=~~I5,Y5=(N1|0)<0,S=Y5?0:N1,g5=(S|0)>(a|0),E3=g5?a:S,b2=(E3|0)<(C4|0),Z4=b2?E3:C4,B5=(b5|0)<0,n8=B5?0:b5,R2=(n8|0)>(a|0),C8=R2?a:n8,M2=(Z4|0)<(C8|0),y2=(Z4|0)<(a|0),ut=M2&y2,ut)for(Q5=((D9+(J0*1792|0)|0)+(l4*224|0)|0)+(Rt<<2)|0,N5=+s[Q5>>2],m5=(C4|0)<(a|0),L5=m5?C4:a,q5=L5^-1,M5=(N1|0)>0,D=N1^-1,Y2=M5?D:-1,$5=(Y2|0)<(q5|0),dt=$5?q5:Y2,u5=dt^-1,y5=(b5|0)>0,y=b5^-1,T1=y5?y:-1,D5=(T1|0)<(s4|0),Ft=D5?s4:T1,d5=Ft-dt|0,l5=dt+a|0,X2=l5^-1,g2=d5>>>0>X2>>>0,X4=g2?d5:X2,w5=u5-X4|0,De=Z4;;)if(a5=R+(De<<2)|0,h5=+s[a5>>2],z2=h5>N5,z2&&(s[a5>>2]=N5),f5=De+1|0,_8=(f5|0)==(w5|0),_8){gt=w5;break}else De=f5;else gt=Z4;if(n5=Rt+1|0,e8=(n5|0)==56,e8){_4=gt;break}else Rt=n5,C4=gt}if(L2=(_4|0)<(a|0),L2)for(m2=((D9+(J0*1792|0)|0)+(l4*224|0)|0)+220|0,W2=+s[m2>>2],yt=_4;R5=R+(yt<<2)|0,e5=+s[R5>>2],c5=e5>W2,c5&&(s[R5>>2]=W2),F2=yt+1|0,I8=(F2|0)==(a|0),!I8;)yt=F2}for(S2=t0+(l4<<2)|0,Q2=t0+(l4<<2)|0,N2=t0+(l4<<2)|0,p4=0;;){I3=+(p4|0),h3=I3*.125,K5=Z0+h3,r3=K5*.6931470036506653,a3=+Yn(+r3),B3=a3/_9,G5=~~B3,W5=(G5|0)<0;do if(W5)f3=p4+2|0,y3=e[S2>>2]|0,X3=y3+(f3<<2)|0,s[X3>>2]=-999;else if(q3=(G5|0)<(a|0),q3){s6=R+(G5<<2)|0,T3=e[s6>>2]|0,H3=p4+2|0,g3=e[Q2>>2]|0,u3=g3+(H3<<2)|0,e[u3>>2]=T3;break}else{X5=p4+2|0,b3=e[N2>>2]|0,t3=b3+(X5<<2)|0,s[t3>>2]=-999;break}while(!1);if(Q3=p4+1|0,m8=(Q3|0)==56,m8)break;p4=Q3}v5=P0+8|0,i3=+s[v5>>2],E5=i3>-200;do if(E5)oe=0;else if(z5=P0+12|0,H5=+s[z5>>2],V5=H5>-200,V5)oe=1;else if(S3=P0+16|0,a6=+s[S3>>2],i6=a6>-200,i6)oe=2;else if(V3=P0+20|0,Z5=+s[V3>>2],J3=Z5>-200,J3)oe=3;else if(d6=P0+24|0,m3=+s[d6>>2],L6=m3>-200,L6)oe=4;else if(M6=P0+28|0,R6=+s[M6>>2],S6=R6>-200,S6)oe=5;else if(r6=P0+32|0,h6=+s[r6>>2],b6=h6>-200,b6)oe=6;else if(X6=P0+36|0,v6=+s[X6>>2],L3=v6>-200,L3)oe=7;else if(n6=P0+40|0,o6=+s[n6>>2],C6=o6>-200,C6)oe=8;else if(z3=P0+44|0,M3=+s[z3>>2],K3=M3>-200,K3)oe=9;else if(e6=P0+48|0,l6=+s[e6>>2],o3=l6>-200,o3)oe=10;else if(K6=P0+52|0,A3=+s[K6>>2],c6=A3>-200,c6)oe=11;else if(B6=P0+56|0,R3=+s[B6>>2],Y6=R3>-200,Y6)oe=12;else if(A6=P0+60|0,D6=+s[A6>>2],t9=D6>-200,t9)oe=13;else{if(Q6=P0+64|0,e9=+s[Q6>>2],G3=e9>-200,G3){oe=14;break}if(n9=P0+68|0,V6=+s[n9>>2],s9=V6>-200,s9){oe=15;break}oe=16}while(!1);for(s[P0>>2]=oe,Kt=55;;){if(S5=Kt+2|0,Y3=P0+(S5<<2)|0,U5=+s[Y3>>2],$6=U5>-200,$6){s8=Kt;break}if(l3=Kt+-1|0,N3=(l3|0)>17,N3)Kt=l3;else{s8=l3;break}}if(E6=+(s8|0),k3=P0+4|0,s[k3>>2]=E6,_3=l4+1|0,Ut=(_3|0)==8,Ut)break;l4=_3}if(Pt=(J0|0)==17,Pt)break;b4=J0}return C=et,r2|0}function vQ(t,o,a,$,g,h){t=t|0,o=o|0,a=a|0,$=$|0,g=+g,h=h|0;var m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0;if(Te=C,v=t<<2,m=v,w=C,C=C+((1*m|0)+15&-16)|0,I=v,a2=C,C=C+((1*I|0)+15&-16)|0,E=v,e5=C,C=C+((1*E|0)+15&-16)|0,Q=v,a3=C,C=C+((1*Q|0)+15&-16)|0,B=v,t3=C,C=C+((1*B|0)+15&-16)|0,S5=+s[a>>2],a6=S5+g,R6=a6<1,de=R6?1:a6,C6=de*de,D=C6*.5,X=D*de,s[w>>2]=D,s[a2>>2]=D,s[e5>>2]=0,s[a3>>2]=X,s[t3>>2]=0,j=(t|0)>1,j)for(U3=1,y6=D,H6=D,A9=0,Y9=0,w9=X,we=1;d1=a+(U3<<2)|0,I1=+s[d1>>2],R1=I1+g,Y1=R1<1,_9=Y1?1:R1,K1=_9*_9,k2=K1+y6,G2=K1*we,I5=G2+H6,N5=G2*we,D5=N5+A9,z2=K1*_9,f5=z2+w9,n5=G2*_9,R5=n5+Y9,c5=w+(U3<<2)|0,s[c5>>2]=k2,F2=a2+(U3<<2)|0,s[F2>>2]=I5,v5=e5+(U3<<2)|0,s[v5>>2]=D5,J5=a3+(U3<<2)|0,s[J5>>2]=f5,i3=t3+(U3<<2)|0,s[i3>>2]=R5,E5=U3+1|0,I3=we+1,O6=(E5|0)==(t|0),!O6;)U3=E5,y6=k2,H6=I5,A9=D5,Y9=R5,w9=f5,we=I3;if(p0=e[o>>2]|0,M0=p0>>16,z0=(M0|0)>-1,z0)K5=p0,B6=0,D6=0,e9=1,q6=0,ue=0;else for(G5=p0,y3=M0,a9=0,Ee=0;;)if(B3=G5&65535,W5=w+(B3<<2)|0,D3=+s[W5>>2],f3=0-y3|0,X3=w+(f3<<2)|0,q3=+s[X3>>2],X5=q3+D3,b3=a2+(B3<<2)|0,s6=+s[b3>>2],T3=a2+(f3<<2)|0,H3=+s[T3>>2],c3=s6-H3,g3=e5+(B3<<2)|0,u3=+s[g3>>2],Q3=e5+(f3<<2)|0,z5=+s[Q3>>2],H5=z5+u3,V5=a3+(B3<<2)|0,Y3=+s[V5>>2],U5=a3+(f3<<2)|0,$6=+s[U5>>2],n3=$6+Y3,l3=t3+(B3<<2)|0,N3=+s[l3>>2],E6=t3+(f3<<2)|0,k3=+s[E6>>2],_3=N3-k3,S3=n3*H5,i6=_3*c3,V3=S3-i6,Z5=_3*X5,x3=n3*c3,d3=Z5-x3,J3=H5*X5,d6=c3*c3,m3=J3-d6,L6=d3*Ee,M6=L6+V3,S6=M6/m3,r6=S6<0,s9=r6?0:S6,h6=s9-g,b6=$+(a9<<2)|0,s[b6>>2]=h6,G6=a9+1|0,X6=Ee+1,v6=o+(G6<<2)|0,L3=e[v6>>2]|0,n6=L3>>16,o6=(n6|0)>-1,o6){K5=L3,B6=V3,D6=d3,e9=m3,q6=G6,ue=X6;break}else G5=L3,y3=n6,a9=G6,Ee=X6;if(h3=K5&65535,r3=(h3|0)<(t|0),r3)for(S=K5,e6=h3,o9=q6,ie=ue;;)if(M3=S>>16,K3=w+(e6<<2)|0,F6=+s[K3>>2],l6=w+(M3<<2)|0,o3=+s[l6>>2],K6=F6-o3,A3=a2+(e6<<2)|0,c6=+s[A3>>2],y=a2+(M3<<2)|0,x=+s[y>>2],M=c6-x,L=e5+(e6<<2)|0,R=+s[L>>2],F=e5+(M3<<2)|0,T=+s[F>>2],N=R-T,G=a3+(e6<<2)|0,V=+s[G>>2],K=a3+(M3<<2)|0,a0=+s[K>>2],W=V-a0,r0=t3+(e6<<2)|0,s0=+s[r0>>2],J=t3+(M3<<2)|0,o0=+s[J>>2],q=s0-o0,d0=W*N,t0=q*M,u0=d0-t0,c0=q*K6,$0=W*M,l0=c0-$0,Z=N*K6,I0=M*M,g0=Z-I0,f0=l0*ie,n0=f0+u0,h0=n0/g0,C0=h0<0,c9=C0?0:h0,S0=c9-g,Q0=$+(o9<<2)|0,s[Q0>>2]=S0,b0=o9+1|0,E0=ie+1,y0=o+(b0<<2)|0,w0=e[y0>>2]|0,B0=w0&65535,_0=(B0|0)<(t|0),_0)S=w0,e6=B0,o9=b0,ie=E0;else{R3=u0,U6=l0,G3=g0,d9=b0,V9=E0;break}else R3=B6,U6=D6,G3=e9,d9=q6,V9=ue;if(z3=(d9|0)<(t|0),z3)for(B9=d9,F9=V9;K0=F9*U6,v0=K0+R3,T0=v0/G3,N0=T0<0,P6=N0?0:T0,U0=P6-g,O0=$+(B9<<2)|0,s[O0>>2]=U0,k0=B9+1|0,V0=F9+1,_6=(k0|0)==(t|0),!_6;)B9=k0,F9=V0;if(F0=(h|0)<1,F0){C=Te;return}if(L0=(h|0)/2&-1,G0=L0-h|0,J0=(G0|0)>-1,J0)Y6=R3,t9=U6,n9=G3,Q9=0,v9=0;else for(q0=h-L0|0,Y0=L0,n1=G0,y9=0,W6=0;;)if(o1=w+(Y0<<2)|0,i1=+s[o1>>2],x0=0-n1|0,g1=w+(x0<<2)|0,m1=+s[g1>>2],h1=m1+i1,u1=a2+(Y0<<2)|0,A1=+s[u1>>2],c1=a2+(x0<<2)|0,s1=+s[c1>>2],$1=A1-s1,j0=e5+(Y0<<2)|0,E1=+s[j0>>2],Q1=e5+(x0<<2)|0,p1=+s[Q1>>2],B1=p1+E1,w1=a3+(Y0<<2)|0,v1=+s[w1>>2],k1=a3+(x0<<2)|0,L1=+s[k1>>2],M1=L1+v1,S1=t3+(Y0<<2)|0,D1=+s[S1>>2],F1=t3+(x0<<2)|0,U1=+s[F1>>2],b1=D1-U1,P1=M1*B1,Z1=b1*$1,G1=P1-Z1,x1=b1*h1,z1=M1*$1,q1=x1-z1,H1=B1*h1,V1=$1*$1,X1=H1-V1,n2=q1*W6,j1=n2+G1,O1=j1/X1,c2=O1-g,W1=$+(y9<<2)|0,h2=+s[W1>>2],s2=c2>2]=c2),E2=y9+1|0,d2=W6+1,$2=L0+E2|0,i2=$2-h|0,i9=(E2|0)==(q0|0),i9){Y6=G1,t9=q1,n9=X1,Q9=q0,v9=d2;break}else Y0=$2,n1=i2,y9=E2,W6=d2;if(Z0=Q9+L0|0,P0=(Z0|0)<(t|0),P0)for(H0=t-L0|0,b=Z0,f9=Q9,ve=v9;;)if(r2=b-h|0,A2=w+(b<<2)|0,e2=+s[A2>>2],o2=w+(r2<<2)|0,f2=+s[o2>>2],t2=e2-f2,D2=a2+(b<<2)|0,S2=+s[D2>>2],Q2=a2+(r2<<2)|0,N2=+s[Q2>>2],L2=S2-N2,U2=e5+(b<<2)|0,m2=+s[U2>>2],W2=e5+(r2<<2)|0,P2=+s[W2>>2],V2=m2-P2,q2=a3+(b<<2)|0,Z2=+s[q2>>2],A5=a3+(r2<<2)|0,H2=+s[A5>>2],N1=Z2-H2,t5=t3+(b<<2)|0,T5=+s[t5>>2],i5=t3+(r2<<2)|0,x5=+s[i5>>2],j2=T5-x5,b5=N1*V2,Y5=j2*L2,g5=b5-Y5,b2=j2*t2,B5=N1*L2,s5=b2-B5,R2=V2*t2,M2=L2*L2,y2=R2-M2,Q5=s5*ve,m5=Q5+g5,L5=m5/y2,q5=L5-g,M5=$+(f9<<2)|0,Y2=+s[M5>>2],p5=q5>2]=q5),$5=f9+1|0,u5=ve+1,y5=$5+L0|0,T6=($5|0)==(H0|0),T6){A6=g5,Q6=s5,V6=y2,h9=H0,$9=u5;break}else b=y5,f9=$5,ve=u5;else A6=Y6,Q6=t9,V6=n9,h9=Q9,$9=v9;if(l2=(h9|0)<(t|0),l2)H9=h9,Re=$9;else{C=Te;return}for(;T1=Re*Q6,d5=T1+A6,l5=d5/V6,X2=l5-g,g2=$+(H9<<2)|0,w5=+s[g2>>2],r5=X2>2]=X2),a5=H9+1|0,h5=Re+1,J6=(a5|0)==(t|0),!J6;)H9=a5,Re=h5;C=Te}function bb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0;if(d1=C,h=a<<2,$=h,m=C,C=C+((1*$|0)+15&-16)|0,g=h,x=C,C=C+((1*g|0)+15&-16)|0,a0=(a|0)>0,a0)k0=0,q0=0;else{C=d1;return}for(;;){_0=(q0|0)<2;do if(_0)v0=m+(q0<<2)|0,e[v0>>2]=k0,I=t+(k0<<2)|0,E=e[I>>2]|0,Q=x+(q0<<2)|0,e[Q>>2]=E,Y0=q0;else{for(K0=t+(k0<<2)|0,M0=+s[K0>>2],Z0=q0;;){if(B=Z0+-1|0,S=x+(B<<2)|0,b=+s[S>>2],v=M0>2]|0,L=M+o|0,R=(k0|0)<(L|0),F=(Z0|0)>1,L0=F&R,!L0){H0=Z0,n1=12;break}if(T=Z0+-2|0,N=x+(T<<2)|0,G=+s[N>>2],V=!(b<=G),V){H0=Z0,n1=12;break}if(X=m+(T<<2)|0,K=e[X>>2]|0,W=K+o|0,r0=(k0|0)<(W|0),r0)Z0=B;else{H0=Z0,n1=12;break}}if((n1|0)==8){n1=0,w=m+(P0<<2)|0,e[w>>2]=k0,D=x+(P0<<2)|0,s[D>>2]=M0,Y0=P0;break}else if((n1|0)==12){n1=0,s0=m+(H0<<2)|0,e[s0>>2]=k0,J=x+(H0<<2)|0,s[J>>2]=M0,Y0=H0;break}}while(!1);if(o1=Y0+1|0,o0=k0+1|0,O0=(o0|0)==(a|0),O0){i1=Y0,x0=o1;break}else k0=o0,q0=o1}if(c0=(i1|0)>-1,!c0){C=d1;return}for(S0=o+1|0,V0=0,G0=0;;){if(q=(V0|0)<(i1|0),q?(d0=V0+1|0,t0=x+(d0<<2)|0,j=+s[t0>>2],u0=x+(V0<<2)|0,$0=+s[u0>>2],l0=j>$0,l0?(Z=m+(d0<<2)|0,I0=e[Z>>2]|0,T0=I0):n1=17):n1=17,(n1|0)==17&&(n1=0,g0=m+(V0<<2)|0,f0=e[g0>>2]|0,n0=S0+f0|0,T0=n0),h0=(T0|0)>(a|0),F0=h0?a:T0,p0=(G0|0)<(F0|0),p0)for(C0=x+(V0<<2)|0,Q0=e[C0>>2]|0,b0=(T0|0)<(a|0),E0=b0?T0:a,J0=G0;;)if(y0=t+(J0<<2)|0,e[y0>>2]=Q0,w0=J0+1|0,N0=(w0|0)==(E0|0),N0){z0=E0;break}else J0=w0;else z0=G0;if(B0=V0+1|0,U0=(B0|0)==(x0|0),U0)break;V0=B0,G0=z0}C=d1}function kQ(t,o,a,$,g,h,m,I,E){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0,E=E|0;var Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0;if(c2=C,L=I<<2,D=L,R=C,C=C+((1*D|0)+15&-16)|0,s0=t+500|0,Z=e[s0>>2]|0,E0=(Z|0)==0,E0?v1=I:(O0=t+504|0,H0=e[O0>>2]|0,A1=H0-m|0,v1=A1),F1=(v1|0)>(I|0),V1=F1?I:v1,F=(V1|0)>0,F)for(T=(h|0)==0,N=(v1|0)<(I|0),G=N?v1:I,q1=0;;){T?O1=9:(a0=h+(q1<<2)|0,W=e[a0>>2]|0,r0=(W|0)==0,r0&&(O1=9));do if((O1|0)==9)if(O1=0,J=$+(q1<<2)|0,o0=+s[J>>2],q=g+(q1<<2)|0,d0=+s[q>>2],t0=o0/d0,j=a+(q1<<2)|0,u0=+s[j>>2],c0=u0<0,$0=t0,l0=+qn(+$0),I0=+z7(l0),c0){g0=-I0,f0=~~g0,n0=E+(q1<<2)|0,e[n0>>2]=f0;break}else{h0=~~I0,p0=E+(q1<<2)|0,e[p0>>2]=h0;break}while(!1);if(C0=q1+1|0,x1=(C0|0)==(G|0),x1){z1=G;break}else q1=C0}else z1=0;if(V=(z1|0)<(I|0),!V)return w=0,C=c2,+w;for(X=(h|0)!=0,K=o-m|0,Q=0,U1=0,H1=z1;;){X?(S0=h+(H1<<2)|0,Q0=e[S0>>2]|0,b0=(Q0|0)==0,b0?O1=15:(B=Q,b1=U1)):O1=15;do if((O1|0)==15)if(O1=0,y0=$+(H1<<2)|0,w0=+s[y0>>2],B0=g+(H1<<2)|0,_0=+s[B0>>2],K0=w0/_0,M0=!(K0<.25),v0=(H1|0)<(K|0),X1=X&v0,n2=M0|X1,n2){k0=a+(H1<<2)|0,V0=+s[k0>>2],F0=V0<0,L0=K0,G0=+qn(+L0),z0=+z7(G0),J0=-z0,x=F0?J0:z0,y=~~x,q0=E+(H1<<2)|0,e[q0>>2]=y,Z0=o5(y,y)|0,P0=+(Z0|0),o1=+s[B0>>2],Y0=P0*o1,s[y0>>2]=Y0,B=Q,b1=U1;break}else{T0=K0+Q,N0=U1+1|0,U0=R+(U1<<2)|0,e[U0>>2]=y0,B=T0,b1=N0;break}while(!1);if(i1=H1+1|0,G1=(i1|0)==(I|0),G1){S=B,P1=b1;break}else Q=B,U1=b1,H1=i1}if(x0=(P1|0)==0,x0||(Pu(R,P1,4,9),n1=(P1|0)>0,!n1))return w=S,C=c2,+w;for(d1=$,g1=t+512|0,m1=+l1[g1>>3],b=S,Y1=0;;)if(h1=R+(Y1<<2)|0,u1=e[h1>>2]|0,c1=u1,s1=c1-d1|0,$1=s1>>2,j0=b,E1=!(j0>=m1),E1?(v=b,M=0,j1=0):(I1=a+($1<<2)|0,Q1=e[I1>>2]|0,p1=Q1&-2147483648,B1=p1|1065353216,w1=(e[w2>>2]=B1,+s[w2>>2]),k1=~~w1,L1=b+-1,M1=g+($1<<2)|0,S1=+s[M1>>2],v=L1,M=k1,j1=S1),D1=E+($1<<2)|0,e[D1>>2]=M,s[u1>>2]=j1,R1=Y1+1|0,Z1=(R1|0)==(P1|0),Z1){w=v;break}else b=v,Y1=R1;return C=c2,+w}function Db(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0;return b=C,a=e[t>>2]|0,$=+s[a>>2],g=e[o>>2]|0,h=+s[g>>2],m=$h,Q=E&1,B=I-Q|0,B|0}function _b(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,o||p2(t)}function xb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0;if(r0=C,a=(t|0)==0,!a){if($=t+4|0,w=e[$>>2]|0,R=(w|0)>0,F=t+20|0,R)for(L=w,K=0;T=e[F>>2]|0,N=T+(K<<2)|0,G=e[N>>2]|0,V=(G|0)==0,V?h=L:(p2(G),o=e[$>>2]|0,h=o),X=K+1|0,g=(X|0)<(h|0),g;)L=h,K=X;if(m=e[F>>2]|0,p2(m),I=t+24|0,E=e[I>>2]|0,Q=(E|0)>0,B=t+28|0,Q)for(a0=0;S=e[B>>2]|0,b=S+(a0<<2)|0,v=e[b>>2]|0,p2(v),D=a0+1|0,y=e[I>>2]|0,x=(D|0)<(y|0),x;)a0=D;M=e[B>>2]|0,p2(M),p2(t)}}function Lb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0;if(h0=C,g=e[t>>2]|0,O2(o,g,24),h=t+4|0,y=e[h>>2]|0,O2(o,y,24),K=t+8|0,q=e[K>>2]|0,d0=q+-1|0,O2(o,d0,24),t0=t+12|0,j=e[t0>>2]|0,u0=j+-1|0,O2(o,u0,6),c0=t+20|0,m=e[c0>>2]|0,O2(o,m,8),I=e[t0>>2]|0,E=(I|0)>0,!!E){for(Q=t+24|0,$0=0,Z=0;;){if(b=Q+(Z<<2)|0,v=e[b>>2]|0,w=q8(v)|0,D=(w|0)>3,x=e[b>>2]|0,D?(O2(o,x,3),O2(o,1,1),M=e[b>>2]|0,L=M>>3,O2(o,L,5)):O2(o,x,4),R=e[b>>2]|0,F=(R|0)==0,F)g0=0;else for(a=R,f0=0;;)if(T=a&1,N=T+f0|0,G=a>>>1,V=(G|0)==0,V){g0=N;break}else a=G,f0=N;if(X=g0+$0|0,a0=Z+1|0,W=e[t0>>2]|0,r0=(a0|0)<(W|0),r0)$0=X,Z=a0;else{$=X;break}}if(B=($|0)>0,!!B)for(S=t+280|0,I0=0;s0=S+(I0<<2)|0,J=e[s0>>2]|0,O2(o,J,8),o0=I0+1|0,l0=(o0|0)==($|0),!l0;)I0=o0}}function Mb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0;s1=C,m=ce(1,2840)|0,I=t+28|0,M=e[I>>2]|0,W=n4(o,24)|0,e[m>>2]=W,$0=n4(o,24)|0,Q0=m+4|0,e[Q0>>2]=$0,N0=n4(o,24)|0,Z0=N0+1|0,H0=m+8|0,e[H0>>2]=Z0,o1=n4(o,6)|0,E=o1+1|0,Q=m+12|0,e[Q>>2]=E,B=n4(o,8)|0,S=m+20|0,e[S>>2]=B,b=(B|0)<0;e:do if(b)c1=26;else{if(v=(o1|0)>-1,v){for(w=m+24|0,i1=0,d1=0;;){if(x=n4(o,3)|0,L=n4(o,1)|0,R=(L|0)<0,R){c1=26;break e}if(F=(L|0)==0,F)x0=x;else{if(T=n4(o,5)|0,N=(T|0)<0,N){c1=26;break e}G=T<<3,V=G|x,x0=V}if(X=w+(d1<<2)|0,e[X>>2]=x0,K=(x0|0)==0,K)u1=0;else for($=x0,A1=0;;)if(a0=$&1,r0=a0+A1|0,s0=$>>>1,J=(s0|0)==0,J){u1=r0;break}else $=s0,A1=r0;if(o0=u1+i1|0,q=d1+1|0,d0=e[Q>>2]|0,t0=(q|0)<(d0|0),t0)i1=o0,d1=q;else{h=o0;break}}if(D=(h|0)>0,D)for(y=m+280|0,g1=0;;){if(j=n4(o,8)|0,u0=(j|0)<0,u0)break e;if(c0=y+(g1<<2)|0,e[c0>>2]=j,l0=g1+1|0,Z=(l0|0)<(h|0),Z)g1=l0;else{P0=D,Y0=h;break}}else P0=0,Y0=h}else P0=0,Y0=0;if(I0=e[S>>2]|0,g0=M+24|0,f0=e[g0>>2]|0,n0=(I0|0)<(f0|0),n0){if(P0)for(h0=m+280|0,m1=0;;){if(S0=h0+(m1<<2)|0,b0=e[S0>>2]|0,E0=(b0|0)<(f0|0),!E0||(y0=(M+1824|0)+(b0<<2)|0,w0=e[y0>>2]|0,B0=w0+12|0,_0=e[B0>>2]|0,K0=(_0|0)==0,p0=m1+1|0,K0))break e;if(C0=(p0|0)<(Y0|0),C0)m1=p0;else break}if(M0=(M+1824|0)+(I0<<2)|0,v0=e[M0>>2]|0,T0=v0+4|0,U0=e[T0>>2]|0,O0=e[v0>>2]|0,k0=(O0|0)<1,!k0){for(V0=e[Q>>2]|0,n1=O0,h1=1;;){if(G0=o5(V0,h1)|0,z0=(G0|0)>(U0|0),z0)break e;if(F0=n1+-1|0,L0=(n1|0)>1,L0)n1=F0,h1=G0;else{g=G0;break}}return J0=m+16|0,e[J0>>2]=g,a=m,a|0}}}while(!1);return(c1|0)==26&&(q0=(m|0)==0,q0)?(a=0,a|0):(p2(m),a=0,a|0)}function Rb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0;if(v1=C,h=ce(1,44)|0,m=t+4|0,x=e[m>>2]|0,a0=x+28|0,c0=e[a0>>2]|0,e[h>>2]=o,S0=o+12|0,T0=e[S0>>2]|0,q0=h+4|0,e[q0>>2]=T0,o1=c0+2848|0,Y0=e[o1>>2]|0,I=h+12|0,e[I>>2]=Y0,E=Y0,Q=o+20|0,B=e[Q>>2]|0,S=E+(B*56|0)|0,b=h+16|0,e[b>>2]=S,v=e[S>>2]|0,w=ce(T0,4)|0,D=h+20|0,e[D>>2]=w,y=(T0|0)>0,y)for(M=o+24|0,L=o+280|0,i1=0,u1=0,I1=0;;){if(R=M+(u1<<2)|0,F=e[R>>2]|0,T=q8(F)|0,N=(T|0)==0,N)d1=i1,Q1=I1;else if(G=(T|0)>(I1|0),$=G?T:I1,V=ce(T,4)|0,X=w+(u1<<2)|0,e[X>>2]=V,K=(T|0)>0,K)for(W=e[R>>2]|0,r0=w+(u1<<2)|0,x0=i1,$1=0;;)if(s0=1<<$1,J=W&s0,o0=(J|0)==0,o0?n1=x0:(q=e[o1>>2]|0,d0=x0+1|0,t0=L+(x0<<2)|0,j=e[t0>>2]|0,u0=q+(j*56|0)|0,$0=e[r0>>2]|0,l0=$0+($1<<2)|0,e[l0>>2]=u0,n1=d0),Z=$1+1|0,m1=(Z|0)==(T|0),m1){d1=n1,Q1=$;break}else x0=n1,$1=Z;else d1=i1,Q1=$;if(I0=u1+1|0,g0=(I0|0)<(T0|0),g0)i1=d1,u1=I0,I1=Q1;else{E1=Q1;break}}else E1=0;if(f0=h+24|0,e[f0>>2]=1,n0=(v|0)>0,n0){for(p0=1,A1=0;;)if(h0=o5(p0,T0)|0,C0=A1+1|0,g1=(C0|0)==(v|0),g1){a=h0;break}else p0=h0,A1=C0;e[f0>>2]=a,E0=a}else E0=1;if(Q0=h+8|0,e[Q0>>2]=E1,b0=E0<<2,y0=R9(b0)|0,w0=h+28|0,e[w0>>2]=y0,B0=(E0|0)>0,!B0)return h|0;if(_0=v<<2,!n0){for(c1=0;J0=R9(_0)|0,Z0=y0+(c1<<2)|0,e[Z0>>2]=J0,P0=c1+1|0,H0=(P0|0)<(E0|0),H0;)c1=P0;return h|0}for(K0=e[w0>>2]|0,s1=0;;){for(L0=R9(_0)|0,G0=y0+(s1<<2)|0,e[G0>>2]=L0,z0=K0+(s1<<2)|0,V0=e[z0>>2]|0,g=E0,j0=0,B1=s1;p1=(g|0)/(T0|0)&-1,N0=(B1|0)/(p1|0)&-1,U0=o5(N0,p1)|0,O0=B1-U0|0,k0=V0+(j0<<2)|0,e[k0>>2]=N0,F0=j0+1|0,h1=(F0|0)==(v|0),!h1;)g=p1,j0=F0,B1=O0;if(M0=s1+1|0,v0=(M0|0)<(E0|0),v0)s1=M0;else break}return h|0}function Fb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0;if(F=C,h=(g|0)>0,h)y=0,x=0;else return 0;for(;;)if(m=$+(y<<2)|0,I=e[m>>2]|0,E=(I|0)==0,E?M=x:(Q=a+(y<<2)|0,B=e[Q>>2]|0,S=x+1|0,b=a+(x<<2)|0,e[b>>2]=B,M=S),v=y+1|0,D=(v|0)==(g|0),D){L=M;break}else y=v,x=M;return w=(L|0)==0,w||SQ(t,o,a,L,2),0}function Tb(t,o,a,$,g,h,m,I){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0;var E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0;if(G=C,E=(h|0)>0,E)L=0,R=0;else return 0;for(;;)if(Q=g+(L<<2)|0,B=e[Q>>2]|0,S=(B|0)==0,S?F=R:(b=$+(L<<2)|0,v=e[b>>2]|0,w=R+1|0,D=$+(R<<2)|0,e[D>>2]=v,F=w),y=L+1|0,M=(y|0)==(h|0),M){T=F;break}else L=y,R=F;return x=(T|0)==0,x||bQ(t,a,$,T,m),0}function Nb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0;if(w1=C,I=(g|0)>0,I)n1=0,I1=0;else return h=0,h|0;for(;;)if(E=$+(n1<<2)|0,L=e[E>>2]|0,r0=(L|0)==0,r0?Q1=I1:(l0=a+(n1<<2)|0,b0=e[l0>>2]|0,U0=I1+1|0,z0=a+(I1<<2)|0,e[z0>>2]=b0,Q1=U0),J0=n1+1|0,H0=(J0|0)==(g|0),H0){p1=Q1;break}else n1=J0,I1=Q1;if(q0=(p1|0)==0,q0)return h=0,h|0;if(Q=e[o>>2]|0,B=Q+8|0,S=e[B>>2]|0,b=Q+12|0,v=e[b>>2]|0,w=Q+4|0,D=e[w>>2]|0,y=e[Q>>2]|0,x=D-y|0,M=(x|0)/(S|0)&-1,R=p1<<2,F=z8(t,R)|0,T=+(S|0),N=100/T,G=N,V=(p1|0)>0,V)for(X=M<<2,d1=0;J=z8(t,X)|0,o0=F+(d1<<2)|0,e[o0>>2]=J,u4(J|0,0,X|0)|0,q=d1+1|0,x0=(q|0)==(p1|0),!x0;)d1=q;if(K=(M|0)>0,K)for(a0=(S|0)>0,W=v+-1|0,s0=(v|0)>1,g1=0;;){if(d0=o5(g1,S)|0,t0=e[Q>>2]|0,j=t0+d0|0,V)for(h1=0;;){if(a0)for(u0=a+(h1<<2)|0,c0=e[u0>>2]|0,P0=0,u1=0,$1=0;;)if($0=j+u1|0,Z=c0+($0<<2)|0,I0=e[Z>>2]|0,m1=(I0|0)>-1,j0=0-I0|0,g0=m1?I0:j0,f0=(g0|0)>($1|0),m=f0?g0:$1,n0=g0+P0|0,h0=u1+1|0,o1=(h0|0)==(S|0),o1){Z0=n0,s1=m;break}else P0=n0,u1=h0,$1=m;else Z0=0,s1=0;p0=+(Z0|0),C0=p0*G,S0=~~C0;e:do if(s0)for(c1=0;;){if(Q0=(Q+2328|0)+(c1<<2)|0,E0=e[Q0>>2]|0,y0=(s1|0)>(E0|0),!y0&&(w0=(Q+2584|0)+(c1<<2)|0,B0=e[w0>>2]|0,_0=(B0|0)<0,K0=(S0|0)<(B0|0),E1=_0|K0,E1)){A1=c1;break e}if(M0=c1+1|0,v0=(M0|0)<(W|0),v0)c1=M0;else{A1=M0;break}}else A1=0;while(!1);if(T0=F+(h1<<2)|0,N0=e[T0>>2]|0,O0=N0+(g1<<2)|0,e[O0>>2]=A1,k0=h1+1|0,Y0=(k0|0)==(p1|0),Y0)break;h1=k0}if(V0=g1+1|0,i1=(V0|0)==(M|0),i1)break;g1=V0}return F0=o+40|0,L0=e[F0>>2]|0,G0=L0+1|0,e[F0>>2]=G0,h=F,h|0}function Gb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0;if(F=C,h=(g|0)>0,h)y=0,x=0;else return 0;for(;;)if(m=$+(y<<2)|0,I=e[m>>2]|0,E=(I|0)==0,E?M=x:(Q=a+(y<<2)|0,B=e[Q>>2]|0,S=x+1|0,b=a+(x<<2)|0,e[b>>2]=B,M=S),v=y+1|0,D=(v|0)==(g|0),D){L=M;break}else y=v,x=M;return w=(L|0)==0,w||SQ(t,o,a,L,3),0}function Ub(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0;if(j0=C,E=(g|0)>0,E)G0=0,s1=0;else return h=0,h|0;for(;;)if(Q=$+(G0<<2)|0,R=e[Q>>2]|0,h1=(R|0)!=0,s0=h1&1,A1=s0+s1|0,Z=G0+1|0,V0=(Z|0)==(g|0),V0){c1=A1;break}else G0=Z,s1=A1;if(u1=(c1|0)==0,u1)return h=0,h|0;if(E0=e[o>>2]|0,K0=E0+8|0,M0=e[K0>>2]|0,v0=E0+12|0,T0=e[v0>>2]|0,B=E0+4|0,S=e[B>>2]|0,b=e[E0>>2]|0,v=S-b|0,w=(v|0)/(M0|0)&-1,D=z8(t,4)|0,y=w<<2,x=z8(t,y)|0,e[D>>2]=x,u4(x|0,0,y|0)|0,M=(w|0)>0,M)for(L=e[E0>>2]|0,F=(L|0)/(g|0)&-1,T=(M0|0)>0,N=T0+-1|0,G=(T0|0)>1,V=e[D>>2]|0,X=(g|0)>1,z0=0,Y0=F;;){if(T)for(K=e[a>>2]|0,U0=0,Z0=0,x0=Y0,d1=0;;){if(a0=K+(x0<<2)|0,W=e[a0>>2]|0,J0=(W|0)>-1,g1=0-W|0,r0=J0?W:g1,J=(r0|0)>(d1|0),I=J?r0:d1,X)for(k0=U0,o1=1;;)if(o0=a+(o1<<2)|0,q=e[o0>>2]|0,d0=q+(x0<<2)|0,t0=e[d0>>2]|0,q0=(t0|0)>-1,m1=0-t0|0,j=q0?t0:m1,u0=(j|0)>(k0|0),m=u0?j:k0,c0=o1+1|0,F0=(c0|0)==(g|0),F0){O0=m;break}else k0=m,o1=c0;else O0=U0;if($0=x0+1|0,l0=Z0+g|0,I0=(l0|0)<(M0|0),I0)U0=O0,Z0=l0,x0=$0,d1=I;else{N0=O0,i1=$0,n1=I;break}}else N0=0,i1=Y0,n1=0;e:do if(G)for(H0=0;;){if(g0=(E0+2328|0)+(H0<<2)|0,f0=e[g0>>2]|0,n0=(n1|0)>(f0|0),!n0&&(h0=(E0+2584|0)+(H0<<2)|0,p0=e[h0>>2]|0,C0=(N0|0)>(p0|0),!C0)){P0=H0;break e}if(S0=H0+1|0,Q0=(S0|0)<(N|0),Q0)H0=S0;else{P0=S0;break}}else P0=0;while(!1);if(b0=V+(z0<<2)|0,e[b0>>2]=P0,y0=z0+1|0,L0=(y0|0)==(w|0),L0)break;z0=y0,Y0=i1}return w0=o+40|0,B0=e[w0>>2]|0,_0=B0+1|0,e[w0>>2]=_0,h=D,h|0}function Pb(t,o,a,$,g,h,m,I){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0;var E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0;if(c0=C,C=C+16|0,j=c0,E=o+36|0,Q=e[E>>2]|0,R=(Q|0)/2&-1,F=h<<2,T=o5(F,R)|0,N=z8(o,T)|0,e[j>>2]=N,G=(h|0)>0,!G)return C=c0,0;for(V=(Q|0)>1,W=0,t0=0;;){if(X=$+(W<<2)|0,K=e[X>>2]|0,B=g+(W<<2)|0,S=e[B>>2]|0,J=(S|0)!=0,b=J&1,q=b+t0|0,V)for(r0=0,s0=W;v=K+(r0<<2)|0,w=e[v>>2]|0,D=N+(s0<<2)|0,e[D>>2]=w,y=r0+1|0,x=s0+h|0,M=(y|0)<(R|0),M;)r0=y,s0=x;if(L=W+1|0,a0=(L|0)==(h|0),a0){d0=q;break}else W=L,t0=q}return o0=(d0|0)==0,o0?(C=c0,0):(bQ(t,a,j,1,m),C=c0,0)}function Ob(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0;if(k1=C,I=e[o>>2]|0,E=I+8|0,L=e[E>>2]|0,r0=o+16|0,l0=e[r0>>2]|0,b0=e[l0>>2]|0,U0=t+36|0,P0=e[U0>>2]|0,u1=o5(P0,g)|0,A1=u1>>1,Q=I+4|0,B=e[Q>>2]|0,S=(B|0)<(A1|0),h=S?B:A1,b=e[I>>2]|0,v=h-b|0,w=(v|0)>0,!w)return 0;D=(v|0)/(L|0)&-1,y=b0+-1|0,x=y+D|0,M=(x|0)/(b0|0)&-1,R=M<<2,F=z8(t,R)|0,T=(g|0)>0;e:do if(T)for(s1=0;;){if(N=$+(s1<<2)|0,G=e[N>>2]|0,V=(G|0)==0,!V){c1=s1;break e}if(X=s1+1|0,K=(X|0)<(g|0),K)s1=X;else{c1=X;break}}else c1=0;while(!1);if(a0=(c1|0)==(g|0),a0||(W=o+8|0,s0=e[W>>2]|0,J=(s0|0)>0,!J))return 0;o0=(D|0)>0,q=t+4|0,d0=I+16|0,t0=o+28|0,j=(b0|0)>0,u0=o+20|0,h1=s0,w1=0;e:for(;;){if(o0){for(c0=(w1|0)==0,$0=1<>2]|0,I0=sE(Z,q)|0,g0=(I0|0)==-1,g0){v1=23;break e}if(f0=e[d0>>2]|0,n0=(I0|0)<(f0|0),!n0){v1=23;break e}if(h0=e[t0>>2]|0,p0=h0+(I0<<2)|0,C0=e[p0>>2]|0,S0=F+(Q1<<2)|0,e[S0>>2]=C0,Q0=(C0|0)==0,Q0){v1=23;break e}}if(E0=($1|0)<(D|0),B1=j&E0,B1)for(y0=F+(Q1<<2)|0,E1=$1,I1=0;;){if(w0=e[y0>>2]|0,B0=w0+(I1<<2)|0,_0=e[B0>>2]|0,K0=(I+24|0)+(_0<<2)|0,M0=e[K0>>2]|0,v0=M0&$0,T0=(v0|0)==0,!T0&&(N0=e[u0>>2]|0,O0=N0+(_0<<2)|0,k0=e[O0>>2]|0,V0=k0+(w1<<2)|0,F0=e[V0>>2]|0,L0=(F0|0)==0,!L0&&(G0=o5(E1,L)|0,z0=e[I>>2]|0,J0=z0+G0|0,q0=zS(F0,a,J0,g,q,L)|0,Z0=(q0|0)==-1,Z0))){v1=23;break e}if(H0=I1+1|0,o1=E1+1|0,Y0=(H0|0)<(b0|0),i1=(o1|0)<(D|0),p1=Y0&i1,p1)E1=o1,I1=H0;else{j0=o1;break}}else j0=$1;if(x0=Q1+1|0,n1=(j0|0)<(D|0),n1)$1=j0,Q1=x0;else break}m=e[W>>2]|0,m1=m}else m1=h1;if(d1=w1+1|0,g1=(d1|0)<(m1|0),g1)h1=m1,w1=d1;else{v1=23;break}}return(v1|0)==23,0}function SQ(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0;if(X1=C,Q=e[o>>2]|0,B=Q+8|0,F=e[B>>2]|0,J=o+16|0,I0=e[J>>2]|0,y0=e[I0>>2]|0,k0=t+36|0,o1=e[k0>>2]|0,c1=o1>>1,k1=Q+4|0,S=e[k1>>2]|0,b=(S|0)<(c1|0),h=b?S:c1,v=e[Q>>2]|0,w=h-v|0,D=(w|0)>0,!D){C=X1;return}if(y=(w|0)/(F|0)&-1,x=$<<2,m=x,M=C,C=C+((1*m|0)+15&-16)|0,L=($|0)>0,L)for(R=y0+-1|0,T=R+y|0,N=(T|0)/(y0|0)&-1,G=N<<2,U1=0;d0=z8(t,G)|0,t0=M+(U1<<2)|0,e[t0>>2]=d0,j=U1+1|0,M1=(j|0)==($|0),!M1;)U1=j;if(V=o+8|0,X=e[V>>2]|0,K=(X|0)>0,!K){C=X1;return}a0=(y|0)>0,W=t+4|0,r0=Q+16|0,s0=o+28|0,o0=(y0|0)>0,q=o+20|0,E=L^1,Y1=0;e:for(;;){if(a0)for(u0=1<>2]|0,Y0=sE(H0,W)|0,i1=(Y0|0)==-1,i1){V1=25;break e}if(x0=e[r0>>2]|0,n1=(Y0|0)<(x0|0),!n1){V1=25;break e}if(d1=e[s0>>2]|0,g1=d1+(Y0<<2)|0,m1=e[g1>>2]|0,h1=M+(b1<<2)|0,u1=e[h1>>2]|0,A1=u1+(x1<<2)|0,e[A1>>2]=m1,s1=(m1|0)==0,Z0=b1+1|0,s1){V1=25;break e}if(P0=(Z0|0)<($|0),P0)b1=Z0;else break}c0=(S1|0)<(y|0),H1=o0&c0;t:do if(H1){if(L)F1=S1,G1=0;else for(R1=S1,Z1=0;;)if($1=Z1+1|0,j0=R1+1|0,E1=($1|0)<(y0|0),I1=(j0|0)<(y|0),z1=E1&I1,z1)R1=j0,Z1=$1;else{D1=j0;break t}for(;;){for(h0=o5(F1,F)|0,P1=0;;){if(f0=e[Q>>2]|0,n0=f0+h0|0,p0=M+(P1<<2)|0,C0=e[p0>>2]|0,S0=C0+(x1<<2)|0,Q0=e[S0>>2]|0,b0=Q0+(G1<<2)|0,E0=e[b0>>2]|0,w0=(Q+24|0)+(E0<<2)|0,B0=e[w0>>2]|0,_0=B0&u0,K0=(_0|0)==0,!K0&&(M0=e[q>>2]|0,v0=M0+(E0<<2)|0,T0=e[v0>>2]|0,N0=T0+(Y1<<2)|0,U0=e[N0>>2]|0,O0=(U0|0)==0,!O0&&(V0=a+(P1<<2)|0,F0=e[V0>>2]|0,L0=F0+(n0<<2)|0,G0=DC[g&3](U0,L0,W,F)|0,z0=(G0|0)==-1,z0))){V1=25;break e}if(J0=P1+1|0,q0=(J0|0)<($|0),q0)P1=J0;else break}if($0=G1+1|0,l0=F1+1|0,Z=($0|0)<(y0|0),g0=(l0|0)<(y|0),q1=Z&g0,q1)F1=l0,G1=$0;else{D1=l0;break}}}else D1=S1;while(!1);if(Q1=x1+1|0,p1=(D1|0)<(y|0),p1)S1=D1,x1=Q1;else break}if(B1=Y1+1|0,w1=e[V>>2]|0,v1=(B1|0)<(w1|0),v1)Y1=B1;else{V1=25;break}}if((V1|0)==25){C=X1;return}}function bQ(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0;if(Q6=C,C=C+1088|0,o3=Q6+1056|0,U5=Q6+1024|0,K6=Q6+512|0,A3=Q6,y=e[o>>2]|0,x=y+8|0,$2=e[x>>2]|0,V2=y+12|0,j2=e[V2>>2]|0,Q5=o+16|0,T1=e[Q5>>2]|0,f5=e[T1>>2]|0,h3=y+4|0,q3=e[h3>>2]|0,M=e[y>>2]|0,W=q3-M|0,$0=(W|0)/($2|0)&-1,u4(K6|0,0,512)|0,u4(A3|0,0,512)|0,Q0=o+8|0,N0=e[Q0>>2]|0,Z0=(N0|0)>0,!Z0){C=Q6;return}for(h1=($0|0)>0,B1=($|0)>0,b1=(f5|0)>1,n2=o+36|0,i2=(f5|0)>0,D2=o+20|0,S2=o+32|0,Q2=0-f5|0,k2=N0,c6=0;;){if(h1){for(N2=(c6|0)==0,L2=1<>2]|0,q5=L5+(Z5<<2)|0,M5=e[q5>>2]|0,Y2=e[Q5>>2]|0,p5=Y2+4|0,$5=e[p5>>2]|0,u5=(M5|0)<($5|0),u5&&(y5=Gu(Y2,M5,t)|0,D5=e[n2>>2]|0,d5=D5+y5|0,e[n2>>2]=d5),l5=v6+1|0,$6=(l5|0)==($|0),$6)break e;v6=l5}for(;;){for(b2=g+(L3<<2)|0,I5=e[b2>>2]|0,B5=I5+(Z5<<2)|0,s5=e[B5>>2]|0,C6=1,A6=s5;;)if(t5=o5(A6,j2)|0,T5=C6+Z5|0,i5=(T5|0)<($0|0),i5?(x5=I5+(T5<<2)|0,b5=e[x5>>2]|0,Y5=b5+t5|0,D6=Y5):D6=t5,g5=C6+1|0,_3=(g5|0)==(f5|0),_3){U6=D6;break}else C6=g5,A6=D6;if(W2=e[Q5>>2]|0,P2=W2+4|0,G2=e[P2>>2]|0,q2=(U6|0)<(G2|0),q2&&(Z2=Gu(W2,U6,t)|0,A5=e[n2>>2]|0,H2=A5+Z2|0,e[n2>>2]=H2),N1=L3+1|0,S3=(N1|0)==($|0),S3)break;L3=N1}}while(!1);if(R2=(Z5|0)<($0|0),F6=i2&R2,F6){for(M2=Z5-$0|0,y2=M2>>>0>>0,Y6=y2?Q2:M2,N5=0-Y6|0,d6=Z5,z3=0;;){if(X2=o5(d6,$2)|0,g2=e[y>>2]|0,w5=g2+X2|0,B1)for(o6=0;;){if(r5=g+(o6<<2)|0,a5=e[r5>>2]|0,h5=a5+(d6<<2)|0,z2=e[h5>>2]|0,N2&&(n5=A3+(z2<<2)|0,R5=e[n5>>2]|0,e5=R5+$2|0,e[n5>>2]=e5),c5=(y+24|0)+(z2<<2)|0,F2=e[c5>>2]|0,v5=F2&L2,J5=(v5|0)==0,!J5&&(i3=e[D2>>2]|0,E5=i3+(z2<<2)|0,I3=e[E5>>2]|0,K5=I3+(c6<<2)|0,r3=e[K5>>2]|0,a3=(r3|0)==0,!a3)){if(B3=a+(o6<<2)|0,G5=e[B3>>2]|0,W5=e[r3>>2]|0,D3=($2|0)/(W5|0)&-1,f3=(D3|0)>0,f3){for(y3=r3+48|0,X3=r3+52|0,X5=r3+44|0,b3=r3+12|0,t3=r3+4|0,L=W5,S5=0,d3=0;;){s6=o5(d3,W5)|0,b=s6+w5|0,T3=G5+(b<<2)|0,H3=e[y3>>2]|0,c3=e[X3>>2]|0,g3=e[X5>>2]|0,u3=g3>>1,e[o3>>2]=0,e[o3+4>>2]=0,e[o3+8>>2]=0,e[o3+12>>2]=0,e[o3+16>>2]=0,e[o3+20>>2]=0,e[o3+24>>2]=0,e[o3+28>>2]=0,Q3=(c3|0)==1,R=(L|0)>0;do if(Q3){if(!R){r6=0;break}for(G=g3+-1|0,m3=0,S6=0,K3=L;;)if(C0=K3+-1|0,D=b+C0|0,S0=G5+(D<<2)|0,b0=e[S0>>2]|0,E0=b0-H3|0,y0=(E0|0)<(u3|0),y0?(w0=u3-E0|0,B0=w0<<1,_0=B0+-1|0,T0=_0):(K0=E0-u3|0,M0=K0<<1,T0=M0),v0=o5(S6,g3)|0,U0=(T0|0)<0,O0=(T0|0)>=(g3|0),k0=O0?G:T0,V0=U0?0:k0,F0=V0+v0|0,L0=o3+(C0<<2)|0,e[L0>>2]=b0,G0=m3+1|0,i6=(G0|0)==(L|0),i6){r6=F0;break}else m3=G0,S6=F0,K3=C0}else{if(!R){r6=0;break}for(F=c3>>1,T=F-H3|0,N=g3+-1|0,x3=0,R6=0,M3=L;;)if(V=M3+-1|0,w=b+V|0,X=G5+(w<<2)|0,K=e[X>>2]|0,a0=T+K|0,r0=(a0|0)/(c3|0)&-1,s0=(r0|0)<(u3|0),s0?(J=u3-r0|0,o0=J<<1,q=o0+-1|0,u0=q):(d0=r0-u3|0,t0=d0<<1,u0=t0),j=o5(R6,g3)|0,c0=(u0|0)<0,l0=(u0|0)>=(g3|0),Z=l0?N:u0,I0=c0?0:Z,g0=I0+j|0,f0=o5(r0,c3)|0,n0=f0+H3|0,h0=o3+(V<<2)|0,e[h0>>2]=n0,p0=x3+1|0,V3=(p0|0)==(L|0),V3){r6=g0;break}else x3=p0,R6=g0,M3=V}while(!1);z0=e[b3>>2]|0,J0=z0+8|0,q0=e[J0>>2]|0,P0=q0+r6|0,H0=f[P0>>0]|0,o1=H0<<24>>24<1;do if(o1){if(e[U5>>2]=0,e[U5+4>>2]=0,e[U5+8>>2]=0,e[U5+12>>2]=0,e[U5+16>>2]=0,e[U5+20>>2]=0,e[U5+24>>2]=0,e[U5+28>>2]=0,Y0=g3+-1|0,i1=o5(Y0,c3)|0,x0=i1+H3|0,n1=e[t3>>2]|0,d1=(n1|0)>0,d1)z5=-1,L6=0,h6=r6;else{G6=r6;break}for(;;){g1=q0+L6|0,m1=f[g1>>0]|0,u1=m1<<24>>24>0;do if(u1){if(R)for(X6=0,R3=0;;)if(A1=U5+(X6<<2)|0,c1=e[A1>>2]|0,v=b+X6|0,s1=G5+(v<<2)|0,$1=e[s1>>2]|0,j0=c1-$1|0,E1=o5(j0,j0)|0,I1=E1+R3|0,Q1=X6+1|0,a6=(Q1|0)==(L|0),a6){B6=I1;break}else X6=Q1,R3=I1;else B6=0;if(p1=(z5|0)==-1,w1=(B6|0)<(z5|0),e6=p1|w1,!e6){H5=z5,b6=h6;break}e[o3>>2]=e[U5>>2]|0,e[o3+4>>2]=e[U5+4>>2]|0,e[o3+8>>2]=e[U5+8>>2]|0,e[o3+12>>2]=e[U5+12>>2]|0,e[o3+16>>2]=e[U5+16>>2]|0,e[o3+20>>2]=e[U5+20>>2]|0,e[o3+24>>2]=e[U5+24>>2]|0,e[o3+28>>2]=e[U5+28>>2]|0,H5=B6,b6=L6}else H5=z5,b6=h6;while(!1);if(v1=e[U5>>2]|0,k1=(v1|0)<(x0|0),k1)m=U5,I=v1;else for(M1=U5,n6=0;;)if(L1=n6+1|0,e[M1>>2]=0,S1=U5+(L1<<2)|0,D1=e[S1>>2]|0,R1=(D1|0)<(x0|0),R1){m=S1,I=D1;break}else M1=S1,n6=L1;if(F1=(I|0)>-1,F1?(U1=I+c3|0,e[m>>2]=U1,Z1=U1):Z1=I,P1=0-Z1|0,e[m>>2]=P1,G1=L6+1|0,n3=(G1|0)==(n1|0),n3){G6=b6;break}else z5=H5,L6=G1,h6=b6}}else G6=r6;while(!1);if(x1=(G6|0)>-1,l6=R&x1,l6)for(h=T3,M6=0;z1=o3+(M6<<2)|0,q1=e[z1>>2]|0,H1=h+4|0,Y1=e[h>>2]|0,V1=Y1-q1|0,e[h>>2]=V1,X1=M6+1|0,l3=(X1|0)==(L|0),!l3;)h=H1,M6=X1;if(j1=Gu(r3,G6,t)|0,O1=j1+S5|0,c2=d3+1|0,N3=(c2|0)==(D3|0),N3){E=O1;break}Q=e[r3>>2]|0,L=Q,S5=O1,d3=c2}B=e[r5>>2]|0,E2=B,V5=E}else E2=a5,V5=0;W1=e[S2>>2]|0,h2=W1+V5|0,e[S2>>2]=h2,s2=E2+(d6<<2)|0,a2=e[s2>>2]|0,K1=K6+(a2<<2)|0,d2=e[K1>>2]|0,l2=d2+V5|0,e[K1>>2]=l2}if(r2=o6+1|0,E6=(r2|0)==($|0),E6)break;o6=r2}if(A2=z3+1|0,e2=d6+1|0,k3=(A2|0)==(N5|0),k3)break;d6=e2,z3=A2}U2=Z5-Y6|0,J3=U2}else J3=Z5;if(m2=(J3|0)<($0|0),m2)Z5=J3;else break}S=e[Q0>>2]|0,t2=S}else t2=k2;if(o2=c6+1|0,f2=(o2|0)<(t2|0),f2)k2=t2,c6=o2;else break}C=Q6}function q8(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0;if(Q=C,a=(t|0)==0,a)m=0;else for(o=t,I=0;;)if($=o>>>1,g=I+1|0,h=($|0)==0,h){m=g;break}else o=$,I=g;return m|0}function DQ(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0;d2=C,C=C+144|0,O1=d2,E=(a|0)!=0,Q=E?a:o,R=Q<<2,s0=R9(R)|0,u4(O1|0,0,132)|0,Z=(o|0)>0;do if(Z){E0=O1+4|0,O0=(a|0)==0,H0=O0&1,v1=0,b1=0;e:for(;;){A1=t+b1|0,w1=f[A1>>0]|0,B=w1<<24>>24,S=w1<<24>>24>0;t:do if(S){if(b=O1+(B<<2)|0,v=e[b>>2]|0,w=w1<<24>>24>31,D=v>>>B,y=(D|0)==0,c2=w|y,!c2){K1=5;break e}x=s0+(v1<<2)|0,e[x>>2]=v,M=O1+(B<<2)|0,L=v&1,F=(L|0)==0;i:do if(F)for(J=v,o0=M,z1=B;;){if(r0=J+1|0,e[o0>>2]=r0,q=z1+-1|0,d0=(z1|0)>1,!d0)break i;if(h=O1+(q<<2)|0,I=e[h>>2]|0,t0=O1+(q<<2)|0,j=I&1,u0=(j|0)==0,u0)J=I,o0=t0,z1=q;else{g=t0,x1=q,K1=8;break}}else g=M,x1=B,K1=8;while(!1);do if((K1|0)==8)if(K1=0,N=(x1|0)==1,N){G=e[E0>>2]|0,V=G+1|0,e[E0>>2]=V;break}else{X=x1+-1|0,K=O1+(X<<2)|0,a0=e[K>>2]|0,W=a0<<1,e[g>>2]=W;break}while(!1);if(V1=B+1|0,T=(V1|0)<33,T)for(R1=v,H1=B,X1=V1;;){if(c0=O1+(X1<<2)|0,$0=e[c0>>2]|0,l0=$0>>>1,I0=(l0|0)==(R1|0),!I0){m=1;break t}if(g0=O1+(H1<<2)|0,f0=e[g0>>2]|0,n0=f0<<1,e[c0>>2]=n0,q1=X1+1|0,h0=(q1|0)<33,h0)Y1=X1,R1=$0,X1=q1,H1=Y1;else{m=1;break}}else m=1}else m=H0;while(!1);if(k1=v1+m|0,p0=b1+1|0,C0=(p0|0)<(o|0),C0)v1=k1,b1=p0;else{L1=k1,K1=16;break}}if((K1|0)==5)return p2(s0),$=0,C=d2,$|0;if((K1|0)==16){if(W1=(L1|0)==1,!W1){P1=1,K1=27;break}if(S0=O1+8|0,Q0=e[S0>>2]|0,b0=(Q0|0)==2,b0)break;P1=1,K1=27;break}}else P1=1,K1=27;while(!1);e:do if((K1|0)==27){for(;K1=0,Z0=O1+(P1<<2)|0,P0=e[Z0>>2]|0,o1=32-P1|0,Y0=-1>>>o1,i1=P0&Y0,x0=(i1|0)==0,J0=P1+1|0,!!x0;)if(q0=(J0|0)<33,q0)P1=J0,K1=27;else break e;return p2(s0),$=0,C=d2,$|0}while(!1);if(!Z)return $=s0,C=d2,$|0;if(E)S1=0,G1=0;else{for(M1=0,Z1=0;;){if(n1=t+Z1|0,d1=f[n1>>0]|0,g1=d1<<24>>24>0,g1)for(m1=s0+(M1<<2)|0,h1=e[m1>>2]|0,u1=d1<<24>>24,n2=0,E2=0;;)if(c1=E2<<1,s1=h1>>>n2,$1=s1&1,j0=$1|c1,E1=n2+1|0,I1=(E1|0)<(u1|0),I1)n2=E1,E2=j0;else{h2=j0;break}else h2=0;if(Q1=M1+1|0,p1=s0+(M1<<2)|0,e[p1>>2]=h2,B1=Z1+1|0,F1=(B1|0)==(o|0),F1){$=s0;break}else M1=Q1,Z1=B1}return C=d2,$|0}for(;;){if(y0=t+G1|0,w0=f[y0>>0]|0,B0=w0<<24>>24>0,B0)for(z0=s0+(S1<<2)|0,U0=e[z0>>2]|0,G0=w0<<24>>24,j1=0,a2=0;;)if(T0=a2<<1,N0=U0>>>j1,k0=N0&1,V0=k0|T0,F0=j1+1|0,L0=(F0|0)<(G0|0),L0)j1=F0,a2=V0;else{s2=V0;break}else s2=0;if(_0=w0<<24>>24==0,_0?D1=S1:(K0=S1+1|0,M0=s0+(S1<<2)|0,e[M0>>2]=s2,D1=K0),v0=G1+1|0,U1=(v0|0)==(o|0),U1){$=s0;break}else S1=D1,G1=v0}return C=d2,$|0}function qb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0;if(J=C,$=t+4|0,g=e[$>>2]|0,D=e[t>>2]|0,y=(D|0)>0,!y)for(;;);for(x=+(g|0),M=x,L=+(D|0),R=1/L,F=R,T=+Fu(+M,+F),h=+iA(+T),m=~~h,K=m;;){for(b=K+1|0,N=1,G=1,V=0;;)if(B=o5(N,K)|0,S=o5(G,b)|0,v=V+1|0,w=(v|0)<(D|0),w)N=B,G=S,V=v;else{o=B,a=S;break}if(I=(o|0)<=(g|0),E=(a|0)>(g|0),X=I&E,X){r0=K;break}Q=(o|0)>(g|0),W=Q?-1:1,a0=K+W|0,K=a0}return r0|0}function Hb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0;if(J5=C,Q=t+12|0,B=e[Q>>2]|0,E=B+-1|0,n5=E>>>0<2,!n5)return h=0,h|0;if(Y0=t+16|0,s1=e[Y0>>2]|0,L1=s1&2097151,x1=+(L1|0),W1=s1>>>21,A2=W1&1023,U2=(s1|0)<0,t5=-x1,$=U2?t5:x1,S=A2+-788|0,T=+$E($,S),o0=T,g0=t+20|0,w0=e[g0>>2]|0,V0=w0&2097151,Z0=+(V0|0),P0=w0>>>21,H0=P0&1023,o1=(w0|0)<0,i1=-Z0,g=o1?i1:Z0,x0=H0+-788|0,n1=+$E(g,x0),d1=n1,g1=e[t>>2]|0,m1=o5(g1,o)|0,h1=ce(m1,4)|0,(B|0)==1){if(w1=t+4|0,v1=e[w1>>2]|0,k1=(g1|0)>0,!k1)for(;;);for(M1=+(v1|0),S1=M1,D1=+(g1|0),R1=1/D1,F1=R1,U1=+Fu(+S1,+F1),b1=+iA(+U1),P1=~~b1,c5=P1;;){for(h2=c5+1|0,s5=1,R2=1,p5=0;;)if(O1=o5(s5,c5)|0,c2=o5(R2,h2)|0,s2=p5+1|0,m5=(s2|0)==(g1|0),m5){m=O1,I=c2;break}else s5=O1,R2=c2,p5=s2;if(Z1=(m|0)<=(v1|0),G1=(I|0)>(v1|0),f5=G1&Z1,f5){F2=c5;break}j1=(m|0)>(v1|0),e5=j1?-1:1,R5=e5+c5|0,c5=R5}if(z1=(v1|0)>0,!z1)return h=h1,h|0;for(q1=(a|0)==0,H1=t+8|0,Y1=t+32|0,V1=d1,X1=o0,n2=t+28|0,M2=0,T1=0;;){if(q1)if($2=e[Y1>>2]|0,i2=e[n2>>2]|0,l2=(i2|0)==0,r2=o5(g1,M2)|0,l2)for(y5=1,X2=0;;)if(x5=(T1|0)/(y5|0)&-1,j2=(x5|0)%(F2|0)&-1,I5=$2+(j2<<2)|0,b5=e[I5>>2]|0,Y5=+(b5|0),Y2=+rr(+Y5),g5=Y2,b2=g5*V1,B5=X1+b2,b=B5,v=r2+X2|0,w=h1+(v<<2)|0,s[w>>2]=b,D=o5(y5,F2)|0,y=X2+1|0,x=(y|0)<(g1|0),x)y5=D,X2=y;else{v5=21;break}else for($5=1,d5=0,r5=0;;)if(M=(T1|0)/($5|0)&-1,L=(M|0)%(F2|0)&-1,R=$2+(L<<2)|0,F=e[R>>2]|0,N=+(F|0),q5=+rr(+N),G=q5,V=G*V1,X=r5,K=X+X1,a0=K+V,W=a0,r0=r2+d5|0,s0=h1+(r0<<2)|0,s[s0>>2]=W,J=o5($5,F2)|0,q=d5+1|0,d0=(q|0)<(g1|0),d0)$5=J,d5=q,r5=W;else{v5=21;break}else if(E2=e[H1>>2]|0,a2=E2+T1|0,K1=f[a2>>0]|0,d2=K1<<24>>24==0,d2)y2=M2;else for(e2=e[Y1>>2]|0,o2=e[n2>>2]|0,f2=(o2|0)==0,t2=a+(M2<<2)|0,k2=e[t2>>2]|0,D2=o5(k2,g1)|0,u5=1,l5=0,a5=0;;)if(S2=(T1|0)/(u5|0)&-1,Q2=(S2|0)%(F2|0)&-1,N2=e2+(Q2<<2)|0,L2=e[N2>>2]|0,m2=+(L2|0),M5=+rr(+m2),W2=M5,P2=W2*V1,V2=a5,G2=V2+X1,q2=G2+P2,Z2=q2,w5=f2?a5:Z2,A5=D2+l5|0,H2=h1+(A5<<2)|0,s[H2>>2]=Z2,N1=o5(u5,F2)|0,T5=l5+1|0,i5=(T5|0)<(g1|0),i5)u5=N1,l5=T5,a5=w5;else{v5=21;break}if((v5|0)==21&&(v5=0,t0=M2+1|0,y2=t0),j=T1+1|0,u0=(j|0)<(v1|0),u0)M2=y2,T1=j;else{h=h1;break}}return h|0}else if((B|0)==2){if(u1=t+4|0,A1=e[u1>>2]|0,c1=(A1|0)>0,!c1)return h=h1,h|0;for($1=(a|0)!=0,j0=t+8|0,E1=t+32|0,I1=d1,Q1=o0,p1=t+28|0,B1=(g1|0)>0,Q5=0,D5=0;;){if($1?(c0=e[j0>>2]|0,$0=c0+D5|0,l0=f[$0>>0]|0,Z=l0<<24>>24==0,Z?N5=Q5:v5=25):v5=25,(v5|0)==25){if(v5=0,B1)for(I0=e[E1>>2]|0,f0=e[p1>>2]|0,n0=(f0|0)==0,h0=a+(Q5<<2)|0,p0=o5(g1,D5)|0,C0=o5(g1,Q5)|0,g2=0,z2=0;S0=p0+g2|0,Q0=I0+(S0<<2)|0,b0=e[Q0>>2]|0,E0=+(b0|0),L5=+rr(+E0),y0=L5,B0=y0*I1,_0=z2,K0=_0+Q1,M0=K0+B0,v0=M0,h5=n0?z2:v0,$1?(T0=e[h0>>2]|0,N0=o5(T0,g1)|0,U0=N0+g2|0,O0=h1+(U0<<2)|0,s[O0>>2]=v0):(k0=C0+g2|0,F0=h1+(k0<<2)|0,s[F0>>2]=v0),L0=g2+1|0,G0=(L0|0)<(g1|0),G0;)g2=L0,z2=h5;z0=Q5+1|0,N5=z0}if(J0=D5+1|0,q0=(J0|0)<(A1|0),q0)Q5=N5,D5=J0;else{h=h1;break}}return h|0}else return h=h1,h|0;return 0}function vC(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0;S=C,o=t+36|0,a=e[o>>2]|0,$=(a|0)==0,!$&&(g=t+32|0,h=e[g>>2]|0,m=(h|0)==0,m||p2(h),I=t+8|0,E=e[I>>2]|0,Q=(E|0)==0,Q||p2(E),p2(t))}function Yb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0;M=C,o=t+16|0,a=e[o>>2]|0,E=(a|0)==0,E||p2(a),Q=t+20|0,B=e[Q>>2]|0,S=(B|0)==0,S||p2(B),b=t+24|0,v=e[b>>2]|0,w=(v|0)==0,w||p2(v),D=t+28|0,$=e[D>>2]|0,g=($|0)==0,g||p2($),h=t+32|0,m=e[h>>2]|0,I=(m|0)==0,I||p2(m),y=t,L=y+56|0;do e[y>>2]=0,y=y+4|0;while((y|0)<(L|0))}function _Q(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0;P0=C,q0=t,H0=q0+56|0;do e[q0>>2]=0,q0=q0+4|0;while((q0|0)<(H0|0));if(m=t+12|0,e[m>>2]=o,I=o+4|0,M=e[I>>2]|0,W=t+4|0,e[W>>2]=M,$0=t+8|0,e[$0>>2]=M,Q0=e[o>>2]|0,e[t>>2]=Q0,_0=o+8|0,K0=e[_0>>2]|0,M0=DQ(K0,M,0)|0,v0=t+20|0,e[v0>>2]=M0,E=e[I>>2]|0,Q=e[o>>2]|0,B=(Q|0)>0,!B)for(;;);for(S=+(E|0),b=S,v=+(Q|0),w=1/v,D=w,y=+Fu(+b,+D),x=+iA(+y),L=~~x,z0=L;;){for(V=z0+1|0,T0=1,N0=1,O0=0;;)if(N=o5(T0,z0)|0,G=o5(N0,V)|0,X=O0+1|0,U0=(X|0)==(Q|0),U0){g=N,h=G;break}else T0=N,N0=G,O0=X;if(R=(g|0)<=(E|0),F=(h|0)>(E|0),k0=F&R,k0){J0=z0;break}T=(g|0)>(E|0),G0=T?-1:1,L0=G0+z0|0,z0=L0}return K=t+44|0,e[K>>2]=J0,a0=o+16|0,r0=e[a0>>2]|0,s0=r0&2097151,J=+(s0|0),o0=r0>>>21,q=o0&1023,d0=(r0|0)<0,t0=-J,a=d0?t0:J,j=q+-788|0,u0=+$E(a,j),c0=u0,V0=+TQ(c0),l0=~~V0,Z=t+48|0,e[Z>>2]=l0,I0=o+20|0,g0=e[I0>>2]|0,f0=g0&2097151,n0=+(f0|0),h0=g0>>>21,p0=h0&1023,C0=(g0|0)<0,S0=-n0,$=C0?S0:n0,b0=p0+-788|0,E0=+$E($,b0),y0=E0,F0=+TQ(y0),w0=~~F0,B0=t+52|0,e[B0>>2]=w0,0}function Vb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0;U3=C,_6=t,q6=_6+56|0;do e[_6>>2]=0,_6=_6+4|0;while((_6|0)<(q6|0));if(b=o+4|0,v=e[b>>2]|0,E2=(v|0)>0,E2)for(Y2=o+8|0,w5=e[Y2>>2]|0,z3=0,U6=0;;)if(v5=w5+z3|0,W5=f[v5>>0]|0,H3=W5<<24>>24>0,$6=H3&1,E=$6+U6|0,Z5=z3+1|0,w=(Z5|0)<(v|0),w)z3=Z5,U6=E;else{h0=E;break}else h0=0;if(V=t+4|0,e[V>>2]=v,t0=t+8|0,e[t0>>2]=h0,K0=e[o>>2]|0,e[t>>2]=K0,G0=(h0|0)>0,!G0)return $=0,C=U3,$|0;if(n1=o+8|0,E1=e[n1>>2]|0,D1=DQ(E1,v,h0)|0,H1=h0<<2,h=H1,a2=C,C=C+((1*h|0)+15&-16)|0,t2=(D1|0)==0,t2){q2=t+16|0,Z2=e[q2>>2]|0,A5=(Z2|0)==0,A5||p2(Z2),H2=t+20|0,N1=e[H2>>2]|0,t5=(N1|0)==0,t5||p2(N1),T5=t+24|0,i5=e[T5>>2]|0,x5=(i5|0)==0,x5||p2(i5),I5=t+28|0,b5=e[I5>>2]|0,Y5=(b5|0)==0,Y5||p2(b5),g5=t+32|0,b2=e[g5>>2]|0,B5=(b2|0)==0,B5||p2(b2),_6=t,q6=_6+56|0;do e[_6>>2]=0,_6=_6+4|0;while((_6|0)<(q6|0));return $=-1,C=U3,$|0}else M3=0;for(;V2=D1+(M3<<2)|0,j2=e[V2>>2]|0,Q5=j2>>>16,N5=j2<<16,m5=Q5|N5,L5=m5>>>8,q5=L5&16711935,M5=m5<<8,p5=M5&-16711936,$5=q5|p5,u5=$5>>>4,y5=u5&252645135,T1=$5<<4,D5=T1&-252645136,d5=y5|D5,l5=d5>>>2,X2=l5&858993459,g2=d5<<2,r5=g2&-858993460,a5=X2|r5,h5=a5>>>1,z2=h5&1431655765,f5=a5<<1,n5=f5&-1431655766,R5=z2|n5,e[V2>>2]=R5,e5=a2+(M3<<2)|0,e[e5>>2]=V2,c5=M3+1|0,X6=(c5|0)==(h0|0),!X6;)M3=c5;for(Pu(a2,h0,4,10),m=H1,F2=C,C=C+((1*m|0)+15&-16)|0,J5=R9(H1)|0,i3=t+20|0,e[i3>>2]=J5,E5=D1,K3=0;;)if(I3=a2+(K3<<2)|0,h3=e[I3>>2]|0,K5=h3,r3=K5-E5|0,a3=r3>>2,B3=F2+(a3<<2)|0,e[B3>>2]=K3,G5=K3+1|0,G6=(G5|0)==(h0|0),G6){e6=0;break}else K3=G5;for(;D3=D1+(e6<<2)|0,f3=e[D3>>2]|0,y3=F2+(e6<<2)|0,X3=e[y3>>2]|0,q3=J5+(X3<<2)|0,e[q3>>2]=f3,X5=e6+1|0,b6=(X5|0)==(h0|0),!b6;)e6=X5;if(p2(D1),b3=Hb(o,h0,F2)|0,t3=t+16|0,e[t3>>2]=b3,s6=R9(H1)|0,T3=t+24|0,e[T3>>2]=s6,c3=e[b>>2]|0,g3=(c3|0)>0,g3)for(Q=e[n1>>2]|0,F6=0,Q6=0;;)if(u3=Q+F6|0,Q3=f[u3>>0]|0,z5=Q3<<24>>24>0,z5?(H5=Q6+1|0,V5=F2+(Q6<<2)|0,S5=e[V5>>2]|0,Y3=s6+(S5<<2)|0,e[Y3>>2]=F6,e9=H5):e9=Q6,U5=F6+1|0,n3=(U5|0)<(c3|0),n3)F6=U5,Q6=e9;else{t9=e9;break}else t9=0;if(l3=R9(t9)|0,N3=t+28|0,e[N3>>2]=l3,E6=t+40|0,e[E6>>2]=0,g3){for(B=e[n1>>2]|0,s5=0,_3=B,l6=0,n9=0;;)if(k3=_3+l6|0,S3=f[k3>>0]|0,a6=S3<<24>>24>0,a6?(i6=n9+1|0,V3=F2+(n9<<2)|0,x3=e[V3>>2]|0,d3=e[N3>>2]|0,J3=d3+x3|0,f[J3>>0]=S3,d6=e[n1>>2]|0,m3=d6+l6|0,L6=f[m3>>0]|0,M6=L6<<24>>24,R6=e[E6>>2]|0,S6=(M6|0)>(R6|0),S6?(e[E6>>2]=M6,R2=M6,M2=d6,V6=i6):(R2=R6,M2=d6,V6=i6)):(R2=s5,M2=_3,V6=n9),r6=l6+1|0,D=e[b>>2]|0,y=(r6|0)<(D|0),y)s5=R2,_3=M2,l6=r6,n9=V6;else{I=R2,s9=V6;break}if(x=(s9|0)==1,x){if(M=(I|0)==1,M)return L=t+36|0,e[L>>2]=1,R=ce(2,4)|0,F=t+32|0,e[F>>2]=R,T=R+4|0,e[T>>2]=1,e[R>>2]=1,$=0,C=U3,$|0;G3=1}else G3=s9}else G3=0;if(N=e[t0>>2]|0,G=(N|0)==0,G)P6=-4;else{for(g=N,J6=0;;)if(X=g>>>1,K=J6+1|0,a0=(X|0)==0,a0){T6=J6;break}else g=X,J6=K;c9=T6+-3|0,P6=c9}if(W=t+36|0,r0=(P6|0)<5,a=r0?5:P6,s0=(a|0)>8,i9=s0?8:a,e[W>>2]=i9,J=1<>2]=o0,d0=(G3|0)>0,d0)for(l0=i9,o3=0;;){if(j=e[N3>>2]|0,u0=j+o3|0,c0=f[u0>>0]|0,$0=c0<<24>>24,Z=(l0|0)<($0|0),Z)y2=l0;else if(I0=e[i3>>2]|0,g0=I0+(o3<<2)|0,f0=e[g0>>2]|0,n0=f0>>>16,p0=f0<<16,C0=n0|p0,S0=C0>>>8,Q0=S0&16711935,b0=C0<<8,E0=b0&-16711936,y0=Q0|E0,w0=y0>>>4,B0=w0&252645135,_0=y0<<4,M0=_0&-252645136,v0=B0|M0,T0=v0>>>2,N0=T0&858993459,U0=v0<<2,O0=U0&-858993460,k0=N0|O0,V0=k0>>>1,F0=V0&1431655765,L0=k0<<1,z0=L0&-1431655766,J0=F0|z0,q0=l0-$0|0,Z0=(q0|0)==31,Z0)y2=l0;else for(P0=o3+1|0,o1=$0,A3=0;;)if(H0=A3<>2]=P0,x0=A3+1|0,d1=e[W>>2]|0,g1=f[u0>>0]|0,m1=g1<<24>>24,h1=d1-m1|0,u1=1<>>16,v1=B1<<16,k1=w1|v1,L1=k1>>>8,M1=L1&16711935,S1=k1<<8,R1=S1&-16711936,F1=M1|R1,U1=F1>>>4,b1=U1&252645135,P1=F1<<4,Z1=P1&-252645136,G1=b1|Z1,x1=G1>>>2,z1=x1&858993459,q1=G1<<2,Y1=q1&-858993460,V1=z1|Y1,X1=V1>>>1,n2=X1&1431655765,j1=V1<<1,O1=j1&-1431655766,c2=n2|O1,W1=o0+(c2<<2)|0,h2=e[W1>>2]|0,s2=(h2|0)==0,s2){for(B6=c6;;){if(K1=B6+1|0,d2=(K1|0)<(G3|0),!d2){R3=B6;break}if($2=e[i3>>2]|0,i2=$2+(K1<<2)|0,l2=e[i2>>2]|0,r2=l2>>>0>B1>>>0,r2){R3=B6;break}else B6=K1}A2=(G3|0)>(v6|0);e:do if(A2)for(e2=e[i3>>2]|0,n6=v6;;){if(o2=e2+(n6<<2)|0,f2=e[o2>>2]|0,k2=f2&j0,D2=B1>>>0>>0,D2){L3=n6;break e}if(S2=n6+1|0,Q2=(G3|0)>(S2|0),Q2)n6=S2;else{L3=S2;break}}else L3=v6;while(!1);N2=G3-L3|0,L2=R3>>>0>32767,U2=N2>>>0>32767,C6=U2?32767:N2,Y6=R3<<15,A6=Y6|-2147483648,m2=L2?-1073774592:A6,W2=m2|C6,e[W1>>2]=W2,o6=L3,D6=R3}else o6=v6,D6=c6;if(P2=K6+1|0,G2=(P2|0)<(J|0),!G2){$=0;break}S=e[W>>2]|0,p1=S,v6=o6,K6=P2,c6=D6}return C=U3,$|0}function Jb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0;return b=C,a=e[t>>2]|0,$=e[a>>2]|0,g=e[o>>2]|0,h=e[g>>2]|0,m=$>>>0>h>>>0,I=m&1,E=$>>>0>>0,Q=E&1,B=I-Q|0,B|0}function zb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0;if(K0=C,Q=e[t>>2]|0,B=(Q|0)==1,!B&&(F=t+4|0,J=e[F>>2]|0,$0=t+8|0,l0=e[$0>>2]|0,Z=l0+4|0,I0=e[Z>>2]|0,g0=(I0|0)>0,!!g0)){for(f0=I0+1|0,E=Q+-1|0,C0=Q,S0=0,Q0=Q,E0=1;;){S=f0-S0|0,b=l0+(S<<2)|0,v=e[b>>2]|0,w=(Q0|0)/(v|0)&-1,D=(Q|0)/(Q0|0)&-1,y=o5(D,w)|0,x=v+-1|0,M=o5(D,x)|0,L=C0-M|0,R=1-E0|0;do if((v|0)==2)if(K=(R|0)==0,a=E+L|0,a0=J+(a<<2)|0,K){RQ(D,w,o,J,a0),y0=0;break}else{RQ(D,w,J,o,a0),y0=R;break}else if((v|0)==4)if(T=L+D|0,N=(R|0)==0,$=E+L|0,G=J+($<<2)|0,g=E+T|0,V=J+(g<<2)|0,h=E+D|0,m=h+T|0,X=J+(m<<2)|0,N){MQ(D,w,o,J,G,V,X),y0=0;break}else{MQ(D,w,J,o,G,V,X),y0=R;break}else if(W=(D|0)==1,b0=W?E0:R,r0=(b0|0)==0,I=E+L|0,s0=J+(I<<2)|0,r0){FQ(D,v,w,y,o,o,o,J,J,s0),y0=1;break}else{FQ(D,v,w,y,J,J,J,o,o,s0),y0=0;break}while(!1);if(o0=S0+1|0,h0=(o0|0)==(I0|0),h0){w0=y0;break}else C0=L,S0=o0,Q0=w,E0=y0}if(q=(w0|0)!=1,d0=(Q|0)>0,B0=d0&q,B0)p0=0;else return;for(;t0=J+(p0<<2)|0,j=e[t0>>2]|0,u0=o+(p0<<2)|0,e[u0>>2]=j,c0=p0+1|0,n0=(c0|0)==(Q|0),!n0;)p0=c0}}function xQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0;if(E1=C,e[t>>2]=o,m=o*3|0,I=ce(m,4)|0,M=t+4|0,e[M>>2]=I,W=ce(32,4)|0,$0=t+8|0,e[$0>>2]=W,Q0=(o|0)==1,!Q0){K0=W+8|0,Y0=-1,g1=0,m1=o,u1=0;e:for(;;)for(M0=Y0+1|0,v0=(M0|0)<4,v0?(T0=25768+(M0<<2)|0,E=e[T0>>2]|0,A1=E):(Q=u1+2|0,A1=Q),B=(A1|0)!=2,q0=g1,h1=m1;;){if(z0=q0+1|0,S=(h1|0)/(A1|0)&-1,b=o5(S,A1)|0,v=(h1|0)==(b|0),!v){Y0=M0,g1=q0,m1=h1,u1=A1;continue e}if(w=q0+2|0,D=W+(w<<2)|0,e[D>>2]=A1,y=(q0|0)==0,c1=B|y,!c1){if(x=(q0|0)<1,!x)for(F0=1;L=z0-F0|0,R=L+1|0,F=W+(R<<2)|0,T=e[F>>2]|0,N=L+2|0,G=W+(N<<2)|0,e[G>>2]=T,V=F0+1|0,k0=(V|0)==(z0|0),!k0;)F0=V;e[K0>>2]=2}if(X=(S|0)==1,X){a=y,J0=z0,Z0=q0;break e}else q0=z0,h1=S}if(e[W>>2]=o,K=W+4|0,e[K>>2]=J0,a0=+(o|0),r0=6.2831854820251465/a0,$=a^1,s0=(Z0|0)>0,s1=s0&$,!!s1)for(J=o+1|0,P0=0,x0=0,n1=1;;){if(o0=x0+2|0,q=W+(o0<<2)|0,d0=e[q>>2]|0,t0=o5(d0,n1)|0,j=(o|0)/(t0|0)&-1,u0=(d0|0)>1,u0){for(c0=(j|0)>2,l0=d0+-1|0,o1=P0,i1=0,d1=0;;){if(Z=d1+n1|0,I0=+(Z|0),g0=I0*r0,c0)for(V0=0,L0=o1,G0=2;f0=V0+1,n0=g0*f0,N0=+rA(+n0),g=L0+o|0,h0=I+(g<<2)|0,s[h0>>2]=N0,$1=+Hn(+n0),p0=L0+2|0,h=J+L0|0,C0=I+(h<<2)|0,s[C0>>2]=$1,S0=G0+2|0,b0=(S0|0)<(j|0),b0;)V0=f0,L0=p0,G0=S0;if(E0=o1+j|0,y0=i1+1|0,U0=(y0|0)==(l0|0),U0)break;o1=E0,i1=y0,d1=Z}w0=o5(j,l0)|0,B0=w0+P0|0,H0=B0}else H0=P0;if(_0=x0+1|0,O0=(_0|0)==(Z0|0),O0)break;P0=H0,x0=_0,n1=t0}}}function LQ(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0;Q=C,o=(t|0)==0,!o&&(a=t+4|0,$=e[a>>2]|0,g=($|0)==0,g||p2($),h=t+8|0,m=e[h>>2]|0,I=(m|0)==0,I||p2(m),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0)}function MQ(t,o,a,$,g,h,m){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0;var I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0;if(I3=C,I=o5(o,t)|0,E=I<<1,Q1=(o|0)>0,Q1)for(F1=I*3|0,V1=t<<2,K1=V1+-1|0,k2=t<<1,g2=0,a5=I,f5=F1,e5=0,c5=E;G2=a+(a5<<2)|0,I5=+s[G2>>2],N5=a+(f5<<2)|0,Q=+s[N5>>2],R=Q+I5,s0=a+(e5<<2)|0,Z=+s[s0>>2],E0=a+(c5<<2)|0,O0=+s[E0>>2],H0=O0+Z,A1=H0+R,E1=e5<<2,I1=$+(E1<<2)|0,s[I1>>2]=A1,p1=H0-R,B1=K1+E1|0,w1=$+(B1<<2)|0,s[w1>>2]=p1,v1=+s[s0>>2],k1=+s[E0>>2],L1=v1-k1,M1=E1+k2|0,S1=M1+-1|0,D1=$+(S1<<2)|0,s[D1>>2]=L1,R1=+s[N5>>2],U1=+s[G2>>2],b1=R1-U1,P1=$+(M1<<2)|0,s[P1>>2]=b1,Z1=a5+t|0,G1=f5+t|0,x1=e5+t|0,z1=c5+t|0,q1=g2+1|0,d5=(q1|0)==(o|0),!d5;)g2=q1,a5=Z1,f5=G1,e5=x1,c5=z1;if(H1=(t|0)<2,!H1){if(Y1=(t|0)==2,!Y1){if(Q1)for(X1=t<<1,w5=0,h5=0;;){for(n0=h5<<2,h0=n0+X1|0,X2=2,n5=h5,F2=n0,J5=h0;O1=n5+2|0,c2=F2+2|0,W1=J5+-2|0,h2=O1+I|0,s2=X2+-2|0,E2=g+(s2<<2)|0,a2=+s[E2>>2],d2=h2+-1|0,$2=a+(d2<<2)|0,i2=+s[$2>>2],l2=i2*a2,r2=X2+-1|0,A2=g+(r2<<2)|0,e2=+s[A2>>2],o2=a+(h2<<2)|0,f2=+s[o2>>2],t2=f2*e2,D2=t2+l2,S2=f2*a2,Q2=e2*i2,N2=S2-Q2,L2=h2+I|0,U2=h+(s2<<2)|0,m2=+s[U2>>2],W2=L2+-1|0,P2=a+(W2<<2)|0,V2=+s[P2>>2],q2=V2*m2,Z2=h+(r2<<2)|0,A5=+s[Z2>>2],H2=a+(L2<<2)|0,N1=+s[H2>>2],t5=N1*A5,T5=t5+q2,i5=N1*m2,x5=A5*V2,j2=i5-x5,b5=L2+I|0,Y5=m+(s2<<2)|0,g5=+s[Y5>>2],b2=b5+-1|0,B5=a+(b2<<2)|0,s5=+s[B5>>2],R2=s5*g5,M2=m+(r2<<2)|0,y2=+s[M2>>2],Q5=a+(b5<<2)|0,m5=+s[Q5>>2],L5=m5*y2,q5=L5+R2,M5=m5*g5,Y2=y2*s5,p5=M5-Y2,$5=q5+D2,u5=q5-D2,y5=p5+N2,T1=N2-p5,B=a+(O1<<2)|0,S=+s[B>>2],b=S+j2,v=S-j2,w=n5+1|0,D=a+(w<<2)|0,y=+s[D>>2],x=y+T5,M=y-T5,L=$5+x,F=F2|1,T=$+(F<<2)|0,s[T>>2]=L,N=y5+b,G=$+(c2<<2)|0,s[G>>2]=N,V=M-T1,X=J5+-3|0,K=$+(X<<2)|0,s[K>>2]=V,a0=u5-v,W=$+(W1<<2)|0,s[W>>2]=a0,r0=T1+M,J=c2+X1|0,o0=J+-1|0,q=$+(o0<<2)|0,s[q>>2]=r0,d0=u5+v,t0=$+(J<<2)|0,s[t0>>2]=d0,j=x-$5,u0=W1+X1|0,c0=u0+-1|0,$0=$+(c0<<2)|0,s[$0>>2]=j,l0=y5-b,I0=$+(u0<<2)|0,s[I0>>2]=l0,g0=X2+2|0,f0=(g0|0)<(t|0),f0;)X2=g0,n5=O1,F2=c2,J5=W1;if(n2=h5+t|0,j1=w5+1|0,l5=(j1|0)==(o|0),l5)break;w5=j1,h5=n2}if(p0=t&1,C0=(p0|0)==0,!C0)return}if(S0=t+-1|0,Q0=S0+I|0,b0=t<<2,y0=t<<1,!!Q1)for(w0=Q0+E|0,r5=0,z2=Q0,R5=w0,v5=t,i3=t;B0=a+(z2<<2)|0,_0=+s[B0>>2],K0=a+(R5<<2)|0,M0=+s[K0>>2],v0=M0+_0,T0=v0*-.7071067690849304,N0=_0-M0,U0=N0*.7071067690849304,k0=i3+-1|0,V0=a+(k0<<2)|0,F0=+s[V0>>2],L0=U0+F0,G0=v5+-1|0,z0=$+(G0<<2)|0,s[z0>>2]=L0,J0=+s[V0>>2],q0=J0-U0,Z0=v5+y0|0,P0=Z0+-1|0,o1=$+(P0<<2)|0,s[o1>>2]=q0,Y0=z2+I|0,i1=a+(Y0<<2)|0,x0=+s[i1>>2],n1=T0-x0,d1=$+(v5<<2)|0,s[d1>>2]=n1,g1=+s[i1>>2],m1=g1+T0,h1=$+(Z0<<2)|0,s[h1>>2]=m1,u1=z2+t|0,c1=R5+t|0,s1=v5+b0|0,$1=i3+t|0,j0=r5+1|0,D5=(j0|0)==(o|0),!D5;)r5=j0,z2=u1,R5=c1,v5=s1,i3=$1}}function RQ(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0;if(b1=C,h=o5(o,t)|0,m=t<<1,x=(o|0)>0,x)for(a0=m+-1|0,E1=0,p1=0,v1=h;c0=a+(p1<<2)|0,S0=+s[c0>>2],T0=a+(v1<<2)|0,q0=+s[T0>>2],m1=q0+S0,A1=p1<<1,I=$+(A1<<2)|0,s[I>>2]=m1,E=+s[c0>>2],Q=+s[T0>>2],B=E-Q,S=a0+A1|0,b=$+(S<<2)|0,s[b>>2]=B,v=p1+t|0,w=v1+t|0,D=E1+1|0,s1=(D|0)==(o|0),!s1;)E1=D,p1=v,v1=w;if(y=(t|0)<2,!y){if(M=(t|0)==2,!M){if(x)for(I1=0,B1=0,k1=h;;){for(V0=B1<<1,F0=V0+m|0,j0=2,M1=k1,D1=F0,R1=B1,F1=V0;T=M1+2|0,N=D1+-2|0,G=R1+2|0,V=F1+2|0,X=j0+-2|0,K=g+(X<<2)|0,W=+s[K>>2],r0=M1+1|0,s0=a+(r0<<2)|0,J=+s[s0>>2],o0=J*W,q=j0+-1|0,d0=g+(q<<2)|0,t0=+s[d0>>2],j=a+(T<<2)|0,u0=+s[j>>2],$0=u0*t0,l0=$0+o0,Z=u0*W,I0=t0*J,g0=Z-I0,f0=a+(G<<2)|0,n0=+s[f0>>2],h0=g0+n0,p0=$+(V<<2)|0,s[p0>>2]=h0,C0=+s[f0>>2],Q0=g0-C0,b0=$+(N<<2)|0,s[b0>>2]=Q0,E0=R1+1|0,y0=a+(E0<<2)|0,w0=+s[y0>>2],B0=w0+l0,_0=F1|1,K0=$+(_0<<2)|0,s[K0>>2]=B0,M0=+s[y0>>2],v0=M0-l0,N0=D1+-3|0,U0=$+(N0<<2)|0,s[U0>>2]=v0,O0=j0+2|0,k0=(O0|0)<(t|0),k0;)j0=O0,M1=T,D1=N,R1=G,F1=V;if(L=B1+t|0,R=k1+t|0,F=I1+1|0,$1=(F|0)==(o|0),$1)break;I1=F,B1=L,k1=R}if(L0=(t|0)%2&-1,G0=(L0|0)==1,G0)return}if(z0=t+-1|0,!!x)for(J0=h+z0|0,Q1=0,w1=t,L1=J0,S1=z0;Z0=a+(L1<<2)|0,P0=+s[Z0>>2],H0=-P0,o1=$+(w1<<2)|0,s[o1>>2]=H0,Y0=a+(S1<<2)|0,i1=e[Y0>>2]|0,x0=w1+-1|0,n1=$+(x0<<2)|0,e[n1>>2]=i1,d1=w1+m|0,g1=L1+t|0,h1=S1+t|0,u1=Q1+1|0,c1=(u1|0)==(o|0),!c1;)Q1=u1,w1=d1,L1=g1,S1=h1}}function FQ(t,o,a,$,g,h,m,I,E,Q){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0,E=E|0,Q=Q|0;var B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0,H8=0,K8=0,R8=0,u8=0,F8=0,g4=0,Y8=0,W8=0,ht=0,Nt=0,T8=0,Xt=0,O4=0,B4=0,ae=0,N8=0,Ai=0,Oi=0,qi=0,Hi=0,pi=0,Z8=0,Ei=0,j8=0,Ci=0,X8=0,Bi=0,$i=0,c7=0,Yi=0,Qi=0,yi=0,g7=0,wi=0,li=0,u7=0,Vi=0,Ji=0,zi=0,Ki=0,ci=0,vi=0,Wi=0,ei=0,gi=0,V8=0,ti=0,d7=0,Zi=0,h7=0,ki=0,ji=0,Si=0,bi=0,Xi=0,Di=0,ii=0,_i=0,e7=0,ui=0,J8=0,xi=0,x4=0,Li=0,G8=0,di=0,l9=0,B8=0,vt=0;vt=C,b=+(o|0),v=6.2831854820251465/b,pt=+rA(+v),H8=+Hn(+v),E2=o+1|0,k3=E2>>1,J9=t+-1|0,Je=J9>>1,P9=o5(a,t)|0,S9=o5(o,t)|0,pe=(t|0)==1;e:do if(!pe){if(_8=($|0)>0,_8)for(_4=0;h0=m+(_4<<2)|0,K0=e[h0>>2]|0,G0=E+(_4<<2)|0,e[G0>>2]=K0,n1=_4+1|0,Bt=(n1|0)==($|0),!Bt;)_4=n1;if(V=(o|0)>1,V)for(t0=(a|0)>0,wt=1,K8=0;;){if(E1=K8+P9|0,t0)for(l8=0,ae=E1;D1=h+(ae<<2)|0,H1=e[D1>>2]|0,a2=I+(ae<<2)|0,e[a2>>2]=H1,t2=ae+t|0,V2=l8+1|0,oe=(V2|0)==(a|0),!oe;)l8=V2,ae=t2;if(j2=wt+1|0,lt=(j2|0)==(o|0),lt)break;wt=j2,K8=E1}if(Q5=0-t|0,T1=(Je|0)>(a|0),T1){if(V)for(q3=(a|0)>0,z5=(t|0)>2,E3=Q5,Z9=1,F8=0;;){if(_3=F8+P9|0,L6=E3+t|0,q3)for(n6=_3-t|0,A3=L6+-1|0,ut=0,N8=n6;;){if(G3=N8+t|0,z5)for(ct=2,C4=A3,Ci=G3;U3=C4+2|0,y6=Ci+2|0,v9=C4+1|0,o4=Q+(v9<<2)|0,Ye=+s[o4>>2],Ve=Ci+1|0,he=h+(Ve<<2)|0,Ue=+s[he>>2],Ce=Ue*Ye,v4=Q+(U3<<2)|0,W9=+s[v4>>2],k9=h+(y6<<2)|0,k4=+s[k9>>2],Y4=k4*W9,nt=Y4+Ce,V4=I+(Ve<<2)|0,s[V4>>2]=nt,ze=+s[o4>>2],s4=+s[k9>>2],R4=s4*ze,ot=+s[v4>>2],re=+s[he>>2],d4=re*ot,Be=R4-d4,N6=I+(y6<<2)|0,s[N6>>2]=Be,Ke=ct+2|0,fe=(Ke|0)<(t|0),fe;)ct=Ke,C4=U3,Ci=y6;if(Ne=ut+1|0,$t=(Ne|0)==(a|0),$t)break;ut=Ne,N8=G3}if(h4=Z9+1|0,Ct=(h4|0)==(o|0),Ct)break;E3=L6,Z9=h4,F8=_3}}else if(V)for(f5=(t|0)>2,h3=(a|0)>0,Z4=Q5,c4=1,Y8=0;;){if(ne=Z4+t|0,f4=Y8+P9|0,f5)for(I4=ne+-1|0,Qt=2,gt=I4,Ai=f4;;){if(Se=gt+2|0,a4=Ai+2|0,h3)for(Pe=gt+1|0,m4=Q+(Pe<<2)|0,f6=Q+(Se<<2)|0,dt=0,X8=a4;J4=+s[m4>>2],Ie=X8+-1|0,S4=h+(Ie<<2)|0,be=+s[S4>>2],me=be*J4,z6=+s[f6>>2],F4=h+(X8<<2)|0,T4=+s[F4>>2],st=T4*z6,xe=st+me,mt=I+(Ie<<2)|0,s[mt>>2]=xe,W3=+s[m4>>2],x9=+s[F4>>2],b9=x9*W3,Oe=+s[f6>>2],A4=+s[S4>>2],h8=A4*Oe,N4=b9-h8,f8=I+(X8<<2)|0,s[f8>>2]=N4,e8=X8+t|0,I8=dt+1|0,Rt=(I8|0)==(a|0),!Rt;)dt=I8,X8=e8;if(m8=Qt+2|0,Ut=(m8|0)<(t|0),Ut)Qt=m8,gt=Se,Ai=a4;else break}if(Pt=c4+1|0,p4=(Pt|0)==(o|0),p4)break;Z4=ne,c4=Pt,Y8=f4}if(Ot=o5(P9,o)|0,qt=(Je|0)<(a|0),t8=(k3|0)>1,!qt){if(!t8)break;for(i8=(a|0)>0,x8=(t|0)>2,j4=1,ht=0,qi=Ot;;){if(y0=ht+P9|0,w0=qi-P9|0,i8)for(je=0,$i=y0,li=w0;;){if(x8)for(D4=2,ei=$i,ki=li;B0=ei+2|0,_0=ki+2|0,M0=ei+1|0,v0=I+(M0<<2)|0,T0=+s[v0>>2],N0=ki+1|0,U0=I+(N0<<2)|0,O0=+s[U0>>2],k0=O0+T0,V0=h+(M0<<2)|0,s[V0>>2]=k0,F0=I+(B0<<2)|0,L0=+s[F0>>2],z0=I+(_0<<2)|0,J0=+s[z0>>2],q0=L0-J0,Z0=h+(N0<<2)|0,s[Z0>>2]=q0,P0=+s[F0>>2],H0=+s[z0>>2],o1=H0+P0,Y0=h+(B0<<2)|0,s[Y0>>2]=o1,i1=+s[U0>>2],x0=+s[v0>>2],d1=i1-x0,g1=h+(_0<<2)|0,s[g1>>2]=d1,m1=D4+2|0,h1=(m1|0)<(t|0),h1;)D4=m1,ei=B0,ki=_0;if(u1=$i+t|0,A1=li+t|0,c1=je+1|0,We=(c1|0)==(a|0),We)break;je=c1,$i=u1,li=A1}if(s1=j4+1|0,U4=(s1|0)==(k3|0),U4)break e;j4=s1,ht=y0,qi=w0}}if(t8)for(D=(t|0)>2,y=(a|0)>0,T9=1,W8=0,Oi=Ot;;){if(x=W8+P9|0,M=Oi-P9|0,D)for(E4=2,Bi=x,wi=M;;){if(L=Bi+2|0,R=wi+2|0,y)for(F=R-t|0,T=L-t|0,Ft=0,Wi=T,h7=F;N=Wi+t|0,G=h7+t|0,X=N+-1|0,K=I+(X<<2)|0,a0=+s[K>>2],W=G+-1|0,r0=I+(W<<2)|0,s0=+s[r0>>2],J=s0+a0,o0=h+(X<<2)|0,s[o0>>2]=J,q=I+(N<<2)|0,d0=+s[q>>2],j=I+(G<<2)|0,u0=+s[j>>2],c0=d0-u0,$0=h+(W<<2)|0,s[$0>>2]=c0,l0=+s[q>>2],Z=+s[j>>2],I0=Z+l0,g0=h+(N<<2)|0,s[g0>>2]=I0,f0=+s[r0>>2],n0=+s[K>>2],p0=f0-n0,C0=h+(G<<2)|0,s[C0>>2]=p0,S0=Ft+1|0,Mt=(S0|0)==(a|0),!Mt;)Ft=S0,Wi=N,h7=G;if(Q0=E4+2|0,b0=(Q0|0)<(t|0),b0)E4=Q0,Bi=L,wi=R;else break}if(E0=T9+1|0,At=(E0|0)==(k3|0),At)break;T9=E0,W8=x,Oi=M}}while(!1);if(w=($|0)>0,w)for(De=0;$1=E+(De<<2)|0,j0=e[$1>>2]|0,I1=m+(De<<2)|0,e[I1>>2]=j0,Q1=De+1|0,Kt=(Q1|0)==($|0),!Kt;)De=Q1;if(p1=o5($,o)|0,B1=(k3|0)>1,B1){for(w1=(a|0)>0,Wt=1,Nt=0,Hi=p1;;){if(v1=Nt+P9|0,k1=Hi-P9|0,w1)for(L1=k1-t|0,M1=v1-t|0,c8=0,c7=M1,u7=L1;S1=c7+t|0,R1=u7+t|0,F1=I+(S1<<2)|0,U1=+s[F1>>2],b1=I+(R1<<2)|0,P1=+s[b1>>2],Z1=P1+U1,G1=h+(S1<<2)|0,s[G1>>2]=Z1,x1=+s[b1>>2],z1=+s[F1>>2],q1=x1-z1,Y1=h+(R1<<2)|0,s[Y1>>2]=q1,V1=c8+1|0,$4=(V1|0)==(a|0),!$4;)c8=V1,c7=S1,u7=R1;if(X1=Wt+1|0,s8=(X1|0)==(k3|0),s8)break;Wt=X1,Nt=v1,Hi=k1}if(n2=o+-1|0,j1=o5(n2,$)|0,B1){for(O1=(k3|0)>2,Ht=0,Vt=1,et=1,T8=0,pi=p1;;){if(c2=T8+$|0,W1=pi-$|0,h2=Vt*pt,s2=Ht*H8,K1=h2-s2,d2=Ht*pt,$2=Vt*H8,i2=$2+d2,w)for(yt=0,Vi=c2,gi=W1,ji=j1,ii=$;l2=m+(yt<<2)|0,r2=+s[l2>>2],A2=ii+1|0,e2=m+(ii<<2)|0,o2=+s[e2>>2],f2=o2*K1,k2=f2+r2,D2=Vi+1|0,S2=E+(Vi<<2)|0,s[S2>>2]=k2,Q2=ji+1|0,N2=m+(ji<<2)|0,L2=+s[N2>>2],U2=L2*i2,m2=gi+1|0,W2=E+(gi<<2)|0,s[W2>>2]=U2,P2=yt+1|0,E8=(P2|0)==($|0),!E8;)yt=P2,Vi=D2,gi=m2,ji=Q2,ii=A2;if(O1)for(Yt=i2,_t=K1,C8=2,Ji=$,V8=j1;;){if(G2=Ji+$|0,q2=V8-$|0,Z2=_t*K1,A5=Yt*i2,H2=Z2-A5,N1=Yt*K1,t5=_t*i2,T5=t5+N1,w)for(a8=0,Si=c2,_i=W1,xi=G2,G8=q2;i5=xi+1|0,x5=m+(xi<<2)|0,I5=+s[x5>>2],b5=I5*H2,Y5=Si+1|0,g5=E+(Si<<2)|0,b2=+s[g5>>2],B5=b2+b5,s[g5>>2]=B5,s5=G8+1|0,R2=m+(G8<<2)|0,M2=+s[R2>>2],y2=M2*T5,N5=_i+1|0,m5=E+(_i<<2)|0,L5=+s[m5>>2],q5=L5+y2,s[m5>>2]=q5,M5=a8+1|0,L8=(M5|0)==($|0),!L8;)a8=M5,Si=Y5,_i=N5,xi=i5,G8=s5;if(Y2=C8+1|0,o8=(Y2|0)==(k3|0),o8)break;Yt=T5,_t=H2,C8=Y2,Ji=G2,V8=q2}if(p5=et+1|0,M8=(p5|0)==(k3|0),M8)break;Ht=i2,Vt=K1,et=p5,T8=c2,pi=W1}if(B1)for(A8=1,Xt=0;;){if($5=Xt+$|0,w)for(Ze=0,Z8=$5;u5=Z8+1|0,y5=m+(Z8<<2)|0,D5=+s[y5>>2],d5=E+(Ze<<2)|0,l5=+s[d5>>2],X2=l5+D5,s[d5>>2]=X2,g2=Ze+1|0,p8=(g2|0)==($|0),!p8;)Ze=g2,Z8=u5;if(w5=A8+1|0,b4=(w5|0)==(k3|0),b4)break;A8=w5,Xt=$5}}}if(r5=(t|0)<(a|0),r5){if(z2=(t|0)>0,z2)for(n5=(a|0)>0,W4=0;;){if(n5)for(X4=0,B4=W4,j8=W4;K5=I+(B4<<2)|0,r3=e[K5>>2]|0,a3=g+(j8<<2)|0,e[a3>>2]=r3,B3=B4+t|0,G5=j8+S9|0,W5=X4+1|0,G4=(W5|0)==(a|0),!G4;)X4=W5,B4=B3,j8=G5;if(D3=W4+1|0,at=(D3|0)==(t|0),at)break;W4=D3}}else if(a5=(a|0)>0,a5)for(h5=(t|0)>0,Tt=0,O4=0,Ei=0;;){if(h5)for(K4=0,Yi=O4,zi=Ei;R5=Yi+1|0,e5=I+(Yi<<2)|0,c5=e[e5>>2]|0,F2=zi+1|0,v5=g+(zi<<2)|0,e[v5>>2]=c5,J5=K4+1|0,Lt=(J5|0)==(t|0),!Lt;)K4=J5,Yi=R5,zi=F2;if(i3=O4+t|0,E5=Ei+S9|0,I3=Tt+1|0,L9=(I3|0)==(a|0),L9)break;Tt=I3,O4=i3,Ei=E5}if(f3=t<<1,y3=o5(P9,o)|0,B1)for(X3=(a|0)>0,$8=1,R8=0,Qi=0,Ki=y3;;){if(X5=R8+f3|0,b3=Qi+P9|0,t3=Ki-P9|0,X3)for(D9=0,ti=X5,bi=b3,e7=t3;s6=I+(bi<<2)|0,T3=e[s6>>2]|0,H3=ti+-1|0,c3=g+(H3<<2)|0,e[c3>>2]=T3,g3=I+(e7<<2)|0,u3=e[g3>>2]|0,Q3=g+(ti<<2)|0,e[Q3>>2]=u3,H5=ti+S9|0,V5=bi+t|0,S5=e7+t|0,Y3=D9+1|0,Et=(Y3|0)==(a|0),!Et;)D9=Y3,ti=H5,bi=V5,e7=S5;if(U5=$8+1|0,z4=(U5|0)==(k3|0),z4)break;$8=U5,R8=X5,Qi=b3,Ki=t3}if(!pe){if($6=(Je|0)<(a|0),n3=0-t|0,!$6){if(!B1)return;for(B=(a|0)<1,S=(t|0)<3,xt=B|S,Zt=1,u8=n3,yi=0,ci=0,d7=y3;;){if(E6=u8+f3|0,S3=yi+f3|0,a6=ci+P9|0,i6=d7-P9|0,!xt)for(g8=0,Xi=E6,ui=S3,x4=a6,di=i6;;){for(se=2;d6=t-se|0,m3=se+x4|0,M6=m3+-1|0,R6=I+(M6<<2)|0,S6=+s[R6>>2],r6=se+di|0,h6=r6+-1|0,b6=I+(h6<<2)|0,G6=+s[b6>>2],X6=G6+S6,v6=se+ui|0,L3=v6+-1|0,o6=g+(L3<<2)|0,s[o6>>2]=X6,C6=+s[R6>>2],z3=+s[b6>>2],M3=C6-z3,K3=d6+Xi|0,e6=K3+-1|0,F6=g+(e6<<2)|0,s[F6>>2]=M3,l6=I+(m3<<2)|0,o3=+s[l6>>2],K6=I+(r6<<2)|0,c6=+s[K6>>2],B6=c6+o3,R3=g+(v6<<2)|0,s[R3>>2]=B6,Y6=+s[K6>>2],A6=+s[l6>>2],D6=Y6-A6,U6=g+(K3<<2)|0,s[U6>>2]=D6,t9=se+2|0,Q6=(t9|0)<(t|0),Q6;)se=t9;if(V3=Xi+S9|0,Z5=ui+S9|0,x3=x4+t|0,d3=di+t|0,J3=g8+1|0,r8=(J3|0)==(a|0),r8)break;g8=J3,Xi=V3,ui=Z5,x4=x3,di=d3}if(e9=Zt+1|0,n8=(e9|0)==(k3|0),n8)break;Zt=e9,u8=E6,yi=S3,ci=a6,d7=i6}return}if(B1)for(l3=(t|0)>2,N3=(a|0)>0,l4=1,g4=n3,g7=0,vi=0,Zi=y3;;){if(n9=g4+f3|0,V6=g7+f3|0,s9=vi+P9|0,c9=Zi-P9|0,l3&&(P6=n9+t|0,N3))for(P4=2;;){for(Fe=P4+c9|0,Te=P4+s9|0,Ge=P4+V6|0,He=P6-P4|0,jt=0,Di=He,J8=Ge,Li=Te,l9=Fe;i9=Li+-1|0,_6=I+(i9<<2)|0,O6=+s[_6>>2],q6=l9+-1|0,a9=I+(q6<<2)|0,d9=+s[a9>>2],o9=d9+O6,B9=J8+-1|0,Q9=g+(B9<<2)|0,s[Q9>>2]=o9,y9=+s[_6>>2],h9=+s[a9>>2],f9=y9-h9,H9=Di+-1|0,H6=g+(H9<<2)|0,s[H6>>2]=f9,A9=I+(Li<<2)|0,Y9=+s[A9>>2],w9=I+(l9<<2)|0,we=+s[w9>>2],ue=we+Y9,Ee=g+(J8<<2)|0,s[Ee>>2]=ue,V9=+s[w9>>2],ie=+s[A9>>2],F9=V9-ie,W6=g+(Di<<2)|0,s[W6>>2]=F9,$9=Di+S9|0,ve=J8+S9|0,Re=Li+t|0,de=l9+t|0,_9=jt+1|0,Jt=(_9|0)==(a|0),!Jt;)jt=_9,Di=$9,J8=ve,Li=Re,l9=de;if(J6=P4+2|0,T6=(J6|0)<(t|0),T6)P4=J6;else break}if(ke=l4+1|0,zt=(ke|0)==(k3|0),zt)break;l4=ke,g4=n9,g7=V6,vi=s9,Zi=c9}}}function Kb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0,H8=0,K8=0,R8=0,u8=0,F8=0,g4=0,Y8=0,W8=0,ht=0,Nt=0,T8=0,Xt=0,O4=0,B4=0,ae=0,N8=0,Ai=0,Oi=0,qi=0,Hi=0,pi=0,Z8=0,Ei=0,j8=0,Ci=0,X8=0,Bi=0,$i=0,c7=0,Yi=0,Qi=0,yi=0,g7=0,wi=0,li=0,u7=0,Vi=0,Ji=0,zi=0,Ki=0,ci=0,vi=0,Wi=0,ei=0,gi=0,V8=0,ti=0,d7=0,Zi=0,h7=0,ki=0,ji=0,Si=0,bi=0,Xi=0,Di=0,ii=0,_i=0,e7=0,ui=0,J8=0,xi=0,x4=0,Li=0,G8=0,di=0,l9=0,B8=0,vt=0,Q8=0,U8=0,nn=0,yr=0,as=0,Vn=0,As=0,Jn=0,$s=0,ls=0,zn=0,cs=0,on=0,gs=0,us=0,ds=0,Kn=0,hs=0,Wn=0,Zn=0,fs=0,sn=0,jn=0,an=0,Xn=0,eo=0,Is=0,ms=0,ps=0,An=0,to=0,Es=0,wr=0,$n=0,Cs=0,Bs=0,ln=0,f7=0,io=0,Qs=0,ys=0,ro=0,no=0,oo=0,ws=0,I7=0,cn=0,vs=0,so=0,ks=0,Ss=0,bs=0,ao=0,Ds=0,_s=0,xs=0,Ls=0,Ao=0,Ms=0,Rs=0,gn=0,vr=0,un=0,Fs=0,or=0,Ts=0,$o=0,dn=0,lo=0,hn=0,Ns=0,co=0,go=0,Gs=0,uo=0,ho=0,Us=0,kr=0,fo=0,m7=0,fn=0,Sr=0,sr=0,br=0,W7=0,Dr=0,Io=0,Z7=0,S7=0,b7=0,t7=0,D7=0,_r=0,ar=0,Ar=0,xr=0,p7=0,Ps=0,hi=0,sl=0,In=0,mn=0,Ou=0,al=0,Os=0,qu=0,sA=0,Al=0,Hu=0,Yu=0,Vu=0,aA=0,$l=0,ll=0,AA=0,pn=0,cl=0,Ju=0,qs=0,$r=0,zu=0,Ku=0,Wu=0,Zu=0,ju=0,Xu=0,ed=0,td=0,id=0,rd=0,gl=0,Lr=0,nd=0,od=0,ul=0,sd=0,$A=0,Hs=0,lA=0,ad=0,Ad=0,cA=0,dl=0,hl=0,fl=0,gA=0,Il=0,Ys=0,$d=0,ld=0,ml=0,cd=0,gd=0,pl=0,ud=0,dd=0,El=0,Cl=0,Bl=0,Ql=0,yl=0,En=0,hd=0,wl=0,fd=0,vl=0,kl=0,Id=0,md=0,pd=0,uA=0,Sl=0,bl=0,mo=0,Dl=0,dA=0,Ed=0,_l=0,Cd=0,xl=0,Bd=0,Qd=0,Ll=0,Ml=0,yd=0,Vs=0,wd=0,hA=0,Rl=0,Fl=0,vd=0,kd=0,Sd=0,bd=0,Dd=0,_d=0,Js=0,Tl=0,Nl=0,Gl=0,zs=0,xd=0,Ul=0,Ld=0,Pl=0,Md=0,Rd=0,Ol=0,fA=0,Fd=0,Td=0,Ks=0,Nd=0,Ws=0,Gd=0,IA=0,Ud=0,Pd=0,Od=0,ql=0,qd=0,Hd=0,Yd=0,Vd=0,Hl=0,Yl=0,lr=0,Vl=0,Zs=0,mA=0,pA=0,Cn=0,Jl=0,Bn=0,Jd=0,zl=0,zd=0,Kd=0,Wd=0,Zd=0,js=0,EA=0,Mr=0,jd=0,Xd=0,Kl=0,CA=0,Wl=0,Zl=0,eh=0,jl=0,th=0,BA=0,ih=0,rh=0,z9=0,nh=0,Xl=0,oh=0,sh=0,QA=0,ah=0,yA=0,ec=0,Ah=0,$h=0,tc=0,ic=0,lh=0,wA=0,vA=0,rc=0,nc=0,ch=0,oc=0,kA=0,gh=0,sc=0,uh=0,dh=0,hh=0,fh=0,ac=0,Ac=0,SA=0,Xs=0,$c=0,Ih=0,lc=0,cc=0,mh=0,ph=0,Eh=0,gc=0,Ch=0,Bh=0,Qh=0,yh=0,wh=0,vh=0,uc=0,kh=0,dc=0,Sh=0,Qn=0,bh=0,hc=0,Dh=0,po=0,fc=0,bA=0,_h=0,ea=0,DA=0,xh=0,_A=0,Ic=0,Lh=0,Mh=0,Rh=0,Fh=0,Th=0,mc=0,Nh=0,Gh=0,Uh=0,ta=0,Eo=0,xA=0,Ph=0,LA=0,Oh=0,qh=0,Hh=0,pc=0,Yh=0,Vh=0,Jh=0,zh=0,Kh=0,ia=0,Wh=0,Zh=0,Ec=0,jh=0,Xh=0,ef=0,tf=0,E7=0,Cc=0,C7=0,Bc=0,MA=0,rf=0,i7=0,Co=0,nf=0,of=0,sf=0,af=0,Af=0,Qc=0,$f=0,lf=0,yc=0,cf=0,gf=0,Bo=0,RA=0,uf=0,wc=0,df=0,hf=0,ra=0,ff=0,If=0,vc=0,kc=0,mf=0,pf=0,yn=0,Ef=0,Cf=0,wn=0,Bf=0,Sc=0,Qf=0,yf=0,Qo=0,bc=0,wf=0,Dc=0,vf=0,cr=0,FA=0,kf=0,_c=0,xc=0,Sf=0,bf=0,Lc=0,Df=0,_f=0,xf=0,Mc=0,Lf=0,yo=0,Mf=0,vn=0,Rf=0,Ff=0,TA=0,Tf=0,NA=0,GA=0,Nf=0,Rc=0,Fc=0,Gf=0,Tc=0,Nc=0,Gc=0,Uf=0,Uc=0,Pc=0,Pf=0,Of=0,Oc=0,qc=0,qf=0,Hc=0,Yc=0,Hf=0,Yf=0,Vc=0,UA=0,Jc=0,zc=0,Kc=0,Wc=0,Vf=0,Jf=0,zf=0,Kf=0,Wf=0,Zf=0,jf=0,Xf=0,Zc=0,PA=0,eI=0,tI=0,iI=0,jc=0,Xc=0,rI=0,eg=0,OA=0,na=0,tg=0,nI=0,oI=0,sI=0,aI=0,ig=0,oa=0,AI=0,$I=0,lI=0,cI=0,gI=0,uI=0,dI=0,hI=0,rg=0,fI=0,II=0,mI=0,pI=0,sa=0,ng=0,EI=0,CI=0,kn=0,og=0,sg=0,qA=0,BI=0,ag=0,QI=0,Ag=0,$g=0,yI=0,wI=0,vI=0,kI=0,SI=0,aa=0,HA=0,bI=0,DI=0,_I=0,xI=0,lg=0,LI=0,cg=0,MI=0,RI=0,gg=0,Rr=0,ug=0,dg=0,FI=0,hg=0,Aa=0,TI=0,NI=0,GI=0,$a=0,fg=0,UI=0,PI=0,Ig=0,OI=0,qI=0,YA=0,la=0,HI=0,YI=0,VI=0,mg=0,pg=0,Eg=0,JI=0,zI=0,wo=0,KI=0,Cg=0,WI=0,VA=0,Bg=0,ZI=0,jI=0,XI=0,em=0,Qg=0,tm=0,im=0,yg=0,ca=0,rm=0,nm=0,om=0,vo=0,wg=0,vg=0,sm=0,kg=0,Sg=0,_7=0,bg=0,gr=0,am=0,Am=0,$m=0,lm=0,JA=0,ga=0,Dg=0,_g=0,cm=0,ua=0,ko=0,gm=0,da=0,zA=0,um=0,KA=0,dm=0,hm=0,xg=0,ha=0,Lg=0,fm=0,Im=0,mm=0,pm=0,Mg=0,Em=0,ri=0,_e=0,r7=0,Cm=0,Rg=0,Fg=0,WA=0,Bm=0,Fr=0,So=0,Qm=0,ym=0,Tg=0,ZA=0,wm=0,Ng=0,Gg=0,Ug=0,jA=0,XA=0,Pg=0,bo=0,e$=0,Og=0,vm=0,Sn=0,km=0,qg=0,fa=0,Sm=0,Hg=0,x7=0,bm=0,Dm=0,_m=0,xm=0,Lm=0,Mm=0,L7=0,Rm=0,Fm=0,Tm=0,Yg=0,B7=0,Ia=0,t$=0,Vg=0,Jg=0,Nm=0,zg=0,Kg=0,Gm=0,Um=0,Wg=0,Zg=0,Pm=0,Om=0,jg=0,qm=0,Do=0,ma=0,pa=0,Hm=0,i$=0,Ym=0,Vm=0,Xg=0,_o=0,Jm=0,zm=0,r$=0,n$=0,Ea=0,o$=0,s$=0,ur=0,Tr=0,Nr=0,a$=0,A$=0,xo=0,dr=0,bn=0,Km=0,hr=0,Dn=0,Wm=0,Mi=0,Ri=0,Fi=0,Ca=0,Ba=0,eu=0,tu=0,Qa=0,$$=0,Ti=0,ya=0,Gr=0,l$=0,Zm=0,c$=0,jm=0,g$=0,iu=0,wa=0,Xm=0,ep=0,va=0,tp=0,ka=0,_n=0,tt=0,Le=0,ru=0,ip=0,u$=0,nu=0,rp=0,np=0,Sa=0,op=0,sp=0,ap=0,Ap=0,ou=0,$p=0,lp=0,cp=0,n7=0,ba=0,xn=0,d$=0,Lo=0,Mo=0,ni=0,Ro=0,su=0,au=0,Da=0,Fo=0,To=0,No=0,gp=0,Go=0,fr=0,Au=0,Ur=0,o7=0,h$=0,f$=0,j7=0,I$=0,m$=0,p$=0,Pr=0,g6=0,_a=0,Or=0,$u=0,L4=0,E$=0,kt=0,Uo=0,Ln=0,Mn=0,O9=0,Rn=0,qr=0,Xe=0,C$=0,LC=0,up=0,gE=0,uE=0,MC=0,dp=0,JQ=0,zQ=0,KQ=0,WQ=0,ZQ=0,jQ=0,XQ=0,ey=0,ty=0,iy=0,ry=0,ny=0,RC=0,FC=0,oy=0,sy=0,ay=0,lu=0,dE=0,Q7=0,cu=0,gu=0,uu=0,du=0,hp=0,fp=0,Ip=0,mp=0,pp=0,Ep=0,Cp=0,Bp=0,Qp=0,yp=0,hE=0,xa=0,Ir=0,B$=0,hu=0,Q$=0,TC=0,La=0,wp=0,y$=0,fE=0,IE=0,vp=0,mE=0,pE=0,EE=0,CE=0,BE=0,QE=0,yE=0,NC=0,GC=0,UC=0,PC=0,OC=0,Ma=0,Ra=0,Fa=0,Ta=0,Ay=0,mr=0,Ae=0,yD=0,Na=0,wE=0;if(yD=C,f0=t+28|0,n0=e[f0>>2]|0,n8=(n0|0)==0,n8||(gi=n0+3456|0,Io=e[gi>>2]|0,Tl=(Io|0)==0,o=Tl&1,po=n0+3496|0,Tc=+l1[po>>3],mg=Tc>-80,mg?l1[po>>3]=-80:(Um=Tc<-200,Um&&(l1[po>>3]=-200)),h0=n0+3512|0,j2=+l1[h0>>3],A3=j2>0,A3?l1[h0>>3]=0:(ke=j2<-99999,ke&&(l1[h0>>3]=-99999)),Y4=n0+3396|0,N6=e[Y4>>2]|0,Pe=(N6|0)==0,Pe))return E=-131,E|0;if(T4=n0+3392|0,e[T4>>2]=1,N4=n0+3400|0,i8=+l1[N4>>3],Et=N6+24|0,M8=e[Et>>2]|0,p4=N6+28|0,P4=e[p4>>2]|0,l4=~~i8,jt=M8+(l4<<2)|0,H8=e[jt>>2]|0,Xt=P4+(l4<<2)|0,Ei=e[Xt>>2]|0,e[n0>>2]=H8,wi=n0+4|0,e[wi>>2]=Ei,V8=(H8|0)==(Ei|0),ii=N6+144|0,B8=e[ii>>2]|0,ls=(B8|0)>0,ls){for(fs=N6+136|0,Es=N6+140|0,no=N6+148|0,or=i8,Mr=n0,hE=0;;){if(Ds=~~or,ho=e[fs>>2]|0,Z7=e[Es>>2]|0,hi=e[no>>2]|0,Yu=hi+(hE<<2)|0,zu=e[Yu>>2]|0,Lr=ce(1,1120)|0,dl=zu+(Ds<<2)|0,pl=e[dl>>2]|0,fd=Z7+(pl*1120|0)|0,ge(Lr|0,fd|0,1120)|0,dA=e[Lr>>2]|0,wd=(dA|0)>0,wd){for(Nl=Lr+4|0,dE=0,yE=-1;;)if(kA=Nl+(dE<<2)|0,$c=e[kA>>2]|0,yh=($c|0)>(yE|0),a0=yh?$c:yE,fc=dE+1|0,ry=(fc|0)==(dA|0),ry){W=a0;break}else dE=fc,yE=a0;if(Fd=(W|0)<0,!Fd){for(qd=Lr+256|0,Cn=Mr+24|0,ih=Lr+192|0,Ah=Lr+320|0,Q$=0,EE=-1;;){if(xc=qd+(Q$<<2)|0,vn=e[xc>>2]|0,Nc=(vn|0)>(EE|0),X=Nc?vn:EE,Yc=e[Cn>>2]|0,zf=Yc+vn|0,e[xc>>2]=zf,jc=ih+(Q$<<2)|0,ig=e[jc>>2]|0,fI=(ig|0)==31,fI)CE=X;else for(_9=ig,mE=0,QE=X;;)if(qA=(Ah+(Q$<<5)|0)+(mE<<2)|0,aa=e[qA>>2]|0,gg=(aa|0)>(QE|0),K=gg?aa:QE,fg=(aa|0)>-1,fg?(pg=e[Cn>>2]|0,jI=pg+aa|0,e[qA>>2]=jI,s0=e[jc>>2]|0,zA=s0):zA=_9,vo=mE+1|0,$m=1<>2]|0,rf=e[Zh>>2]|0,yc=e[Cn>>2]|0,If=yc+1|0,e[Cn>>2]=If,Qf=(Mr+1824|0)+(yc<<2)|0,e[Qf>>2]=rf,XQ=(BE|0)==0,!XQ))for(TC=0;XA=TC+1|0,t0=e[dl>>2]|0,Hg=ho+(t0<<2)|0,Tm=e[Hg>>2]|0,Wg=Tm+(XA<<2)|0,Ym=e[Wg>>2]|0,ur=e[Cn>>2]|0,Wm=ur+1|0,e[Cn>>2]=Wm,ya=(Mr+1824|0)+(ur<<2)|0,e[ya>>2]=Ym,jQ=(XA|0)==(BE|0),!jQ;)TC=XA}}if(va=Mr+16|0,np=e[va>>2]|0,ba=(Mr+800|0)+(np<<2)|0,e[ba>>2]=1,To=e[va>>2]|0,I$=(Mr+1056|0)+(To<<2)|0,e[I$>>2]=Lr,p0=e[va>>2]|0,M0=p0+1|0,e[va>>2]=M0,z0=hE+1|0,d1=e[ii>>2]|0,I1=(z0|0)<(d1|0),!I1)break;r0=+l1[N4>>3],l0=e[f0>>2]|0,or=r0,Mr=l0,hE=z0}I0=e[f0>>2]|0,X5=I0}else X5=n0;R1=n0+3520|0,Y1=+l1[R1>>3],a2=N6+124|0,t2=e[a2>>2]|0,V2=N6+128|0,I5=e[V2>>2]|0,N5=~~Y1,D5=+(N5|0),n5=Y1-D5,K5=X5+2868|0,H5=I5+(N5<<3)|0,_3=+l1[H5>>3],L6=~~_3,n6=t2+(L6*492|0)|0,ge(K5|0,n6|0,492)|0,c6=+l1[H5>>3],n9=1-n5,q6=c6*n9,H6=N5+1|0,W6=I5+(H6<<3)|0,Fe=+l1[W6>>3],Te=Fe*n5,Ge=Te+q6,He=~~Ge,o4=+(He|0),Ye=Ge-o4,J9=Ye==0,Ve=(He|0)>0,NC=Ve&J9,I=NC?1:Ye,he=NC<<31>>31,R=he+He|0,Ue=1-I,Ce=R+1|0,v4=(t2+(R*492|0)|0)+4|0,W9=+s[v4>>2],k9=W9,k4=Ue*k9,nt=(t2+(Ce*492|0)|0)+4|0,Je=+s[nt>>2],V4=Je,ze=I*V4,s4=k4+ze,R4=s4,ot=X5+2872|0,s[ot>>2]=R4,re=(t2+(R*492|0)|0)+32|0,d4=+s[re>>2],Be=d4,Ke=Ue*Be,P9=(t2+(Ce*492|0)|0)+32|0,fe=+s[P9>>2],Ne=fe,h4=I*Ne,ne=Ke+h4,f4=ne,I4=X5+2900|0,s[I4>>2]=f4,Se=(t2+(R*492|0)|0)+8|0,a4=+s[Se>>2],m4=a4,S9=Ue*m4,f6=(t2+(Ce*492|0)|0)+8|0,J4=+s[f6>>2],Ie=J4,S4=I*Ie,be=S9+S4,me=be,z6=X5+2876|0,s[z6>>2]=me,F4=(t2+(R*492|0)|0)+36|0,st=+s[F4>>2],pe=st,xe=Ue*pe,mt=(t2+(Ce*492|0)|0)+36|0,W3=+s[mt>>2],x9=W3,b9=x9*I,Oe=b9+xe,A4=Oe,h8=X5+2904|0,s[h8>>2]=A4,f8=(t2+(R*492|0)|0)+12|0,_8=+s[f8>>2],e8=_8,I8=e8*Ue,m8=(t2+(Ce*492|0)|0)+12|0,Ut=+s[m8>>2],Pt=Ut,Ot=Pt*I,qt=Ot+I8,t8=qt,x8=X5+2880|0,s[x8>>2]=t8,Ht=(t2+(R*492|0)|0)+40|0,Yt=+s[Ht>>2],Vt=Yt,_t=Vt*Ue,xt=(t2+(Ce*492|0)|0)+40|0,pt=+s[xt>>2],Jt=pt,zt=Jt*I,r8=zt+_t,z4=r8,G4=X5+2908|0,s[G4>>2]=z4,at=(t2+(R*492|0)|0)+16|0,Lt=+s[at>>2],L9=Lt,p8=L9*Ue,b4=(t2+(Ce*492|0)|0)+16|0,E8=+s[b4>>2],L8=E8,o8=L8*I,$4=o8+p8,s8=$4,Kt=X5+2884|0,s[Kt>>2]=s8,Mt=(t2+(R*492|0)|0)+44|0,At=+s[Mt>>2],We=At,U4=We*Ue,$t=(t2+(Ce*492|0)|0)+44|0,Ct=+s[$t>>2],Rt=Ct,oe=Rt*I,lt=oe+U4,Bt=lt,ct=X5+2912|0,s[ct>>2]=Bt,Qt=X5+3512|0,E4=+l1[Qt>>3],D4=E4,K4=X5+2936|0,s[K4>>2]=D4,W4=N6+132|0,se=e[W4>>2]|0,C4=n0+3472|0,gt=+l1[C4>>3],_4=gt,De=~~_4,yt=+(De|0),a8=_4-yt,Ze=a8,E3=e[f0>>2]|0,Z4=(se|0)==0;e:do if(Z4)wt=E3+4|0,Z9=e[E3>>2]|0,c4=E3+3240|0,e[c4>>2]=Z9,T9=e[wt>>2]|0,j4=E3+3300|0,e[j4>>2]=T9,Wt=E3+3244|0,e[Wt>>2]=Z9,C8=E3+3304|0,e[C8>>2]=T9,A8=E3+3248|0,e[A8>>2]=Z9,$8=E3+3308|0,e[$8>>2]=T9,Zt=E3+3252|0,e[Zt>>2]=Z9,l8=E3+3312|0,e[l8>>2]=T9,ut=E3+3256|0,e[ut>>2]=Z9,dt=E3+3316|0,e[dt>>2]=T9,Ft=E3+3260|0,e[Ft>>2]=Z9,je=E3+3320|0,e[je>>2]=T9,c8=E3+3264|0,e[c8>>2]=Z9,Tt=E3+3324|0,e[Tt>>2]=T9,X4=E3+3268|0,e[X4>>2]=Z9,D9=E3+3328|0,e[D9>>2]=T9,g8=E3+3272|0,e[g8>>2]=Z9,et=E3+3332|0,e[et>>2]=T9,K8=E3+3276|0,e[K8>>2]=Z9,R8=E3+3336|0,e[R8>>2]=T9,u8=E3+3280|0,e[u8>>2]=Z9,F8=E3+3340|0,e[F8>>2]=T9,g4=E3+3284|0,e[g4>>2]=Z9,Y8=E3+3344|0,e[Y8>>2]=T9,W8=E3+3288|0,e[W8>>2]=Z9,ht=E3+3348|0,e[ht>>2]=T9,Nt=E3+3292|0,e[Nt>>2]=Z9,T8=E3+3352|0,e[T8>>2]=T9,O4=E3+3296|0,e[O4>>2]=Z9,B4=E3+3356|0,e[B4>>2]=T9;else{ae=E3+3120|0,N8=se+(De*240|0)|0,mr=ae,Na=N8,wE=mr+60|0;do e[mr>>2]=e[Na>>2]|0,mr=mr+4|0,Na=Na+4|0;while((mr|0)<(wE|0));Ai=E3+3180|0,Oi=(se+(De*240|0)|0)+60|0,mr=Ai,Na=Oi,wE=mr+60|0;do e[mr>>2]=e[Na>>2]|0,mr=mr+4|0,Na=Na+4|0;while((mr|0)<(wE|0));if(qi=n0+3420|0,Hi=e[qi>>2]|0,pi=(Hi|0)==0,!pi)for(Z8=1-Ze,j8=De+1|0,Ci=t+8|0,X8=E3+4|0,o0=e[Ci>>2]|0,Bi=+(o0|0),Ir=0;;){if($i=((se+(De*240|0)|0)+120|0)+(Ir<<2)|0,c7=+s[$i>>2],Yi=c7,Qi=Yi*Z8,yi=((se+(j8*240|0)|0)+120|0)+(Ir<<2)|0,g7=+s[yi>>2],li=g7,u7=li*Ze,Vi=u7+Qi,Ji=Vi,zi=Ji,Ki=zi*1e3,ci=Ki/Bi,vi=e[E3>>2]|0,Wi=+(vi|0),ei=Wi*ci,ti=~~ei,d7=(E3+3e3|0)+(Ir<<2)|0,e[d7>>2]=ti,Zi=e[X8>>2]|0,h7=+(Zi|0),ki=h7*ci,ji=~~ki,Si=(E3+3060|0)+(Ir<<2)|0,e[Si>>2]=ji,bi=~~Ji,Xi=(E3+2940|0)+(Ir<<2)|0,e[Xi>>2]=bi,Di=((se+(De*240|0)|0)+180|0)+(Ir<<2)|0,_i=+s[Di>>2],e7=_i,ui=e7*Z8,J8=((se+(j8*240|0)|0)+180|0)+(Ir<<2)|0,xi=+s[J8>>2],x4=xi,Li=x4*Ze,G8=Li+ui,di=G8,l9=di,vt=l9*1e3,Q8=vt/Bi,U8=e[E3>>2]|0,nn=+(U8|0),yr=nn*Q8,as=~~yr,Vn=(E3+3240|0)+(Ir<<2)|0,e[Vn>>2]=as,As=e[X8>>2]|0,Jn=+(As|0),$s=Jn*Q8,zn=~~$s,cs=(E3+3300|0)+(Ir<<2)|0,e[cs>>2]=zn,on=Ir+1|0,ty=(on|0)==15,ty)break e;Ir=on}for(gs=(se+(De*240|0)|0)+148|0,us=+s[gs>>2],ds=us,Kn=1-Ze,hs=ds*Kn,Wn=De+1|0,Zn=(se+(Wn*240|0)|0)+148|0,sn=+s[Zn>>2],jn=sn,an=jn*Ze,Xn=an+hs,eo=Xn,Is=eo,ms=Is*1e3,ps=t+8|0,An=E3+4|0,to=~~eo,d0=e[ps>>2]|0,wr=+(d0|0),$n=ms/wr,hu=0;Cs=e[E3>>2]|0,Bs=+(Cs|0),ln=Bs*$n,f7=~~ln,io=(E3+3e3|0)+(hu<<2)|0,e[io>>2]=f7,Qs=e[An>>2]|0,ys=+(Qs|0),ro=ys*$n,oo=~~ro,ws=(E3+3060|0)+(hu<<2)|0,e[ws>>2]=oo,I7=(E3+2940|0)+(hu<<2)|0,e[I7>>2]=to,cn=hu+1|0,ny=(cn|0)==15,!ny;)hu=cn;for(vs=(se+(De*240|0)|0)+208|0,so=+s[vs>>2],ks=so,Ss=ks*Kn,bs=(se+(Wn*240|0)|0)+208|0,ao=+s[bs>>2],_s=ao,xs=_s*Ze,Ls=xs+Ss,Ao=Ls,Ms=Ao,Rs=Ms*1e3,gn=Rs/wr,wp=0;vr=e[E3>>2]|0,un=+(vr|0),Fs=un*gn,Ts=~~Fs,$o=(E3+3240|0)+(wp<<2)|0,e[$o>>2]=Ts,dn=e[An>>2]|0,lo=+(dn|0),hn=lo*gn,Ns=~~hn,co=(E3+3300|0)+(wp<<2)|0,e[co>>2]=Ns,go=wp+1|0,ey=(go|0)==15,!ey;)wp=go}while(!1);for(Gs=+l1[N4>>3],uo=N6+92|0,Us=e[uo>>2]|0,kr=N6+100|0,fo=e[kr>>2]|0,m7=N6+108|0,fn=e[m7>>2]|0,Sr=e[f0>>2]|0,sr=Sr+2852|0,br=e[sr>>2]|0,W7=~~Gs,Dr=Sr+28|0,S7=e[Dr>>2]|0,b7=(S7|0)>0,b7||(e[Dr>>2]=1),t7=(br|0)==0,t7?(D7=ce(1,520)|0,e[sr>>2]=D7,Ma=D7):Ma=br,ge(Ma|0,25784,520)|0,e[Ma>>2]=0,_r=Sr+3460|0,ar=e[_r>>2]|0,Ar=(ar|0)==0,Ar||(xr=Ma+500|0,e[xr>>2]=1,p7=Us+(W7<<2)|0,Ps=e[p7>>2]|0,sl=Ma+504|0,e[sl>>2]=Ps,In=fo+(W7<<2)|0,mn=e[In>>2]|0,Ou=Ma+508|0,e[Ou>>2]=mn,al=fn+(W7<<3)|0,Os=+l1[al>>3],qu=Ma+512|0,l1[qu>>3]=Os),sA=+l1[N4>>3],Al=e[uo>>2]|0,Hu=e[kr>>2]|0,Vu=e[m7>>2]|0,aA=e[f0>>2]|0,$l=aA+2856|0,ll=e[$l>>2]|0,AA=~~sA,pn=aA+28|0,cl=e[pn>>2]|0,Ju=(cl|0)>1,Ju||(e[pn>>2]=2),qs=(ll|0)==0,qs?($r=ce(1,520)|0,e[$l>>2]=$r,Ra=$r):Ra=ll,ge(Ra|0,25784,520)|0,e[Ra>>2]=0,Ku=aA+3460|0,Wu=e[Ku>>2]|0,Zu=(Wu|0)==0,Zu||(ju=Ra+500|0,e[ju>>2]=1,Xu=Al+(AA<<2)|0,ed=e[Xu>>2]|0,td=Ra+504|0,e[td>>2]=ed,id=Hu+(AA<<2)|0,rd=e[id>>2]|0,gl=Ra+508|0,e[gl>>2]=rd,nd=Vu+(AA<<3)|0,od=+l1[nd>>3],ul=Ra+512|0,l1[ul>>3]=od),V8||(sd=+l1[N4>>3],$A=N6+96|0,Hs=e[$A>>2]|0,lA=N6+104|0,ad=e[lA>>2]|0,Ad=e[m7>>2]|0,cA=e[f0>>2]|0,hl=cA+2860|0,fl=e[hl>>2]|0,gA=~~sd,Il=cA+28|0,Ys=e[Il>>2]|0,$d=(Ys|0)>2,$d||(e[Il>>2]=3),ld=(fl|0)==0,ld?(ml=ce(1,520)|0,e[hl>>2]=ml,Fa=ml):Fa=fl,ge(Fa|0,25784,520)|0,e[Fa>>2]=1,cd=cA+3460|0,gd=e[cd>>2]|0,ud=(gd|0)==0,ud||(dd=Fa+500|0,e[dd>>2]=1,El=Hs+(gA<<2)|0,Cl=e[El>>2]|0,Bl=Fa+504|0,e[Bl>>2]=Cl,Ql=ad+(gA<<2)|0,yl=e[Ql>>2]|0,En=Fa+508|0,e[En>>2]=yl,hd=Ad+(gA<<3)|0,wl=+l1[hd>>3],vl=Fa+512|0,l1[vl>>3]=wl),kl=+l1[N4>>3],Id=e[$A>>2]|0,md=e[lA>>2]|0,pd=e[m7>>2]|0,uA=e[f0>>2]|0,Sl=uA+2864|0,bl=e[Sl>>2]|0,mo=~~kl,Dl=uA+28|0,Ed=e[Dl>>2]|0,_l=(Ed|0)>3,_l||(e[Dl>>2]=4),Cd=(bl|0)==0,Cd?(xl=ce(1,520)|0,e[Sl>>2]=xl,Ta=xl):Ta=bl,ge(Ta|0,25784,520)|0,e[Ta>>2]=1,Bd=uA+3460|0,Qd=e[Bd>>2]|0,Ll=(Qd|0)==0,Ll||(Ml=Ta+500|0,e[Ml>>2]=1,yd=Id+(mo<<2)|0,Vs=e[yd>>2]|0,hA=Ta+504|0,e[hA>>2]=Vs,Rl=md+(mo<<2)|0,Fl=e[Rl>>2]|0,vd=Ta+508|0,e[vd>>2]=Fl,kd=pd+(mo<<3)|0,Sd=+l1[kd>>3],bd=Ta+512|0,l1[bd>>3]=Sd)),Dd=(n0+3528|0)+(o<<5)|0,_d=+l1[Dd>>3],Js=N6+32|0,Gl=e[Js>>2]|0,zs=N6+36|0,xd=e[zs>>2]|0,Ul=N6+44|0,Ld=e[Ul>>2]|0,aE(t,_d,0,Gl,xd,Ld),Pl=n0+3560|0,Md=+l1[Pl>>3],Rd=e[Js>>2]|0,Ol=e[zs>>2]|0,fA=N6+52|0,Td=e[fA>>2]|0,aE(t,Md,1,Rd,Ol,Td),V8||(Ks=n0+3592|0,Nd=+l1[Ks>>3],Ws=e[Js>>2]|0,Gd=e[zs>>2]|0,IA=e[fA>>2]|0,aE(t,Nd,2,Ws,Gd,IA),Ud=n0+3624|0,Pd=+l1[Ud>>3],Od=e[Js>>2]|0,ql=e[zs>>2]|0,Hd=N6+48|0,Yd=e[Hd>>2]|0,aE(t,Pd,3,Od,ql,Yd)),Vd=((n0+3528|0)+(o<<5)|0)+24|0,Hl=+l1[Vd>>3],Yl=N6+80|0,lr=e[Yl>>2]|0,Vl=N6+84|0,Zs=e[Vl>>2]|0,mA=~~Hl,pA=+(mA|0),Jl=Hl-pA,Bn=e[f0>>2]|0,Jd=Bn+2852|0,zl=e[Jd>>2]|0,zd=Zs+(mA<<3)|0,Kd=+l1[zd>>3],Wd=1-Jl,Zd=Kd*Wd,js=mA+1|0,EA=Zs+(js<<3)|0,jd=+l1[EA>>3],Xd=jd*Jl,Kl=Xd+Zd,CA=~~Kl,Wl=+(CA|0),Zl=Kl-Wl,eh=Zl==0,jl=(CA|0)>0,GC=jl&eh,$=GC?1:Zl,th=GC<<31>>31,F=th+CA|0,BA=1-$,rh=F+1|0,cu=0;z9=(lr+(F*160|0)|0)+(cu<<2)|0,nh=e[z9>>2]|0,Xl=+(nh|0),oh=Xl*BA,sh=(lr+(rh*160|0)|0)+(cu<<2)|0,QA=e[sh>>2]|0,ah=+(QA|0),yA=ah*$,ec=yA+oh,$h=ec,tc=(zl+336|0)+(cu<<2)|0,s[tc>>2]=$h,ic=cu+1|0,zQ=(ic|0)==40,!zQ;)cu=ic;for(lh=n0+3584|0,wA=+l1[lh>>3],vA=~~wA,rc=+(vA|0),nc=wA-rc,ch=Bn+2856|0,oc=e[ch>>2]|0,gh=Zs+(vA<<3)|0,sc=+l1[gh>>3],uh=1-nc,dh=sc*uh,hh=vA+1|0,fh=Zs+(hh<<3)|0,ac=+l1[fh>>3],Ac=ac*nc,SA=Ac+dh,Xs=~~SA,Ih=+(Xs|0),lc=SA-Ih,cc=lc==0,mh=(Xs|0)>0,UC=mh&cc,g=UC?1:lc,ph=UC<<31>>31,T=ph+Xs|0,Eh=1-g,gc=T+1|0,gu=0;Ch=(lr+(T*160|0)|0)+(gu<<2)|0,Bh=e[Ch>>2]|0,Qh=+(Bh|0),wh=Qh*Eh,vh=(lr+(gc*160|0)|0)+(gu<<2)|0,uc=e[vh>>2]|0,kh=+(uc|0),dc=kh*g,Sh=dc+wh,Qn=Sh,bh=(oc+336|0)+(gu<<2)|0,s[bh>>2]=Qn,hc=gu+1|0,KQ=(hc|0)==40,!KQ;)gu=hc;if(!V8){for(Dh=n0+3616|0,bA=+l1[Dh>>3],_h=N6+88|0,ea=e[_h>>2]|0,DA=~~bA,xh=+(DA|0),_A=bA-xh,Ic=Bn+2860|0,Lh=e[Ic>>2]|0,Mh=ea+(DA<<3)|0,Rh=+l1[Mh>>3],Th=1-_A,mc=Rh*Th,Nh=DA+1|0,Gh=ea+(Nh<<3)|0,Uh=+l1[Gh>>3],ta=Uh*_A,Eo=ta+mc,xA=~~Eo,Ph=+(xA|0),LA=Eo-Ph,qh=LA==0,Hh=(xA|0)>0,PC=Hh&qh,h=PC?1:LA,pc=PC<<31>>31,N=pc+xA|0,Yh=1-h,Vh=N+1|0,uu=0;Jh=(lr+(N*160|0)|0)+(uu<<2)|0,zh=e[Jh>>2]|0,Kh=+(zh|0),ia=Kh*Yh,Wh=(lr+(Vh*160|0)|0)+(uu<<2)|0,Ec=e[Wh>>2]|0,jh=+(Ec|0),Xh=jh*h,ef=Xh+ia,tf=ef,E7=(Lh+336|0)+(uu<<2)|0,s[E7>>2]=tf,Cc=uu+1|0,WQ=(Cc|0)==40,!WQ;)uu=Cc;for(C7=n0+3648|0,Bc=+l1[C7>>3],MA=~~Bc,i7=+(MA|0),Co=Bc-i7,nf=Bn+2864|0,of=e[nf>>2]|0,sf=ea+(MA<<3)|0,af=+l1[sf>>3],Af=1-Co,Qc=af*Af,$f=MA+1|0,lf=ea+($f<<3)|0,cf=+l1[lf>>3],gf=cf*Co,Bo=gf+Qc,RA=~~Bo,uf=+(RA|0),wc=Bo-uf,df=wc==0,hf=(RA|0)>0,OC=hf&df,m=OC?1:wc,ra=OC<<31>>31,G=ra+RA|0,ff=1-m,vc=G+1|0,du=0;kc=(lr+(G*160|0)|0)+(du<<2)|0,mf=e[kc>>2]|0,pf=+(mf|0),yn=pf*ff,Ef=(lr+(vc*160|0)|0)+(du<<2)|0,Cf=e[Ef>>2]|0,wn=+(Cf|0),Bf=wn*m,Sc=Bf+yn,yf=Sc,Qo=(of+336|0)+(du<<2)|0,s[Qo>>2]=yf,bc=du+1|0,ZQ=(bc|0)==40,!ZQ;)du=bc}for(wf=((n0+3528|0)+(o<<5)|0)+8|0,Dc=+l1[wf>>3],vf=N6+40|0,cr=e[vf>>2]|0,FA=~~Dc,kf=+(FA|0),_c=Dc-kf,Sf=cr+(FA<<2)|0,bf=e[Sf>>2]|0,Lc=+(bf|0),Df=1-_c,_f=Lc*Df,xf=FA+1|0,Mc=cr+(xf<<2)|0,Lf=e[Mc>>2]|0,yo=+(Lf|0),Mf=yo*_c,Rf=Mf+_f,Ff=Rf,TA=zl+32|0,s[TA>>2]=Ff,Tf=n0+3568|0,NA=+l1[Tf>>3],GA=~~NA,Nf=+(GA|0),Rc=NA-Nf,Fc=cr+(GA<<2)|0,Gf=e[Fc>>2]|0,Gc=+(Gf|0),Uf=1-Rc,Uc=Gc*Uf,Pc=GA+1|0,Pf=cr+(Pc<<2)|0,Of=e[Pf>>2]|0,Oc=+(Of|0),qc=Oc*Rc,qf=qc+Uc,Hc=qf,Hf=oc+32|0,s[Hf>>2]=Hc,V8||(Yf=n0+3600|0,Vc=+l1[Yf>>3],UA=~~Vc,Jc=+(UA|0),zc=Vc-Jc,Kc=Bn+2860|0,Wc=e[Kc>>2]|0,Vf=cr+(UA<<2)|0,Jf=e[Vf>>2]|0,Kf=+(Jf|0),Wf=1-zc,Zf=Kf*Wf,jf=UA+1|0,Xf=cr+(jf<<2)|0,Zc=e[Xf>>2]|0,PA=+(Zc|0),eI=PA*zc,tI=eI+Zf,iI=tI,Xc=Wc+32|0,s[Xc>>2]=iI,rI=n0+3632|0,eg=+l1[rI>>3],OA=~~eg,na=+(OA|0),tg=eg-na,nI=Bn+2864|0,oI=e[nI>>2]|0,sI=cr+(OA<<2)|0,aI=e[sI>>2]|0,oa=+(aI|0),AI=1-tg,$I=oa*AI,lI=OA+1|0,cI=cr+(lI<<2)|0,gI=e[cI>>2]|0,uI=+(gI|0),dI=uI*tg,hI=dI+$I,rg=hI,II=oI+32|0,s[II>>2]=rg),mI=((n0+3528|0)+(o<<5)|0)+16|0,pI=+l1[mI>>3],sa=N6+76|0,ng=e[sa>>2]|0,EI=N6+60|0,CI=e[EI>>2]|0,kn=N6+56|0,og=e[kn>>2]|0,Tl?ag=0:(sg=n0+3408|0,BI=+l1[sg>>3],ag=BI),AE(t,pI,0,ng,CI,og,ag),QI=n0+3576|0,Ag=+l1[QI>>3],$g=e[sa>>2]|0,yI=N6+64|0,wI=e[yI>>2]|0,vI=e[kn>>2]|0,AE(t,Ag,1,$g,wI,vI,0),V8?(wo=e[f0>>2]|0,KI=wo+2852|0,Cg=e[KI>>2]|0,WI=wo+3496|0,VA=+l1[WI>>3],Bg=VA,ZI=Cg+4|0,s[ZI>>2]=Bg,XI=wo+3504|0,em=+l1[XI>>3],Qg=em,tm=Cg+8|0,s[tm>>2]=Qg,im=wo+2856|0,yg=e[im>>2]|0,ca=yg+4|0,s[ca>>2]=Bg,rm=yg+8|0,s[rm>>2]=Qg,gr=wo):(kI=n0+3608|0,SI=+l1[kI>>3],HA=e[sa>>2]|0,bI=N6+68|0,DI=e[bI>>2]|0,_I=e[kn>>2]|0,AE(t,SI,2,HA,DI,_I,0),xI=n0+3640|0,lg=+l1[xI>>3],LI=e[sa>>2]|0,cg=N6+72|0,MI=e[cg>>2]|0,RI=e[kn>>2]|0,AE(t,lg,3,LI,MI,RI,0),Rr=e[f0>>2]|0,ug=Rr+2852|0,dg=e[ug>>2]|0,FI=Rr+3496|0,hg=+l1[FI>>3],Aa=hg,TI=dg+4|0,s[TI>>2]=Aa,NI=Rr+3504|0,GI=+l1[NI>>3],$a=GI,UI=dg+8|0,s[UI>>2]=$a,PI=Rr+2856|0,Ig=e[PI>>2]|0,OI=Ig+4|0,s[OI>>2]=Aa,qI=Ig+8|0,s[qI>>2]=$a,YA=Rr+2860|0,la=e[YA>>2]|0,HI=la+4|0,s[HI>>2]=Aa,YI=la+8|0,s[YI>>2]=$a,VI=Rr+2864|0,Eg=e[VI>>2]|0,JI=Eg+4|0,s[JI>>2]=Aa,zI=Eg+8|0,s[zI>>2]=$a,gr=Rr),nm=+l1[N4>>3],om=N6+152|0,wg=e[om>>2]|0,vg=~~nm,sm=wg+(vg<<3)|0,kg=e[sm>>2]|0,Sg=(wg+(vg<<3)|0)+4|0,_7=e[Sg>>2]|0,bg=e[gr>>2]|0,am=gr+4|0,Am=e[am>>2]|0,lm=(bg|0)==(Am|0),a=lm?1:2,JA=gr+8|0,ga=gr+12|0,Dg=t+8|0,_g=t+4|0,Q7=0;;){if(cm=ce(1,3208)|0,ua=(gr+544|0)+(Q7<<2)|0,e[ua>>2]=cm,ko=ce(1,16)|0,gm=(gr+32|0)+(Q7<<2)|0,e[gm>>2]=ko,da=26304+(Q7<<4)|0,e[ko>>2]=e[da>>2]|0,e[ko+4>>2]=e[da+4>>2]|0,e[ko+8>>2]=e[da+8>>2]|0,e[ko+12>>2]=e[da+12>>2]|0,um=e[JA>>2]|0,KA=(Q7|0)<(um|0),KA||(dm=Q7+1|0,e[JA>>2]=dm),hm=(gr+288|0)+(Q7<<2)|0,e[hm>>2]=0,xg=e[ua>>2]|0,ha=kg+(Q7*3208|0)|0,ge(xg|0,ha|0,3208)|0,Lg=e[ga>>2]|0,fm=(Q7|0)<(Lg|0),fm||(Im=Q7+1|0,e[ga>>2]=Im),mm=e[ha>>2]|0,Mg=(mm|0)>0,Mg)for(IE=0;;){Em=((kg+(Q7*3208|0)|0)+1092|0)+(IE<<2)|0,ri=e[Em>>2]|0,_e=e[f0>>2]|0,r7=R9(2840)|0,Cm=(_e+1568|0)+(ri<<2)|0,e[Cm>>2]=r7,Rg=(_7+(ri<<5)|0)+12|0,Fg=e[Rg>>2]|0,ge(r7|0,Fg|0,2840)|0,WA=_e+20|0,Bm=e[WA>>2]|0,So=(Bm|0)>(ri|0),So||(Qm=ri+1|0,e[WA>>2]=Qm),ym=(_7+(ri<<5)|0)+8|0,Tg=e[ym>>2]|0,ZA=r7+8|0,e[ZA>>2]=Tg,wm=_7+(ri<<5)|0,Ng=e[wm>>2]|0,Gg=(_e+1312|0)+(ri<<2)|0,e[Gg>>2]=Ng,Ug=_e+3420|0,jA=e[Ug>>2]|0,Pg=(jA|0)==0,bo=r7+12|0,e$=e[bo>>2]|0,Og=(e$|0)>0;do if(Pg){if(Og)for(qg=(_7+(ri<<5)|0)+24|0,fa=e[qg>>2]|0,Sm=r7+24|0,La=0;;)if(hr=Sm+(La<<2)|0,Dn=fa+(La<<4)|0,Mi=e[Dn>>2]|0,Ri=(Mi|0)==0,Ri||(Fi=e[hr>>2]|0,Ca=Fi|1,e[hr>>2]=Ca),Ba=(fa+(La<<4)|0)+4|0,eu=e[Ba>>2]|0,tu=(eu|0)==0,tu||(b2=e[hr>>2]|0,B5=b2|2,e[hr>>2]=B5),s5=(fa+(La<<4)|0)+8|0,R2=e[s5>>2]|0,M2=(R2|0)==0,M2||(y2=e[hr>>2]|0,Q5=y2|4,e[hr>>2]=Q5),m5=(fa+(La<<4)|0)+12|0,L5=e[m5>>2]|0,q5=(L5|0)==0,q5||(M5=e[hr>>2]|0,Y2=M5|8,e[hr>>2]=Y2),p5=La+1|0,$5=e[bo>>2]|0,u5=(p5|0)<($5|0),u5)La=p5;else{ka=$5;break}else ka=e$;Qa=(_7+(ri<<5)|0)+16|0,$$=e[Qa>>2]|0,Ti=_e+24|0,Gr=e[Ti>>2]|0,l$=(Gr|0)>0,Zm=$$;e:do if(l$)for(yp=0;;){if(c$=(_e+1824|0)+(yp<<2)|0,jm=e[c$>>2]|0,g$=(jm|0)==($$|0),g$){L=yp;break e}if(iu=yp+1|0,wa=(iu|0)<(Gr|0),wa)yp=iu;else{Ae=116;break}}else Ae=116;while(!1);if((Ae|0)==116&&(Ae=0,Xm=Gr+1|0,e[Ti>>2]=Xm,L=Gr),ep=r7+20|0,e[ep>>2]=L,tp=(_e+1824|0)+(L<<2)|0,e[tp>>2]=Zm,_n=(ka|0)>0,!_n)break;for(tt=(_7+(ri<<5)|0)+24|0,Le=r7+280|0,qr=0,y$=0;;){if(ru=e[tt>>2]|0,ip=ru+(y$<<4)|0,u$=e[ip>>2]|0,nu=(u$|0)==0,rp=u$,nu)Lo=ru,up=qr;else{Sa=e[Ti>>2]|0,op=(Sa|0)>0;e:do if(op)for(pp=0;;){if(sp=(_e+1824|0)+(pp<<2)|0,ap=e[sp>>2]|0,Ap=(ap|0)==(u$|0),Ap){M=pp;break e}if(ou=pp+1|0,$p=(ou|0)<(Sa|0),$p)pp=ou;else{Ae=123;break}}else Ae=123;while(!1);(Ae|0)==123&&(Ae=0,lp=Sa+1|0,e[Ti>>2]=lp,M=Sa),cp=qr+1|0,n7=Le+(qr<<2)|0,e[n7>>2]=M,xn=(_e+1824|0)+(M<<2)|0,e[xn>>2]=rp,c0=e[tt>>2]|0,Lo=c0,up=cp}if(d$=(Lo+(y$<<4)|0)+4|0,Mo=e[d$>>2]|0,ni=(Mo|0)==0,Ro=Mo,ni)E2=Lo,Xe=up;else{z1=e[Ti>>2]|0,q1=(z1|0)>0;e:do if(q1)for(fp=0;;){if(H1=(_e+1824|0)+(fp<<2)|0,V1=e[H1>>2]|0,X1=(V1|0)==(Mo|0),X1){D=fp;break e}if(n2=fp+1|0,j1=(n2|0)<(z1|0),j1)fp=n2;else{Ae=147;break}}else Ae=147;while(!1);(Ae|0)==147&&(Ae=0,O1=z1+1|0,e[Ti>>2]=O1,D=z1),c2=up+1|0,W1=Le+(up<<2)|0,e[W1>>2]=D,h2=(_e+1824|0)+(D<<2)|0,e[h2>>2]=Ro,$0=e[tt>>2]|0,E2=$0,Xe=c2}if(s2=(E2+(y$<<4)|0)+8|0,K1=e[s2>>2]|0,d2=(K1|0)==0,$2=K1,d2)L2=E2,C$=Xe;else{i2=e[Ti>>2]|0,l2=(i2|0)>0;e:do if(l2)for(Ip=0;;){if(r2=(_e+1824|0)+(Ip<<2)|0,A2=e[r2>>2]|0,e2=(A2|0)==(K1|0),e2){y=Ip;break e}if(o2=Ip+1|0,f2=(o2|0)<(i2|0),f2)Ip=o2;else{Ae=153;break}}else Ae=153;while(!1);(Ae|0)==153&&(Ae=0,k2=i2+1|0,e[Ti>>2]=k2,y=i2),D2=Xe+1|0,S2=Le+(Xe<<2)|0,e[S2>>2]=y,Q2=(_e+1824|0)+(y<<2)|0,e[Q2>>2]=$2,Z=e[tt>>2]|0,L2=Z,C$=D2}if(N2=(L2+(y$<<4)|0)+12|0,U2=e[N2>>2]|0,m2=(U2|0)==0,W2=U2,m2)LC=C$;else{P2=e[Ti>>2]|0,G2=(P2|0)>0;e:do if(G2)for(mp=0;;){if(q2=(_e+1824|0)+(mp<<2)|0,Z2=e[q2>>2]|0,A5=(Z2|0)==(U2|0),A5){x=mp;break e}if(H2=mp+1|0,N1=(H2|0)<(P2|0),N1)mp=H2;else{Ae=159;break}}else Ae=159;while(!1);(Ae|0)==159&&(Ae=0,t5=P2+1|0,e[Ti>>2]=t5,x=P2),T5=C$+1|0,i5=Le+(C$<<2)|0,e[i5>>2]=x,x5=(_e+1824|0)+(x<<2)|0,e[x5>>2]=W2,LC=T5}if(b5=y$+1|0,Y5=e[bo>>2]|0,g5=(b5|0)<(Y5|0),g5)qr=LC,y$=b5;else break}}else{if(Og)for(vm=(_7+(ri<<5)|0)+28|0,Sn=e[vm>>2]|0,km=r7+24|0,xa=0;;)if(x7=km+(xa<<2)|0,bm=Sn+(xa<<4)|0,Dm=e[bm>>2]|0,_m=(Dm|0)==0,_m||(xm=e[x7>>2]|0,Lm=xm|1,e[x7>>2]=Lm),Mm=(Sn+(xa<<4)|0)+4|0,L7=e[Mm>>2]|0,Rm=(L7|0)==0,Rm||($6=e[x7>>2]|0,n3=$6|2,e[x7>>2]=n3),l3=(Sn+(xa<<4)|0)+8|0,N3=e[l3>>2]|0,E6=(N3|0)==0,E6||(k3=e[x7>>2]|0,S3=k3|4,e[x7>>2]=S3),a6=(Sn+(xa<<4)|0)+12|0,i6=e[a6>>2]|0,V3=(i6|0)==0,V3||(Z5=e[x7>>2]|0,x3=Z5|8,e[x7>>2]=x3),d3=xa+1|0,J3=e[bo>>2]|0,d6=(d3|0)<(J3|0),d6)xa=d3;else{jg=J3;break}else jg=e$;Fm=(_7+(ri<<5)|0)+20|0,Yg=e[Fm>>2]|0,B7=_e+24|0,Ia=e[B7>>2]|0,t$=(Ia|0)>0,Vg=Yg;e:do if(t$)for(hp=0;;){if(Jg=(_e+1824|0)+(hp<<2)|0,Nm=e[Jg>>2]|0,zg=(Nm|0)==(Yg|0),zg){B=hp;break e}if(Kg=hp+1|0,Gm=(Kg|0)<(Ia|0),Gm)hp=Kg;else{Ae=100;break}}else Ae=100;while(!1);if((Ae|0)==100&&(Ae=0,Zg=Ia+1|0,e[B7>>2]=Zg,B=Ia),Pm=r7+20|0,e[Pm>>2]=B,Om=(_e+1824|0)+(B<<2)|0,e[Om>>2]=Vg,qm=(jg|0)>0,!qm)break;for(Do=(_7+(ri<<5)|0)+28|0,ma=r7+280|0,Uo=0,B$=0;;){if(pa=e[Do>>2]|0,Hm=pa+(B$<<4)|0,i$=e[Hm>>2]|0,Vm=(i$|0)==0,Xg=i$,Vm)xo=pa,Rn=Uo;else{_o=e[B7>>2]|0,Jm=(_o|0)>0;e:do if(Jm)for(Qp=0;;){if(zm=(_e+1824|0)+(Qp<<2)|0,r$=e[zm>>2]|0,n$=(r$|0)==(i$|0),n$){w=Qp;break e}if(Ea=Qp+1|0,o$=(Ea|0)<(_o|0),o$)Qp=Ea;else{Ae=107;break}}else Ae=107;while(!1);(Ae|0)==107&&(Ae=0,s$=_o+1|0,e[B7>>2]=s$,w=_o),Tr=Uo+1|0,Nr=ma+(Uo<<2)|0,e[Nr>>2]=w,a$=(_e+1824|0)+(w<<2)|0,e[a$>>2]=Xg,J=e[Do>>2]|0,xo=J,Rn=Tr}if(A$=(xo+(B$<<4)|0)+4|0,dr=e[A$>>2]|0,bn=(dr|0)==0,Km=dr,bn)R5=xo,Ln=Rn;else{y5=e[B7>>2]|0,T1=(y5|0)>0;e:do if(T1)for(Ep=0;;){if(d5=(_e+1824|0)+(Ep<<2)|0,l5=e[d5>>2]|0,X2=(l5|0)==(dr|0),X2){S=Ep;break e}if(g2=Ep+1|0,w5=(g2|0)<(y5|0),w5)Ep=g2;else{Ae=171;break}}else Ae=171;while(!1);(Ae|0)==171&&(Ae=0,r5=y5+1|0,e[B7>>2]=r5,S=y5),a5=Rn+1|0,h5=ma+(Rn<<2)|0,e[h5>>2]=S,z2=(_e+1824|0)+(S<<2)|0,e[z2>>2]=Km,j=e[Do>>2]|0,R5=j,Ln=a5}if(f5=(R5+(B$<<4)|0)+8|0,e5=e[f5>>2]|0,c5=(e5|0)==0,F2=e5,c5)f3=R5,Mn=Ln;else{v5=e[B7>>2]|0,J5=(v5|0)>0;e:do if(J5)for(Cp=0;;){if(i3=(_e+1824|0)+(Cp<<2)|0,E5=e[i3>>2]|0,I3=(E5|0)==(e5|0),I3){b=Cp;break e}if(h3=Cp+1|0,r3=(h3|0)<(v5|0),r3)Cp=h3;else{Ae=177;break}}else Ae=177;while(!1);(Ae|0)==177&&(Ae=0,a3=v5+1|0,e[B7>>2]=a3,b=v5),B3=Ln+1|0,G5=ma+(Ln<<2)|0,e[G5>>2]=b,W5=(_e+1824|0)+(b<<2)|0,e[W5>>2]=F2,u0=e[Do>>2]|0,f3=u0,Mn=B3}if(D3=(f3+(B$<<4)|0)+12|0,y3=e[D3>>2]|0,X3=(y3|0)==0,q3=y3,X3)O9=Mn;else{b3=e[B7>>2]|0,t3=(b3|0)>0;e:do if(t3)for(Bp=0;;){if(s6=(_e+1824|0)+(Bp<<2)|0,T3=e[s6>>2]|0,H3=(T3|0)==(y3|0),H3){v=Bp;break e}if(c3=Bp+1|0,g3=(c3|0)<(b3|0),g3)Bp=c3;else{Ae=183;break}}else Ae=183;while(!1);(Ae|0)==183&&(Ae=0,u3=b3+1|0,e[B7>>2]=u3,v=b3),Q3=Mn+1|0,z5=ma+(Mn<<2)|0,e[z5>>2]=v,V5=(_e+1824|0)+(v<<2)|0,e[V5>>2]=q3,O9=Q3}if(S5=B$+1|0,Y3=e[bo>>2]|0,U5=(S5|0)<(Y3|0),U5)Uo=O9,B$=S5;else break}}while(!1);su=_e+3480|0,au=+l1[su>>3],Da=au*1e3,Fo=(_e+1056|0)+(Q7<<2)|0,No=e[Fo>>2]|0,gp=e[Dg>>2]|0,Go=+(gp|0),fr=Go*.5,Au=_e+(Q7<<2)|0,Ur=e[Au>>2]|0,o7=Ur>>1,h$=Da>fr,RC=h$?fr:Da,f$=RC/fr,j7=+(o7|0),m$=j7*f$,p$=~~m$,Pr=No+1116|0,e[Pr>>2]=p$,g6=(_7+(ri<<5)|0)+4|0,_a=e[g6>>2]|0;do if((_a|0)==2)lu=250;else if((_a|0)==1){if(Or=e[Ug>>2]|0,$u=(Or|0)==0,L4=_e+2996|0,E$=_e+2968|0,ay=$u?E$:L4,sy=e[ay>>2]|0,oy=+(sy|0),FC=oy*1e3,kt=FC>fr,!kt){lu=FC;break}lu=fr}else lu=RC;while(!1);C0=e[Gg>>2]|0,S0=(C0|0)==2;do if(S0){if(Q0=_e+12|0,b0=e[Q0>>2]|0,E0=(b0|0)>0,E0)for(fE=0;;){if(y0=(_e+544|0)+(fE<<2)|0,w0=e[y0>>2]|0,B0=e[w0>>2]|0,_0=(B0|0)>0,_0)for(vp=0;;){K0=(w0+1092|0)+(vp<<2)|0,v0=e[K0>>2]|0,T0=(v0|0)==(ri|0);do if(T0){if(N0=e[_g>>2]|0,U0=(N0|0)>0,U0)MC=0,pE=0;else{dp=0;break}for(;;)if(O0=(w0+4|0)+(pE<<2)|0,k0=e[O0>>2]|0,V0=(k0|0)==(vp|0),F0=V0&1,V=F0+MC|0,L0=pE+1|0,JQ=(L0|0)==(N0|0),JQ){dp=V;break}else MC=V,pE=L0}else dp=0;while(!1);if(G0=vp+1|0,J0=(G0|0)<(B0|0),q0=(dp|0)==0,Z0=J0&q0,Z0)vp=G0;else{uE=dp;break}}else uE=0;if(P0=fE+1|0,H0=(P0|0)<(b0|0),o1=(uE|0)==0,Y0=H0&o1,Y0)fE=P0;else{gE=uE;break}}else gE=0;if(i1=lu/fr,x0=+(gE|0),n1=x0*j7,g1=n1*i1,m1=e[ZA>>2]|0,h1=+(m1|0),u1=g1/h1,A1=u1+.9,c1=~~A1,s1=o5(c1,m1)|0,$1=r7+4|0,e[$1>>2]=s1,j0=o5(gE,o7)|0,E1=(s1|0)>(j0|0),!E1){q=$1,Z1=s1,x1=m1;break}Q1=(j0|0)%(m1|0)&-1,p1=j0-Q1|0,e[$1>>2]=p1,q=$1,Z1=p1,x1=m1}else{if(B1=lu/fr,w1=B1*j7,v1=e[ZA>>2]|0,k1=+(v1|0),L1=w1/k1,M1=L1+.9,S1=~~M1,D1=o5(S1,v1)|0,F1=r7+4|0,e[F1>>2]=D1,U1=(D1|0)>(o7|0),!U1){q=F1,Z1=D1,x1=v1;break}b1=(o7|0)%(v1|0)&-1,P1=o7-b1|0,e[F1>>2]=P1,q=F1,Z1=P1,x1=v1}while(!1);if(G1=(Z1|0)==0,G1&&(e[q>>2]=x1),m3=IE+1|0,M6=e[ha>>2]|0,R6=(m3|0)<(M6|0),R6)IE=m3;else break}if(S6=Q7+1|0,r6=(S6|0)<(a|0),r6)Q7=S6;else break}return h6=n0+3428|0,b6=e[h6>>2]|0,G6=(b6|0)>0,G6?(X6=t+16|0,e[X6>>2]=b6):(v6=e[f0>>2]|0,L3=v6+3396|0,o6=e[L3>>2]|0,C6=v6+3400|0,z3=+l1[C6>>3],M3=~~z3,K3=+(M3|0),e6=z3-K3,F6=o6+4|0,l6=e[F6>>2]|0,o3=(l6|0)==0,o3?Q=-1:(K6=e[_g>>2]|0,B6=l6+(M3<<3)|0,R3=+l1[B6>>3],Y6=1-e6,A6=R3*Y6,D6=M3+1|0,U6=l6+(D6<<3)|0,t9=+l1[U6>>3],Q6=t9*e6,e9=Q6+A6,G3=+(K6|0),V6=e9*G3,Ay=~~V6,Q=Ay),s9=t+16|0,e[s9>>2]=Q),c9=n0+3424|0,P6=e[c9>>2]|0,J6=t+20|0,e[J6>>2]=P6,T6=n0+3440|0,i9=e[T6>>2]|0,_6=t+12|0,e[_6>>2]=i9,O6=(b6|0)==0,O6?g0=0:(U3=n0+3444|0,a9=e[U3>>2]|0,d9=+(a9|0),o9=+(b6|0),B9=d9/o9,Q9=~~B9,g0=Q9),y9=t+24|0,e[y9>>2]=g0,h9=n0+3420|0,f9=e[h9>>2]|0,H9=(f9|0)==0,H9?(E=0,E|0):(y6=e[h6>>2]|0,A9=n0+3360|0,e[A9>>2]=y6,Y9=e[c9>>2]|0,w9=n0+3364|0,e[w9>>2]=Y9,we=e[T6>>2]|0,ue=n0+3368|0,e[ue>>2]=we,Ee=n0+3444|0,V9=e[Ee>>2]|0,ie=n0+3372|0,e[ie>>2]=V9,F9=n0+3448|0,v9=+l1[F9>>3],$9=n0+3376|0,l1[$9>>3]=v9,ve=n0+3432|0,Re=+l1[ve>>3],de=n0+3384|0,l1[de>>3]=Re,E=0,E|0)}function Wb(t,o,a,$){t=t|0,o=o|0,a=a|0,$=+$;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0;if(V=C,I=(a|0)<1,I)h=-131;else if(E=t+28|0,y=e[E>>2]|0,x=$,M=x+1e-7,L=M,R=!(L>=1),m=R?L:.9998999834060669,F=y+3416|0,s[F>>2]=m,T=m,N=y+3400|0,Q=Zb(o,a,T,0,N)|0,B=y+3396|0,e[B>>2]=Q,S=(Q|0)==0,S)h=-130;else return jb(t,o,a),b=y+3420|0,e[b>>2]=0,v=y+3464|0,e[v>>2]=1,w=Kb(t)|0,D=(w|0)==0,D?(g=0,g|0):(QC(t),g=w,g|0);return QC(t),g=h,g|0}function aE(t,o,a,$,g,h){t=t|0,o=+o,a=a|0,$=$|0,g=g|0,h=h|0;var m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0;for(w1=C,m=~~o,I=+(m|0),M=o-I,W=t+28|0,$0=e[W>>2]|0,Q0=($0+2852|0)+(a<<2)|0,N0=e[Q0>>2]|0,Z0=$+(m*20|0)|0,h1=e[Z0>>2]|0,I1=+(h1|0),E=1-M,Q=I1*E,B=m+1|0,S=$+(B*20|0)|0,b=e[S>>2]|0,v=+(b|0),w=v*M,D=w+Q,y=D,x=N0+12|0,s[x>>2]=y,L=($+(m*20|0)|0)+4|0,R=e[L>>2]|0,F=+(R|0),T=F*E,N=($+(B*20|0)|0)+4|0,G=e[N>>2]|0,V=+(G|0),X=V*M,K=X+T,a0=K,r0=N0+16|0,s[r0>>2]=a0,s0=($+(m*20|0)|0)+8|0,J=e[s0>>2]|0,o0=+(J|0),q=o0*E,d0=($+(B*20|0)|0)+8|0,t0=e[d0>>2]|0,j=+(t0|0),u0=j*M,c0=u0+q,l0=c0,Z=N0+20|0,s[Z>>2]=l0,I0=($+(m*20|0)|0)+12|0,g0=+s[I0>>2],f0=g0,n0=f0*E,h0=($+(B*20|0)|0)+12|0,p0=+s[h0>>2],C0=p0,S0=C0*M,b0=S0+n0,E0=b0,y0=N0+24|0,s[y0>>2]=E0,w0=($+(m*20|0)|0)+16|0,B0=+s[w0>>2],_0=B0,K0=_0*E,M0=($+(B*20|0)|0)+16|0,v0=+s[M0>>2],T0=v0,U0=T0*M,O0=U0+K0,k0=O0,V0=N0+28|0,s[V0>>2]=k0,F0=g+(m<<2)|0,L0=e[F0>>2]|0,G0=+(L0|0),z0=G0*E,J0=g+(B<<2)|0,q0=e[J0>>2]|0,P0=+(q0|0),H0=P0*M,o1=H0+z0,Y0=o1,i1=N0+496|0,s[i1>>2]=Y0,p1=0;x0=(h+(m*68|0)|0)+(p1<<2)|0,n1=e[x0>>2]|0,d1=+(n1|0),g1=d1*E,m1=(h+(B*68|0)|0)+(p1<<2)|0,u1=e[m1>>2]|0,A1=+(u1|0),c1=A1*M,s1=c1+g1,$1=s1,j0=(N0+36|0)+(p1<<2)|0,s[j0>>2]=$1,E1=p1+1|0,Q1=(E1|0)==17,!Q1;)p1=E1}function AE(t,o,a,$,g,h,m){t=t|0,o=+o,a=a|0,$=$|0,g=g|0,h=h|0,m=+m;var I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0;for(S2=C,v=~~o,w=+(v|0),d0=o-w,n0=t+28|0,_0=e[n0>>2]|0,L0=(_0+2852|0)+(a<<2)|0,x0=e[L0>>2]|0,j0=$+(v<<2)|0,S1=e[j0>>2]|0,q1=+(S1|0),D=1-d0,X=q1*D,K=v+1|0,a0=$+(K<<2)|0,W=e[a0>>2]|0,r0=+(W|0),s0=r0*d0,J=s0+X,o0=J,q=x0+108|0,s[q>>2]=o0,t0=h+(a*12|0)|0,j=e[t0>>2]|0,u0=x0+120|0,e[u0>>2]=j,c0=(h+(a*12|0)|0)+4|0,$0=e[c0>>2]|0,l0=x0+124|0,e[l0>>2]=$0,Z=(h+(a*12|0)|0)+8|0,I0=e[Z>>2]|0,g0=x0+128|0,e[g0>>2]=I0,i2=0;;)if(f0=(g+(v*204|0)|0)+(i2<<2)|0,h0=e[f0>>2]|0,p0=+(h0|0),C0=p0*D,S0=(g+(K*204|0)|0)+(i2<<2)|0,Q0=e[S0>>2]|0,b0=+(Q0|0),E0=b0*d0,y0=E0+C0,w0=y0,B0=(x0+132|0)+(i2<<2)|0,s[B0>>2]=w0,K0=i2+1|0,K1=(K0|0)==17,K1){l2=0;break}else i2=K0;for(;;)if(M1=((g+(v*204|0)|0)+68|0)+(l2<<2)|0,D1=e[M1>>2]|0,R1=+(D1|0),F1=R1*D,U1=((g+(K*204|0)|0)+68|0)+(l2<<2)|0,b1=e[U1>>2]|0,P1=+(b1|0),Z1=P1*d0,G1=Z1+F1,x1=G1,z1=(x0+200|0)+(l2<<2)|0,s[z1>>2]=x1,H1=l2+1|0,d2=(H1|0)==17,d2){r2=0;break}else l2=H1;for(;Y1=((g+(v*204|0)|0)+136|0)+(r2<<2)|0,V1=e[Y1>>2]|0,X1=+(V1|0),n2=X1*D,j1=((g+(K*204|0)|0)+136|0)+(r2<<2)|0,O1=e[j1>>2]|0,c2=+(O1|0),W1=c2*d0,h2=W1+n2,y=h2,x=(x0+268|0)+(r2<<2)|0,s[x>>2]=y,M=r2+1|0,$2=(M|0)==17,!$2;)r2=M;for(L=x0+132|0,R=+s[L>>2],k0=R+6,F=x0+132|0,T=R,N=T+m,G=N,V=G>2]=k2,M0=1;I=(x0+132|0)+(M0<<2)|0,B=+s[I>>2],v0=(x0+132|0)+(M0<<2)|0,T0=B,N0=T0+m,U0=N0,O0=U0>2]=A2,V0=M0+1|0,s2=(V0|0)==17,!s2;)M0=V0;for(F0=x0+200|0,G0=+s[F0>>2],z0=G0+6,J0=x0+200|0,q0=G0,Z0=q0+m,P0=Z0,H0=P0>2]=o2,o1=1;E=(x0+200|0)+(o1<<2)|0,S=+s[E>>2],Y0=(x0+200|0)+(o1<<2)|0,i1=S,n1=i1+m,d1=n1,g1=d1>2]=e2,m1=o1+1|0,E2=(m1|0)==17,!E2;)o1=m1;for(h1=x0+268|0,u1=+s[h1>>2],A1=u1+6,c1=x0+268|0,s1=u1,$1=s1+m,E1=$1,I1=E1>2]=t2,Q1=1;Q=(x0+268|0)+(Q1<<2)|0,b=+s[Q>>2],p1=(x0+268|0)+(Q1<<2)|0,B1=b,w1=B1+m,v1=w1,k1=v1>2]=f2,L1=Q1+1|0,a2=(L1|0)==17,!a2;)Q1=L1}function Zb(t,o,a,$,g){t=t|0,o=o|0,a=+a,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0;k1=C,v=($|0)==0;e:do if(v){for(J=26336,j0=0;;){if(s0=e[J>>2]|0,o0=s0+12|0,q=e[o0>>2]|0,d0=(q|0)==-1,j=(q|0)==(t|0),p1=d0|j,p1&&(u0=s0+16|0,c0=e[u0>>2]|0,$0=(c0|0)>(o|0),!$0&&(l0=s0+20|0,Z=e[l0>>2]|0,I0=(Z|0)<(o|0),!I0&&(g0=e[s0>>2]|0,f0=s0+8|0,n0=e[f0>>2]|0,p0=+l1[n0>>3],C0=p0>a,!C0&&(b0=n0+(g0<<3)|0,E0=+l1[b0>>3],y0=E0>2]|0,K0=t0+12|0,G0=e[K0>>2]|0,n1=(G0|0)==-1,A1=(G0|0)==(t|0),B1=n1|A1,B1&&(c1=t0+16|0,D=e[c1>>2]|0,y=(D|0)>(o|0),!y&&(x=t0+20|0,M=e[x>>2]|0,L=(M|0)<(o|0),!L&&(R=e[t0>>2]|0,F=t0+4|0,T=e[F>>2]|0,N=+l1[T>>3],G=V>3],a0=V>K,!a0))))){m=V,I=R,E=h0,Q=T,u1=N;break e}if($1=E1+1|0,W=26336+($1<<2)|0,r0=($1|0)==17,r0){h=0;break}else h0=W,E1=$1}return h|0}while(!1);w0=(I|0)>0;e:do if(w0)for(_0=u1,Q1=0;;){if(B0=!(m>=_0),b=Q1+1|0,!B0&&(M0=Q+(b<<3)|0,v0=+l1[M0>>3],T0=m>3],_0=S,Q1=b}else I1=0;while(!1);return U0=(I1|0)==(I|0),U0?(O0=+(I|0),k0=O0+-.001,w1=k0):(V0=Q+(I1<<3)|0,F0=+l1[V0>>3],L0=F0,z0=I1+1|0,J0=Q+(z0<<3)|0,q0=+l1[J0>>3],Z0=q0,P0=L0,H0=m-P0,o1=Z0-L0,Y0=o1,i1=H0/Y0,x0=i1,d1=+(I1|0),g1=x0+d1,m1=g1,w1=m1),l1[g>>3]=w1,h1=e[E>>2]|0,h=h1,h|0}function jb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0;x0=C,I=t+28|0,E=e[I>>2]|0,L=E+3396|0,r0=e[L>>2]|0,e[t>>2]=0,l0=t+4|0,e[l0>>2]=o,b0=t+8|0,e[b0>>2]=a,U0=E+3456|0,e[U0>>2]=1,P0=E+3460|0,e[P0>>2]=1,o1=E+3400|0,Y0=+l1[o1>>3],Q=~~Y0,B=+(Q|0),S=Y0-B,b=E+3472|0,l1[b>>3]=Y0,v=E+3488|0,w=e[v>>2]|0,D=(w|0)==0,D?(y=r0+120|0,x=e[y>>2]|0,M=x+(Q<<3)|0,R=+l1[M>>3],F=1-S,T=R*F,N=Q+1|0,G=x+(N<<3)|0,V=+l1[G>>3],X=V*S,K=X+T,a0=E+3480|0,l1[a0>>3]=K,g=N,h=F):($=1-S,m=Q+1|0,g=m,h=$),W=r0+112|0,s0=e[W>>2]|0,J=s0+(Q<<2)|0,o0=e[J>>2]|0,q=+(o0|0),d0=q*h,t0=s0+(g<<2)|0,j=e[t0>>2]|0,u0=+(j|0),c0=u0*S,$0=c0+d0,Z=E+3496|0,l1[Z>>3]=$0,I0=r0+116|0,g0=e[I0>>2]|0,f0=g0+(Q<<2)|0,n0=e[f0>>2]|0,h0=+(n0|0),p0=h0*h,C0=g0+(g<<2)|0,S0=e[C0>>2]|0,Q0=+(S0|0),E0=Q0*S,y0=E0+p0,w0=E+3504|0,l1[w0>>3]=y0,B0=E+3512|0,l1[B0>>3]=-6,_0=E+3520|0,l1[_0>>3]=Y0,K0=E+3528|0,l1[K0>>3]=Y0,M0=E+3536|0,l1[M0>>3]=Y0,v0=E+3544|0,l1[v0>>3]=Y0,T0=E+3552|0,l1[T0>>3]=Y0,N0=E+3560|0,l1[N0>>3]=Y0,O0=E+3568|0,l1[O0>>3]=Y0,k0=E+3576|0,l1[k0>>3]=Y0,V0=E+3584|0,l1[V0>>3]=Y0,F0=E+3592|0,l1[F0>>3]=Y0,L0=E+3600|0,l1[L0>>3]=Y0,G0=E+3608|0,l1[G0>>3]=Y0,z0=E+3616|0,l1[z0>>3]=Y0,J0=E+3624|0,l1[J0>>3]=Y0,q0=E+3632|0,l1[q0>>3]=Y0,Z0=E+3640|0,l1[Z0>>3]=Y0,H0=E+3648|0,l1[H0>>3]=Y0}function Xb(t,o,a,$,g,h){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0;var m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0;if(q0=C,I=(g|0)!=0,E=I?$:0,L=I?h:0,r0=o+(E<<2)|0,l0=e[r0>>2]|0,b0=520336+(l0<<2)|0,_0=e[b0>>2]|0,K0=o+(L<<2)|0,M0=e[K0>>2]|0,v0=520336+(M0<<2)|0,Q=e[v0>>2]|0,B=a+(g<<2)|0,S=e[B>>2]|0,b=a+(E<<2)|0,v=e[b>>2]|0,w=a+(L<<2)|0,D=e[w>>2]|0,y=(S|0)/4&-1,x=(v|0)/4&-1,M=y-x|0,R=(v|0)/2&-1,F=M+R|0,T=(S|0)/2&-1,N=T+y|0,m=(D|0)/-4&-1,G=N+m|0,V=(D|0)/2&-1,X=G+V|0,K=(M|0)>0,K?(a0=y-x|0,W=a0<<2,u4(t|0,0,W|0)|0,N0=M):N0=0,s0=(N0|0)<(F|0),s0)for(J=y+R|0,o0=J-N0|0,q=o0-x|0,U0=N0,V0=0;u0=_0+(V0<<2)|0,c0=+s[u0>>2],$0=t+(U0<<2)|0,Z=+s[$0>>2],I0=Z*c0,s[$0>>2]=I0,g0=U0+1|0,f0=V0+1|0,T0=(f0|0)==(q|0),!T0;)U0=g0,V0=f0;if(d0=(D|0)>1,d0){for(t0=G+1|0,j=(X|0)>(t0|0),k0=G,L0=V;F0=L0+-1|0,C0=Q+(F0<<2)|0,S0=+s[C0>>2],Q0=t+(k0<<2)|0,E0=+s[Q0>>2],y0=E0*S0,s[Q0>>2]=y0,w0=k0+1|0,B0=(w0|0)<(X|0),B0;)k0=w0,L0=F0;z0=j?X:t0,O0=z0}else O0=G;n0=(S|0)>(O0|0),n0&&(G0=t+(O0<<2)|0,h0=S-O0|0,p0=h0<<2,u4(G0|0,0,p0|0)|0)}function eD(t,o,a){t=t|0,o=+o,a=+a;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0;if(Z=C,C=C+64|0,$0=Z+32|0,c0=Z,$=R9(688)|0,g=$+408|0,ub(g),D=~~o,Wb(g,t,D,a)|0,X=$+440|0,lb(X),cb(X,553008,553016),o0=$+456|0,OS(o0,g)|0,q=$+568|0,US(o0,q)|0,d0=AQ(0)|0,aD(d0),t0=AD()|0,_S($,t0)|0,j=$+680|0,e[j>>2]=0,u0=$+684|0,e[u0>>2]=0,h=$+360|0,db(o0,X,h,$0,c0)|0,oE($,h)|0,oE($,$0)|0,oE($,c0)|0,m=$+392|0,I=lQ($,m)|0,E=(I|0)==0,E)return C=Z,$|0;for(Q=$+396|0,B=$+404|0,S=$+400|0;b=e[u0>>2]|0,v=e[Q>>2]|0,w=v+b|0,y=e[B>>2]|0,x=w+y|0,M=(x|0)==0,M||(F=e[j>>2]|0,T=K7(F,x)|0,e[j>>2]=T,N=e[u0>>2]|0,G=T+N|0,V=e[m>>2]|0,K=e[Q>>2]|0,ge(G|0,V|0,K|0)|0,a0=K+N|0,e[u0>>2]=a0,W=T+a0|0,r0=e[S>>2]|0,s0=e[B>>2]|0,ge(W|0,r0|0,s0|0)|0,J=s0+a0|0,e[u0>>2]=J),L=lQ($,m)|0,R=(L|0)==0,!R;);return C=Z,$|0}function tD(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0;E=C,xS(t)|0,o=t+568|0,PS(o)|0,a=t+456|0,dQ(a),$=t+440|0,gb($),g=t+408|0,QC(g),h=t+680|0,m=e[h>>2]|0,p2(m),p2(t)}function iD(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0;return h=C,a=t+456|0,$=hQ(a,o)|0,$|0}function rD(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0;if(Z=C,a=t+456|0,qS(a,o)|0,$=t+568|0,w=fQ(a,$)|0,V=(w|0)==1,!!V)for(d0=t+360|0,t0=t+392|0,j=t+684|0,u0=t+396|0,c0=t+404|0,$0=t+680|0,g=t+392|0,h=t+400|0;;){if(FS($,0)|0,GS($)|0,E=uQ(a,d0)|0,Q=(E|0)==0,!Q)for(;;){if(oE(t,d0)|0,b=cQ(t,t0)|0,v=(b|0)==0,!v)for(;D=e[j>>2]|0,y=e[u0>>2]|0,x=y+D|0,M=e[c0>>2]|0,L=x+M|0,R=(L|0)==0,R||(N=e[$0>>2]|0,G=K7(N,L)|0,e[$0>>2]=G,X=e[j>>2]|0,K=G+X|0,a0=e[g>>2]|0,W=e[u0>>2]|0,ge(K|0,a0|0,W|0)|0,r0=W+X|0,e[j>>2]=r0,s0=G+r0|0,J=e[h>>2]|0,o0=e[c0>>2]|0,ge(s0|0,J|0,o0|0)|0,q=o0+r0|0,e[j>>2]=q),F=cQ(t,t0)|0,T=(F|0)==0,!T;);if(B=uQ(a,d0)|0,S=(B|0)==0,S)break}if(m=fQ(a,$)|0,I=(m|0)==1,!I)break}}function nD(t){t=t|0;var o=0,a=0,$=0,g=0;return g=C,o=t+684|0,a=e[o>>2]|0,a|0}function oD(t){t=t|0;var o=0,a=0,$=0,g=0,h=0;return h=C,o=t+684|0,e[o>>2]=0,a=t+680|0,$=e[a>>2]|0,$|0}function $E(t,o){t=+t,o=o|0;var a=0,$=0,g=0;return g=C,a=+sD(t,o),+a}function Pu(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0;if(N3=C,C=C+688|0,n3=N3+424|0,K5=N3+192|0,t3=N3,o0=o5(a,o)|0,q=(o0|0)==0,q){C=N3;return}for(W=o0-a|0,Y1=t3+4|0,e[Y1>>2]=a,e[t3>>2]=a,t2=a,I5=a,D3=2;a2=t2+a|0,G2=a2+I5|0,N5=t3+(D3<<2)|0,e[N5>>2]=G2,D5=G2>>>0>>0,n5=D3+1|0,D5;)k2=I5,I5=G2,D3=n5,t2=k2;if(d0=0-a|0,n0=t+W|0,_0=(W|0)>0,_0)for(L0=(a|0)==0,x0=n0,S1=1,Z2=0,G5=t,H5=1;;){j0=S1&3,z1=(j0|0)==3;do if(z1){e[K5>>2]=G5,q1=(H5|0)>1;e:do if(q1){for(B=H5,y=G5,O1=G5,X5=1;;){if(H1=y+d0|0,V1=B+-2|0,X1=t3+(V1<<2)|0,n2=e[X1>>2]|0,U5=n2+a|0,r0=0-U5|0,j1=y+r0|0,c2=mi[$&15](O1,j1)|0,W1=(c2|0)>-1,W1&&(h2=mi[$&15](O1,H1)|0,s2=(h2|0)>-1,s2)){f3=X5;break}if(E2=mi[$&15](j1,H1)|0,K1=(E2|0)>-1,d2=X5+1|0,$2=K5+(X5<<2)|0,K1?(e[$2>>2]=j1,i2=B+-1|0,h=j1,E=i2):(e[$2>>2]=H1,h=H1,E=V1),l2=(E|0)>1,!l2){f3=d2;break}V=e[K5>>2]|0,B=E,y=h,O1=V,X5=d2}if(r2=(f3|0)<2,!r2&&(A2=K5+(f3<<2)|0,e[A2>>2]=n3,!L0))for(w=a,P2=n3;;){for(m2=w>>>0>256,o2=m2?256:w,W2=e[K5>>2]|0,ge(P2|0,W2|0,o2|0)|0,L2=W2,X3=0;D2=K5+(X3<<2)|0,S2=X3+1|0,Q2=K5+(S2<<2)|0,N2=e[Q2>>2]|0,ge(L2|0,N2|0,o2|0)|0,U2=L2+o2|0,e[D2>>2]=U2,r3=(S2|0)==(f3|0),!r3;)L2=N2,X3=S2;if(e2=(w|0)==(o2|0),e2)break e;f2=w-o2|0,K=e[A2>>2]|0,w=f2,P2=K}}while(!1);V2=S1>>>2,q2=Z2<<30,A5=V2|q2,H2=Z2>>>2,N1=H5+2|0,l0=A5,x1=H2,V5=N1}else{if(t5=H5+-1|0,T5=t3+(t5<<2)|0,i5=e[T5>>2]|0,x5=G5,j2=x0-x5|0,b5=i5>>>0>>0,b5){e[K5>>2]=G5,Y5=(H5|0)>1;e:do if(Y5){for(S=H5,x=G5,M2=G5,b3=1;;){if(g5=x+d0|0,b2=S+-2|0,B5=t3+(b2<<2)|0,s5=e[B5>>2]|0,$6=s5+a|0,s0=0-$6|0,R2=x+s0|0,y2=mi[$&15](M2,R2)|0,Q5=(y2|0)>-1,Q5&&(m5=mi[$&15](M2,g5)|0,L5=(m5|0)>-1,L5)){y3=b3;break}if(q5=mi[$&15](R2,g5)|0,M5=(q5|0)>-1,Y2=b3+1|0,p5=K5+(b3<<2)|0,M5?(e[p5>>2]=R2,$5=S+-1|0,m=R2,Q=$5):(e[p5>>2]=g5,m=g5,Q=b2),u5=(Q|0)>1,!u5){y3=Y2;break}X=e[K5>>2]|0,S=Q,x=m,M2=X,b3=Y2}if(y5=(y3|0)<2,!y5&&(T1=K5+(y3<<2)|0,e[T1>>2]=n3,!L0))for(D=a,e5=n3;;){for(f5=D>>>0>256,l5=f5?256:D,R5=e[K5>>2]|0,ge(e5|0,R5|0,l5|0)|0,h5=R5,q3=0;g2=K5+(q3<<2)|0,w5=q3+1|0,r5=K5+(w5<<2)|0,a5=e[r5>>2]|0,ge(h5|0,a5|0,l5|0)|0,z2=h5+l5|0,e[g2>>2]=z2,a3=(w5|0)==(y3|0),!a3;)h5=a5,q3=w5;if(d5=(D|0)==(l5|0),d5)break e;X2=D-l5|0,a0=e[T1>>2]|0,D=X2,e5=a0}}while(!1)}else lE(G5,a,$,S1,Z2,H5,0,t3);if(c5=(H5|0)==1,c5){F2=Z2<<1,v5=S1>>>31,J5=v5|F2,i3=S1<<1,l0=i3,x1=J5,V5=0;break}else{E5=t5>>>0>31,I3=H5+-33|0,g=E5?0:S1,M=E5?S1:Z2,L=E5?I3:t5,h3=M<>>t0,u0=j|h3,c0=g<>>0>>0,I0)S1=$0,Z2=x1,G5=Z,H5=V5;else{T=x1,N=$0,B3=Z,z5=V5;break}}else T=0,N=1,B3=t,z5=1;if(lE(B3,a,$,N,T,z5,0,t3),g0=(z5|0)==1,f0=(N|0)==1,Q3=f0&g0,h0=(T|0)==0,u3=h0&Q3,u3){C=N3;return}else S0=N,v0=T,W5=B3,S5=z5;for(;;){if(p0=(S5|0)<2,!p0){H0=v0<<2,o1=S0>>>30,Y0=o1|H0,i1=S5+-2|0,n1=S0<<1,d1=n1&2147483646,g1=o1<<31,m1=d1|g1,h1=m1^3,u1=Y0>>>1,A1=t3+(i1<<2)|0,c1=e[A1>>2]|0,Y3=c1+a|0,J=0-Y3|0,s1=W5+J|0,$1=S5+-1|0,lE(s1,a,$,h1,u1,$1,1,t3),E1=u1<<1,I1=o1&1,Q1=E1|I1,p1=h1<<1,B1=p1|1,w1=W5+d0|0,lE(w1,a,$,B1,Q1,i1,1,t3),S0=B1,v0=Q1,W5=w1,S5=i1;continue}C0=S0+-1|0,Q0=(C0|0)==0;do if(Q0)P0=32,l3=56;else{if(b0=C0&1,E0=(b0|0)==0,E0){for(b=C0,s6=0;;)if(y0=s6+1|0,w0=b>>>1,B0=w0&1,K0=(B0|0)==0,K0)b=w0,s6=y0;else{R=y0;break}M0=(R|0)==0,M0?l3=51:J0=R}else l3=51;if((l3|0)==51){if(l3=0,T0=(v0|0)==0,T0){P0=64,l3=56;break}if(N0=v0&1,U0=(N0|0)==0,U0)v=v0,T3=0;else{I=0,k1=S0,D1=v0,b1=0;break}for(;;)if(O0=T3+1|0,k0=v>>>1,V0=k0&1,F0=(V0|0)==0,F0)v=k0,T3=O0;else{F=O0,H3=T3;break}if(G0=H3+33|0,z0=(F|0)==0,z0){I=0,k1=S0,D1=v0,b1=0;break}else J0=G0}q0=J0>>>0>31,q0?(P0=J0,l3=56):(I=J0,k1=S0,D1=v0,b1=J0)}while(!1);if((l3|0)==56&&(l3=0,Z0=P0+-32|0,I=Z0,k1=v0,D1=0,b1=P0),v1=k1>>>I,L1=32-I|0,M1=D1<>>I,U1=b1+S5|0,G=W5+d0|0,P1=(U1|0)==1,Z1=(R1|0)==1,c3=Z1&P1,G1=(F1|0)==0,g3=G1&c3,g3)break;S0=R1,v0=F1,W5=G,S5=U1}C=N3}function lE(t,o,a,$,g,h,m,I){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0;var E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0;y2=C,C=C+720|0,R2=y2+456|0,q2=y2+228|0,G2=y2,e[G2>>2]=t,q=0-o|0,d0=($|0)!=1,v0=(g|0)!=0,J0=v0|d0;e:do if(J0)if(g1=I+(h<<2)|0,Q1=e[g1>>2]|0,F1=0-Q1|0,V1=t+F1|0,K1=mi[a&15](V1,t)|0,k2=(K1|0)<1,k2)B=t,M=h,G=m,H2=1,M2=18;else for(v=t,T=h,V=m,B0=V1,H0=g,x5=1,b2=$;;){if(t0=(V|0)==0,h0=(T|0)>1,g5=t0&h0,g5){if(b0=v+q|0,E0=T+-2|0,y0=I+(E0<<2)|0,w0=e[y0>>2]|0,_0=mi[a&15](b0,B0)|0,K0=(_0|0)>-1,K0){S=v,L=T,t5=x5;break e}if(B5=w0+o|0,J=0-B5|0,M0=v+J|0,T0=mi[a&15](M0,B0)|0,N0=(T0|0)>-1,N0){S=v,L=T,t5=x5;break e}}U0=x5+1|0,O0=G2+(x5<<2)|0,e[O0>>2]=B0,k0=b2+-1|0,V0=(k0|0)==0;do if(V0)$1=32,M2=15;else{if(F0=k0&1,L0=(F0|0)==0,L0){for(y=k0,I5=0;;)if(G0=I5+1|0,z0=y>>>1,q0=z0&1,Z0=(q0|0)==0,Z0)y=z0,I5=G0;else{X=G0;break}P0=(X|0)==0,P0?M2=10:A1=X}else M2=10;if((M2|0)==10){if(M2=0,o1=(H0|0)==0,o1){$1=64,M2=15;break}if(Y0=H0&1,i1=(Y0|0)==0,i1)x=H0,b5=0;else{Q=0,E1=b2,B1=H0,L1=0;break}for(;;)if(x0=b5+1|0,n1=x>>>1,d1=n1&1,m1=(d1|0)==0,m1)x=n1,b5=x0;else{K=x0,Y5=b5;break}if(h1=Y5+33|0,u1=(K|0)==0,u1){Q=0,E1=b2,B1=H0,L1=0;break}else A1=h1}c1=A1>>>0>31,c1?($1=A1,M2=15):(Q=A1,E1=b2,B1=H0,L1=A1)}while(!1);if((M2|0)==15&&(M2=0,s1=$1+-32|0,Q=s1,E1=H0,B1=0,L1=$1),j0=E1>>>Q,I1=32-Q|0,p1=B1<>>Q,k1=L1+T|0,M1=(w1|0)!=1,S1=(v1|0)!=0,D1=S1|M1,!D1){S=B0,L=k1,t5=U0;break e}if(a0=e[G2>>2]|0,R1=I+(k1<<2)|0,U1=e[R1>>2]|0,b1=0-U1|0,P1=B0+b1|0,Z1=mi[a&15](P1,a0)|0,G1=(Z1|0)<1,G1){B=B0,M=k1,G=0,H2=U0,M2=18;break}else w=B0,T=k1,V=0,B0=P1,H0=v1,x5=U0,b2=w1,v=w}else B=t,M=h,G=m,H2=1,M2=18;while(!1);if((M2|0)==18)if(x1=(G|0)==0,x1)S=B,L=M,t5=H2;else{C=y2;return}z1=(t5|0)<2;e:do if(!z1&&(q1=G2+(t5<<2)|0,e[q1>>2]=R2,H1=(o|0)==0,!H1))for(F=o,d2=R2;;){for(E2=F>>>0>256,X1=E2?256:F,a2=e[G2>>2]|0,ge(d2|0,a2|0,X1|0)|0,h2=a2,i5=0;j1=G2+(i5<<2)|0,O1=i5+1|0,c2=G2+(O1<<2)|0,W1=e[c2>>2]|0,ge(h2|0,W1|0,X1|0)|0,s2=h2+X1|0,e[j1>>2]=s2,A5=(O1|0)==(t5|0),!A5;)h2=W1,i5=O1;if(Y1=(F|0)==(X1|0),Y1)break e;n2=F-X1|0,s0=e[q1>>2]|0,F=n2,d2=s0}while(!1);e[q2>>2]=S,$2=(L|0)>1;e:do if($2){for(D=L,N=S,o2=S,j2=1;;){if(i2=N+q|0,l2=D+-2|0,r2=I+(l2<<2)|0,A2=e[r2>>2]|0,s5=A2+o|0,o0=0-s5|0,e2=N+o0|0,f2=mi[a&15](o2,e2)|0,t2=(f2|0)>-1,t2&&(D2=mi[a&15](o2,i2)|0,S2=(D2|0)>-1,S2)){N1=j2;break}if(Q2=mi[a&15](e2,i2)|0,N2=(Q2|0)>-1,L2=j2+1|0,U2=q2+(j2<<2)|0,N2?(e[U2>>2]=e2,m2=D+-1|0,E=e2,b=m2):(e[U2>>2]=i2,E=i2,b=l2),W2=(b|0)>1,!W2){N1=L2;break}W=e[q2>>2]|0,D=b,N=E,o2=W,j2=L2}if(P2=(N1|0)<2,P2)Q0=R2;else if(V2=q2+(N1<<2)|0,e[V2>>2]=R2,j=(o|0)==0,j)Q0=R2;else for(R=o,S0=R2;;){for(p0=R>>>0>256,c0=p0?256:R,C0=e[q2>>2]|0,ge(S0|0,C0|0,c0|0)|0,f0=C0,T5=0;l0=q2+(T5<<2)|0,Z=T5+1|0,I0=q2+(Z<<2)|0,g0=e[I0>>2]|0,ge(f0|0,g0|0,c0|0)|0,n0=f0+c0|0,e[l0>>2]=n0,Z2=(Z|0)==(N1|0),!Z2;)f0=g0,T5=Z;if(u0=(R|0)==(c0|0),u0){Q0=R2;break e}$0=R-c0|0,r0=e[V2>>2]|0,R=$0,S0=r0}}else Q0=R2;while(!1);C=y2}function z7(t){t=+t;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0;return L=C,l1[w2>>3]=t,a=e[w2>>2]|0,$=e[w2+4>>2]|0,Q=$&2146435072,B=Q>>>0>1126170624,S=!1,b=(Q|0)==1126170624,v=b&S,w=B|v,w?(o=t,+o):(D=($|0)<0,y=t+-4503599627370496,g=y+4503599627370496,h=t+4503599627370496,m=h+-4503599627370496,x=D?g:m,I=x==0,I?(E=D?-0:0,o=E,+o):(o=x,+o))}function TQ(t){t=+t;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0;return w=C,a=(s[w2>>2]=t,e[w2>>2]|0),$=a&2130706432,g=$>>>0>1249902592,g?(o=t,+o):(h=(a|0)<0,m=t+-8388608,I=m+8388608,E=t+8388608,Q=E+-8388608,b=h?I:Q,B=b==0,B?(S=h?-0:0,o=S,+o):(o=b,+o))}function sD(t,o){t=+t,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0;return X=C,h=(o|0)>1023,h?(m=t*898846567431158e293,y=o+-1023|0,x=(y|0)>1023,x?(M=m*898846567431158e293,L=o+-2046|0,R=(L|0)>1023,a=R?1023:L,$=a,G=M):($=y,G=m)):(F=(o|0)<-1022,F?(T=t*22250738585072014e-324,N=o+1022|0,I=(N|0)<-1022,I?(E=T*22250738585072014e-324,Q=o+2044|0,B=(Q|0)<-1022,g=B?-1022:Q,$=g,G=E):($=N,G=T)):($=o,G=t)),S=$+1023|0,b=UQ(S|0,0,52)|0,v=j6,e[w2>>2]=b,e[w2+4>>2]=v,w=+l1[w2>>3],D=G*w,+D}function aD(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0;I=C,o=t+-1|0,a=553040,$=a,e[$>>2]=o,g=a+4|0,h=g,e[h>>2]=0}function AD(){var t=0,o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0;return x=C,t=553040,o=t,E=e[o>>2]|0,Q=t+4|0,B=Q,S=e[B>>2]|0,b=gD(E|0,S|0,1284865837,1481765933)|0,v=j6,w=rs(b|0,v|0,1,0)|0,D=j6,a=553040,$=a,e[$>>2]=w,g=a+4|0,h=g,e[h>>2]=D,m=ns(w|0,D|0,33)|0,I=j6,m|0}function R9(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0,H8=0,K8=0,R8=0,u8=0,F8=0,g4=0,Y8=0,W8=0,ht=0,Nt=0,T8=0,Xt=0,O4=0,B4=0,ae=0,N8=0,Ai=0,Oi=0,qi=0,Hi=0,pi=0,Z8=0,Ei=0,j8=0,Ci=0,X8=0,Bi=0,$i=0,c7=0,Yi=0,Qi=0,yi=0,g7=0,wi=0,li=0,u7=0,Vi=0,Ji=0,zi=0,Ki=0,ci=0,vi=0,Wi=0,ei=0,gi=0,V8=0,ti=0,d7=0,Zi=0,h7=0,ki=0,ji=0,Si=0,bi=0,Xi=0,Di=0,ii=0,_i=0,e7=0,ui=0,J8=0,xi=0,x4=0,Li=0,G8=0,di=0,l9=0,B8=0,vt=0,Q8=0,U8=0,nn=0,yr=0,as=0,Vn=0,As=0,Jn=0,$s=0,ls=0,zn=0,cs=0,on=0,gs=0,us=0,ds=0,Kn=0,hs=0,Wn=0,Zn=0,fs=0,sn=0,jn=0,an=0,Xn=0,eo=0,Is=0,ms=0,ps=0,An=0,to=0,Es=0,wr=0,$n=0,Cs=0,Bs=0,ln=0,f7=0,io=0,Qs=0,ys=0,ro=0,no=0,oo=0,ws=0,I7=0,cn=0,vs=0,so=0,ks=0,Ss=0,bs=0,ao=0,Ds=0,_s=0,xs=0,Ls=0,Ao=0,Ms=0,Rs=0,gn=0,vr=0,un=0,Fs=0,or=0,Ts=0,$o=0,dn=0,lo=0,hn=0,Ns=0,co=0,go=0,Gs=0,uo=0,ho=0,Us=0,kr=0,fo=0,m7=0,fn=0,Sr=0,sr=0,br=0,W7=0,Dr=0,Io=0,Z7=0,S7=0,b7=0,t7=0,D7=0,_r=0,ar=0,Ar=0,xr=0,p7=0,Ps=0,hi=0,sl=0,In=0,mn=0,Ou=0,al=0,Os=0,qu=0,sA=0,Al=0,Hu=0,Yu=0,Vu=0,aA=0,$l=0,ll=0,AA=0,pn=0,cl=0,Ju=0,qs=0,$r=0,zu=0,Ku=0,Wu=0,Zu=0,ju=0,Xu=0,ed=0,td=0,id=0,rd=0,gl=0,Lr=0,nd=0,od=0,ul=0,sd=0,$A=0,Hs=0,lA=0,ad=0,Ad=0,cA=0,dl=0,hl=0,fl=0,gA=0,Il=0,Ys=0,$d=0,ld=0,ml=0,cd=0,gd=0,pl=0,ud=0,dd=0,El=0,Cl=0,Bl=0,Ql=0,yl=0,En=0,hd=0,wl=0,fd=0,vl=0,kl=0,Id=0,md=0,pd=0,uA=0,Sl=0,bl=0,mo=0,Dl=0,dA=0,Ed=0,_l=0,Cd=0,xl=0,Bd=0,Qd=0,Ll=0,Ml=0,yd=0,Vs=0,wd=0,hA=0,Rl=0,Fl=0,vd=0,kd=0,Sd=0,bd=0,Dd=0,_d=0,Js=0,Tl=0,Nl=0,Gl=0,zs=0,xd=0,Ul=0,Ld=0,Pl=0,Md=0,Rd=0,Ol=0,fA=0,Fd=0,Td=0,Ks=0,Nd=0,Ws=0,Gd=0,IA=0,Ud=0,Pd=0,Od=0,ql=0,qd=0,Hd=0,Yd=0,Vd=0,Hl=0,Yl=0,lr=0,Vl=0,Zs=0,mA=0,pA=0,Cn=0,Jl=0,Bn=0,Jd=0,zl=0,zd=0,Kd=0,Wd=0,Zd=0,js=0,EA=0,Mr=0,jd=0,Xd=0,Kl=0,CA=0,Wl=0,Zl=0,eh=0,jl=0,th=0,BA=0,ih=0,rh=0,z9=0,nh=0,Xl=0,oh=0,sh=0,QA=0,ah=0,yA=0,ec=0,Ah=0,$h=0,tc=0,ic=0,lh=0,wA=0,vA=0,rc=0,nc=0,ch=0,oc=0,kA=0,gh=0,sc=0,uh=0,dh=0,hh=0,fh=0,ac=0,Ac=0,SA=0,Xs=0,$c=0,Ih=0,lc=0,cc=0,mh=0,ph=0,Eh=0,gc=0,Ch=0,Bh=0,Qh=0,yh=0,wh=0,vh=0,uc=0,kh=0,dc=0,Sh=0,Qn=0,bh=0,hc=0,Dh=0,po=0,fc=0,bA=0,_h=0,ea=0,DA=0,xh=0,_A=0,Ic=0,Lh=0,Mh=0,Rh=0,Fh=0,Th=0,mc=0,Nh=0,Gh=0,Uh=0,ta=0,Eo=0,xA=0,Ph=0,LA=0,Oh=0,qh=0,Hh=0,pc=0,Yh=0,Vh=0,Jh=0,zh=0,Kh=0,ia=0,Wh=0,Zh=0,Ec=0,jh=0,Xh=0,ef=0,tf=0,E7=0,Cc=0,C7=0,Bc=0,MA=0,rf=0,i7=0,Co=0,nf=0,of=0,sf=0,af=0,Af=0,Qc=0,$f=0,lf=0,yc=0,cf=0,gf=0,Bo=0,RA=0,uf=0,wc=0,df=0,hf=0,ra=0,ff=0,If=0,vc=0,kc=0,mf=0,pf=0,yn=0,Ef=0,Cf=0,wn=0,Bf=0,Sc=0,Qf=0,yf=0,Qo=0,bc=0,wf=0,Dc=0,vf=0,cr=0,FA=0,kf=0,_c=0,xc=0,Sf=0,bf=0,Lc=0,Df=0,_f=0,xf=0,Mc=0,Lf=0,yo=0,Mf=0,vn=0,Rf=0,Ff=0,TA=0,Tf=0,NA=0,GA=0,Nf=0,Rc=0,Fc=0,Gf=0,Tc=0,Nc=0,Gc=0,Uf=0,Uc=0,Pc=0,Pf=0,Of=0,Oc=0,qc=0,qf=0,Hc=0,Yc=0,Hf=0,Yf=0,Vc=0,UA=0,Jc=0,zc=0,Kc=0,Wc=0,Vf=0,Jf=0,zf=0,Kf=0,Wf=0,Zf=0,jf=0,Xf=0,Zc=0,PA=0,eI=0,tI=0,iI=0,jc=0,Xc=0,rI=0,eg=0,OA=0,na=0,tg=0,nI=0,oI=0,sI=0,aI=0,ig=0,oa=0,AI=0,$I=0,lI=0,cI=0,gI=0,uI=0,dI=0,hI=0,rg=0,fI=0,II=0,mI=0,pI=0,sa=0,ng=0,EI=0,CI=0,kn=0,og=0,sg=0,qA=0,BI=0,ag=0,QI=0,Ag=0,$g=0,yI=0,wI=0,vI=0,kI=0,SI=0,aa=0,HA=0,bI=0,DI=0,_I=0,xI=0,lg=0,LI=0,cg=0,MI=0,RI=0,gg=0,Rr=0,ug=0,dg=0,FI=0,hg=0,Aa=0,TI=0,NI=0,GI=0,$a=0,fg=0,UI=0,PI=0,Ig=0,OI=0,qI=0,YA=0,la=0,HI=0,YI=0,VI=0,mg=0,pg=0,Eg=0,JI=0,zI=0,wo=0,KI=0,Cg=0,WI=0,VA=0,Bg=0,ZI=0,jI=0,XI=0,em=0,Qg=0,tm=0,im=0,yg=0,ca=0,rm=0,nm=0,om=0,vo=0,wg=0,vg=0,sm=0,kg=0,Sg=0,_7=0,bg=0,gr=0,am=0,Am=0,$m=0,lm=0,JA=0,ga=0,Dg=0,_g=0,cm=0,ua=0,ko=0,gm=0,da=0,zA=0,um=0,KA=0,dm=0,hm=0,xg=0,ha=0,Lg=0,fm=0,Im=0,mm=0,pm=0,Mg=0,Em=0,ri=0,_e=0,r7=0,Cm=0,Rg=0,Fg=0,WA=0,Bm=0,Fr=0,So=0,Qm=0,ym=0,Tg=0,ZA=0,wm=0,Ng=0,Gg=0,Ug=0,jA=0,XA=0,Pg=0,bo=0,e$=0,Og=0,vm=0,Sn=0,km=0,qg=0,fa=0,Sm=0,Hg=0,x7=0,bm=0,Dm=0,_m=0,xm=0,Lm=0,Mm=0,L7=0,Rm=0,Fm=0,Tm=0,Yg=0,B7=0,Ia=0,t$=0,Vg=0,Jg=0,Nm=0,zg=0,Kg=0,Gm=0,Um=0,Wg=0,Zg=0,Pm=0,Om=0,jg=0,qm=0,Do=0,ma=0,pa=0,Hm=0,i$=0,Ym=0,Vm=0,Xg=0,_o=0,Jm=0,zm=0,r$=0,n$=0,Ea=0,o$=0,s$=0,ur=0,Tr=0,Nr=0,a$=0,A$=0,xo=0,dr=0,bn=0,Km=0,hr=0,Dn=0,Wm=0,Mi=0,Ri=0,Fi=0,Ca=0,Ba=0,eu=0,tu=0,Qa=0,$$=0,Ti=0,ya=0,Gr=0,l$=0,Zm=0,c$=0,jm=0,g$=0,iu=0,wa=0,Xm=0,ep=0,va=0,tp=0,ka=0,_n=0,tt=0,Le=0,ru=0,ip=0,u$=0,nu=0,rp=0,np=0,Sa=0,op=0,sp=0,ap=0,Ap=0,ou=0,$p=0,lp=0,cp=0,n7=0,ba=0,xn=0,d$=0,Lo=0,Mo=0,ni=0,Ro=0,su=0,au=0,Da=0,Fo=0,To=0,No=0,gp=0,Go=0,fr=0,Au=0,Ur=0,o7=0,h$=0,f$=0,j7=0,I$=0,m$=0,p$=0,Pr=0,g6=0,_a=0,Or=0,$u=0,L4=0,E$=0,kt=0,Uo=0,Ln=0,Mn=0,O9=0,Rn=0,qr=0,Xe=0,C$=0;C$=C,K1=t>>>0<245;do if(K1){if(d2=t>>>0<11,Ee=t+11|0,We=Ee&-8,x4=d2?16:We,Os=x4>>>3,IA=e[138262]|0,ta=IA>>>Os,zc=ta&3,yg=(zc|0)==0,!yg){$2=ta&1,f3=$2^1,g3=f3+Os|0,l3=g3<<1,d3=553088+(l3<<2)|0,S0=l3+2|0,G6=553088+(S0<<2)|0,F6=e[G6>>2]|0,U6=F6+8|0,T6=e[U6>>2]|0,y9=(d3|0)==(T6|0);do if(y9)V9=1<>>0>>0,f4&&v2(),be=T6+12|0,b9=e[be>>2]|0,Pt=(b9|0)==(F6|0),Pt){e[be>>2]=d3,e[G6>>2]=T6;break}else v2();while(!1);return pt=g3<<3,p8=pt|3,U4=F6+4|0,e[U4>>2]=p8,w0=pt|4,D4=F6+w0|0,Ze=e[D4>>2]|0,A8=Ze|1,e[D4>>2]=A8,tt=U6,tt|0}if(X4=e[138264]|0,W8=x4>>>0>X4>>>0,W8){if(qi=(ta|0)==0,!qi){Yi=ta<>>12,gn=ks&16,co=io>>>gn,sr=co>>>5,ar=sr&8,qu=ar|gn,cl=co>>>ar,td=cl>>>2,lA=td&4,ld=qu|lA,yl=cl>>>lA,Sl=yl>>>1,Ll=Sl&2,bd=ld|Ll,Pl=yl>>>Ll,Ud=Pl>>>1,Vl=Ud&1,Wd=bd|Vl,eh=Pl>>>Vl,QA=Wd+eh|0,rc=QA<<1,ac=553088+(rc<<2)|0,P1=rc+2|0,gc=553088+(P1<<2)|0,Qn=e[gc>>2]|0,_A=Qn+8|0,Eo=e[_A>>2]|0,zh=(ac|0)==(Eo|0);do if(zh)Cc=1<>>0>>0,cr&&v2(),Mc=Eo+12|0,Nf=e[Mc>>2]|0,Of=(Nf|0)==(Qn|0),Of){e[Mc>>2]=ac,e[gc>>2]=Eo,w=e[138264]|0,la=w;break}else v2();while(!1);return Kc=QA<<3,PA=Kc-x4|0,nI=x4|3,uI=Qn+4|0,e[uI>>2]=nI,CI=Qn+x4|0,wI=PA|1,X1=x4|4,LI=Qn+X1|0,e[LI>>2]=wI,TI=Qn+Kc|0,e[TI>>2]=PA,Cg=(la|0)==0,Cg||(ca=e[138267]|0,bg=la>>>3,ua=bg<<1,Lg=553088+(ua<<2)|0,Rg=e[138262]|0,Ng=1<>2]|0,Q2=e[138266]|0,A5=i2>>>0>>0,A5?v2():(G=Do,Ea=i2)),e[G>>2]=ca,g5=Ea+12|0,e[g5>>2]=ca,q5=ca+8|0,e[q5>>2]=Ea,X2=ca+12|0,e[X2>>2]=Lg),e[138264]=PA,e[138267]=CI,tt=_A,tt|0}if(c5=e[138263]|0,B3=(c5|0)==0,B3)Le=x4;else{for(W5=0-c5|0,D3=c5&W5,y3=D3+-1|0,X3=y3>>>12,q3=X3&16,X5=y3>>>q3,b3=X5>>>5,t3=b3&8,s6=t3|q3,T3=X5>>>t3,H3=T3>>>2,c3=H3&4,u3=s6|c3,Q3=T3>>>c3,z5=Q3>>>1,H5=z5&2,V5=u3|H5,S5=Q3>>>H5,Y3=S5>>>1,U5=Y3&1,$6=V5|U5,n3=S5>>>U5,N3=$6+n3|0,E6=553352+(N3<<2)|0,k3=e[E6>>2]|0,_3=k3+4|0,S3=e[_3>>2]|0,a6=S3&-8,i6=a6-x4|0,ba=i6,f$=k3,E$=k3;;){if(V3=f$+16|0,Z5=e[V3>>2]|0,x3=(Z5|0)==0,x3)if(J3=f$+20|0,d6=e[J3>>2]|0,m3=(d6|0)==0,m3){xn=ba,kt=E$;break}else M6=d6;else M6=Z5;L6=M6+4|0,R6=e[L6>>2]|0,S6=R6&-8,r6=S6-x4|0,h6=r6>>>0>>0,J=h6?r6:ba,a2=h6?M6:E$,ba=J,f$=M6,E$=a2}b6=e[138266]|0,X6=kt>>>0>>0,X6&&v2(),v6=kt+x4|0,L3=kt>>>0>>0,L3||v2(),n6=kt+24|0,o6=e[n6>>2]|0,C6=kt+12|0,z3=e[C6>>2]|0,M3=(z3|0)==(kt|0);do if(M3){if(Y6=kt+20|0,A6=e[Y6>>2]|0,D6=(A6|0)==0,D6)if(t9=kt+16|0,Q6=e[t9>>2]|0,e9=(Q6|0)==0,e9){Mi=0;break}else dr=Q6,Ca=t9;else dr=A6,Ca=Y6;for(;;){if(G3=dr+20|0,n9=e[G3>>2]|0,V6=(n9|0)==0,!V6){dr=n9,Ca=G3;continue}if(s9=dr+16|0,c9=e[s9>>2]|0,P6=(c9|0)==0,P6){hr=dr,tu=Ca;break}else dr=c9,Ca=s9}if(J6=tu>>>0>>0,J6)v2();else{e[tu>>2]=0,Mi=hr;break}}else if(K3=kt+8|0,e6=e[K3>>2]|0,l6=e6>>>0>>0,l6&&v2(),o3=e6+12|0,K6=e[o3>>2]|0,A3=(K6|0)==(kt|0),A3||v2(),c6=z3+8|0,B6=e[c6>>2]|0,R3=(B6|0)==(kt|0),R3){e[o3>>2]=z3,e[c6>>2]=e6,Mi=z3;break}else v2();while(!1);i9=(o6|0)==0;do if(!i9){if(_6=kt+28|0,O6=e[_6>>2]|0,U3=553352+(O6<<2)|0,q6=e[U3>>2]|0,a9=(kt|0)==(q6|0),a9){if(e[U3>>2]=Mi,Xm=(Mi|0)==0,Xm){d9=1<>>0>>0,f9&&v2(),H9=o6+16|0,y6=e[H9>>2]|0,H6=(y6|0)==(kt|0),H6?e[H9>>2]=Mi:(A9=o6+20|0,e[A9>>2]=Mi),Y9=(Mi|0)==0,Y9)break;w9=e[138266]|0,we=Mi>>>0>>0,we&&v2(),ue=Mi+24|0,e[ue>>2]=o6,ie=kt+16|0,F9=e[ie>>2]|0,v9=(F9|0)==0;do if(!v9)if(W6=F9>>>0>>0,W6)v2();else{$9=Mi+16|0,e[$9>>2]=F9,ve=F9+24|0,e[ve>>2]=Mi;break}while(!1);if(Re=kt+20|0,de=e[Re>>2]|0,_9=(de|0)==0,!_9)if(Fe=e[138266]|0,Ge=de>>>0>>0,Ge)v2();else{He=Mi+20|0,e[He>>2]=de,o4=de+24|0,e[o4>>2]=Mi;break}}while(!1);return ke=xn>>>0<16,ke?(Ye=xn+x4|0,J9=Ye|3,Ve=kt+4|0,e[Ve>>2]=J9,Z1=Ye+4|0,he=kt+Z1|0,Ue=e[he>>2]|0,Ce=Ue|1,e[he>>2]=Ce):(W9=x4|3,k9=kt+4|0,e[k9>>2]=W9,k4=xn|1,I0=x4|4,Y4=kt+I0|0,e[Y4>>2]=k4,f0=xn+x4|0,nt=kt+f0|0,e[nt>>2]=xn,Je=e[138264]|0,V4=(Je|0)==0,V4||(ze=e[138267]|0,s4=Je>>>3,R4=s4<<1,re=553088+(R4<<2)|0,d4=e[138262]|0,Be=1<>2]|0,h4=e[138266]|0,ne=Ne>>>0

>>0,ne?v2():(T=fe,n$=Ne)),e[T>>2]=ze,I4=n$+12|0,e[I4>>2]=ze,Se=ze+8|0,e[Se>>2]=n$,a4=ze+12|0,e[a4>>2]=re),e[138264]=xn,e[138267]=v6),Pe=kt+8|0,tt=Pe,tt|0}}else Le=x4}else if(m4=t>>>0>4294967231,m4)Le=-1;else if(S9=t+11|0,f6=S9&-8,J4=e[138263]|0,Ie=(J4|0)==0,Ie)Le=f6;else{S4=0-f6|0,me=S9>>>8,z6=(me|0)==0,z6?_n=0:(F4=f6>>>0>16777215,F4?_n=31:(T4=me+1048320|0,st=T4>>>16,pe=st&8,xe=me<>>16,x9=W3&4,Oe=x9|pe,A4=xe<>>16,f8=N4&2,_8=Oe|f8,e8=14-_8|0,I8=A4<>>15,Ut=e8+m8|0,Ot=Ut<<1,qt=Ut+7|0,t8=f6>>>qt,i8=t8&1,x8=i8|Ot,_n=x8)),Ht=553352+(_n<<2)|0,Yt=e[Ht>>2]|0,Vt=(Yt|0)==0;e:do if(Vt)Mo=S4,I$=0,Mn=0,Xe=86;else for(_t=(_n|0)==31,xt=_n>>>1,Jt=25-xt|0,zt=_t?0:Jt,r8=f6<>2]|0,z4=Et&-8,G4=z4-f6|0,at=G4>>>0>>0,at)if(Lt=(z4|0)==(f6|0),Lt){Ro=G4,Pr=j7,qr=j7,Xe=90;break e}else Lo=G4,Ln=j7;else Lo=d$,Ln=Uo;if(L9=j7+20|0,b4=e[L9>>2]|0,E8=Da>>>31,L8=(j7+16|0)+(E8<<2)|0,o8=e[L8>>2]|0,M8=(b4|0)==0,$4=(b4|0)==(o8|0),op=M8|$4,au=op?su:b4,s8=(o8|0)==0,Kt=Da<<1,s8){Mo=Lo,I$=au,Mn=Ln,Xe=86;break}else d$=Lo,su=au,Da=Kt,j7=o8,Uo=Ln}while(!1);if((Xe|0)==86){if(Mt=(I$|0)==0,At=(Mn|0)==0,rp=Mt&At,rp){if($t=2<<_n,Ct=0-$t|0,Rt=$t|Ct,p4=J4&Rt,oe=(p4|0)==0,oe){Le=f6;break}lt=0-p4|0,Bt=p4<,ct=Bt+-1|0,Qt=ct>>>12,E4=Qt&16,K4=ct>>>E4,W4=K4>>>5,se=W4&8,P4=se|E4,C4=K4>>>se,gt=C4>>>2,_4=gt&4,De=P4|_4,yt=C4>>>_4,a8=yt>>>1,E3=a8&2,Z4=De|E3,wt=yt>>>E3,l4=wt>>>1,Z9=l4&1,c4=Z4|Z9,T9=wt>>>Z9,j4=c4+T9|0,Wt=553352+(j4<<2)|0,C8=e[Wt>>2]|0,m$=C8,Rn=0}else m$=I$,Rn=Mn;$8=(m$|0)==0,$8?(ni=Mo,O9=Rn):(Ro=Mo,Pr=m$,qr=Rn,Xe=90)}if((Xe|0)==90)for(;;){if(Xe=0,Zt=Pr+4|0,l8=e[Zt>>2]|0,jt=l8&-8,ut=jt-f6|0,dt=ut>>>0>>0,o0=dt?ut:Ro,p$=dt?Pr:qr,Ft=Pr+16|0,je=e[Ft>>2]|0,c8=(je|0)==0,!c8){Ro=o0,Pr=je,qr=p$,Xe=90;continue}if(Tt=Pr+20|0,D9=e[Tt>>2]|0,g8=(D9|0)==0,g8){ni=o0,O9=p$;break}else Ro=o0,Pr=D9,qr=p$,Xe=90}if(et=(O9|0)==0,et)Le=f6;else if(H8=e[138264]|0,K8=H8-f6|0,R8=ni>>>0>>0,R8){u8=e[138266]|0,F8=O9>>>0>>0,F8&&v2(),g4=O9+f6|0,Y8=O9>>>0>>0,Y8||v2(),ht=O9+24|0,Nt=e[ht>>2]|0,T8=O9+12|0,Xt=e[T8>>2]|0,O4=(Xt|0)==(O9|0);do if(O4){if(j8=O9+20|0,Ci=e[j8>>2]|0,X8=(Ci|0)==0,X8)if(Bi=O9+16|0,$i=e[Bi>>2]|0,c7=($i|0)==0,c7){Fi=0;break}else Dn=$i,Qa=Bi;else Dn=Ci,Qa=j8;for(;;){if(Qi=Dn+20|0,yi=e[Qi>>2]|0,g7=(yi|0)==0,!g7){Dn=yi,Qa=Qi;continue}if(wi=Dn+16|0,li=e[wi>>2]|0,u7=(li|0)==0,u7){Wm=Dn,$$=Qa;break}else Dn=li,Qa=wi}if(Vi=$$>>>0>>0,Vi)v2();else{e[$$>>2]=0,Fi=Wm;break}}else if(B4=O9+8|0,ae=e[B4>>2]|0,N8=ae>>>0>>0,N8&&v2(),Ai=ae+12|0,Oi=e[Ai>>2]|0,Hi=(Oi|0)==(O9|0),Hi||v2(),pi=Xt+8|0,Z8=e[pi>>2]|0,Ei=(Z8|0)==(O9|0),Ei){e[Ai>>2]=Xt,e[pi>>2]=ae,Fi=Xt;break}else v2();while(!1);Ji=(Nt|0)==0;do if(!Ji){if(zi=O9+28|0,Ki=e[zi>>2]|0,vi=553352+(Ki<<2)|0,Wi=e[vi>>2]|0,ei=(O9|0)==(Wi|0),ei){if(e[vi>>2]=Fi,va=(Fi|0)==0,va){gi=1<>>0>>0,h7&&v2(),ki=Nt+16|0,Si=e[ki>>2]|0,bi=(Si|0)==(O9|0),bi?e[ki>>2]=Fi:(Xi=Nt+20|0,e[Xi>>2]=Fi),Di=(Fi|0)==0,Di)break;ii=e[138266]|0,_i=Fi>>>0>>0,_i&&v2(),e7=Fi+24|0,e[e7>>2]=Nt,ui=O9+16|0,J8=e[ui>>2]|0,xi=(J8|0)==0;do if(!xi)if(G8=J8>>>0>>0,G8)v2();else{di=Fi+16|0,e[di>>2]=J8,l9=J8+24|0,e[l9>>2]=Fi;break}while(!1);if(B8=O9+20|0,vt=e[B8>>2]|0,Q8=(vt|0)==0,!Q8)if(U8=e[138266]|0,nn=vt>>>0>>0,nn)v2();else{yr=Fi+20|0,e[yr>>2]=vt,as=vt+24|0,e[as>>2]=Fi;break}}while(!1);As=ni>>>0<16;e:do if(As)Jn=ni+f6|0,$s=Jn|3,ls=O9+4|0,e[ls>>2]=$s,d1=Jn+4|0,zn=O9+d1|0,cs=e[zn>>2]|0,on=cs|1,e[zn>>2]=on;else{if(gs=f6|3,us=O9+4|0,e[us>>2]=gs,ds=ni|1,l0=f6|4,hs=O9+l0|0,e[hs>>2]=ds,C0=ni+f6|0,Wn=O9+C0|0,e[Wn>>2]=ni,Zn=ni>>>3,fs=ni>>>0<256,fs){sn=Zn<<1,jn=553088+(sn<<2)|0,an=e[138262]|0,Xn=1<>2]|0,Es=e[138266]|0,wr=to>>>0>>0,wr?v2():(F=An,s$=to)),e[F>>2]=g4,$n=s$+12|0,e[$n>>2]=g4,H0=f6+8|0,Cs=O9+H0|0,e[Cs>>2]=s$,Y0=f6+12|0,Bs=O9+Y0|0,e[Bs>>2]=jn;break}if(ln=ni>>>8,f7=(ln|0)==0,f7?Tr=0:(Qs=ni>>>0>16777215,Qs?Tr=31:(ys=ln+1048320|0,ro=ys>>>16,no=ro&8,oo=ln<>>16,cn=I7&4,vs=cn|no,so=oo<>>16,ao=bs&2,Ds=vs|ao,_s=14-Ds|0,xs=so<>>15,Ao=_s+Ls|0,Ms=Ao<<1,Rs=Ao+7|0,vr=ni>>>Rs,un=vr&1,Fs=un|Ms,Tr=Fs)),or=553352+(Tr<<2)|0,h1=f6+28|0,Ts=O9+h1|0,e[Ts>>2]=Tr,M1=f6+16|0,$o=O9+M1|0,x1=f6+20|0,dn=O9+x1|0,e[dn>>2]=0,e[$o>>2]=0,lo=e[138263]|0,hn=1<>2]=g4,Y1=f6+24|0,uo=O9+Y1|0,e[uo>>2]=or,n2=f6+12|0,ho=O9+n2|0,e[ho>>2]=g4,O1=f6+8|0,Us=O9+O1|0,e[Us>>2]=g4;break}kr=e[or>>2]|0,fo=kr+4|0,m7=e[fo>>2]|0,fn=m7&-8,Sr=(fn|0)==(ni|0);t:do if(Sr)Ti=kr;else{for(br=(Tr|0)==31,W7=Tr>>>1,Dr=25-W7|0,Io=br?0:Dr,Z7=ni<>>31,p7=(l$+16|0)+(xr<<2)|0,t7=e[p7>>2]|0,Ps=(t7|0)==0,Ps){v=p7,Zm=l$;break}if(S7=a$<<1,b7=t7+4|0,D7=e[b7>>2]|0,_r=D7&-8,Ar=(_r|0)==(ni|0),Ar){Ti=t7;break t}else a$=S7,l$=t7}if(hi=e[138266]|0,sl=v>>>0>>0,sl)v2();else{e[v>>2]=g4,E0=f6+24|0,In=O9+E0|0,e[In>>2]=Zm,O0=f6+12|0,mn=O9+O0|0,e[mn>>2]=g4,q0=f6+8|0,Ou=O9+q0|0,e[Ou>>2]=g4;break e}}while(!1);if(al=Ti+8|0,sA=e[al>>2]|0,Al=e[138266]|0,Hu=sA>>>0>=Al>>>0,ru=Ti>>>0>=Al>>>0,Yu=Hu&ru,Yu){Vu=sA+12|0,e[Vu>>2]=g4,e[al>>2]=g4,c2=f6+8|0,aA=O9+c2|0,e[aA>>2]=sA,h2=f6+12|0,$l=O9+h2|0,e[$l>>2]=Ti,Q0=f6+24|0,ll=O9+Q0|0,e[ll>>2]=0;break}else v2()}while(!1);return AA=O9+8|0,tt=AA,tt|0}else Le=f6}while(!1);if(pn=e[138264]|0,Ju=pn>>>0>>0,!Ju)return qs=pn-Le|0,$r=e[138267]|0,zu=qs>>>0>15,zu?(Ku=$r+Le|0,e[138267]=Ku,e[138264]=qs,Wu=qs|1,m1=Le+4|0,Zu=$r+m1|0,e[Zu>>2]=Wu,ju=$r+pn|0,e[ju>>2]=qs,Xu=Le|3,ed=$r+4|0,e[ed>>2]=Xu):(e[138264]=0,e[138267]=0,id=pn|3,rd=$r+4|0,e[rd>>2]=id,g0=pn+4|0,gl=$r+g0|0,Lr=e[gl>>2]|0,nd=Lr|1,e[gl>>2]=nd),od=$r+8|0,tt=od,tt|0;if(ul=e[138265]|0,sd=ul>>>0>Le>>>0,sd)return $A=ul-Le|0,e[138265]=$A,Hs=e[138268]|0,ad=Hs+Le|0,e[138268]=ad,Ad=$A|1,q=Le+4|0,cA=Hs+q|0,e[cA>>2]=Ad,dl=Le|3,hl=Hs+4|0,e[hl>>2]=dl,fl=Hs+8|0,tt=fl,tt|0;gA=e[138380]|0,Il=(gA|0)==0;do if(Il)if(Ys=CS(30)|0,$d=Ys+-1|0,ml=$d&Ys,cd=(ml|0)==0,cd){e[138382]=Ys,e[138381]=Ys,e[138383]=-1,e[138384]=-1,e[138385]=0,e[138373]=0,gd=AQ(0)|0,pl=gd&-16,ud=pl^1431655768,e[138380]=ud;break}else v2();while(!1);if(dd=Le+48|0,El=e[138382]|0,Cl=Le+47|0,Bl=El+Cl|0,Ql=0-El|0,En=Bl&Ql,hd=En>>>0>Le>>>0,!hd||(wl=e[138372]|0,fd=(wl|0)==0,!fd&&(vl=e[138370]|0,kl=vl+En|0,Id=kl>>>0<=vl>>>0,md=kl>>>0>wl>>>0,Sa=Id|md,Sa)))return tt=0,tt|0;pd=e[138373]|0,uA=pd&4,bl=(uA|0)==0;e:do if(bl){mo=e[138268]|0,Dl=(mo|0)==0;t:do if(Dl)Xe=174;else{for(Fo=553496;;){if(dA=e[Fo>>2]|0,Ed=dA>>>0>mo>>>0,!Ed&&(_l=Fo+4|0,Cd=e[_l>>2]|0,xl=dA+Cd|0,Bd=xl>>>0>mo>>>0,Bd)){S=Fo,b=_l;break}if(Qd=Fo+8|0,Ml=e[Qd>>2]|0,yd=(Ml|0)==0,yd){Xe=174;break t}else Fo=Ml}if(Fd=e[138265]|0,Td=Bl-Fd|0,Ks=Td&Ql,Nd=Ks>>>0<2147483647,Nd)if(Ws=Pi(Ks|0)|0,Gd=e[S>>2]|0,Pd=e[b>>2]|0,Od=Gd+Pd|0,ql=(Ws|0)==(Od|0),o=ql?Ks:0,ql)if(qd=(Ws|0)==-1,qd)Or=o;else{g6=Ws,L4=o,Xe=194;break e}else wa=Ws,o7=Ks,_a=o,Xe=184;else Or=0}while(!1);do if((Xe|0)==174)if(Vs=Pi(0)|0,wd=(Vs|0)==-1,wd)Or=0;else if(hA=Vs,Rl=e[138381]|0,Fl=Rl+-1|0,vd=Fl&hA,kd=(vd|0)==0,kd?Ur=En:(Sd=Fl+hA|0,Dd=0-Rl|0,_d=Sd&Dd,Js=En-hA|0,Tl=Js+_d|0,Ur=Tl),Nl=e[138370]|0,Gl=Nl+Ur|0,zs=Ur>>>0>Le>>>0,xd=Ur>>>0<2147483647,np=zs&xd,np){if(Ul=e[138372]|0,Ld=(Ul|0)==0,!Ld&&(Md=Gl>>>0<=Nl>>>0,Rd=Gl>>>0>Ul>>>0,sp=Md|Rd,sp)){Or=0;break}if(Ol=Pi(Ur|0)|0,fA=(Ol|0)==(Vs|0),Au=fA?Ur:0,fA){g6=Vs,L4=Au,Xe=194;break e}else wa=Ol,o7=Ur,_a=Au,Xe=184}else Or=0;while(!1);t:do if((Xe|0)==184){Hd=0-o7|0,Yd=(wa|0)!=-1,Vd=o7>>>0<2147483647,Ap=Vd&Yd,Hl=dd>>>0>o7>>>0,$p=Hl&Ap;do if($p)if(Yl=e[138382]|0,lr=Cl-o7|0,Zs=lr+Yl|0,mA=0-Yl|0,pA=Zs&mA,Cn=pA>>>0<2147483647,Cn)if(Jl=Pi(pA|0)|0,Bn=(Jl|0)==-1,Bn){Pi(Hd|0)|0,Or=_a;break t}else{Jd=pA+o7|0,h$=Jd;break}else h$=o7;else h$=o7;while(!1);if(zl=(wa|0)==-1,zl)Or=_a;else{g6=wa,L4=h$,Xe=194;break e}}while(!1);zd=e[138373]|0,Kd=zd|4,e[138373]=Kd,$u=Or,Xe=191}else $u=0,Xe=191;while(!1);if((Xe|0)==191&&(Zd=En>>>0<2147483647,Zd&&(js=Pi(En|0)|0,EA=Pi(0)|0,Mr=(js|0)!=-1,jd=(EA|0)!=-1,ap=Mr&jd,Xd=js>>>0>>0,lp=Xd&ap,lp&&(Kl=EA,CA=js,Wl=Kl-CA|0,Zl=Le+40|0,jl=Wl>>>0>Zl>>>0,E2=jl?Wl:$u,jl&&(g6=js,L4=E2,Xe=194)))),(Xe|0)==194){th=e[138370]|0,BA=th+L4|0,e[138370]=BA,ih=e[138371]|0,rh=BA>>>0>ih>>>0,rh&&(e[138371]=BA),z9=e[138268]|0,nh=(z9|0)==0;e:do if(nh){for(Xl=e[138266]|0,oh=(Xl|0)==0,sh=g6>>>0>>0,cp=oh|sh,cp&&(e[138266]=g6),e[138374]=g6,e[138375]=L4,e[138377]=0,ah=e[138380]|0,e[138271]=ah,e[138270]=-1,ka=0;yA=ka<<1,ec=553088+(yA<<2)|0,d0=yA+3|0,Ah=553088+(d0<<2)|0,e[Ah>>2]=ec,n0=yA+2|0,$h=553088+(n0<<2)|0,e[$h>>2]=ec,tc=ka+1|0,tp=(tc|0)==32,!tp;)ka=tc;ic=L4+-40|0,lh=g6+8|0,wA=lh,vA=wA&7,nc=(vA|0)==0,ch=0-wA|0,oc=ch&7,kA=nc?0:oc,gh=g6+kA|0,sc=ic-kA|0,e[138268]=gh,e[138265]=sc,uh=sc|1,j=kA+4|0,dh=g6+j|0,e[dh>>2]=uh,u1=L4+-36|0,hh=g6+u1|0,e[hh>>2]=40,fh=e[138384]|0,e[138269]=fh}else{for(No=553496;;){if(Ac=e[No>>2]|0,SA=No+4|0,Xs=e[SA>>2]|0,$c=Ac+Xs|0,Ih=(g6|0)==($c|0),Ih){E=Ac,Q=SA,B=Xs,gp=No,Xe=204;break}if(lc=No+8|0,cc=e[lc>>2]|0,mh=(cc|0)==0,mh)break;No=cc}if((Xe|0)==204&&(ph=gp+12|0,Eh=e[ph>>2]|0,Ch=Eh&8,Bh=(Ch|0)==0,Bh&&(Qh=z9>>>0>=E>>>0,yh=z9>>>0>>0,ou=yh&Qh,ou))){wh=B+L4|0,e[Q>>2]=wh,vh=e[138265]|0,uc=vh+L4|0,kh=z9+8|0,dc=kh,Sh=dc&7,bh=(Sh|0)==0,hc=0-dc|0,Dh=hc&7,po=bh?0:Dh,fc=z9+po|0,bA=uc-po|0,e[138268]=fc,e[138265]=bA,_h=bA|1,c0=po+4|0,ea=z9+c0|0,e[ea>>2]=_h,s1=uc+4|0,DA=z9+s1|0,e[DA>>2]=40,xh=e[138384]|0,e[138269]=xh;break}for(Ic=e[138266]|0,Lh=g6>>>0>>0,Lh?(e[138266]=g6,Qo=g6):Qo=Ic,Mh=g6+L4|0,Go=553496;;){if(Rh=e[Go>>2]|0,Fh=(Rh|0)==(Mh|0),Fh){I=Go,fr=Go,Xe=212;break}if(Th=Go+8|0,mc=e[Th>>2]|0,Nh=(mc|0)==0,Nh){To=553496;break}else Go=mc}if((Xe|0)==212)if(Gh=fr+12|0,Uh=e[Gh>>2]|0,xA=Uh&8,Ph=(xA|0)==0,Ph){e[I>>2]=g6,LA=fr+4|0,Oh=e[LA>>2]|0,qh=Oh+L4|0,e[LA>>2]=qh,Hh=g6+8|0,pc=Hh,Yh=pc&7,Vh=(Yh|0)==0,Jh=0-pc|0,Kh=Jh&7,ia=Vh?0:Kh,Wh=g6+ia|0,B0=L4+8|0,Zh=g6+B0|0,Ec=Zh,jh=Ec&7,Xh=(jh|0)==0,ef=0-Ec|0,tf=ef&7,E7=Xh?0:tf,_0=E7+L4|0,C7=g6+_0|0,Bc=C7,MA=Wh,rf=Bc-MA|0,$0=ia+Le|0,i7=g6+$0|0,Co=rf-Le|0,nf=Le|3,p0=ia+4|0,of=g6+p0|0,e[of>>2]=nf,sf=(C7|0)==(z9|0);t:do if(sf)af=e[138265]|0,Qc=af+Co|0,e[138265]=Qc,e[138268]=i7,$f=Qc|1,H1=$0+4|0,lf=g6+H1|0,e[lf>>2]=$f;else{if(yc=e[138267]|0,cf=(C7|0)==(yc|0),cf){gf=e[138264]|0,Bo=gf+Co|0,e[138264]=Bo,e[138267]=i7,RA=Bo|1,z1=$0+4|0,uf=g6+z1|0,e[uf>>2]=RA,q1=Bo+$0|0,wc=g6+q1|0,e[wc>>2]=Bo;break}if($1=L4+4|0,K0=$1+E7|0,hf=g6+K0|0,ra=e[hf>>2]|0,ff=ra&3,If=(ff|0)==1,If){vc=ra&-8,kc=ra>>>3,mf=ra>>>0<256;i:do if(mf){U1=E7|8,z0=U1+L4|0,pf=g6+z0|0,yn=e[pf>>2]|0,b1=L4+12|0,J0=b1+E7|0,Ef=g6+J0|0,wn=e[Ef>>2]|0,Bf=kc<<1,Sc=553088+(Bf<<2)|0,Qf=(yn|0)==(Sc|0);do if(!Qf){if(yf=yn>>>0>>0,yf&&v2(),bc=yn+12|0,wf=e[bc>>2]|0,Dc=(wf|0)==(C7|0),Dc)break;v2()}while(!1);if(vf=(wn|0)==(yn|0),vf){FA=1<>>0>>0,bf&&v2(),Lc=wn+8|0,Df=e[Lc>>2]|0,_f=(Df|0)==(C7|0),_f){N=Lc;break}v2()}while(!1);xf=yn+12|0,e[xf>>2]=wn,e[N>>2]=yn}else{R1=E7|24,M0=R1+L4|0,Lf=g6+M0|0,yo=e[Lf>>2]|0,V1=L4+12|0,v0=V1+E7|0,Mf=g6+v0|0,vn=e[Mf>>2]|0,Rf=(vn|0)==(C7|0);do if(Rf){if(j1=E7|16,L0=$1+j1|0,Nc=g6+L0|0,Gc=e[Nc>>2]|0,Uf=(Gc|0)==0,Uf)if(G0=j1+L4|0,Uc=g6+G0|0,Pc=e[Uc>>2]|0,Pf=(Pc|0)==0,Pf){Ri=0;break}else bn=Pc,Ba=Uc;else bn=Gc,Ba=Nc;for(;;){if(Oc=bn+20|0,qc=e[Oc>>2]|0,qf=(qc|0)==0,!qf){bn=qc,Ba=Oc;continue}if(Hc=bn+16|0,Yc=e[Hc>>2]|0,Hf=(Yc|0)==0,Hf){Km=bn,eu=Ba;break}else bn=Yc,Ba=Hc}if(Yf=eu>>>0>>0,Yf)v2();else{e[eu>>2]=0,Ri=Km;break}}else if(F1=E7|8,T0=F1+L4|0,Ff=g6+T0|0,TA=e[Ff>>2]|0,Tf=TA>>>0>>0,Tf&&v2(),NA=TA+12|0,GA=e[NA>>2]|0,Rc=(GA|0)==(C7|0),Rc||v2(),Fc=vn+8|0,Gf=e[Fc>>2]|0,Tc=(Gf|0)==(C7|0),Tc){e[NA>>2]=vn,e[Fc>>2]=TA,Ri=vn;break}else v2();while(!1);if(Vc=(yo|0)==0,Vc)break;S1=L4+28|0,N0=S1+E7|0,UA=g6+N0|0,Jc=e[UA>>2]|0,Wc=553352+(Jc<<2)|0,Vf=e[Wc>>2]|0,Jf=(C7|0)==(Vf|0);do if(Jf){if(e[Wc>>2]=Ri,ep=(Ri|0)==0,!ep)break;zf=1<>>0>>0,Xf&&v2(),Zc=yo+16|0,eI=e[Zc>>2]|0,tI=(eI|0)==(C7|0),tI?e[Zc>>2]=Ri:(iI=yo+20|0,e[iI>>2]=Ri),jc=(Ri|0)==0,jc)break i;while(!1);Xc=e[138266]|0,rI=Ri>>>0>>0,rI&&v2(),eg=Ri+24|0,e[eg>>2]=yo,D1=E7|16,U0=D1+L4|0,OA=g6+U0|0,na=e[OA>>2]|0,tg=(na|0)==0;do if(!tg)if(oI=na>>>0>>0,oI)v2();else{sI=Ri+16|0,e[sI>>2]=na,aI=na+24|0,e[aI>>2]=Ri;break}while(!1);if(V0=$1+D1|0,ig=g6+V0|0,oa=e[ig>>2]|0,AI=(oa|0)==0,AI)break;if($I=e[138266]|0,lI=oa>>>0<$I>>>0,lI)v2();else{cI=Ri+20|0,e[cI>>2]=oa,gI=oa+24|0,e[gI>>2]=Ri;break}}while(!1);s2=vc|E7,F0=s2+L4|0,dI=g6+F0|0,hI=vc+Co|0,nu=dI,n7=hI}else nu=C7,n7=Co;if(rg=nu+4|0,fI=e[rg>>2]|0,II=fI&-2,e[rg>>2]=II,mI=n7|1,b0=$0+4|0,pI=g6+b0|0,e[pI>>2]=mI,y0=n7+$0|0,sa=g6+y0|0,e[sa>>2]=n7,ng=n7>>>3,EI=n7>>>0<256,EI){kn=ng<<1,og=553088+(kn<<2)|0,sg=e[138262]|0,qA=1<>2]|0,yI=e[138266]|0,vI=$g>>>0>>0,!vI){R=Ag,o$=$g;break}v2()}while(!1);e[R>>2]=i7,kI=o$+12|0,e[kI>>2]=i7,w1=$0+8|0,SI=g6+w1|0,e[SI>>2]=o$,v1=$0+12|0,aa=g6+v1|0,e[aa>>2]=og;break}HA=n7>>>8,bI=(HA|0)==0;do if(bI)Nr=0;else{if(DI=n7>>>0>16777215,DI){Nr=31;break}_I=HA+1048320|0,xI=_I>>>16,lg=xI&8,cg=HA<>>16,gg=RI&4,Rr=gg|lg,ug=cg<>>16,hg=FI&2,Aa=Rr|hg,NI=14-Aa|0,GI=ug<>>15,fg=NI+$a|0,UI=fg<<1,PI=fg+7|0,Ig=n7>>>PI,OI=Ig&1,qI=OI|UI,Nr=qI}while(!1);if(YA=553352+(Nr<<2)|0,k0=$0+28|0,HI=g6+k0|0,e[HI>>2]=Nr,Z0=$0+16|0,YI=g6+Z0|0,P0=$0+20|0,VI=g6+P0|0,e[VI>>2]=0,e[YI>>2]=0,mg=e[138263]|0,pg=1<>2]=i7,o1=$0+24|0,wo=g6+o1|0,e[wo>>2]=YA,i1=$0+12|0,KI=g6+i1|0,e[KI>>2]=i7,n1=$0+8|0,WI=g6+n1|0,e[WI>>2]=i7;break}VA=e[YA>>2]|0,Bg=VA+4|0,ZI=e[Bg>>2]|0,jI=ZI&-8,XI=(jI|0)==(n7|0);i:do if(XI)Gr=VA;else{for(em=(Nr|0)==31,Qg=Nr>>>1,tm=25-Qg|0,im=em?0:tm,rm=n7<>>31,Sg=(c$+16|0)+(kg<<2)|0,vo=e[Sg>>2]|0,_7=(vo|0)==0,_7){a=Sg,jm=c$;break}if(nm=xo<<1,om=vo+4|0,wg=e[om>>2]|0,vg=wg&-8,sm=(vg|0)==(n7|0),sm){Gr=vo;break i}else xo=nm,c$=vo}if(gr=e[138266]|0,am=a>>>0>>0,am)v2();else{e[a>>2]=i7,Q1=$0+24|0,Am=g6+Q1|0,e[Am>>2]=jm,p1=$0+12|0,$m=g6+p1|0,e[$m>>2]=i7,B1=$0+8|0,lm=g6+B1|0,e[lm>>2]=i7;break t}}while(!1);if(JA=Gr+8|0,ga=e[JA>>2]|0,Dg=e[138266]|0,_g=ga>>>0>=Dg>>>0,u$=Gr>>>0>=Dg>>>0,cm=_g&u$,cm){ko=ga+12|0,e[ko>>2]=i7,e[JA>>2]=i7,j0=$0+8|0,gm=g6+j0|0,e[gm>>2]=ga,E1=$0+12|0,da=g6+E1|0,e[da>>2]=Gr,I1=$0+24|0,zA=g6+I1|0,e[zA>>2]=0;break}else v2()}while(!1);return g1=ia|8,um=g6+g1|0,tt=um,tt|0}else To=553496;for(;;){if(KA=e[To>>2]|0,dm=KA>>>0>z9>>>0,!dm&&(hm=To+4|0,xg=e[hm>>2]|0,ha=KA+xg|0,fm=ha>>>0>z9>>>0,fm)){g=KA,h=xg,m=ha;break}Im=To+8|0,mm=e[Im>>2]|0,To=mm}if(u0=h+-47|0,h0=h+-39|0,pm=g+h0|0,Mg=pm,Em=Mg&7,ri=(Em|0)==0,_e=0-Mg|0,r7=_e&7,Cm=ri?0:r7,c1=u0+Cm|0,Fg=g+c1|0,WA=z9+16|0,Bm=Fg>>>0>>0,Fr=Bm?z9:Fg,So=Fr+8|0,Qm=L4+-40|0,ym=g6+8|0,Tg=ym,ZA=Tg&7,wm=(ZA|0)==0,Gg=0-Tg|0,Ug=Gg&7,jA=wm?0:Ug,XA=g6+jA|0,Pg=Qm-jA|0,e[138268]=XA,e[138265]=Pg,bo=Pg|1,t0=jA+4|0,e$=g6+t0|0,e[e$>>2]=bo,A1=L4+-36|0,Og=g6+A1|0,e[Og>>2]=40,vm=e[138384]|0,e[138269]=vm,Sn=Fr+4|0,e[Sn>>2]=27,e[So>>2]=e[138374]|0,e[So+4>>2]=e[138375]|0,e[So+8>>2]=e[138376]|0,e[So+12>>2]=e[138377]|0,e[138374]=g6,e[138375]=L4,e[138377]=0,e[138376]=So,qg=Fr+28|0,e[qg>>2]=7,fa=Fr+32|0,Sm=fa>>>0>>0,Sm)for(x7=qg;Hg=x7+4|0,e[Hg>>2]=7,bm=x7+8|0,Dm=bm>>>0>>0,Dm;)x7=Hg;if(_m=(Fr|0)==(z9|0),!_m){if(xm=Fr,Lm=z9,L7=xm-Lm|0,Rm=e[Sn>>2]|0,Fm=Rm&-2,e[Sn>>2]=Fm,Tm=L7|1,Yg=z9+4|0,e[Yg>>2]=Tm,e[Fr>>2]=L7,B7=L7>>>3,Ia=L7>>>0<256,Ia){t$=B7<<1,Vg=553088+(t$<<2)|0,Jg=e[138262]|0,zg=1<>2]|0,Pm=e[138266]|0,Om=Zg>>>0>>0,Om?v2():(L=Wg,r$=Zg)),e[L>>2]=z9,jg=r$+12|0,e[jg>>2]=z9,qm=z9+8|0,e[qm>>2]=r$,ma=z9+12|0,e[ma>>2]=Vg;break}if(pa=L7>>>8,Hm=(pa|0)==0,Hm?ur=0:(i$=L7>>>0>16777215,i$?ur=31:(Ym=pa+1048320|0,Vm=Ym>>>16,Xg=Vm&8,_o=pa<>>16,l2=zm&4,r2=l2|Xg,A2=_o<>>16,f2=o2&2,t2=r2|f2,k2=14-t2|0,D2=A2<>>15,N2=k2+S2|0,L2=N2<<1,U2=N2+7|0,m2=L7>>>U2,W2=m2&1,P2=W2|L2,ur=P2)),V2=553352+(ur<<2)|0,G2=z9+28|0,e[G2>>2]=ur,q2=z9+20|0,e[q2>>2]=0,e[WA>>2]=0,Z2=e[138263]|0,H2=1<>2]=z9,i5=z9+24|0,e[i5>>2]=V2,x5=z9+12|0,e[x5>>2]=z9,j2=z9+8|0,e[j2>>2]=z9;break}I5=e[V2>>2]|0,b5=I5+4|0,Y5=e[b5>>2]|0,b2=Y5&-8,B5=(b2|0)==(L7|0);t:do if(B5)ya=I5;else{for(s5=(ur|0)==31,R2=ur>>>1,M2=25-R2|0,y2=s5?0:M2,Q5=L7<>>31,u5=(g$+16|0)+($5<<2)|0,L5=e[u5>>2]|0,y5=(L5|0)==0,y5){$=u5,iu=g$;break}if(N5=A$<<1,m5=L5+4|0,M5=e[m5>>2]|0,Y2=M5&-8,p5=(Y2|0)==(L7|0),p5){ya=L5;break t}else A$=N5,g$=L5}if(T1=e[138266]|0,D5=$>>>0>>0,D5)v2();else{e[$>>2]=z9,d5=z9+24|0,e[d5>>2]=iu,l5=z9+12|0,e[l5>>2]=z9,g2=z9+8|0,e[g2>>2]=z9;break e}}while(!1);if(w5=ya+8|0,r5=e[w5>>2]|0,a5=e[138266]|0,h5=r5>>>0>=a5>>>0,ip=ya>>>0>=a5>>>0,z2=h5&ip,z2){f5=r5+12|0,e[f5>>2]=z9,e[w5>>2]=z9,n5=z9+8|0,e[n5>>2]=r5,R5=z9+12|0,e[R5>>2]=ya,e5=z9+24|0,e[e5>>2]=0;break}else v2()}}while(!1);if(F2=e[138265]|0,v5=F2>>>0>Le>>>0,v5)return J5=F2-Le|0,e[138265]=J5,i3=e[138268]|0,E5=i3+Le|0,e[138268]=E5,I3=J5|1,Z=Le+4|0,h3=i3+Z|0,e[h3>>2]=I3,K5=Le|3,r3=i3+4|0,e[r3>>2]=K5,a3=i3+8|0,tt=a3,tt|0}return G5=aQ()|0,e[G5>>2]=12,tt=0,tt|0}function p2(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0;if(N4=C,o0=(t|0)==0,!o0){q=t+-8|0,W2=e[138266]|0,v6=q>>>0>>0,v6&&v2(),_6=t+-4|0,f9=e[_6>>2]|0,ie=f9&3,Ge=(ie|0)==1,Ge&&v2(),W9=f9&-8,Q=W9+-8|0,re=t+Q|0,d0=f9&1,n0=(d0|0)==0;do if(n0){if(_0=e[q>>2]|0,L0=(ie|0)==0,L0)return;if(y=-8-_0|0,x0=t+y|0,j0=_0+W9|0,S1=x0>>>0>>0,S1&&v2(),q1=e[138267]|0,s2=(x0|0)==(q1|0),s2){if(X=W9+-4|0,c0=t+X|0,$0=e[c0>>2]|0,l0=$0&3,Z=(l0|0)==3,!Z){W3=x0,x9=j0;break}e[138264]=j0,I0=$0&-2,e[c0>>2]=I0,g0=j0|1,x=y+4|0,f0=t+x|0,e[f0>>2]=g0,e[re>>2]=j0;return}if(o2=_0>>>3,P2=_0>>>0<256,P2){if(K=y+8|0,x5=t+K|0,y2=e[x5>>2]|0,a0=y+12|0,y5=t+a0|0,z2=e[y5>>2]|0,I3=o2<<1,X3=553088+(I3<<2)|0,Q3=(y2|0)==(X3|0),Q3||(E6=y2>>>0>>0,E6&&v2(),d6=y2+12|0,L3=e[d6>>2]|0,K6=(L3|0)==(x0|0),K6||v2()),e9=(z2|0)==(y2|0),e9){V6=1<>>0>>0,T6&&v2(),i9=z2+8|0,O6=e[i9>>2]|0,U3=(O6|0)==(x0|0),U3?g=i9:v2()),q6=y2+12|0,e[q6>>2]=z2,e[g>>2]=y2,W3=x0,x9=j0;break}M=y+24|0,a9=t+M|0,d9=e[a9>>2]|0,L=y+12|0,o9=t+L|0,B9=e[o9>>2]|0,Q9=(B9|0)==(x0|0);do if(Q9){if(F=y+20|0,ue=t+F|0,Ee=e[ue>>2]|0,V9=(Ee|0)==0,V9)if(R=y+16|0,F9=t+R|0,v9=e[F9>>2]|0,W6=(v9|0)==0,W6){S9=0;break}else Pe=v9,S4=F9;else Pe=Ee,S4=ue;for(;;){if($9=Pe+20|0,ve=e[$9>>2]|0,Re=(ve|0)==0,!Re){Pe=ve,S4=$9;continue}if(de=Pe+16|0,_9=e[de>>2]|0,Fe=(_9|0)==0,Fe){m4=Pe,be=S4;break}else Pe=_9,S4=de}if(Te=be>>>0>>0,Te)v2();else{e[be>>2]=0,S9=m4;break}}else if(V=y+8|0,y9=t+V|0,h9=e[y9>>2]|0,H9=h9>>>0>>0,H9&&v2(),y6=h9+12|0,H6=e[y6>>2]|0,A9=(H6|0)==(x0|0),A9||v2(),Y9=B9+8|0,w9=e[Y9>>2]|0,we=(w9|0)==(x0|0),we){e[y6>>2]=B9,e[Y9>>2]=h9,S9=B9;break}else v2();while(!1);if(He=(d9|0)==0,He)W3=x0,x9=j0;else{if(T=y+28|0,o4=t+T|0,ke=e[o4>>2]|0,Ye=553352+(ke<<2)|0,J9=e[Ye>>2]|0,Ve=(x0|0)==(J9|0),Ve){if(e[Ye>>2]=S9,pe=(S9|0)==0,pe){he=1<>>0>>0,k4&&v2(),Y4=d9+16|0,nt=e[Y4>>2]|0,Je=(nt|0)==(x0|0),Je?e[Y4>>2]=S9:(V4=d9+20|0,e[V4>>2]=S9),ze=(S9|0)==0,ze){W3=x0,x9=j0;break}s4=e[138266]|0,R4=S9>>>0>>0,R4&&v2(),ot=S9+24|0,e[ot>>2]=d9,N=y+16|0,d4=t+N|0,Be=e[d4>>2]|0,N6=(Be|0)==0;do if(!N6)if(Ke=Be>>>0>>0,Ke)v2();else{P9=S9+16|0,e[P9>>2]=Be,fe=Be+24|0,e[fe>>2]=S9;break}while(!1);if(G=y+20|0,Ne=t+G|0,h4=e[Ne>>2]|0,ne=(h4|0)==0,ne)W3=x0,x9=j0;else if(f4=e[138266]|0,t0=h4>>>0>>0,t0)v2();else{j=S9+20|0,e[j>>2]=h4,u0=h4+24|0,e[u0>>2]=S9,W3=x0,x9=j0;break}}}else W3=q,x9=W9;while(!1);if(h0=W3>>>0>>0,h0||v2(),D=W9+-4|0,p0=t+D|0,C0=e[p0>>2]|0,S0=C0&1,Q0=(S0|0)==0,Q0&&v2(),b0=C0&2,E0=(b0|0)==0,E0){if(y0=e[138268]|0,w0=(re|0)==(y0|0),w0){if(B0=e[138265]|0,K0=B0+x9|0,e[138265]=K0,e[138268]=W3,M0=K0|1,v0=W3+4|0,e[v0>>2]=M0,T0=e[138267]|0,N0=(W3|0)==(T0|0),!N0)return;e[138267]=0,e[138264]=0;return}if(U0=e[138267]|0,O0=(re|0)==(U0|0),O0){k0=e[138264]|0,V0=k0+x9|0,e[138264]=V0,e[138267]=W3,F0=V0|1,G0=W3+4|0,e[G0>>2]=F0,z0=W3+V0|0,e[z0>>2]=V0;return}J0=C0&-8,q0=J0+x9|0,Z0=C0>>>3,P0=C0>>>0<256;do if(P0){if(H0=t+W9|0,o1=e[H0>>2]|0,w=W9|4,Y0=t+w|0,i1=e[Y0>>2]|0,n1=Z0<<1,d1=553088+(n1<<2)|0,g1=(o1|0)==(d1|0),g1||(m1=e[138266]|0,h1=o1>>>0>>0,h1&&v2(),u1=o1+12|0,A1=e[u1>>2]|0,c1=(A1|0)==(re|0),c1||v2()),s1=(i1|0)==(o1|0),s1){$1=1<>>0>>0,w1&&v2(),v1=i1+8|0,k1=e[v1>>2]|0,L1=(k1|0)==(re|0),L1?$=v1:v2()),M1=o1+12|0,e[M1>>2]=i1,e[$>>2]=o1}else{W=W9+16|0,D1=t+W|0,R1=e[D1>>2]|0,r0=W9|4,F1=t+r0|0,U1=e[F1>>2]|0,b1=(U1|0)==(re|0);do if(b1){if(J=W9+12|0,j1=t+J|0,O1=e[j1>>2]|0,c2=(O1|0)==0,c2)if(s0=W9+8|0,W1=t+s0|0,h2=e[W1>>2]|0,E2=(h2|0)==0,E2){Ie=0;break}else f6=h2,me=W1;else f6=O1,me=j1;for(;;){if(a2=f6+20|0,K1=e[a2>>2]|0,d2=(K1|0)==0,!d2){f6=K1,me=a2;continue}if($2=f6+16|0,i2=e[$2>>2]|0,l2=(i2|0)==0,l2){J4=f6,z6=me;break}else f6=i2,me=$2}if(r2=e[138266]|0,A2=z6>>>0>>0,A2)v2();else{e[z6>>2]=0,Ie=J4;break}}else if(P1=t+W9|0,Z1=e[P1>>2]|0,G1=e[138266]|0,x1=Z1>>>0>>0,x1&&v2(),z1=Z1+12|0,H1=e[z1>>2]|0,Y1=(H1|0)==(re|0),Y1||v2(),V1=U1+8|0,X1=e[V1>>2]|0,n2=(X1|0)==(re|0),n2){e[z1>>2]=U1,e[V1>>2]=Z1,Ie=U1;break}else v2();while(!1);if(e2=(R1|0)==0,!e2){if(S=W9+20|0,f2=t+S|0,t2=e[f2>>2]|0,k2=553352+(t2<<2)|0,D2=e[k2>>2]|0,S2=(re|0)==(D2|0),S2){if(e[k2>>2]=Ie,xe=(Ie|0)==0,xe){Q2=1<>>0>>0,V2&&v2(),G2=R1+16|0,q2=e[G2>>2]|0,Z2=(q2|0)==(re|0),Z2?e[G2>>2]=Ie:(A5=R1+20|0,e[A5>>2]=Ie),H2=(Ie|0)==0,H2)break;N1=e[138266]|0,t5=Ie>>>0>>0,t5&&v2(),T5=Ie+24|0,e[T5>>2]=R1,b=W9+8|0,i5=t+b|0,j2=e[i5>>2]|0,I5=(j2|0)==0;do if(!I5)if(b5=j2>>>0>>0,b5)v2();else{Y5=Ie+16|0,e[Y5>>2]=j2,g5=j2+24|0,e[g5>>2]=Ie;break}while(!1);if(v=W9+12|0,b2=t+v|0,B5=e[b2>>2]|0,s5=(B5|0)==0,!s5)if(R2=e[138266]|0,M2=B5>>>0>>0,M2)v2();else{Q5=Ie+20|0,e[Q5>>2]=B5,N5=B5+24|0,e[N5>>2]=Ie;break}}}while(!1);if(m5=q0|1,L5=W3+4|0,e[L5>>2]=m5,q5=W3+q0|0,e[q5>>2]=q0,M5=e[138267]|0,Y2=(W3|0)==(M5|0),Y2){e[138264]=q0;return}else b9=q0}else p5=C0&-2,e[p0>>2]=p5,$5=x9|1,u5=W3+4|0,e[u5>>2]=$5,T1=W3+x9|0,e[T1>>2]=x9,b9=x9;if(D5=b9>>>3,d5=b9>>>0<256,d5){l5=D5<<1,X2=553088+(l5<<2)|0,g2=e[138262]|0,w5=1<>2]|0,R5=e[138266]|0,e5=n5>>>0>>0,e5?v2():(h=f5,I4=n5)),e[h>>2]=W3,c5=I4+12|0,e[c5>>2]=W3,F2=W3+8|0,e[F2>>2]=I4,v5=W3+12|0,e[v5>>2]=X2;return}J5=b9>>>8,i3=(J5|0)==0,i3?Se=0:(E5=b9>>>0>16777215,E5?Se=31:(h3=J5+1048320|0,K5=h3>>>16,r3=K5&8,a3=J5<>>16,W5=G5&4,D3=W5|r3,f3=a3<>>16,X5=q3&2,b3=D3|X5,t3=14-b3|0,s6=f3<>>15,H3=t3+T3|0,c3=H3<<1,g3=H3+7|0,u3=b9>>>g3,z5=u3&1,H5=z5|c3,Se=H5)),V5=553352+(Se<<2)|0,S5=W3+28|0,e[S5>>2]=Se,Y3=W3+16|0,U5=W3+20|0,e[U5>>2]=0,e[Y3>>2]=0,$6=e[138263]|0,n3=1<>2]=W3,_3=W3+24|0,e[_3>>2]=V5,S3=W3+12|0,e[S3>>2]=W3,a6=W3+8|0,e[a6>>2]=W3;else{i6=e[V5>>2]|0,V3=i6+4|0,Z5=e[V3>>2]|0,x3=Z5&-8,d3=(x3|0)==(b9|0);t:do if(d3)F4=i6;else{for(J3=(Se|0)==31,m3=Se>>>1,L6=25-m3|0,M6=J3?0:L6,R6=b9<>>31,o6=(T4+16|0)+(n6<<2)|0,h6=e[o6>>2]|0,C6=(h6|0)==0,C6){o=o6,st=T4;break}if(S6=a4<<1,r6=h6+4|0,b6=e[r6>>2]|0,G6=b6&-8,X6=(G6|0)==(b9|0),X6){F4=h6;break t}else a4=S6,T4=h6}if(z3=e[138266]|0,M3=o>>>0>>0,M3)v2();else{e[o>>2]=W3,K3=W3+24|0,e[K3>>2]=st,e6=W3+12|0,e[e6>>2]=W3,F6=W3+8|0,e[F6>>2]=W3;break e}}while(!1);if(l6=F4+8|0,o3=e[l6>>2]|0,A3=e[138266]|0,c6=o3>>>0>=A3>>>0,mt=F4>>>0>=A3>>>0,B6=c6&mt,B6){R3=o3+12|0,e[R3>>2]=W3,e[l6>>2]=W3,Y6=W3+8|0,e[Y6>>2]=o3,A6=W3+12|0,e[A6>>2]=F4,D6=W3+24|0,e[D6>>2]=0;break}else v2()}while(!1);if(U6=e[138270]|0,t9=U6+-1|0,e[138270]=t9,Q6=(t9|0)==0,Q6)A4=553504;else return;for(;Oe=e[A4>>2]|0,G3=(Oe|0)==0,n9=Oe+8|0,!G3;)A4=n9;e[138270]=-1}}function ce(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0;return x=C,$=(t|0)==0,$?D=0:(g=o5(o,t)|0,I=o|t,E=I>>>0>65535,E?(Q=(g>>>0)/(t>>>0)&-1,B=(Q|0)==(o|0),a=B?g:-1,D=a):D=g),S=R9(D)|0,b=(S|0)==0,b||(v=S+-4|0,w=e[v>>2]|0,h=w&3,m=(h|0)==0,m)||u4(S|0,0,D|0)|0,S|0}function K7(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0;return K=C,a=(t|0)==0,a?($=R9(o)|0,V=$,V|0):(w=o>>>0>4294967231,w?(M=aQ()|0,e[M>>2]=12,V=0,V|0):(L=o>>>0<11,R=o+11|0,F=R&-8,T=L?16:F,N=t+-8|0,G=$D(N,T)|0,g=(G|0)==0,g?(m=R9(o)|0,I=(m|0)==0,I?(V=0,V|0):(E=t+-4|0,Q=e[E>>2]|0,B=Q&-8,S=Q&3,b=(S|0)==0,v=b?8:4,D=B-v|0,y=D>>>0>>0,x=y?D:o,ge(m|0,t|0,x|0)|0,p2(t),V=m,V|0)):(h=G+8|0,V=h,V|0)))}function $D(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0;if(W5=C,N=t+4|0,G=e[N>>2]|0,b1=G&-8,n2=t+b1|0,$2=e[138266]|0,S2=G&3,I3=t>>>0>=$2>>>0,h3=(S2|0)!=1,K5=h3&I3,Z2=t>>>0>>0,r3=K5&Z2,r3||v2(),x=b1|4,Y5=t+x|0,L5=e[Y5>>2]|0,l5=L5&1,V=(l5|0)==0,V&&v2(),t0=(S2|0)==0,t0)return h0=o>>>0<256,h0?(E5=0,E5|0):(K0=o+4|0,G0=b1>>>0>>0,!G0&&(n1=b1-o|0,E1=e[138382]|0,D1=E1<<1,F1=n1>>>0>D1>>>0,!F1)?(E5=t,E5|0):(E5=0,E5|0));if(U1=b1>>>0>>0,!U1)return P1=b1-o|0,Z1=P1>>>0>15,Z1?(G1=t+o|0,x1=G&1,z1=x1|o,q1=z1|2,e[N>>2]=q1,y=o+4|0,H1=t+y|0,Y1=P1|3,e[H1>>2]=Y1,V1=e[Y5>>2]|0,X1=V1|1,e[Y5>>2]=X1,NQ(G1,P1),E5=t,E5|0):(E5=t,E5|0);if(j1=e[138268]|0,O1=(n2|0)==(j1|0),O1)return c2=e[138265]|0,W1=c2+b1|0,h2=W1>>>0>o>>>0,h2?(s2=W1-o|0,E2=t+o|0,a2=G&1,K1=a2|o,d2=K1|2,e[N>>2]=d2,D=o+4|0,i2=t+D|0,l2=s2|1,e[i2>>2]=l2,e[138268]=E2,e[138265]=s2,E5=t,E5|0):(E5=0,E5|0);if(r2=e[138267]|0,A2=(n2|0)==(r2|0),A2)return e2=e[138264]|0,o2=e2+b1|0,f2=o2>>>0>>0,f2?(E5=0,E5|0):(t2=o2-o|0,k2=t2>>>0>15,k2?(D2=t+o|0,Q2=t+o2|0,N2=G&1,L2=N2|o,U2=L2|2,e[N>>2]=U2,b=o+4|0,m2=t+b|0,W2=t2|1,e[m2>>2]=W2,e[Q2>>2]=t2,w=o2+4|0,P2=t+w|0,V2=e[P2>>2]|0,G2=V2&-2,e[P2>>2]=G2,a3=D2,B3=t2):(q2=G&1,A5=q2|o2,H2=A5|2,e[N>>2]=H2,S=o2+4|0,N1=t+S|0,t5=e[N1>>2]|0,T5=t5|1,e[N1>>2]=T5,a3=0,B3=0),e[138264]=B3,e[138267]=a3,E5=t,E5|0);if(i5=L5&2,x5=(i5|0)==0,!x5||(j2=L5&-8,I5=j2+b1|0,b5=I5>>>0>>0,b5))return E5=0,E5|0;g5=I5-o|0,b2=L5>>>3,B5=L5>>>0<256;do if(B5){if(Q=b1+8|0,s5=t+Q|0,R2=e[s5>>2]|0,B=b1+12|0,M2=t+B|0,y2=e[M2>>2]|0,Q5=b2<<1,N5=553088+(Q5<<2)|0,m5=(R2|0)==(N5|0),m5||(q5=R2>>>0<$2>>>0,q5&&v2(),M5=R2+12|0,Y2=e[M5>>2]|0,p5=(Y2|0)==(n2|0),p5||v2()),$5=(y2|0)==(R2|0),$5){u5=1<>>0<$2>>>0,X2&&v2(),g2=y2+8|0,w5=e[g2>>2]|0,r5=(w5|0)==(n2|0),r5?$=g2:v2()),a5=R2+12|0,e[a5>>2]=y2,e[$>>2]=R2}else{g=b1+24|0,h5=t+g|0,z2=e[h5>>2]|0,v=b1+12|0,f5=t+v|0,n5=e[f5>>2]|0,R5=(n5|0)==(n2|0);do if(R5){if(L=b1+20|0,d0=t+L|0,j=e[d0>>2]|0,u0=(j|0)==0,u0)if(M=b1+16|0,c0=t+M|0,$0=e[c0>>2]|0,l0=($0|0)==0,l0){F2=0;break}else e5=$0,v5=c0;else e5=j,v5=d0;for(;;){if(Z=e5+20|0,I0=e[Z>>2]|0,g0=(I0|0)==0,!g0){e5=I0,v5=Z;continue}if(f0=e5+16|0,n0=e[f0>>2]|0,p0=(n0|0)==0,p0){c5=e5,J5=v5;break}else e5=n0,v5=f0}if(C0=J5>>>0<$2>>>0,C0)v2();else{e[J5>>2]=0,F2=c5;break}}else if(E=b1+8|0,X=t+E|0,K=e[X>>2]|0,a0=K>>>0<$2>>>0,a0&&v2(),W=K+12|0,r0=e[W>>2]|0,s0=(r0|0)==(n2|0),s0||v2(),J=n5+8|0,o0=e[J>>2]|0,q=(o0|0)==(n2|0),q){e[W>>2]=n5,e[J>>2]=K,F2=n5;break}else v2();while(!1);if(S0=(z2|0)==0,!S0){if(h=b1+28|0,Q0=t+h|0,b0=e[Q0>>2]|0,E0=553352+(b0<<2)|0,y0=e[E0>>2]|0,w0=(n2|0)==(y0|0),w0){if(e[E0>>2]=F2,i3=(F2|0)==0,i3){B0=1<>>0>>0,N0&&v2(),U0=z2+16|0,O0=e[U0>>2]|0,k0=(O0|0)==(n2|0),k0?e[U0>>2]=F2:(V0=z2+20|0,e[V0>>2]=F2),F0=(F2|0)==0,F0)break;L0=e[138266]|0,z0=F2>>>0>>0,z0&&v2(),J0=F2+24|0,e[J0>>2]=z2,m=b1+16|0,q0=t+m|0,Z0=e[q0>>2]|0,P0=(Z0|0)==0;do if(!P0)if(H0=Z0>>>0>>0,H0)v2();else{o1=F2+16|0,e[o1>>2]=Z0,Y0=Z0+24|0,e[Y0>>2]=F2;break}while(!1);if(I=b1+20|0,i1=t+I|0,x0=e[i1>>2]|0,d1=(x0|0)==0,!d1)if(g1=e[138266]|0,m1=x0>>>0>>0,m1)v2();else{h1=F2+20|0,e[h1>>2]=x0,u1=x0+24|0,e[u1>>2]=F2;break}}}while(!1);return A1=g5>>>0<16,A1?(c1=G&1,s1=I5|c1,$1=s1|2,e[N>>2]=$1,T=I5|4,j0=t+T|0,I1=e[j0>>2]|0,Q1=I1|1,e[j0>>2]=Q1,E5=t,E5|0):(p1=t+o|0,B1=G&1,w1=B1|o,v1=w1|2,e[N>>2]=v1,R=o+4|0,k1=t+R|0,L1=g5|3,e[k1>>2]=L1,F=I5|4,M1=t+F|0,S1=e[M1>>2]|0,R1=S1|1,e[M1>>2]=R1,NQ(p1,g5),E5=t,E5|0)}function NQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0;be=C,j=t+o|0,u0=t+4|0,q2=e[u0>>2]|0,C6=q2&1,e9=(C6|0)==0;do if(e9){if(O6=e[t>>2]|0,H9=q2&3,F9=(H9|0)==0,F9)return;if(He=0-O6|0,k9=t+He|0,c0=O6+o|0,S0=e[138266]|0,T0=k9>>>0>>0,T0&&v2(),q0=e[138267]|0,m1=(k9|0)==(q0|0),m1){if(v=o+4|0,re=t+v|0,$0=e[re>>2]|0,l0=$0&3,Z=(l0|0)==3,!Z){a=k9,$=c0;break}e[138264]=c0,I0=$0&-2,e[re>>2]=I0,g0=c0|1,L=4-O6|0,f0=t+L|0,e[f0>>2]=g0,e[j>>2]=c0;return}if(p1=O6>>>3,U1=O6>>>0<256,U1){if(W=8-O6|0,X1=t+W|0,d2=e[X1>>2]|0,r0=12-O6|0,D2=t+r0|0,Z2=e[D2>>2]|0,Y5=p1<<1,L5=553088+(Y5<<2)|0,l5=(d2|0)==(L5|0),l5||(e5=d2>>>0>>0,e5&&v2(),a3=d2+12|0,t3=e[a3>>2]|0,S5=(t3|0)==(k9|0),S5||v2()),a6=(Z2|0)==(d2|0),a6){R6=1<>>0>>0,Y6&&v2(),A6=Z2+8|0,D6=e[A6>>2]|0,U6=(D6|0)==(k9|0),U6?E=A6:v2()),t9=d2+12|0,e[t9>>2]=Z2,e[E>>2]=d2,a=k9,$=c0;break}R=24-O6|0,Q6=t+R|0,G3=e[Q6>>2]|0,F=12-O6|0,n9=t+F|0,V6=e[n9>>2]|0,s9=(V6|0)==(k9|0);do if(s9){if(T=16-O6|0,N=T+4|0,d9=t+N|0,o9=e[d9>>2]|0,B9=(o9|0)==0,B9)if(Q9=t+T|0,y9=e[Q9>>2]|0,h9=(y9|0)==0,h9){fe=0;break}else Ke=y9,f4=Q9;else Ke=o9,f4=d9;for(;;){if(f9=Ke+20|0,y6=e[f9>>2]|0,H6=(y6|0)==0,!H6){Ke=y6,f4=f9;continue}if(A9=Ke+16|0,Y9=e[A9>>2]|0,w9=(Y9|0)==0,w9){P9=Ke,I4=f4;break}else Ke=Y9,f4=A9}if(we=I4>>>0>>0,we)v2();else{e[I4>>2]=0,fe=P9;break}}else if(a0=8-O6|0,c9=t+a0|0,P6=e[c9>>2]|0,J6=P6>>>0>>0,J6&&v2(),T6=P6+12|0,i9=e[T6>>2]|0,_6=(i9|0)==(k9|0),_6||v2(),U3=V6+8|0,q6=e[U3>>2]|0,a9=(q6|0)==(k9|0),a9){e[T6>>2]=V6,e[U3>>2]=P6,fe=V6;break}else v2();while(!1);if(ue=(G3|0)==0,ue)a=k9,$=c0;else{if(V=28-O6|0,Ee=t+V|0,V9=e[Ee>>2]|0,ie=553352+(V9<<2)|0,v9=e[ie>>2]|0,W6=(k9|0)==(v9|0),W6){if(e[ie>>2]=fe,f6=(fe|0)==0,f6){$9=1<>>0<_9>>>0,Fe&&v2(),Te=G3+16|0,Ge=e[Te>>2]|0,o4=(Ge|0)==(k9|0),o4?e[Te>>2]=fe:(ke=G3+20|0,e[ke>>2]=fe),Ye=(fe|0)==0,Ye){a=k9,$=c0;break}J9=e[138266]|0,Ve=fe>>>0>>0,Ve&&v2(),he=fe+24|0,e[he>>2]=G3,X=16-O6|0,Ue=t+X|0,Ce=e[Ue>>2]|0,v4=(Ce|0)==0;do if(!v4)if(W9=Ce>>>0>>0,W9)v2();else{k4=fe+16|0,e[k4>>2]=Ce,Y4=Ce+24|0,e[Y4>>2]=fe;break}while(!1);if(K=X+4|0,nt=t+K|0,Je=e[nt>>2]|0,V4=(Je|0)==0,V4)a=k9,$=c0;else if(ze=e[138266]|0,s4=Je>>>0>>0,s4)v2();else{R4=fe+20|0,e[R4>>2]=Je,ot=Je+24|0,e[ot>>2]=fe,a=k9,$=c0;break}}}else a=t,$=o;while(!1);if(n0=e[138266]|0,h0=j>>>0>>0,h0&&v2(),w=o+4|0,p0=t+w|0,C0=e[p0>>2]|0,Q0=C0&2,b0=(Q0|0)==0,b0){if(E0=e[138268]|0,y0=(j|0)==(E0|0),y0){if(w0=e[138265]|0,B0=w0+$|0,e[138265]=B0,e[138268]=a,_0=B0|1,K0=a+4|0,e[K0>>2]=_0,M0=e[138267]|0,v0=(a|0)==(M0|0),!v0)return;e[138267]=0,e[138264]=0;return}if(N0=e[138267]|0,U0=(j|0)==(N0|0),U0){O0=e[138264]|0,k0=O0+$|0,e[138264]=k0,e[138267]=a,V0=k0|1,F0=a+4|0,e[F0>>2]=V0,L0=a+k0|0,e[L0>>2]=k0;return}G0=C0&-8,z0=G0+$|0,J0=C0>>>3,Z0=C0>>>0<256;do if(Z0){if(x=o+8|0,P0=t+x|0,H0=e[P0>>2]|0,M=o+12|0,o1=t+M|0,Y0=e[o1>>2]|0,i1=J0<<1,x0=553088+(i1<<2)|0,n1=(H0|0)==(x0|0),n1||(d1=H0>>>0>>0,d1&&v2(),g1=H0+12|0,h1=e[g1>>2]|0,u1=(h1|0)==(j|0),u1||v2()),A1=(Y0|0)==(H0|0),A1){c1=1<>>0>>0,I1&&v2(),Q1=Y0+8|0,B1=e[Q1>>2]|0,w1=(B1|0)==(j|0),w1?I=Q1:v2()),v1=H0+12|0,e[v1>>2]=Y0,e[I>>2]=H0}else{G=o+24|0,k1=t+G|0,L1=e[k1>>2]|0,s0=o+12|0,M1=t+s0|0,S1=e[M1>>2]|0,D1=(S1|0)==(j|0);do if(D1){if(o0=o+20|0,H1=t+o0|0,Y1=e[H1>>2]|0,V1=(Y1|0)==0,V1)if(J=o+16|0,n2=t+J|0,j1=e[n2>>2]|0,O1=(j1|0)==0,O1){ne=0;break}else Ne=j1,Se=n2;else Ne=Y1,Se=H1;for(;;){if(c2=Ne+20|0,W1=e[c2>>2]|0,h2=(W1|0)==0,!h2){Ne=W1,Se=c2;continue}if(s2=Ne+16|0,E2=e[s2>>2]|0,a2=(E2|0)==0,a2){h4=Ne,a4=Se;break}else Ne=E2,Se=s2}if(K1=a4>>>0>>0,K1)v2();else{e[a4>>2]=0,ne=h4;break}}else if(y=o+8|0,R1=t+y|0,F1=e[R1>>2]|0,b1=F1>>>0>>0,b1&&v2(),P1=F1+12|0,Z1=e[P1>>2]|0,G1=(Z1|0)==(j|0),G1||v2(),x1=S1+8|0,z1=e[x1>>2]|0,q1=(z1|0)==(j|0),q1){e[P1>>2]=S1,e[x1>>2]=F1,ne=S1;break}else v2();while(!1);if($2=(L1|0)==0,!$2){if(d0=o+28|0,i2=t+d0|0,l2=e[i2>>2]|0,r2=553352+(l2<<2)|0,A2=e[r2>>2]|0,e2=(j|0)==(A2|0),e2){if(e[r2>>2]=ne,J4=(ne|0)==0,J4){o2=1<>>0>>0,Q2&&v2(),N2=L1+16|0,L2=e[N2>>2]|0,U2=(L2|0)==(j|0),U2?e[N2>>2]=ne:(m2=L1+20|0,e[m2>>2]=ne),W2=(ne|0)==0,W2)break;P2=e[138266]|0,V2=ne>>>0>>0,V2&&v2(),G2=ne+24|0,e[G2>>2]=L1,t0=o+16|0,A5=t+t0|0,H2=e[A5>>2]|0,N1=(H2|0)==0;do if(!N1)if(t5=H2>>>0>>0,t5)v2();else{T5=ne+16|0,e[T5>>2]=H2,i5=H2+24|0,e[i5>>2]=ne;break}while(!1);if(D=o+20|0,x5=t+D|0,j2=e[x5>>2]|0,I5=(j2|0)==0,!I5)if(b5=e[138266]|0,g5=j2>>>0>>0,g5)v2();else{b2=ne+20|0,e[b2>>2]=j2,B5=j2+24|0,e[B5>>2]=ne;break}}}while(!1);if(s5=z0|1,R2=a+4|0,e[R2>>2]=s5,M2=a+z0|0,e[M2>>2]=z0,y2=e[138267]|0,Q5=(a|0)==(y2|0),Q5){e[138264]=z0;return}else g=z0}else N5=C0&-2,e[p0>>2]=N5,m5=$|1,q5=a+4|0,e[q5>>2]=m5,M5=a+$|0,e[M5>>2]=$,g=$;if(Y2=g>>>3,p5=g>>>0<256,p5){$5=Y2<<1,u5=553088+($5<<2)|0,y5=e[138262]|0,T1=1<>2]|0,r5=e[138266]|0,a5=w5>>>0>>0,a5?v2():(Q=g2,d4=w5)),e[Q>>2]=a,h5=d4+12|0,e[h5>>2]=a,z2=a+8|0,e[z2>>2]=d4,f5=a+12|0,e[f5>>2]=u5;return}if(n5=g>>>8,R5=(n5|0)==0,R5?Be=0:(c5=g>>>0>16777215,c5?Be=31:(F2=n5+1048320|0,v5=F2>>>16,J5=v5&8,i3=n5<>>16,h3=I3&4,K5=h3|J5,r3=i3<>>16,W5=G5&2,D3=K5|W5,f3=14-D3|0,y3=r3<>>15,q3=f3+X3|0,X5=q3<<1,b3=q3+7|0,s6=g>>>b3,T3=s6&1,H3=T3|X5,Be=H3)),c3=553352+(Be<<2)|0,g3=a+28|0,e[g3>>2]=Be,u3=a+16|0,Q3=a+20|0,e[Q3>>2]=0,e[u3>>2]=0,z5=e[138263]|0,H5=1<>2]=a,$6=a+24|0,e[$6>>2]=c3,n3=a+12|0,e[n3>>2]=a,l3=a+8|0,e[l3>>2]=a;return}N3=e[c3>>2]|0,E6=N3+4|0,k3=e[E6>>2]|0,_3=k3&-8,S3=(_3|0)==(g|0);e:do if(S3)Pe=N3;else{for(i6=(Be|0)==31,V3=Be>>>1,Z5=25-V3|0,x3=i6?0:Z5,d3=g<>>31,h6=(m4+16|0)+(r6<<2)|0,m3=e[h6>>2]|0,b6=(m3|0)==0,b6){h=h6,S9=m4;break}if(J3=N6<<1,d6=m3+4|0,L6=e[d6>>2]|0,M6=L6&-8,S6=(M6|0)==(g|0),S6){Pe=m3;break e}else N6=J3,m4=m3}G6=e[138266]|0,X6=h>>>0>>0,X6&&v2(),e[h>>2]=a,v6=a+24|0,e[v6>>2]=S9,L3=a+12|0,e[L3>>2]=a,n6=a+8|0,e[n6>>2]=a;return}while(!1);o6=Pe+8|0,M3=e[o6>>2]|0,K3=e[138266]|0,e6=M3>>>0>=K3>>>0,Ie=Pe>>>0>=K3>>>0,F6=e6&Ie,F6||v2(),l6=M3+12|0,e[l6>>2]=a,e[o6>>2]=a,o3=a+8|0,e[o3>>2]=M3,K6=a+12|0,e[K6>>2]=Pe,A3=a+24|0,e[A3>>2]=0}function lD(){e[6410]=K9}function u4(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0;if($=t+a|0,(a|0)>=20){if(o=o&255,m=t&3,g=o|o<<8|o<<16|o<<24,h=$&-4,m)for(m=t+4-m|0;(t|0)<(m|0);)f[t>>0]=o,t=t+1|0;for(;(t|0)<(h|0);)e[t>>2]=g,t=t+4|0}for(;(t|0)<($|0);)f[t>>0]=o,t=t+1|0;return t-a|0}function nl(t){t=t|0;var o=0;for(o=t;f[o>>0]|0;)o=o+1|0;return o-t|0}function GQ(t,o){t=t|0,o=o|0;var a=0,$=0;$=t+(nl(t)|0)|0;do f[$+a>>0]=f[o+a>>0],a=a+1|0;while(f[o+(a-1)>>0]|0);return t|0}function UQ(t,o,a){t=t|0,o=o|0,a=a|0;var $=0;return(a|0)<32?($=(1<>>32-a,t<>>0,h=o+$+(g>>>0>>0|0)>>>0,j6=h,g|0|0}function ns(t,o,a){t=t|0,o=o|0,a=a|0;var $=0;return(a|0)<32?($=(1<>>a,t>>>a|(o&$)<<32-a):(j6=0,o>>>a-32|0)}function ge(t,o,a){t=t|0,o=o|0,a=a|0;var $=0;if((a|0)>=4096)return ES(t|0,o|0,a|0)|0;if($=t|0,(t&3)==(o&3)){for(;t&3;){if(!(a|0))return $|0;f[t>>0]=f[o>>0]|0,t=t+1|0,o=o+1|0,a=a-1|0}for(;(a|0)>=4;)e[t>>2]=e[o>>2]|0,t=t+4|0,o=o+4|0,a=a-4|0}for(;(a|0)>0;)f[t>>0]=f[o>>0]|0,t=t+1|0,o=o+1|0,a=a-1|0;return $|0}function oA(t,o,a){t=t|0,o=o|0,a=a|0;var $=0;if((o|0)<(t|0)&(t|0)<(o+a|0)){for($=t,o=o+a|0,t=t+a|0;(a|0)>0;)t=t-1|0,o=o-1|0,a=a-1|0,f[t>>0]=f[o>>0]|0;t=$}else ge(t,o,a)|0;return t|0}function kC(t,o){t=t|0,o=o|0;var a=0;do f[(t+a|0)>>0]=f[(o+a|0)>>0],a=a+1|0;while(f[o+(a-1)>>0]|0);return t|0}function os(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0;return g=t-a>>>0,h=o-$>>>0,h=o-$-(a>>>0>t>>>0|0)>>>0,j6=h,g|0|0}function q_(t,o,a){t=t|0,o=o|0,a=a|0;var $=0;return(a|0)<32?($=(1<>a,t>>>a|(o&$)<<32-a):(j6=(o|0)<0?-1:0,o>>a-32|0)}function PQ(t){t=t|0;var o=0;return o=f[G9+(t&255)>>0]|0,(o|0)<8?o|0:(o=f[G9+(t>>8&255)>>0]|0,(o|0)<8?o+8|0:(o=f[G9+(t>>16&255)>>0]|0,(o|0)<8?o+16|0:(f[G9+(t>>>24)>>0]|0)+24|0))}function cD(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0;return a=t&65535,$=o&65535,g=o5($,a)|0,h=t>>>16,m=(g>>>16)+(o5($,h)|0)|0,I=o>>>16,E=o5(I,a)|0,j6=((m>>>16)+(o5(I,h)|0)|0)+(((m&65535)+E|0)>>>16)|0,0|(m+E<<16|g&65535)|0}function H_(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0;return g=o>>31|((o|0)<0?-1:0)<<1,h=((o|0)<0?-1:0)>>31|((o|0)<0?-1:0)<<1,m=$>>31|(($|0)<0?-1:0)<<1,I=(($|0)<0?-1:0)>>31|(($|0)<0?-1:0)<<1,E=os(g^t,h^o,g,h)|0,Q=j6,B=os(m^a,I^$,m,I)|0,S=m^g,b=I^h,v=cE(E,Q,B,j6,0)|0,w=os(v^S,j6^b,S,b)|0,w|0}function Y_(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0;return w=C,C=C+8|0,g=w|0,h=o>>31|((o|0)<0?-1:0)<<1,m=((o|0)<0?-1:0)>>31|((o|0)<0?-1:0)<<1,I=$>>31|(($|0)<0?-1:0)<<1,E=(($|0)<0?-1:0)>>31|(($|0)<0?-1:0)<<1,Q=os(h^t,m^o,h,m)|0,B=j6,S=os(I^a,E^$,I,E)|0,cE(Q,B,S,j6,g)|0,b=os(e[g>>2]^h,e[g+4>>2]^m,h,m)|0,v=j6,C=w,j6=v,b|0}function gD(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0;return g=t,h=a,m=cD(g,h)|0,I=j6,E=o5(o,h)|0,j6=((o5($,g)|0)+E|0)+I|I&0,0|m&-1|0}function V_(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0;return g=cE(t,o,a,$,0)|0,g|0}function J_(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0;return h=C,C=C+8|0,g=h|0,cE(t,o,a,$,g)|0,C=h,j6=e[g+4>>2]|0,e[g>>2]|0|0}function cE(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0;if(h=t,m=o,I=m,E=a,Q=$,B=Q,!(I|0))return S=(g|0)!=0,B|0?S?(e[g>>2]=t&-1,e[g+4>>2]=o&0,L0=0,F0=0,j6=L0,F0|0):(L0=0,F0=0,j6=L0,F0|0):(S&&(e[g>>2]=(h>>>0)%(E>>>0),e[g+4>>2]=0),L0=0,F0=(h>>>0)/(E>>>0)>>>0,j6=L0,F0|0);b=(B|0)==0;do if(E|0){if(!b){if(K=is(B|0)|0,a0=K-(is(I|0)|0)|0,a0>>>0<=31){W=a0+1|0,r0=31-a0|0,s0=a0-31>>31,t0=W,d0=h>>>(W>>>0)&s0|I<>>(W>>>0)&s0,o0=0,J=h<>2]=0|t&-1,e[g+4>>2]=m|o&0,L0=0,F0=0,j6=L0,F0|0):(L0=0,F0=0,j6=L0,F0|0)}if(M=E-1|0,M&E|0){R=(is(E|0)|0)+33|0,F=R-(is(I|0)|0)|0,T=64-F|0,N=32-F|0,G=N>>31,V=F-32|0,X=V>>31,t0=F,d0=N-1>>31&I>>>(V>>>0)|(I<>>(F>>>0))&X,q=X&I>>>(F>>>0),o0=h<>>(V>>>0))&G|h<>31;break}return g|0&&(e[g>>2]=M&h,e[g+4>>2]=0),(E|0)==1?(L0=m|o&0,F0=0|t&-1,j6=L0,F0|0):(L=PQ(E|0)|0,L0=0|I>>>(L>>>0),F0=I<<32-L|h>>>(L>>>0)|0,j6=L0,F0|0)}else{if(b)return g|0&&(e[g>>2]=(I>>>0)%(E>>>0),e[g+4>>2]=0),L0=0,F0=(I>>>0)/(E>>>0)>>>0,j6=L0,F0|0;if(!(h|0))return g|0&&(e[g>>2]=0,e[g+4>>2]=(I>>>0)%(B>>>0)),L0=0,F0=(I>>>0)/(B>>>0)>>>0,j6=L0,F0|0;if(v=B-1|0,!(v&B|0))return g|0&&(e[g>>2]=0|t&-1,e[g+4>>2]=v&I|o&0),L0=0,F0=I>>>((PQ(B|0)|0)>>>0),j6=L0,F0|0;if(w=is(B|0)|0,D=w-(is(I|0)|0)|0,D>>>0<=30){y=D+1|0,x=31-D|0,t0=y,d0=I<>>(y>>>0),q=I>>>(y>>>0),o0=0,J=h<>2]=0|t&-1,e[g+4>>2]=m|o&0,L0=0,F0=0,j6=L0,F0|0):(L0=0,F0=0,j6=L0,F0|0)}while(!1);if(!(t0|0))U0=J,N0=o0,T0=q,v0=d0,M0=0,K0=0;else{for(j=0|a&-1,u0=Q|$&0,c0=rs(j|0,u0|0,-1,-1)|0,$0=j6,n0=J,f0=o0,g0=q,I0=d0,Z=t0,l0=0;h0=f0>>>31|n0<<1,p0=l0|f0<<1,C0=0|(I0<<1|n0>>>31),S0=I0>>>31|g0<<1|0,os(c0,$0,C0,S0)|0,Q0=j6,b0=Q0>>31|((Q0|0)<0?-1:0)<<1,E0=b0&1,y0=os(C0,S0,b0&j,(((Q0|0)<0?-1:0)>>31|((Q0|0)<0?-1:0)<<1)&u0)|0,w0=y0,B0=j6,_0=Z-1|0,_0|0;)n0=h0,f0=p0,g0=B0,I0=w0,Z=_0,l0=E0;U0=h0,N0=p0,T0=B0,v0=w0,M0=0,K0=E0}return O0=N0,k0=0,V0=U0|k0,g|0&&(e[g>>2]=0|v0,e[g+4>>2]=T0|0),L0=(0|O0)>>>31|V0<<1|(k0<<1|O0>>>31)&0|M0,F0=(O0<<1|0)&-2|K0,j6=L0,F0|0}function uD(t,o,a,$,g){return t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,DC[t&3](o|0,a|0,$|0,g|0)|0}function dD(t,o){t=t|0,o=o|0,ss[t&7](o|0)}function hD(t,o,a){t=t|0,o=o|0,a=a|0,_C[t&3](o|0,a|0)}function fD(t,o){return t=t|0,o=o|0,HQ[t&1](o|0)|0}function ID(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0,YQ[t&1](o|0,a|0,$|0)}function mD(t,o,a,$,g,h,m,I,E){return t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0,E=E|0,VQ[t&3](o|0,a|0,$|0,g|0,h|0,m|0,I|0,E|0)|0}function pD(t,o,a){return t=t|0,o=o|0,a=a|0,mi[t&15](o|0,a|0)|0}function ED(t,o,a,$,g,h){return t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,xC[t&7](o|0,a|0,$|0,g|0,h|0)|0}function CD(t,o,a,$){return t=t|0,o=o|0,a=a|0,$=$|0,rn(0),0}function SC(t){t=t|0,rn(1)}function OQ(t,o){t=t|0,o=o|0,rn(2)}function BD(t){return t=t|0,rn(3),0}function QD(t,o,a){t=t|0,o=o|0,a=a|0,rn(4)}function qQ(t,o,a,$,g,h,m,I){return t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0,rn(5),0}function ol(t,o){return t=t|0,o=o|0,rn(6),0}function bC(t,o,a,$,g){return t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,rn(7),0}var DC=[CD,Ab,VS,JS],ss=[SC,ob,sb,mb,_b,xb,SC,SC],_C=[OQ,ib,Lb,OQ],HQ=[BD,pb],YQ=[QD,fb],VQ=[qQ,Tb,Pb,qQ],mi=[ol,rb,nb,ab,Ib,Eb,Mb,Rb,$b,Db,Jb,ol,ol,ol,ol,ol],xC=[bC,Fb,Nb,Gb,Ub,Ob,bC,bC];return{_memmove:oA,_strlen:nl,_strcat:GQ,_free:p2,_i64Add:rs,_encoder_clear:tD,_encoder_transfer_data:oD,_encoder_data_len:nD,_memset:u4,_malloc:R9,_memcpy:ge,_encoder_init:eD,_encoder_process:rD,_bitshift64Lshr:ns,_bitshift64Shl:UQ,_strcpy:kC,_encoder_analysis_buffer:iD,runPostSets:lD,stackAlloc:QS,stackSave:yS,stackRestore:wS,establishStackSpace:vS,setThrew:kS,setTempRet0:SS,getTempRet0:bS,dynCall_iiiii:uD,dynCall_vi:dD,dynCall_vii:hD,dynCall_ii:fD,dynCall_viii:ID,dynCall_iiiiiiiii:mD,dynCall_iii:pD,dynCall_iiiiii:ED}}(n.asmGlobalArg,n.asmLibraryArg,O7),m_=n.runPostSets=ee.runPostSets,nS=n._strlen=ee._strlen,oS=n._strcat=ee._strcat,hC=n._free=ee._free,p_=n._encoder_init=ee._encoder_init,sS=n._i64Add=ee._i64Add,aS=n._memmove=ee._memmove,E_=n._encoder_transfer_data=ee._encoder_transfer_data,C_=n._encoder_process=ee._encoder_process,B_=n._encoder_data_len=ee._encoder_data_len,AS=n._memset=ee._memset,Ru=n._malloc=ee._malloc,$S=n._memcpy=ee._memcpy,Q_=n._encoder_clear=ee._encoder_clear,lS=n._bitshift64Lshr=ee._bitshift64Lshr,y_=n._encoder_analysis_buffer=ee._encoder_analysis_buffer,cS=n._strcpy=ee._strcpy,gS=n._bitshift64Shl=ee._bitshift64Shl,w_=n.dynCall_iiiii=ee.dynCall_iiiii,v_=n.dynCall_vi=ee.dynCall_vi,k_=n.dynCall_vii=ee.dynCall_vii,S_=n.dynCall_ii=ee.dynCall_ii,b_=n.dynCall_viii=ee.dynCall_viii,D_=n.dynCall_iiiiiiiii=ee.dynCall_iiiiiiiii,__=n.dynCall_iii=ee.dynCall_iii,x_=n.dynCall_iiiiii=ee.dynCall_iiiiii;_.stackAlloc=ee.stackAlloc,_.stackSave=ee.stackSave,_.stackRestore=ee.stackRestore,_.establishStackSpace=ee.establishStackSpace,_.setTempRet0=ee.setTempRet0,_.getTempRet0=ee.getTempRet0;var L_=function(){var r={math:{}};r.math.Long=function(z,D0){this.low_=z|0,this.high_=D0|0},r.math.Long.IntCache_={},r.math.Long.fromInt=function(z){if(-128<=z&&z<128){var D0=r.math.Long.IntCache_[z];if(D0)return D0}var e1=new r.math.Long(z|0,z<0?-1:0);return-128<=z&&z<128&&(r.math.Long.IntCache_[z]=e1),e1},r.math.Long.fromNumber=function(z){return isNaN(z)||!isFinite(z)?r.math.Long.ZERO:z<=-r.math.Long.TWO_PWR_63_DBL_?r.math.Long.MIN_VALUE:z+1>=r.math.Long.TWO_PWR_63_DBL_?r.math.Long.MAX_VALUE:z<0?r.math.Long.fromNumber(-z).negate():new r.math.Long(z%r.math.Long.TWO_PWR_32_DBL_|0,z/r.math.Long.TWO_PWR_32_DBL_|0)},r.math.Long.fromBits=function(z,D0){return new r.math.Long(z,D0)},r.math.Long.fromString=function(z,D0){if(z.length==0)throw Error("number format error: empty string");var e1=D0||10;if(e1<2||36=0)throw Error('number format error: interior "-" character: '+z);for(var B2=r.math.Long.fromNumber(Math.pow(e1,8)),e3=r.math.Long.ZERO,O5=0;O5=0?this.low_:r.math.Long.TWO_PWR_32_DBL_+this.low_},r.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(r.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var z=this.high_!=0?this.high_:this.low_,D0=31;D0>0&&!(z&1<0},r.math.Long.prototype.greaterThanOrEqual=function(z){return this.compare(z)>=0},r.math.Long.prototype.compare=function(z){if(this.equals(z))return 0;var D0=this.isNegative(),e1=z.isNegative();return D0&&!e1?-1:!D0&&e1?1:this.subtract(z).isNegative()?-1:1},r.math.Long.prototype.negate=function(){return this.equals(r.math.Long.MIN_VALUE)?r.math.Long.MIN_VALUE:this.not().add(r.math.Long.ONE)},r.math.Long.prototype.add=function(z){var D0=this.high_>>>16,e1=this.high_&65535,B2=this.low_>>>16,e3=this.low_&65535,O5=z.high_>>>16,F3=z.high_&65535,r9=z.low_>>>16,q9=z.low_&65535,U9=0,r4=0,ai=0,nr=0;return nr+=e3+q9,ai+=nr>>>16,nr&=65535,ai+=B2+r9,r4+=ai>>>16,ai&=65535,r4+=e1+F3,U9+=r4>>>16,r4&=65535,U9+=D0+O5,U9&=65535,r.math.Long.fromBits(ai<<16|nr,U9<<16|r4)},r.math.Long.prototype.subtract=function(z){return this.add(z.negate())},r.math.Long.prototype.multiply=function(z){if(this.isZero())return r.math.Long.ZERO;if(z.isZero())return r.math.Long.ZERO;if(this.equals(r.math.Long.MIN_VALUE))return z.isOdd()?r.math.Long.MIN_VALUE:r.math.Long.ZERO;if(z.equals(r.math.Long.MIN_VALUE))return this.isOdd()?r.math.Long.MIN_VALUE:r.math.Long.ZERO;if(this.isNegative())return z.isNegative()?this.negate().multiply(z.negate()):this.negate().multiply(z).negate();if(z.isNegative())return this.multiply(z.negate()).negate();if(this.lessThan(r.math.Long.TWO_PWR_24_)&&z.lessThan(r.math.Long.TWO_PWR_24_))return r.math.Long.fromNumber(this.toNumber()*z.toNumber());var D0=this.high_>>>16,e1=this.high_&65535,B2=this.low_>>>16,e3=this.low_&65535,O5=z.high_>>>16,F3=z.high_&65535,r9=z.low_>>>16,q9=z.low_&65535,U9=0,r4=0,ai=0,nr=0;return nr+=e3*q9,ai+=nr>>>16,nr&=65535,ai+=B2*q9,r4+=ai>>>16,ai&=65535,ai+=e3*r9,r4+=ai>>>16,ai&=65535,r4+=e1*q9,U9+=r4>>>16,r4&=65535,r4+=B2*r9,U9+=r4>>>16,r4&=65535,r4+=e3*F3,U9+=r4>>>16,r4&=65535,U9+=D0*q9+e1*r9+B2*F3+e3*O5,U9&=65535,r.math.Long.fromBits(ai<<16|nr,U9<<16|r4)},r.math.Long.prototype.div=function(z){if(z.isZero())throw Error("division by zero");if(this.isZero())return r.math.Long.ZERO;if(this.equals(r.math.Long.MIN_VALUE)){if(z.equals(r.math.Long.ONE)||z.equals(r.math.Long.NEG_ONE))return r.math.Long.MIN_VALUE;if(z.equals(r.math.Long.MIN_VALUE))return r.math.Long.ONE;var D0=this.shiftRight(1),e1=D0.div(z).shiftLeft(1);if(e1.equals(r.math.Long.ZERO))return z.isNegative()?r.math.Long.ONE:r.math.Long.NEG_ONE;var O5=this.subtract(z.multiply(e1)),B2=e1.add(O5.div(z));return B2}else if(z.equals(r.math.Long.MIN_VALUE))return r.math.Long.ZERO;if(this.isNegative())return z.isNegative()?this.negate().div(z.negate()):this.negate().div(z).negate();if(z.isNegative())return this.div(z.negate()).negate();for(var e3=r.math.Long.ZERO,O5=this;O5.greaterThanOrEqual(z);){for(var e1=Math.max(1,Math.floor(O5.toNumber()/z.toNumber())),F3=Math.ceil(Math.log(e1)/Math.LN2),r9=F3<=48?1:Math.pow(2,F3-48),q9=r.math.Long.fromNumber(e1),U9=q9.multiply(z);U9.isNegative()||U9.greaterThan(O5);)e1-=r9,q9=r.math.Long.fromNumber(e1),U9=q9.multiply(z);q9.isZero()&&(q9=r.math.Long.ONE),e3=e3.add(q9),O5=O5.subtract(U9)}return e3},r.math.Long.prototype.modulo=function(z){return this.subtract(this.div(z).multiply(z))},r.math.Long.prototype.not=function(){return r.math.Long.fromBits(~this.low_,~this.high_)},r.math.Long.prototype.and=function(z){return r.math.Long.fromBits(this.low_&z.low_,this.high_&z.high_)},r.math.Long.prototype.or=function(z){return r.math.Long.fromBits(this.low_|z.low_,this.high_|z.high_)},r.math.Long.prototype.xor=function(z){return r.math.Long.fromBits(this.low_^z.low_,this.high_^z.high_)},r.math.Long.prototype.shiftLeft=function(z){if(z&=63,z==0)return this;var D0=this.low_;if(z<32){var e1=this.high_;return r.math.Long.fromBits(D0<>>32-z)}else return r.math.Long.fromBits(0,D0<>>z|D0<<32-z,D0>>z)}else return r.math.Long.fromBits(D0>>z-32,D0>=0?0:-1)},r.math.Long.prototype.shiftRightUnsigned=function(z){if(z&=63,z==0)return this;var D0=this.high_;if(z<32){var e1=this.low_;return r.math.Long.fromBits(e1>>>z|D0<<32-z,D0>>>z)}else return z==32?r.math.Long.fromBits(D0,0):r.math.Long.fromBits(D0>>>z-32,0)};var l={appName:"Modern Browser"},u,f=0xdeadbeefcafe,Y=(f&16777215)==15715070;function e(z,D0,e1){z!=null&&(typeof z=="number"?this.fromNumber(z,D0,e1):D0==null&&typeof z!="string"?this.fromString(z,256):this.fromString(z,D0))}function X0(){return new e(null)}function r1(z,D0,e1,B2,e3,O5){for(;--O5>=0;){var F3=D0*this[z++]+e1[B2]+e3;e3=Math.floor(F3/67108864),e1[B2++]=F3&67108863}return e3}function x2(z,D0,e1,B2,e3,O5){for(var F3=D0&32767,r9=D0>>15;--O5>=0;){var q9=this[z]&32767,U9=this[z++]>>15,r4=r9*q9+U9*F3;q9=F3*q9+((r4&32767)<<15)+e1[B2]+(e3&1073741823),e3=(q9>>>30)+(r4>>>15)+r9*U9+(e3>>>30),e1[B2++]=q9&1073741823}return e3}function s(z,D0,e1,B2,e3,O5){for(var F3=D0&16383,r9=D0>>14;--O5>=0;){var q9=this[z]&16383,U9=this[z++]>>14,r4=r9*q9+U9*F3;q9=F3*q9+((r4&16383)<<14)+e1[B2]+e3,e3=(q9>>28)+(r4>>14)+r9*U9,e1[B2++]=q9&268435455}return e3}Y&&l.appName=="Microsoft Internet Explorer"?(e.prototype.am=x2,u=30):Y&&l.appName!="Netscape"?(e.prototype.am=r1,u=26):(e.prototype.am=s,u=28),e.prototype.DB=u,e.prototype.DM=(1<=0;--D0)z[D0]=this[D0];z.t=this.t,z.s=this.s}function Dt(z){this.t=1,this.s=z<0?-1:0,z>0?this[0]=z:z<-1?this[0]=z+DV:this.t=0}function te(z){var D0=X0();return D0.fromInt(z),D0}function It(z,D0){var e1;if(D0==16)e1=4;else if(D0==8)e1=3;else if(D0==256)e1=8;else if(D0==2)e1=1;else if(D0==32)e1=5;else if(D0==4)e1=2;else{this.fromRadix(z,D0);return}this.t=0,this.s=0;for(var B2=z.length,e3=!1,O5=0;--B2>=0;){var F3=e1==8?z[B2]&255:K9(z,B2);if(F3<0){z.charAt(B2)=="-"&&(e3=!0);continue}e3=!1,O5==0?this[this.t++]=F3:O5+e1>this.DB?(this[this.t-1]|=(F3&(1<>this.DB-O5):this[this.t-1]|=F3<=this.DB&&(O5-=this.DB)}e1==8&&z[0]&128&&(this.s=-1,O5>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==z;)--this.t}function V7(z){if(this.s<0)return"-"+this.negate().toString(z);var D0;if(z==16)D0=4;else if(z==8)D0=3;else if(z==2)D0=1;else if(z==32)D0=5;else if(z==4)D0=2;else return this.toRadix(z);var e1=(1<0)for(r9>r9)>0&&(e3=!0,O5=G9(B2));F3>=0;)r9>(r9+=this.DB-D0)):(B2=this[F3]>>(r9-=D0)&e1,r9<=0&&(r9+=this.DB,--F3)),B2>0&&(e3=!0),e3&&(O5+=G9(B2));return e3?O5:"0"}function J7(){var z=X0();return e.ZERO.subTo(this,z),z}function Qr(){return this.s<0?this.negate():this}function tl(z){var D0=this.s-z.s;if(D0!=0)return D0;var e1=this.t;if(D0=e1-z.t,D0!=0)return this.s<0?-D0:D0;for(;--e1>=0;)if((D0=this[e1]-z[e1])!=0)return D0;return 0}function rE(z){var D0=1,e1;return(e1=z>>>16)!=0&&(z=e1,D0+=16),(e1=z>>8)!=0&&(z=e1,D0+=8),(e1=z>>4)!=0&&(z=e1,D0+=4),(e1=z>>2)!=0&&(z=e1,D0+=2),(e1=z>>1)!=0&&(z=e1,D0+=1),D0}function UB(){return this.t<=0?0:this.DB*(this.t-1)+rE(this[this.t-1]^this.s&this.DM)}function PB(z,D0){var e1;for(e1=this.t-1;e1>=0;--e1)D0[e1+z]=this[e1];for(e1=z-1;e1>=0;--e1)D0[e1]=0;D0.t=this.t+z,D0.s=this.s}function OB(z,D0){for(var e1=z;e1=0;--r9)D0[r9+O5+1]=this[r9]>>B2|F3,F3=(this[r9]&e3)<=0;--r9)D0[r9]=0;D0[O5]=F3,D0.t=this.t+O5+1,D0.s=this.s,D0.clamp()}function HB(z,D0){D0.s=this.s;var e1=Math.floor(z/this.DB);if(e1>=this.t){D0.t=0;return}var B2=z%this.DB,e3=this.DB-B2,O5=(1<>B2;for(var F3=e1+1;F3>B2;B2>0&&(D0[this.t-e1-1]|=(this.s&O5)<>=this.DB;if(z.t>=this.DB;B2+=this.s}else{for(B2+=this.s;e1>=this.DB;B2-=z.s}D0.s=B2<0?-1:0,B2<-1?D0[e1++]=this.DV+B2:B2>0&&(D0[e1++]=B2),D0.t=e1,D0.clamp()}function YB(z,D0){var e1=this.abs(),B2=z.abs(),e3=e1.t;for(D0.t=e3+B2.t;--e3>=0;)D0[e3]=0;for(e3=0;e3=0;)z[e1]=0;for(e1=0;e1=D0.DV&&(z[e1+D0.t]-=D0.DV,z[e1+D0.t+1]=1)}z.t>0&&(z[z.t-1]+=D0.am(e1,D0[e1],z,2*e1,0,1)),z.s=0,z.clamp()}function JB(z,D0,e1){var B2=z.abs();if(!(B2.t<=0)){var e3=this.abs();if(e3.t0?(B2.lShiftTo(q9,O5),e3.lShiftTo(q9,e1)):(B2.copyTo(O5),e3.copyTo(e1));var U9=O5.t,r4=O5[U9-1];if(r4!=0){var ai=r4*(1<1?O5[U9-2]>>this.F2:0),nr=this.FV/ai,oQ=(1<=0&&(e1[e1.t++]=1,e1.subTo(Pi,e1)),e.ONE.dlShiftTo(U9,Pi),Pi.subTo(O5,O5);O5.t=0;){var nE=e1[--nA]==r4?this.DM:Math.floor(e1[nA]*nr+(e1[nA-1]+sQ)*oQ);if((e1[nA]+=O5.am(0,nE,e1,Tu,0,U9))0&&e1.rShiftTo(q9,e1),F3<0&&e.ZERO.subTo(e1,e1)}}}function zB(z){var D0=X0();return this.abs().divRemTo(z,null,D0),this.s<0&&D0.compareTo(e.ZERO)>0&&z.subTo(D0,D0),D0}function tA(z){this.m=z}function KB(z){return z.s<0||z.compareTo(this.m)>=0?z.mod(this.m):z}function WB(z){return z}function ZB(z){z.divRemTo(this.m,null,z)}function jB(z,D0,e1){z.multiplyTo(D0,e1),this.reduce(e1)}function iA(z,D0){z.squareTo(D0),this.reduce(D0)}tA.prototype.convert=KB,tA.prototype.revert=WB,tA.prototype.reduce=ZB,tA.prototype.mulTo=jB,tA.prototype.sqrTo=iA;function rr(){if(this.t<1)return 0;var z=this[0];if(!(z&1))return 0;var D0=z&3;return D0=D0*(2-(z&15)*D0)&15,D0=D0*(2-(z&255)*D0)&255,D0=D0*(2-((z&65535)*D0&65535))&65535,D0=D0*(2-z*D0%this.DV)%this.DV,D0>0?this.DV-D0:-D0}function qn(z){this.m=z,this.mp=z.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(D0,D0),D0}function rA(z){var D0=X0();return z.copyTo(D0),this.reduce(D0),D0}function Hn(z){for(;z.t<=this.mt2;)z[z.t++]=0;for(var D0=0;D0>15)*this.mpl&this.um)<<15)&z.DM;for(e1=D0+this.m.t,z[e1]+=this.m.am(0,B2,z,D0,0,this.m.t);z[e1]>=z.DV;)z[e1]-=z.DV,z[++e1]++}z.clamp(),z.drShiftTo(this.m.t,z),z.compareTo(this.m)>=0&&z.subTo(this.m,z)}function XB(z,D0){z.squareTo(D0),this.reduce(D0)}function eQ(z,D0,e1){z.multiplyTo(D0,e1),this.reduce(e1)}qn.prototype.convert=Fu,qn.prototype.revert=rA,qn.prototype.reduce=Hn,qn.prototype.mulTo=eQ,qn.prototype.sqrTo=XB;function tQ(){return(this.t>0?this[0]&1:this.s)==0}function ts(z,D0){if(z>4294967295||z<1)return e.ONE;var e1=X0(),B2=X0(),e3=D0.convert(this),O5=rE(z)-1;for(e3.copyTo(e1);--O5>=0;)if(D0.sqrTo(e1,B2),(z&1<0)D0.mulTo(B2,e3,e1);else{var F3=e1;e1=B2,B2=F3}return D0.revert(e1)}function iQ(z,D0){var e1;return z<256||D0.isEven()?e1=new tA(D0):e1=new qn(D0),this.exp(z,e1)}e.prototype.copyTo=ye,e.prototype.fromInt=Dt,e.prototype.fromString=It,e.prototype.clamp=i4,e.prototype.dlShiftTo=PB,e.prototype.drShiftTo=OB,e.prototype.lShiftTo=qB,e.prototype.rShiftTo=HB,e.prototype.subTo=j6,e.prototype.multiplyTo=YB,e.prototype.squareTo=VB,e.prototype.divRemTo=JB,e.prototype.invDigit=rr,e.prototype.isEven=tQ,e.prototype.exp=ts,e.prototype.toString=V7,e.prototype.negate=J7,e.prototype.abs=Qr,e.prototype.compareTo=tl,e.prototype.bitLength=UB,e.prototype.mod=zB,e.prototype.modPowInt=iQ,e.ZERO=te(0),e.ONE=te(1);function Yn(z,D0){this.fromInt(0),D0==null&&(D0=10);for(var e1=this.chunkSize(D0),B2=Math.pow(D0,e1),e3=!1,O5=0,F3=0,r9=0;r9=e1&&(this.dMultiply(B2),this.dAddOffset(F3,0),O5=0,F3=0)}O5>0&&(this.dMultiply(Math.pow(D0,O5)),this.dAddOffset(F3,0)),e3&&e.ZERO.subTo(this,this)}function tn(z){return Math.floor(Math.LN2*this.DB/Math.log(z))}function IC(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function o5(z){this[this.t]=this.am(0,z-1,this,0,0,this.t),++this.t,this.clamp()}function rQ(z,D0){if(z!=0){for(;this.t<=D0;)this[this.t++]=0;for(this[D0]+=z;this[D0]>=this.DV;)this[D0]-=this.DV,++D0>=this.t&&(this[this.t++]=0),++this[D0]}}function is(z){if(z==null&&(z=10),this.signum()==0||z<2||z>36)return"0";var D0=this.chunkSize(z),e1=Math.pow(z,D0),B2=te(e1),e3=X0(),O5=X0(),F3="";for(this.divRemTo(B2,e3,O5);e3.signum()>0;)F3=(e1+O5.intValue()).toString(z).substr(1)+F3,e3.divRemTo(B2,e3,O5);return O5.intValue().toString(z)+F3}function rn(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<>=this.DB;if(z.t>=this.DB;B2+=this.s}else{for(B2+=this.s;e1>=this.DB;B2+=z.s}D0.s=B2<0?-1:0,B2>0?D0[e1++]=B2:B2<-1&&(D0[e1++]=this.DV+B2),D0.t=e1,D0.clamp()}e.prototype.fromRadix=Yn,e.prototype.chunkSize=tn,e.prototype.signum=IC,e.prototype.dMultiply=o5,e.prototype.dAddOffset=rQ,e.prototype.toRadix=is,e.prototype.intValue=rn,e.prototype.addTo=nQ;var l7={abs:function(z,D0){var e1=new r.math.Long(z,D0),B2;e1.isNegative()?B2=e1.negate():B2=e1,N9[bt>>2]=B2.low_,N9[bt+4>>2]=B2.high_},ensureTemps:function(){l7.ensuredTemps||(l7.ensuredTemps=!0,l7.two32=new e,l7.two32.fromString("4294967296",10),l7.two64=new e,l7.two64.fromString("18446744073709551616",10),l7.temp1=new e,l7.temp2=new e)},lh2bignum:function(z,D0){var e1=new e;e1.fromString(D0.toString(),10);var B2=new e;e1.multiplyTo(l7.two32,B2);var e3=new e;e3.fromString(z.toString(),10);var O5=new e;return e3.addTo(B2,O5),O5},stringify:function(z,D0,e1){var B2=new r.math.Long(z,D0).toString();if(e1&&B2[0]=="-"){l7.ensureTemps();var e3=new e;e3.fromString(B2,10),B2=new e,l7.two64.addTo(e3,B2),B2=B2.toString(10)}return B2},fromString:function(z,D0,e1,B2,e3){l7.ensureTemps();var O5=new e;O5.fromString(z,D0);var F3=new e;F3.fromString(e1,10);var r9=new e;if(r9.fromString(B2,10),e3&&O5.compareTo(e.ZERO)<0){var q9=new e;O5.addTo(l7.two64,q9),O5=q9}var U9=!1;O5.compareTo(F3)<0?(O5=F3,U9=!0):O5.compareTo(r9)>0&&(O5=r9,U9=!0);var r4=r.math.Long.fromString(O5.toString());if(N9[bt>>2]=r4.low_,N9[bt+4>>2]=r4.high_,U9)throw"range error"}};return l7}();function eA(r){this.name="ExitStatus",this.message="Program terminated with exit("+r+")",this.status=r}eA.prototype=new Error,eA.prototype.constructor=eA;var FB,iE=null,uS=!1;H7=function r(){n.calledRun||fC(),n.calledRun||(H7=r)},n.callMain=n.callMain=function(l){t4(k8==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),t4(Wp.length==0,"cannot call main when preRun functions remain to be called"),l=l||[],Wo();var u=l.length+1;function f(){for(var r1=0;r1<3;r1++)Y.push(0)}var Y=[C3(en(n.thisProgram),"i8",Za)];f();for(var e=0;e0||(Lu(),k8>0)||n.calledRun)return;function l(){n.calledRun||(n.calledRun=!0,!i0&&(Wo(),kB(),c&&iE!==null&&n.printErr("pre-main prep time: "+(Date.now()-iE)+" ms"),n.onRuntimeInitialized&&n.onRuntimeInitialized(),n._main&&GB&&n.callMain(r),z$()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),l()},1)):l()}n.run=n.run=fC;function TB(r,l){if(!(l&&n.noExitRuntime))throw n.noExitRuntime||(i0=!0,a1=r,v7=FB,Zp(),n.onExit&&n.onExit(r)),d?(process.stdout.once("drain",function(){process.exit(r)}),console.log(" "),setTimeout(function(){process.exit(r)},500)):U&&typeof quit=="function"&&quit(r),new eA(r)}n.exit=n.exit=TB;var NB=[];function es(r){r!==void 0?(n.print(r),n.printErr(r),r=JSON.stringify(r)):r="",i0=!0,a1=1;var l=` -If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,u="abort("+r+") at "+Jp()+l;throw NB&&NB.forEach(function(f){u=f(u,r)}),u}if(n.abort=n.abort=es,n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();var GB=!0;n.noInitialRun&&(GB=!1),fC();var dS=n._encoder_init,hS=n._encoder_clear,fS=n._encoder_analysis_buffer,IS=n._encoder_process,mS=n._encoder_data_len,pS=n._encoder_transfer_data,k7=n.HEAPU8,j$=n.HEAPU32,X$=n.HEAPF32,el=function(r,l,u){this.numChannels=l,this.oggBuffers=[],this.encoder=dS(this.numChannels,r,u)};el.prototype.encode=function(r){for(var l=r[0].length,u=fS(this.encoder,l)>>2,f=0;f>2);this.process(l)},el.prototype.finish=function(){this.process(0);let r=this.oggBuffers.slice();return this.cleanup(),r},el.prototype.cancel=el.prototype.cleanup=function(){hS(this.encoder),delete this.encoder,delete this.oggBuffers},el.prototype.process=function(r){IS(this.encoder,r);var l=mS(this.encoder);if(l>0){var u=pS(this.encoder);this.oggBuffers.push(new Uint8Array(k7.subarray(u,u+l)))}},nC.OggVorbisEncoder=el}};typeof window<"u"&&window===self&&nC.init();function Bk(n,i,A,c){let d=new nC.OggVorbisEncoder(A,i,c);d.encode(n);let p=d.finish(),U=p.reduce((P,W0)=>P+W0.length,0),H=new Uint8Array(U),O=0;for(let P of p)H.set(P,O),O+=P.length;return H}var oC=class{constructor(i,A){let c=document.getElementsByClassName("drop_prompt")[0];document.body.addEventListener("dragover",d=>{d.preventDefault(),c.classList.remove("hidden")}),document.body.addEventListener("dragleave",()=>{c.classList.add("hidden")}),document.body.addEventListener("drop",async d=>{d.preventDefault(),c.classList.add("hidden");let p=d.dataTransfer.files[0];if(!p)return;let U=p.name,H=await p.arrayBuffer(),O=H.slice(0,4),P=new TextDecoder;if(P.decode(O)==="RIFF"){let W0=H.slice(8,12);if(P.decode(W0)==="RMID"){i({buf:H,name:U});return}A(H);return}i({buf:H,name:U})})}};async function Qk(){let n="locale.exportAudio.formats.formats.dls.warning.";qe(this.localeManager.getLocaleString(n+"title"),[{type:"text",textContent:this.localeManager.getLocaleString(n+"message"),attributes:{style:"color: red"}},{type:"toggle",translatePathTitle:"locale.exportAudio.formats.formats.soundfont.options.trim",attributes:{"trim-toggle":"1"}},{type:"button",textContent:this.localeManager.getLocaleString(n+"details"),onClick:()=>{window.open("https://github.com/spessasus/SpessaSynth/wiki/DLS-Conversion-Problem")}},{type:"button",textContent:this.localeManager.getLocaleString(n+"confirm"),onClick:async i=>{let A=i.div.querySelector("input[trim-toggle='1']").checked;le(i.id),M7("%cExporting DLS...",C1.info);let c=await this.seq.getMIDI(),d=Ja(c.embeddedSoundFont||this.soundFont);Ua(c,await this.synth.getSynthesizerSnapshot()),A&&Cu(d,c);let p=d.writeDLS(),U=new Blob([p.buffer],{type:"audio/dls"});this.saveBlob(U,`${d.soundFontInfo.INAM||"unnamed"}.dls`),g9()}}],99999999,!0,this.localeManager)}document.body.classList.add("load");var o_=!1,Kr=class{channelColors=["rgba(255, 99, 71, 1)","rgba(255, 165, 0, 1)","rgba(255, 215, 0, 1)","rgba(50, 205, 50, 1)","rgba(60, 179, 113, 1)","rgba(0, 128, 0, 1)","rgba(0, 191, 255, 1)","rgba(65, 105, 225, 1)","rgba(138, 43, 226, 1)","rgba(50, 120, 125, 1)","rgba(255, 0, 255, 1)","rgba(255, 20, 147, 1)","rgba(218, 112, 214, 1)","rgba(240, 128, 128, 1)","rgba(255, 192, 203, 1)","rgba(255, 255, 0, 1)"];sfError;constructor(i,A,c,d=o_){this.localeManager=c,this.context=i,this.enableDebug=d,this.isExporting=!1,this.compressionFunc=Bk;let p;this.ready=new Promise(U=>p=U),this.initializeContext(i,A).then(()=>{p()})}saveBlob(i,A){let c=URL.createObjectURL(i),d=document.createElement("a");d.href=c,d.download=A,d.click(),_5(d)}async initializeContext(i,A){if(!i.audioWorklet)throw alert("Audio worklet is not supported on your browser. Sorry!"),new Error("Audio worklet is not supported");for(let e0 of document.querySelectorAll("*[translate-path]"))this.localeManager.bindObjectProperty(e0,"innerText",e0.getAttribute("translate-path"));for(let e0 of document.querySelectorAll("*[translate-path-title]"))this.localeManager.bindObjectProperty(e0,"innerText",e0.getAttribute("translate-path-title")+".title"),this.localeManager.bindObjectProperty(e0,"title",e0.getAttribute("translate-path-title")+".description");this.soundFont=A;let d=this.enableDebug?"synthetizer/worklet_system/worklet_processor.js":Ck;this.enableDebug&&console.warn("DEBUG ENABLED! DEBUGGING ENABLED!!");let p=window.isLocalEdition?"../../../spessasynth_lib/":"../../spessasynth_lib/";this.workletPath=p+d,i.audioWorklet&&await i.audioWorklet.addModule(new URL(this.workletPath,import.meta.url));let U=new URL(p+"synthetizer/audio_effects/impulse_response_2.flac",import.meta.url),O=await(await fetch(U)).arrayBuffer();this.impulseResponse=await i.decodeAudioData(O),this.audioDelay=new DelayNode(i,{delayTime:0}),this.audioDelay.connect(i.destination),this.synth=new fu(this.audioDelay,this.soundFont,void 0,void 0,{chorusEnabled:!0,chorusConfig:void 0,reverbImpulseResponse:this.impulseResponse,reverbEnabled:!0}),this.synth.eventHandler.addEvent("soundfonterror","manager-sf-error",e0=>{this.sfError&&this.sfError(e0.message)}),await this.synth.isReady,this.midHandler=new qE,this.wml=new HE(this.synth),this.keyboard=new Dp(this.channelColors,this.synth);let P=document.getElementById("note_canvas");P.width=window.innerWidth*window.devicePixelRatio,P.height=window.innerHeight*window.devicePixelRatio,this.renderer=new T7(this.channelColors,this.synth,P,this.audioDelay,window.SPESSASYNTH_VERSION),this.renderer.render(!0);let W0=!1,_=()=>{if(P.width=window.innerWidth*window.devicePixelRatio,P.height=window.innerHeight*window.devicePixelRatio,this.renderer.computeColors(),F7){if(window.innerWidth/window.innerHeight>1){if(!W0){let e0=document.getElementById("title_wrapper"),i0=document.getElementById("settings_div");W0=!0,e0.parentElement.insertBefore(i0,e0)}}else if(W0){let e0=document.getElementById("title_wrapper"),i0=document.getElementById("settings_div");W0=!1,e0.parentElement.insertBefore(e0,i0)}}this.renderer.render(!1,!0)};_(),window.addEventListener("resize",_.bind(this)),window.addEventListener("orientationchange",_.bind(this)),F7&&(this.renderer.keyRange={min:48,max:72},this.keyboard.setKeyRange({min:48,max:72},!1)),this.synthUI=new Jr(this.channelColors,document.getElementById("synthetizer_controls"),this.localeManager),this.synthUI.connectSynth(this.synth),this.synthUI.connectKeyboard(this.keyboard),this.playerUI=new KE(document.getElementById("player_info"),this.localeManager),this.seqUI=new Po(document.getElementById("sequencer_controls"),this.localeManager,this.playerUI),this.settingsUI=new w7(document.getElementById("settings_div"),this.synthUI,this.seqUI,this.renderer,this.keyboard,this.midHandler,this.playerUI,this.localeManager),this.dropFileHandler=new oC(e0=>{this.play([{binary:e0.buf,altName:e0.name}]),e0.name.length>20&&(e0.name=e0.name.substring(0,21)+"..."),document.getElementById("file_upload").textContent=e0.name},e0=>{this.reloadSf(e0)}),document.addEventListener("keydown",e0=>{switch(e0.key.toLowerCase()){case oi.cinematicMode:this.seq&&this.seq.pause();let i0=window.prompt(`Cinematic mode activated! - Paste the link to the image for canvas (leave blank to disable)`,"");if(this.seq&&this.seq.play(),i0===null)return;P.style.background=`linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), center center / cover url("${i0}")`,document.getElementsByClassName("top_part")[0].style.display="none",document.getElementsByClassName("bottom_part")[0].style.display="none",document.body.requestFullscreen().then();break;case oi.videoMode:this.seq&&this.seq.pause();let a1=window.prompt(`Video mode! +`));if(!l)return null;r.input=en(l,!0)}return r.input.shift()},put_char:function(r,l){l===null||l===10?(n.print(Vo(r.output,0)),r.output=[]):l!=0&&r.output.push(l)},flush:function(r){r.output&&r.output.length>0&&(n.print(Vo(r.output,0)),r.output=[])}},default_tty1_ops:{put_char:function(r,l){l===null||l===10?(n.printErr(Vo(r.output,0)),r.output=[]):l!=0&&r.output.push(l)},flush:function(r){r.output&&r.output.length>0&&(n.printErr(Vo(r.output,0)),r.output=[])}}},M9={ops_table:null,mount:function(r){return M9.createNode(null,"/",16895,0)},createNode:function(r,l,u,f){if(k.isBlkdev(u)||k.isFIFO(u))throw new k.ErrnoError(T2.EPERM);M9.ops_table||(M9.ops_table={dir:{node:{getattr:M9.node_ops.getattr,setattr:M9.node_ops.setattr,lookup:M9.node_ops.lookup,mknod:M9.node_ops.mknod,rename:M9.node_ops.rename,unlink:M9.node_ops.unlink,rmdir:M9.node_ops.rmdir,readdir:M9.node_ops.readdir,symlink:M9.node_ops.symlink},stream:{llseek:M9.stream_ops.llseek}},file:{node:{getattr:M9.node_ops.getattr,setattr:M9.node_ops.setattr},stream:{llseek:M9.stream_ops.llseek,read:M9.stream_ops.read,write:M9.stream_ops.write,allocate:M9.stream_ops.allocate,mmap:M9.stream_ops.mmap,msync:M9.stream_ops.msync}},link:{node:{getattr:M9.node_ops.getattr,setattr:M9.node_ops.setattr,readlink:M9.node_ops.readlink},stream:{}},chrdev:{node:{getattr:M9.node_ops.getattr,setattr:M9.node_ops.setattr},stream:k.chrdev_stream_ops}});var Y=k.createNode(r,l,u,f);return k.isDir(Y.mode)?(Y.node_ops=M9.ops_table.dir.node,Y.stream_ops=M9.ops_table.dir.stream,Y.contents={}):k.isFile(Y.mode)?(Y.node_ops=M9.ops_table.file.node,Y.stream_ops=M9.ops_table.file.stream,Y.usedBytes=0,Y.contents=null):k.isLink(Y.mode)?(Y.node_ops=M9.ops_table.link.node,Y.stream_ops=M9.ops_table.link.stream):k.isChrdev(Y.mode)&&(Y.node_ops=M9.ops_table.chrdev.node,Y.stream_ops=M9.ops_table.chrdev.stream),Y.timestamp=Date.now(),r&&(r.contents[l]=Y),Y},getFileDataAsRegularArray:function(r){if(r.contents&&r.contents.subarray){for(var l=[],u=0;ur.contents.length&&(r.contents=M9.getFileDataAsRegularArray(r),r.usedBytes=r.contents.length),!r.contents||r.contents.subarray){var u=r.contents?r.contents.buffer.byteLength:0;if(u>=l)return;var f=1024*1024;l=Math.max(l,u*(u0&&r.contents.set(Y.subarray(0,r.usedBytes),0);return}for(!r.contents&&l>0&&(r.contents=[]);r.contents.lengthl)r.contents.length=l;else for(;r.contents.length=r.node.usedBytes)return 0;var X0=Math.min(r.node.usedBytes-Y,f);if(t4(X0>=0),X0>8&&e.subarray)l.set(e.subarray(Y,Y+X0),u);else for(var r1=0;r10||Y+fP5.timestamp)&&(Y.push(k5),f++)});var e=[];if(Object.keys(l.entries).forEach(function(k5){var w2=l.entries[k5],P5=r.entries[k5];P5||(e.push(k5),f++)}),!f)return u(null);var X0=!1,r1=0,x2=r.type==="remote"?r.db:l.db,s=x2.transaction([S8.DB_STORE_NAME],"readwrite"),l1=s.objectStore(S8.DB_STORE_NAME);function C(k5){if(k5)return C.errored?void 0:(C.errored=!0,u(k5));if(++r1>=f)return u(null)}s.onerror=function(k5){C(this.error),k5.preventDefault()},Y.sort().forEach(function(k5){l.type==="local"?S8.loadRemoteEntry(l1,k5,function(w2,P5){if(w2)return C(w2);S8.storeLocalEntry(k5,P5,C)}):S8.loadLocalEntry(k5,function(w2,P5){if(w2)return C(w2);S8.storeRemoteEntry(l1,k5,P5,C)})}),e.sort().reverse().forEach(function(k5){l.type==="local"?S8.removeLocalEntry(k5,C):S8.removeRemoteEntry(l1,k5,C)})}},ft={isWindows:!1,staticInit:function(){ft.isWindows=!!process.platform.match(/^win/)},mount:function(r){return t4(d),ft.createNode(null,"/",ft.getMode(r.opts.root),0)},createNode:function(r,l,u,f){if(!k.isDir(u)&&!k.isFile(u)&&!k.isLink(u))throw new k.ErrnoError(T2.EINVAL);var Y=k.createNode(r,l,u);return Y.node_ops=ft.node_ops,Y.stream_ops=ft.stream_ops,Y},getMode:function(r){var l;try{l=b8.lstatSync(r),ft.isWindows&&(l.mode=l.mode|(l.mode&146)>>1)}catch(u){throw u.code?new k.ErrnoError(T2[u.code]):u}return l.mode},realPath:function(r){for(var l=[];r.parent!==r;)l.push(r.name),r=r.parent;return l.push(r.mount.opts.root),l.reverse(),m9.join.apply(null,l)},flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function(r){return r in ft.flagsToPermissionStringMap?ft.flagsToPermissionStringMap[r]:r},node_ops:{getattr:function(r){var l=ft.realPath(r),u;try{u=b8.lstatSync(l)}catch(f){throw f.code?new k.ErrnoError(T2[f.code]):f}return ft.isWindows&&!u.blksize&&(u.blksize=4096),ft.isWindows&&!u.blocks&&(u.blocks=(u.size+u.blksize-1)/u.blksize|0),{dev:u.dev,ino:u.ino,mode:u.mode,nlink:u.nlink,uid:u.uid,gid:u.gid,rdev:u.rdev,size:u.size,atime:u.atime,mtime:u.mtime,ctime:u.ctime,blksize:u.blksize,blocks:u.blocks}},setattr:function(r,l){var u=ft.realPath(r);try{if(l.mode!==void 0&&(b8.chmodSync(u,l.mode),r.mode=l.mode),l.timestamp!==void 0){var f=new Date(l.timestamp);b8.utimesSync(u,f,f)}l.size!==void 0&&b8.truncateSync(u,l.size)}catch(Y){throw Y.code?new k.ErrnoError(T2[Y.code]):Y}},lookup:function(r,l){var u=m9.join2(ft.realPath(r),l),f=ft.getMode(u);return ft.createNode(r,l,f)},mknod:function(r,l,u,f){var Y=ft.createNode(r,l,u,f),e=ft.realPath(Y);try{k.isDir(Y.mode)?b8.mkdirSync(e,Y.mode):b8.writeFileSync(e,"",{mode:Y.mode})}catch(X0){throw X0.code?new k.ErrnoError(T2[X0.code]):X0}return Y},rename:function(r,l,u){var f=ft.realPath(r),Y=m9.join2(ft.realPath(l),u);try{b8.renameSync(f,Y)}catch(e){throw e.code?new k.ErrnoError(T2[e.code]):e}},unlink:function(r,l){var u=m9.join2(ft.realPath(r),l);try{b8.unlinkSync(u)}catch(f){throw f.code?new k.ErrnoError(T2[f.code]):f}},rmdir:function(r,l){var u=m9.join2(ft.realPath(r),l);try{b8.rmdirSync(u)}catch(f){throw f.code?new k.ErrnoError(T2[f.code]):f}},readdir:function(r){var l=ft.realPath(r);try{return b8.readdirSync(l)}catch(u){throw u.code?new k.ErrnoError(T2[u.code]):u}},symlink:function(r,l,u){var f=m9.join2(ft.realPath(r),l);try{b8.symlinkSync(u,f)}catch(Y){throw Y.code?new k.ErrnoError(T2[Y.code]):Y}},readlink:function(r){var l=ft.realPath(r);try{return l=b8.readlinkSync(l),l=RB.relative(RB.resolve(r.mount.opts.root),l),l}catch(u){throw u.code?new k.ErrnoError(T2[u.code]):u}}},stream_ops:{open:function(r){var l=ft.realPath(r.node);try{k.isFile(r.node.mode)&&(r.nfd=b8.openSync(l,ft.flagsToPermissionString(r.flags)))}catch(u){throw u.code?new k.ErrnoError(T2[u.code]):u}},close:function(r){try{k.isFile(r.node.mode)&&r.nfd&&b8.closeSync(r.nfd)}catch(l){throw l.code?new k.ErrnoError(T2[l.code]):l}},read:function(r,l,u,f,Y){if(f===0)return 0;var e=new Buffer(f),X0;try{X0=b8.readSync(r.nfd,e,0,f,Y)}catch(x2){throw new k.ErrnoError(T2[x2.code])}if(X0>0)for(var r1=0;r18)throw new k.ErrnoError(T2.ELOOP);for(var Y=m9.normalizeArray(r.split("/").filter(function(k5){return!!k5}),!1),e=k.root,X0="/",r1=0;r140)throw new k.ErrnoError(T2.ELOOP)}}return{path:X0,node:e}},getPath:function(r){for(var l;;){if(k.isRoot(r)){var u=r.mount.mountpoint;return l?u[u.length-1]!=="/"?u+"/"+l:u+l:u}l=l?r.name+"/"+l:r.name,r=r.parent}},hashName:function(r,l){for(var u=0,f=0;f>>0)%k.nameTable.length},hashAddNode:function(r){var l=k.hashName(r.parent.id,r.name);r.name_next=k.nameTable[l],k.nameTable[l]=r},hashRemoveNode:function(r){var l=k.hashName(r.parent.id,r.name);if(k.nameTable[l]===r)k.nameTable[l]=r.name_next;else for(var u=k.nameTable[l];u;){if(u.name_next===r){u.name_next=r.name_next;break}u=u.name_next}},lookupNode:function(r,l){var u=k.mayLookup(r);if(u)throw new k.ErrnoError(u,r);for(var f=k.hashName(r.id,l),Y=k.nameTable[f];Y;Y=Y.name_next){var e=Y.name;if(Y.parent.id===r.id&&e===l)return Y}return k.lookup(r,l)},createNode:function(r,l,u,f){if(!k.FSNode){k.FSNode=function(r1,x2,s,l1){r1||(r1=this),this.parent=r1,this.mount=r1.mount,this.mounted=null,this.id=k.nextInode++,this.name=x2,this.mode=s,this.node_ops={},this.stream_ops={},this.rdev=l1},k.FSNode.prototype={};var Y=365,e=146;Object.defineProperties(k.FSNode.prototype,{read:{get:function(){return(this.mode&Y)===Y},set:function(r1){r1?this.mode|=Y:this.mode&=~Y}},write:{get:function(){return(this.mode&e)===e},set:function(r1){r1?this.mode|=e:this.mode&=~e}},isFolder:{get:function(){return k.isDir(this.mode)}},isDevice:{get:function(){return k.isChrdev(this.mode)}}})}var X0=new k.FSNode(r,l,u,f);return k.hashAddNode(X0),X0},destroyNode:function(r){k.hashRemoveNode(r)},isRoot:function(r){return r===r.parent},isMountpoint:function(r){return!!r.mounted},isFile:function(r){return(r&61440)===32768},isDir:function(r){return(r&61440)===16384},isLink:function(r){return(r&61440)===40960},isChrdev:function(r){return(r&61440)===8192},isBlkdev:function(r){return(r&61440)===24576},isFIFO:function(r){return(r&61440)===4096},isSocket:function(r){return(r&49152)===49152},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(r){var l=k.flagModes[r];if(typeof l>"u")throw new Error("Unknown file open mode: "+r);return l},flagsToPermissionString:function(r){var l=r&2097155,u=["r","w","rw"][l];return r&512&&(u+="w"),u},nodePermissions:function(r,l){return k.ignorePermissions?0:l.indexOf("r")!==-1&&!(r.mode&292)||l.indexOf("w")!==-1&&!(r.mode&146)||l.indexOf("x")!==-1&&!(r.mode&73)?T2.EACCES:0},mayLookup:function(r){var l=k.nodePermissions(r,"x");return l||(r.node_ops.lookup?0:T2.EACCES)},mayCreate:function(r,l){try{var u=k.lookupNode(r,l);return T2.EEXIST}catch{}return k.nodePermissions(r,"wx")},mayDelete:function(r,l,u){var f;try{f=k.lookupNode(r,l)}catch(e){return e.errno}var Y=k.nodePermissions(r,"wx");if(Y)return Y;if(u){if(!k.isDir(f.mode))return T2.ENOTDIR;if(k.isRoot(f)||k.getPath(f)===k.cwd())return T2.EBUSY}else if(k.isDir(f.mode))return T2.EISDIR;return 0},mayOpen:function(r,l){return r?k.isLink(r.mode)?T2.ELOOP:k.isDir(r.mode)&&(l&2097155||l&512)?T2.EISDIR:k.nodePermissions(r,k.flagsToPermissionString(l)):T2.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(r,l){r=r||0,l=l||k.MAX_OPEN_FDS;for(var u=r;u<=l;u++)if(!k.streams[u])return u;throw new k.ErrnoError(T2.EMFILE)},getStream:function(r){return k.streams[r]},createStream:function(r,l,u){k.FSStream||(k.FSStream=function(){},k.FSStream.prototype={},Object.defineProperties(k.FSStream.prototype,{object:{get:function(){return this.node},set:function(X0){this.node=X0}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}));var f=new k.FSStream;for(var Y in r)f[Y]=r[Y];r=f;var e=k.nextfd(l,u);return r.fd=e,k.streams[e]=r,r},closeStream:function(r){k.streams[r]=null},getStreamFromPtr:function(r){return k.streams[r-1]},getPtrForStream:function(r){return r?r.fd+1:0},chrdev_stream_ops:{open:function(r){var l=k.getDevice(r.node.rdev);r.stream_ops=l.stream_ops,r.stream_ops.open&&r.stream_ops.open(r)},llseek:function(){throw new k.ErrnoError(T2.ESPIPE)}},major:function(r){return r>>8},minor:function(r){return r&255},makedev:function(r,l){return r<<8|l},registerDevice:function(r,l){k.devices[r]={stream_ops:l}},getDevice:function(r){return k.devices[r]},getMounts:function(r){for(var l=[],u=[r];u.length;){var f=u.pop();l.push(f),u.push.apply(u,f.mounts)}return l},syncfs:function(r,l){typeof r=="function"&&(l=r,r=!1);var u=k.getMounts(k.root.mount),f=0;function Y(e){if(e)return Y.errored?void 0:(Y.errored=!0,l(e));++f>=u.length&&l(null)}u.forEach(function(e){if(!e.type.syncfs)return Y(null);e.type.syncfs(e,r,Y)})},mount:function(r,l,u){var f=u==="/",Y=!u,e;if(f&&k.root)throw new k.ErrnoError(T2.EBUSY);if(!f&&!Y){var X0=k.lookupPath(u,{follow_mount:!1});if(u=X0.path,e=X0.node,k.isMountpoint(e))throw new k.ErrnoError(T2.EBUSY);if(!k.isDir(e.mode))throw new k.ErrnoError(T2.ENOTDIR)}var r1={type:r,opts:l,mountpoint:u,mounts:[]},x2=r.mount(r1);return x2.mount=r1,r1.root=x2,f?k.root=x2:e&&(e.mounted=r1,e.mount&&e.mount.mounts.push(r1)),x2},unmount:function(r){var l=k.lookupPath(r,{follow_mount:!1});if(!k.isMountpoint(l.node))throw new k.ErrnoError(T2.EINVAL);var u=l.node,f=u.mounted,Y=k.getMounts(f);Object.keys(k.nameTable).forEach(function(X0){for(var r1=k.nameTable[X0];r1;){var x2=r1.name_next;Y.indexOf(r1.mount)!==-1&&k.destroyNode(r1),r1=x2}}),u.mounted=null;var e=u.mount.mounts.indexOf(f);t4(e!==-1),u.mount.mounts.splice(e,1)},lookup:function(r,l){return r.node_ops.lookup(r,l)},mknod:function(r,l,u){var f=k.lookupPath(r,{parent:!0}),Y=f.node,e=m9.basename(r);if(!e||e==="."||e==="..")throw new k.ErrnoError(T2.EINVAL);var X0=k.mayCreate(Y,e);if(X0)throw new k.ErrnoError(X0);if(!Y.node_ops.mknod)throw new k.ErrnoError(T2.EPERM);return Y.node_ops.mknod(Y,e,l,u)},create:function(r,l){return l=l!==void 0?l:438,l&=4095,l|=32768,k.mknod(r,l,0)},mkdir:function(r,l){return l=l!==void 0?l:511,l&=1023,l|=16384,k.mknod(r,l,0)},mkdev:function(r,l,u){return typeof u>"u"&&(u=l,l=438),l|=8192,k.mknod(r,l,u)},symlink:function(r,l){if(!m9.resolve(r))throw new k.ErrnoError(T2.ENOENT);var u=k.lookupPath(l,{parent:!0}),f=u.node;if(!f)throw new k.ErrnoError(T2.ENOENT);var Y=m9.basename(l),e=k.mayCreate(f,Y);if(e)throw new k.ErrnoError(e);if(!f.node_ops.symlink)throw new k.ErrnoError(T2.EPERM);return f.node_ops.symlink(f,Y,r)},rename:function(r,l){var u=m9.dirname(r),f=m9.dirname(l),Y=m9.basename(r),e=m9.basename(l),X0,r1,x2;try{X0=k.lookupPath(r,{parent:!0}),r1=X0.node,X0=k.lookupPath(l,{parent:!0}),x2=X0.node}catch{throw new k.ErrnoError(T2.EBUSY)}if(!r1||!x2)throw new k.ErrnoError(T2.ENOENT);if(r1.mount!==x2.mount)throw new k.ErrnoError(T2.EXDEV);var s=k.lookupNode(r1,Y),l1=m9.relative(r,f);if(l1.charAt(0)!==".")throw new k.ErrnoError(T2.EINVAL);if(l1=m9.relative(l,u),l1.charAt(0)!==".")throw new k.ErrnoError(T2.ENOTEMPTY);var C;try{C=k.lookupNode(x2,e)}catch{}if(s!==C){var k5=k.isDir(s.mode),w2=k.mayDelete(r1,Y,k5);if(w2)throw new k.ErrnoError(w2);if(w2=C?k.mayDelete(x2,e,k5):k.mayCreate(x2,e),w2)throw new k.ErrnoError(w2);if(!r1.node_ops.rename)throw new k.ErrnoError(T2.EPERM);if(k.isMountpoint(s)||C&&k.isMountpoint(C))throw new k.ErrnoError(T2.EBUSY);if(x2!==r1&&(w2=k.nodePermissions(r1,"w"),w2))throw new k.ErrnoError(w2);try{k.trackingDelegate.willMovePath&&k.trackingDelegate.willMovePath(r,l)}catch(P5){console.log("FS.trackingDelegate['willMovePath']('"+r+"', '"+l+"') threw an exception: "+P5.message)}k.hashRemoveNode(s);try{r1.node_ops.rename(s,x2,e)}catch(P5){throw P5}finally{k.hashAddNode(s)}try{k.trackingDelegate.onMovePath&&k.trackingDelegate.onMovePath(r,l)}catch(P5){console.log("FS.trackingDelegate['onMovePath']('"+r+"', '"+l+"') threw an exception: "+P5.message)}}},rmdir:function(r){var l=k.lookupPath(r,{parent:!0}),u=l.node,f=m9.basename(r),Y=k.lookupNode(u,f),e=k.mayDelete(u,f,!0);if(e)throw new k.ErrnoError(e);if(!u.node_ops.rmdir)throw new k.ErrnoError(T2.EPERM);if(k.isMountpoint(Y))throw new k.ErrnoError(T2.EBUSY);try{k.trackingDelegate.willDeletePath&&k.trackingDelegate.willDeletePath(r)}catch(X0){console.log("FS.trackingDelegate['willDeletePath']('"+r+"') threw an exception: "+X0.message)}u.node_ops.rmdir(u,f),k.destroyNode(Y);try{k.trackingDelegate.onDeletePath&&k.trackingDelegate.onDeletePath(r)}catch(X0){console.log("FS.trackingDelegate['onDeletePath']('"+r+"') threw an exception: "+X0.message)}},readdir:function(r){var l=k.lookupPath(r,{follow:!0}),u=l.node;if(!u.node_ops.readdir)throw new k.ErrnoError(T2.ENOTDIR);return u.node_ops.readdir(u)},unlink:function(r){var l=k.lookupPath(r,{parent:!0}),u=l.node,f=m9.basename(r),Y=k.lookupNode(u,f),e=k.mayDelete(u,f,!1);if(e)throw e===T2.EISDIR&&(e=T2.EPERM),new k.ErrnoError(e);if(!u.node_ops.unlink)throw new k.ErrnoError(T2.EPERM);if(k.isMountpoint(Y))throw new k.ErrnoError(T2.EBUSY);try{k.trackingDelegate.willDeletePath&&k.trackingDelegate.willDeletePath(r)}catch(X0){console.log("FS.trackingDelegate['willDeletePath']('"+r+"') threw an exception: "+X0.message)}u.node_ops.unlink(u,f),k.destroyNode(Y);try{k.trackingDelegate.onDeletePath&&k.trackingDelegate.onDeletePath(r)}catch(X0){console.log("FS.trackingDelegate['onDeletePath']('"+r+"') threw an exception: "+X0.message)}},readlink:function(r){var l=k.lookupPath(r),u=l.node;if(!u)throw new k.ErrnoError(T2.ENOENT);if(!u.node_ops.readlink)throw new k.ErrnoError(T2.EINVAL);return m9.resolve(k.getPath(l.node.parent),u.node_ops.readlink(u))},stat:function(r,l){var u=k.lookupPath(r,{follow:!l}),f=u.node;if(!f)throw new k.ErrnoError(T2.ENOENT);if(!f.node_ops.getattr)throw new k.ErrnoError(T2.EPERM);return f.node_ops.getattr(f)},lstat:function(r){return k.stat(r,!0)},chmod:function(r,l,u){var f;if(typeof r=="string"){var Y=k.lookupPath(r,{follow:!u});f=Y.node}else f=r;if(!f.node_ops.setattr)throw new k.ErrnoError(T2.EPERM);f.node_ops.setattr(f,{mode:l&4095|f.mode&-4096,timestamp:Date.now()})},lchmod:function(r,l){k.chmod(r,l,!0)},fchmod:function(r,l){var u=k.getStream(r);if(!u)throw new k.ErrnoError(T2.EBADF);k.chmod(u.node,l)},chown:function(r,l,u,f){var Y;if(typeof r=="string"){var e=k.lookupPath(r,{follow:!f});Y=e.node}else Y=r;if(!Y.node_ops.setattr)throw new k.ErrnoError(T2.EPERM);Y.node_ops.setattr(Y,{timestamp:Date.now()})},lchown:function(r,l,u){k.chown(r,l,u,!0)},fchown:function(r,l,u){var f=k.getStream(r);if(!f)throw new k.ErrnoError(T2.EBADF);k.chown(f.node,l,u)},truncate:function(r,l){if(l<0)throw new k.ErrnoError(T2.EINVAL);var u;if(typeof r=="string"){var f=k.lookupPath(r,{follow:!0});u=f.node}else u=r;if(!u.node_ops.setattr)throw new k.ErrnoError(T2.EPERM);if(k.isDir(u.mode))throw new k.ErrnoError(T2.EISDIR);if(!k.isFile(u.mode))throw new k.ErrnoError(T2.EINVAL);var Y=k.nodePermissions(u,"w");if(Y)throw new k.ErrnoError(Y);u.node_ops.setattr(u,{size:l,timestamp:Date.now()})},ftruncate:function(r,l){var u=k.getStream(r);if(!u)throw new k.ErrnoError(T2.EBADF);if(!(u.flags&2097155))throw new k.ErrnoError(T2.EINVAL);k.truncate(u.node,l)},utime:function(r,l,u){var f=k.lookupPath(r,{follow:!0}),Y=f.node;Y.node_ops.setattr(Y,{timestamp:Math.max(l,u)})},open:function(r,l,u,f,Y){if(r==="")throw new k.ErrnoError(T2.ENOENT);l=typeof l=="string"?k.modeStringToFlags(l):l,u=typeof u>"u"?438:u,l&64?u=u&4095|32768:u=0;var e;if(typeof r=="object")e=r;else{r=m9.normalize(r);try{var X0=k.lookupPath(r,{follow:!(l&131072)});e=X0.node}catch{}}var r1=!1;if(l&64)if(e){if(l&128)throw new k.ErrnoError(T2.EEXIST)}else e=k.mknod(r,u,0),r1=!0;if(!e)throw new k.ErrnoError(T2.ENOENT);if(k.isChrdev(e.mode)&&(l&=-513),!r1){var x2=k.mayOpen(e,l);if(x2)throw new k.ErrnoError(x2)}l&512&&k.truncate(e,0),l&=-641;var s=k.createStream({node:e,path:k.getPath(e),flags:l,seekable:!0,position:0,stream_ops:e.stream_ops,ungotten:[],error:!1},f,Y);s.stream_ops.open&&s.stream_ops.open(s),n.logReadFiles&&!(l&1)&&(k.readFiles||(k.readFiles={}),r in k.readFiles||(k.readFiles[r]=1,n.printErr("read file: "+r)));try{if(k.trackingDelegate.onOpenFile){var l1=0;(l&2097155)!==1&&(l1|=k.tracking.openFlags.READ),l&2097155&&(l1|=k.tracking.openFlags.WRITE),k.trackingDelegate.onOpenFile(r,l1)}}catch(C){console.log("FS.trackingDelegate['onOpenFile']('"+r+"', flags) threw an exception: "+C.message)}return s},close:function(r){try{r.stream_ops.close&&r.stream_ops.close(r)}catch(l){throw l}finally{k.closeStream(r.fd)}},llseek:function(r,l,u){if(!r.seekable||!r.stream_ops.llseek)throw new k.ErrnoError(T2.ESPIPE);return r.position=r.stream_ops.llseek(r,l,u),r.ungotten=[],r.position},read:function(r,l,u,f,Y){if(f<0||Y<0)throw new k.ErrnoError(T2.EINVAL);if((r.flags&2097155)===1)throw new k.ErrnoError(T2.EBADF);if(k.isDir(r.node.mode))throw new k.ErrnoError(T2.EISDIR);if(!r.stream_ops.read)throw new k.ErrnoError(T2.EINVAL);var e=!0;if(typeof Y>"u")Y=r.position,e=!1;else if(!r.seekable)throw new k.ErrnoError(T2.ESPIPE);var X0=r.stream_ops.read(r,l,u,f,Y);return e||(r.position+=X0),X0},write:function(r,l,u,f,Y,e){if(f<0||Y<0)throw new k.ErrnoError(T2.EINVAL);if(!(r.flags&2097155))throw new k.ErrnoError(T2.EBADF);if(k.isDir(r.node.mode))throw new k.ErrnoError(T2.EISDIR);if(!r.stream_ops.write)throw new k.ErrnoError(T2.EINVAL);r.flags&1024&&k.llseek(r,0,2);var X0=!0;if(typeof Y>"u")Y=r.position,X0=!1;else if(!r.seekable)throw new k.ErrnoError(T2.ESPIPE);var r1=r.stream_ops.write(r,l,u,f,Y,e);X0||(r.position+=r1);try{r.path&&k.trackingDelegate.onWriteToFile&&k.trackingDelegate.onWriteToFile(r.path)}catch(x2){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+x2.message)}return r1},allocate:function(r,l,u){if(l<0||u<=0)throw new k.ErrnoError(T2.EINVAL);if(!(r.flags&2097155))throw new k.ErrnoError(T2.EBADF);if(!k.isFile(r.node.mode)&&!k.isDir(node.mode))throw new k.ErrnoError(T2.ENODEV);if(!r.stream_ops.allocate)throw new k.ErrnoError(T2.EOPNOTSUPP);r.stream_ops.allocate(r,l,u)},mmap:function(r,l,u,f,Y,e,X0){if((r.flags&2097155)===1)throw new k.ErrnoError(T2.EACCES);if(!r.stream_ops.mmap)throw new k.ErrnoError(T2.ENODEV);return r.stream_ops.mmap(r,l,u,f,Y,e,X0)},msync:function(r,l,u,f,Y){return!r||!r.stream_ops.msync?0:r.stream_ops.msync(r,l,u,f,Y)},munmap:function(r){return 0},ioctl:function(r,l,u){if(!r.stream_ops.ioctl)throw new k.ErrnoError(T2.ENOTTY);return r.stream_ops.ioctl(r,l,u)},readFile:function(r,l){if(l=l||{},l.flags=l.flags||"r",l.encoding=l.encoding||"binary",l.encoding!=="utf8"&&l.encoding!=="binary")throw new Error('Invalid encoding type "'+l.encoding+'"');var u,f=k.open(r,l.flags),Y=k.stat(r),e=Y.size,X0=new Uint8Array(e);return k.read(f,X0,0,e,0),l.encoding==="utf8"?u=Vo(X0,0):l.encoding==="binary"&&(u=X0),k.close(f),u},writeFile:function(r,l,u){if(u=u||{},u.flags=u.flags||"w",u.encoding=u.encoding||"utf8",u.encoding!=="utf8"&&u.encoding!=="binary")throw new Error('Invalid encoding type "'+u.encoding+'"');var f=k.open(r,u.flags,u.mode);if(u.encoding==="utf8"){var Y=new Uint8Array(Jo(l)+1),e=Gn(l,Y,0,Y.length);k.write(f,Y,0,e,0,u.canOwn)}else u.encoding==="binary"&&k.write(f,l,0,l.length,0,u.canOwn);k.close(f)},cwd:function(){return k.currentPath},chdir:function(r){var l=k.lookupPath(r,{follow:!0});if(!k.isDir(l.node.mode))throw new k.ErrnoError(T2.ENOTDIR);var u=k.nodePermissions(l.node,"x");if(u)throw new k.ErrnoError(u);k.currentPath=l.path},createDefaultDirectories:function(){k.mkdir("/tmp"),k.mkdir("/home"),k.mkdir("/home/web_user")},createDefaultDevices:function(){k.mkdir("/dev"),k.registerDevice(k.makedev(1,3),{read:function(){return 0},write:function(u,f,Y,e,X0){return e}}),k.mkdev("/dev/null",k.makedev(1,3)),On.register(k.makedev(5,0),On.default_tty_ops),On.register(k.makedev(6,0),On.default_tty1_ops),k.mkdev("/dev/tty",k.makedev(5,0)),k.mkdev("/dev/tty1",k.makedev(6,0));var r;if(typeof crypto<"u"){var l=new Uint8Array(1);r=function(){return crypto.getRandomValues(l),l[0]}}else d?r=void 0:r=function(){return Math.random()*256|0};k.createDevice("/dev","random",r),k.createDevice("/dev","urandom",r),k.mkdir("/dev/shm"),k.mkdir("/dev/shm/tmp")},createStandardStreams:function(){n.stdin?k.createDevice("/dev","stdin",n.stdin):k.symlink("/dev/tty","/dev/stdin"),n.stdout?k.createDevice("/dev","stdout",null,n.stdout):k.symlink("/dev/tty","/dev/stdout"),n.stderr?k.createDevice("/dev","stderr",null,n.stderr):k.symlink("/dev/tty1","/dev/stderr");var r=k.open("/dev/stdin","r");N9[_k>>2]=k.getPtrForStream(r),t4(r.fd===0,"invalid handle for stdin ("+r.fd+")");var l=k.open("/dev/stdout","w");N9[xk>>2]=k.getPtrForStream(l),t4(l.fd===1,"invalid handle for stdout ("+l.fd+")");var u=k.open("/dev/stderr","w");N9[Lk>>2]=k.getPtrForStream(u),t4(u.fd===2,"invalid handle for stderr ("+u.fd+")")},ensureErrnoError:function(){k.ErrnoError||(k.ErrnoError=function(l,u){this.node=u,this.setErrno=function(f){this.errno=f;for(var Y in T2)if(T2[Y]===f){this.code=Y;break}},this.setErrno(l),this.message=Dk[l]},k.ErrnoError.prototype=new Error,k.ErrnoError.prototype.constructor=k.ErrnoError,[T2.ENOENT].forEach(function(r){k.genericErrors[r]=new k.ErrnoError(r),k.genericErrors[r].stack=""}))},staticInit:function(){k.ensureErrnoError(),k.nameTable=new Array(4096),k.mount(M9,{},"/"),k.createDefaultDirectories(),k.createDefaultDevices()},init:function(r,l,u){t4(!k.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),k.init.initialized=!0,k.ensureErrnoError(),n.stdin=r||n.stdin,n.stdout=l||n.stdout,n.stderr=u||n.stderr,k.createStandardStreams()},quit:function(){k.init.initialized=!1;for(var r=0;rthis.length-1||k5<0)){var w2=k5%this.chunkSize,P5=k5/this.chunkSize|0;return this.getter(P5)[w2]}},e.prototype.setDataGetter=function(k5){this.getter=k5},e.prototype.cacheLength=function(){var k5=new XMLHttpRequest;if(k5.open("HEAD",u,!1),k5.send(null),!(k5.status>=200&&k5.status<300||k5.status===304))throw new Error("Couldn't load "+u+". Status: "+k5.status);var w2=Number(k5.getResponseHeader("Content-length")),P5,G9=(P5=k5.getResponseHeader("Accept-Ranges"))&&P5==="bytes",K9=1024*1024;G9||(K9=w2);var ye=function(te,It){if(te>It)throw new Error("invalid range ("+te+", "+It+") or no bytes requested!");if(It>w2-1)throw new Error("only "+w2+" bytes available! programmer error!");var i4=new XMLHttpRequest;if(i4.open("GET",u,!1),w2!==K9&&i4.setRequestHeader("Range","bytes="+te+"-"+It),typeof Uint8Array<"u"&&(i4.responseType="arraybuffer"),i4.overrideMimeType&&i4.overrideMimeType("text/plain; charset=x-user-defined"),i4.send(null),!(i4.status>=200&&i4.status<300||i4.status===304))throw new Error("Couldn't load "+u+". Status: "+i4.status);return i4.response!==void 0?new Uint8Array(i4.response||[]):en(i4.responseText||"",!0)},Dt=this;Dt.setDataGetter(function(te){var It=te*K9,i4=(te+1)*K9-1;if(i4=Math.min(i4,w2-1),typeof Dt.chunks[te]>"u"&&(Dt.chunks[te]=ye(It,i4)),typeof Dt.chunks[te]>"u")throw new Error("doXHR failed!");return Dt.chunks[te]}),this._length=w2,this._chunkSize=K9,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!p)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var X0=new e;Object.defineProperty(X0,"length",{get:function(){return this.lengthKnown||this.cacheLength(),this._length}}),Object.defineProperty(X0,"chunkSize",{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}});var r1={isDevice:!1,contents:X0}}else var r1={isDevice:!1,url:u};var x2=k.createFile(r,l,r1,f,Y);r1.contents?x2.contents=r1.contents:r1.url&&(x2.contents=null,x2.url=r1.url),Object.defineProperty(x2,"usedBytes",{get:function(){return this.contents.length}});var s={},l1=Object.keys(x2.stream_ops);return l1.forEach(function(C){var k5=x2.stream_ops[C];s[C]=function(){if(!k.forceLoadFile(x2))throw new k.ErrnoError(T2.EIO);return k5.apply(null,arguments)}}),s.read=function(k5,w2,P5,G9,K9){if(!k.forceLoadFile(x2))throw new k.ErrnoError(T2.EIO);var ye=k5.node.contents;if(K9>=ye.length)return 0;var Dt=Math.min(ye.length-K9,G9);if(t4(Dt>=0),ye.slice)for(var te=0;te=0;f--){var Y=r[f];Y==="."?r.splice(f,1):Y===".."?(r.splice(f,1),u++):u&&(r.splice(f,1),u--)}if(l)for(;u--;u)r.unshift("..");return r},normalize:function(r){var l=r.charAt(0)==="/",u=r.substr(-1)==="/";return r=m9.normalizeArray(r.split("/").filter(function(f){return!!f}),!l).join("/"),!r&&!l&&(r="."),r&&u&&(r+="/"),(l?"/":"")+r},dirname:function(r){var l=m9.splitPath(r),u=l[0],f=l[1];return!u&&!f?".":(f&&(f=f.substr(0,f.length-1)),u+f)},basename:function(r){if(r==="/")return"/";var l=r.lastIndexOf("/");return l===-1?r:r.substr(l+1)},extname:function(r){return m9.splitPath(r)[3]},join:function(){var r=Array.prototype.slice.call(arguments,0);return m9.normalize(r.join("/"))},join2:function(r,l){return m9.normalize(r+"/"+l)},resolve:function(){for(var r="",l=!1,u=arguments.length-1;u>=-1&&!l;u--){var f=u>=0?arguments[u]:k.cwd();if(typeof f!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!f)return"";r=f+"/"+r,l=f.charAt(0)==="/"}return r=m9.normalizeArray(r.split("/").filter(function(Y){return!!Y}),!l).join("/"),(l?"/":"")+r||"."},relative:function(r,l){r=m9.resolve(r).substr(1),l=m9.resolve(l).substr(1);function u(s){for(var l1=0;l1=0&&s[C]==="";C--);return l1>C?[]:s.slice(l1,C-l1+1)}for(var f=u(r.split("/")),Y=u(l.split("/")),e=Math.min(f.length,Y.length),X0=e,r1=0;r10){var r1=Date.now(),x2=J1.mainLoop.queue.shift();if(x2.func(x2.arg),J1.mainLoop.remainingBlockers){var s=J1.mainLoop.remainingBlockers,l1=s%1==0?s-1:Math.floor(s);x2.counted?J1.mainLoop.remainingBlockers=l1:(l1=l1+.5,J1.mainLoop.remainingBlockers=(8*s+l1)/9)}console.log('main loop blocker "'+x2.name+'" took '+(Date.now()-r1)+" ms"),J1.mainLoop.updateStatus(),setTimeout(J1.mainLoop.runner,0);return}if(!(e1&&J1.mainLoop.currentFrameNumber%J1.mainLoop.timingValue!=0){J1.mainLoop.scheduler();return}J1.mainLoop.method==="timeout"&&n.ctx&&(n.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),J1.mainLoop.method=""),J1.mainLoop.runIter(function(){typeof f<"u"?_.dynCall("vi",r,[f]):_.dynCall("v",r)}),!(e0?eE(0,1e3/l):eE(1,1),J1.mainLoop.scheduler()),u)throw"SimulateInfiniteLoop"}var J1={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){J1.mainLoop.scheduler=null,J1.mainLoop.currentlyRunningMainloop++},resume:function(){J1.mainLoop.currentlyRunningMainloop++;var r=J1.mainLoop.timingMode,l=J1.mainLoop.timingValue,u=J1.mainLoop.func;J1.mainLoop.func=null,LB(u,0,!1,J1.mainLoop.arg,!0),eE(r,l),J1.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var r=n.statusMessage||"Please wait...",l=J1.mainLoop.remainingBlockers,u=J1.mainLoop.expectedBlockers;l?l"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);var r={};r.canHandle=function(e){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},r.handle=function(e,X0,r1,x2){var s=null;if(J1.hasBlobConstructor)try{s=new Blob([e],{type:J1.getMimetype(X0)}),s.size!==e.length&&(s=new Blob([new Uint8Array(e).buffer],{type:J1.getMimetype(X0)}))}catch(w2){_.warnOnce("Blob constructor present but fails: "+w2+"; falling back to blob builder")}if(!s){var l1=new J1.BlobBuilder;l1.append(new Uint8Array(e).buffer),s=l1.getBlob()}var C=J1.URLObject.createObjectURL(s),k5=new Image;k5.onload=function(){t4(k5.complete,"Image "+X0+" could not be decoded");var P5=document.createElement("canvas");P5.width=k5.width,P5.height=k5.height;var G9=P5.getContext("2d");G9.drawImage(k5,0,0),n.preloadedImages[X0]=P5,J1.URLObject.revokeObjectURL(C),r1&&r1(e)},k5.onerror=function(P5){console.log("Image "+C+" could not be decoded"),x2&&x2()},k5.src=C},n.preloadPlugins.push(r);var l={};l.canHandle=function(e){return!n.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},l.handle=function(e,X0,r1,x2){var s=!1;function l1(G9){s||(s=!0,n.preloadedAudios[X0]=G9,r1&&r1(e))}function C(){s||(s=!0,n.preloadedAudios[X0]=new Audio,x2&&x2())}if(J1.hasBlobConstructor){try{var k5=new Blob([e],{type:J1.getMimetype(X0)})}catch{return C()}var w2=J1.URLObject.createObjectURL(k5),P5=new Audio;P5.addEventListener("canplaythrough",function(){l1(P5)},!1),P5.onerror=function(K9){if(s)return;console.log("warning: browser could not fully decode audio "+X0+", trying slower base64 approach");function ye(Dt){for(var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",It="=",i4="",V7=0,J7=0,Qr=0;Qr=6;){var tl=V7>>J7-6&63;J7-=6,i4+=te[tl]}return J7==2?(i4+=te[(V7&3)<<4],i4+=It+It):J7==4&&(i4+=te[(V7&15)<<2],i4+=It),i4}P5.src="data:audio/x-"+X0.substr(-3)+";base64,"+ye(e),l1(P5)},P5.src=w2,J1.safeSetTimeout(function(){l1(P5)},1e4)}else return C()},n.preloadPlugins.push(l);var u=n.canvas;function f(){J1.pointerLock=document.pointerLockElement===u||document.mozPointerLockElement===u||document.webkitPointerLockElement===u||document.msPointerLockElement===u}u&&(u.requestPointerLock=u.requestPointerLock||u.mozRequestPointerLock||u.webkitRequestPointerLock||u.msRequestPointerLock||function(){},u.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},u.exitPointerLock=u.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",f,!1),document.addEventListener("mozpointerlockchange",f,!1),document.addEventListener("webkitpointerlockchange",f,!1),document.addEventListener("mspointerlockchange",f,!1),n.elementPointerLock&&u.addEventListener("click",function(Y){!J1.pointerLock&&u.requestPointerLock&&(u.requestPointerLock(),Y.preventDefault())},!1))},createContext:function(r,l,u,f){if(l&&n.ctx&&r==n.canvas)return n.ctx;var Y,e;if(l){var X0={antialias:!1,alpha:!1};if(f)for(var r1 in f)X0[r1]=f[r1];e=GL.createContext(r,X0),e&&(Y=GL.getContext(e).GLctx),r.style.backgroundColor="black"}else Y=r.getContext("2d");return Y?(u&&(l||t4(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=Y,l&&GL.makeContextCurrent(e),n.useWebGL=l,J1.moduleContextCreatedCallbacks.forEach(function(x2){x2()}),J1.init()),Y):null},destroyContext:function(r,l,u){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(r,l,u){J1.lockPointer=r,J1.resizeCanvas=l,J1.vrDevice=u,typeof J1.lockPointer>"u"&&(J1.lockPointer=!0),typeof J1.resizeCanvas>"u"&&(J1.resizeCanvas=!1),typeof J1.vrDevice>"u"&&(J1.vrDevice=null);var f=n.canvas;function Y(){J1.isFullScreen=!1;var X0=f.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===X0?(f.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},f.cancelFullScreen=f.cancelFullScreen.bind(document),J1.lockPointer&&f.requestPointerLock(),J1.isFullScreen=!0,J1.resizeCanvas&&J1.setFullScreenCanvasSize()):(X0.parentNode.insertBefore(f,X0),X0.parentNode.removeChild(X0),J1.resizeCanvas&&J1.setWindowedCanvasSize()),n.onFullScreen&&n.onFullScreen(J1.isFullScreen),J1.updateCanvasDimensions(f)}J1.fullScreenHandlersInstalled||(J1.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",Y,!1),document.addEventListener("mozfullscreenchange",Y,!1),document.addEventListener("webkitfullscreenchange",Y,!1),document.addEventListener("MSFullscreenChange",Y,!1));var e=document.createElement("div");f.parentNode.insertBefore(e,f),e.appendChild(f),e.requestFullScreen=e.requestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen||(e.webkitRequestFullScreen?function(){e.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),u?e.requestFullScreen({vrDisplay:u}):e.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(r){var l=Date.now();if(J1.nextRAF===0)J1.nextRAF=l+1e3/60;else for(;l+2>=J1.nextRAF;)J1.nextRAF+=1e3/60;var u=Math.max(J1.nextRAF-l,0);setTimeout(r,u)},requestAnimationFrame:function(l){typeof window>"u"?J1.fakeRequestAnimationFrame(l):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||J1.fakeRequestAnimationFrame),window.requestAnimationFrame(l))},safeCallback:function(r){return function(){if(!i0)return r.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){J1.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(J1.allowAsyncCallbacks=!0,J1.queuedAsyncCallbacks.length>0){var r=J1.queuedAsyncCallbacks;J1.queuedAsyncCallbacks=[],r.forEach(function(l){l()})}},safeRequestAnimationFrame:function(r){return J1.requestAnimationFrame(function(){i0||(J1.allowAsyncCallbacks?r():J1.queuedAsyncCallbacks.push(r))})},safeSetTimeout:function(r,l){return n.noExitRuntime=!0,setTimeout(function(){i0||(J1.allowAsyncCallbacks?r():J1.queuedAsyncCallbacks.push(r))},l)},safeSetInterval:function(r,l){return n.noExitRuntime=!0,setInterval(function(){i0||J1.allowAsyncCallbacks&&r()},l)},getMimetype:function(r){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[r.substr(r.lastIndexOf(".")+1)]},getUserMedia:function(r){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(r)},getMovementX:function(r){return r.movementX||r.mozMovementX||r.webkitMovementX||0},getMovementY:function(r){return r.movementY||r.mozMovementY||r.webkitMovementY||0},getMouseWheelDelta:function(r){var l=0;switch(r.type){case"DOMMouseScroll":l=r.detail;break;case"mousewheel":l=r.wheelDelta;break;case"wheel":l=r.deltaY;break;default:throw"unrecognized mouse wheel event: "+r.type}return l},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(r){if(J1.pointerLock)r.type!="mousemove"&&"mozMovementX"in r?J1.mouseMovementX=J1.mouseMovementY=0:(J1.mouseMovementX=J1.getMovementX(r),J1.mouseMovementY=J1.getMovementY(r)),typeof SDL<"u"?(J1.mouseX=SDL.mouseX+J1.mouseMovementX,J1.mouseY=SDL.mouseY+J1.mouseMovementY):(J1.mouseX+=J1.mouseMovementX,J1.mouseY+=J1.mouseMovementY);else{var l=n.canvas.getBoundingClientRect(),u=n.canvas.width,f=n.canvas.height,Y=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,e=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(r.type==="touchstart"||r.type==="touchend"||r.type==="touchmove"){var X0=r.touch;if(X0===void 0)return;var r1=X0.pageX-(Y+l.left),x2=X0.pageY-(e+l.top);r1=r1*(u/l.width),x2=x2*(f/l.height);var s={x:r1,y:x2};if(r.type==="touchstart")J1.lastTouches[X0.identifier]=s,J1.touches[X0.identifier]=s;else if(r.type==="touchend"||r.type==="touchmove"){var l1=J1.touches[X0.identifier];l1||(l1=s),J1.lastTouches[X0.identifier]=l1,J1.touches[X0.identifier]=s}return}var C=r.pageX-(Y+l.left),k5=r.pageY-(e+l.top);C=C*(u/l.width),k5=k5*(f/l.height),J1.mouseMovementX=C-J1.mouseX,J1.mouseMovementY=k5-J1.mouseY,J1.mouseX=C,J1.mouseY=k5}},xhrLoad:function(r,l,u){var f=new XMLHttpRequest;f.open("GET",r,!0),f.responseType="arraybuffer",f.onload=function(){f.status==200||f.status==0&&f.response?l(f.response):u()},f.onerror=u,f.send(null)},asyncLoad:function(r,l,u,f){J1.xhrLoad(r,function(Y){t4(Y,'Loading data file "'+r+'" failed (no arrayBuffer).'),l(new Uint8Array(Y)),f||Cr("al "+r)},function(Y){if(u)u();else throw'Loading data file "'+r+'" failed.'}),f||Pn("al "+r)},resizeListeners:[],updateResizeListeners:function(){var r=n.canvas;J1.resizeListeners.forEach(function(l){l(r.width,r.height)})},setCanvasSize:function(r,l,u){var f=n.canvas;J1.updateCanvasDimensions(f,r,l),u||J1.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){if(typeof SDL<"u"){var r=j$[SDL.screen+_.QUANTUM_SIZE*0>>2];r=r|8388608,N9[SDL.screen+_.QUANTUM_SIZE*0>>2]=r}J1.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var r=j$[SDL.screen+_.QUANTUM_SIZE*0>>2];r=r&-8388609,N9[SDL.screen+_.QUANTUM_SIZE*0>>2]=r}J1.updateResizeListeners()},updateCanvasDimensions:function(r,l,u){l&&u?(r.widthNative=l,r.heightNative=u):(l=r.widthNative,u=r.heightNative);var f=l,Y=u;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(f/Y>2]=l),l}function zk(){n.printErr("missing function: floor0_exportbundle"),es(-1)}if(jo=_.staticAlloc(4),N9[jo>>2]=0,n.requestFullScreen=function(l,u,f){J1.requestFullScreen(l,u,f)},n.requestAnimationFrame=function(l){J1.requestAnimationFrame(l)},n.setCanvasSize=function(l,u,f){J1.setCanvasSize(l,u,f)},n.pauseMainLoop=function(){J1.mainLoop.pause()},n.resumeMainLoop=function(){J1.mainLoop.resume()},n.getUserMedia=function(){J1.getUserMedia()},n.createContext=function(l,u,f,Y){return J1.createContext(l,u,f,Y)},k.staticInit(),V$.unshift(function(){!n.noFSInit&&!k.init.initialized&&k.init()}),Du.push(function(){k.ignorePermissions=!1}),J$.push(function(){k.quit()}),n.FS_createFolder=k.createFolder,n.FS_createPath=k.createPath,n.FS_createDataFile=k.createDataFile,n.FS_createPreloadedFile=k.createPreloadedFile,n.FS_createLazyFile=k.createLazyFile,n.FS_createLink=k.createLink,n.FS_createDevice=k.createDevice,V$.unshift(function(){On.init()}),J$.push(function(){On.shutdown()}),d)var b8=void 0,RB=void 0;bu=v7=_.alignMemory(jr),O$=!0,q$=bu+Kp,H$=P7=_.alignMemory(q$),t4(H$>0]=f[t>>0],f[w2+1>>0]=f[t+1>>0],f[w2+2>>0]=f[t+2>>0],f[w2+3>>0]=f[t+3>>0]}function O_(t){t=t|0,f[w2>>0]=f[t>>0],f[w2+1>>0]=f[t+1>>0],f[w2+2>>0]=f[t+2>>0],f[w2+3>>0]=f[t+3>>0],f[w2+4>>0]=f[t+4>>0],f[w2+5>>0]=f[t+5>>0],f[w2+6>>0]=f[t+6>>0],f[w2+7>>0]=f[t+7>>0]}function SS(t){t=t|0,j6=t}function bS(){return j6|0}function mC(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0;m=C,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,o=R9(256)|0,a=t+8|0,e[a>>2]=o,$=t+12|0,e[$>>2]=o,f[o>>0]=0,g=t+16|0,e[g>>2]=256}function DS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0;L=C,a=o>>3,$=t+12|0,B=e[$>>2]|0,S=(B|0)==0,!S&&(b=a<<3,v=o-b|0,w=t+8|0,D=e[w>>2]|0,y=D+a|0,e[$>>2]=y,x=t+4|0,e[x>>2]=v,e[t>>2]=a,g=8+(v<<2)|0,h=e[g>>2]|0,m=f[y>>0]|0,I=m&255,E=I&h,Q=E&255,f[y>>0]=Q)}function O2(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0;H0=C,h=a>>>0>32;do if(!h){if(m=e[t>>2]|0,x=t+16|0,a0=e[x>>2]|0,c0=a0+-4|0,S0=(m|0)<(c0|0),$=t+12|0,g=e[$>>2]|0,S0)N=g;else{if(T0=(g|0)==0,T0)return;if(J0=(a0|0)>2147483391,J0||(q0=t+8|0,Z0=e[q0>>2]|0,I=a0+256|0,E=K7(Z0,I)|0,Q=(E|0)==0,Q))break;e[q0>>2]=E,B=e[x>>2]|0,S=B+256|0,e[x>>2]=S,b=e[t>>2]|0,v=E+b|0,e[$>>2]=v,N=v}w=8+(a<<2)|0,D=e[w>>2]|0,y=D&o,M=t+4|0,L=e[M>>2]|0,R=L+a|0,F=y<>0]|0,G=T&255,V=G|F,X=V&255,f[N>>0]=X,K=(R|0)>7;do if(K&&(W=e[M>>2]|0,r0=8-W|0,s0=y>>>r0,J=s0&255,o0=e[$>>2]|0,q=o0+1|0,f[q>>0]=J,d0=(R|0)>15,d0&&(t0=e[M>>2]|0,j=16-t0|0,u0=y>>>j,$0=u0&255,l0=e[$>>2]|0,Z=l0+2|0,f[Z>>0]=$0,I0=(R|0)>23,I0&&(g0=e[M>>2]|0,f0=24-g0|0,n0=y>>>f0,h0=n0&255,p0=e[$>>2]|0,C0=p0+3|0,f[C0>>0]=h0,Q0=(R|0)>31,Q0))))if(b0=e[M>>2]|0,E0=(b0|0)==0,E0){M0=e[$>>2]|0,v0=M0+4|0,f[v0>>0]=0;break}else{y0=32-b0|0,w0=y>>>y0,B0=w0&255,_0=e[$>>2]|0,K0=_0+4|0,f[K0>>0]=B0;break}while(!1);N0=(R|0)/8&-1,U0=e[t>>2]|0,O0=U0+N0|0,e[t>>2]=O0,k0=e[$>>2]|0,V0=k0+N0|0,e[$>>2]=V0,F0=R&7,e[M>>2]=F0;return}while(!1);L0=t+8|0,G0=e[L0>>2]|0,z0=(G0|0)==0,z0||p2(G0),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0}function pC(t){t=t|0;var o=0,a=0,$=0,g=0,h=0;h=C,o=t+8|0,a=e[o>>2]|0,$=(a|0)==0,$||p2(a),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0}function Ii(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0;Q=C,o=t+12|0,a=e[o>>2]|0,$=(a|0)==0,!$&&(g=t+8|0,h=e[g>>2]|0,e[o>>2]=h,m=h,f[m>>0]=0,e[t>>2]=0,I=t+4|0,e[I>>2]=0)}function EC(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0;if(_0=C,$=o>>>0>32,$)return a=-1,a|0;if(g=8+(o<<2)|0,D=e[g>>2]|0,X=t+4|0,j=e[X>>2]|0,p0=j+o|0,S0=e[t>>2]|0,Q0=t+16|0,b0=e[Q0>>2]|0,E0=b0+-4|0,h=(S0|0)<(E0|0),!h){if(m=p0+7|0,I=m>>3,E=b0-I|0,Q=(S0|0)>(E|0),Q)return a=-1,a|0;if(B=(p0|0)==0,B)return a=0,a|0}return S=t+12|0,b=e[S>>2]|0,v=f[b>>0]|0,w=v&255,y=w>>>j,x=(p0|0)>8,x?(M=b+1|0,L=f[M>>0]|0,R=L&255,F=8-j|0,T=R<16,G?(V=b+2|0,K=f[V>>0]|0,a0=K&255,W=16-j|0,r0=a0<24,J?(o0=b+3|0,q=f[o0>>0]|0,d0=q&255,t0=24-j|0,u0=d0<>0]|0,g0=I0&255,f0=32-j|0,n0=g0<>2]|0,S=$+o|0,b=e[t>>2]|0,v=t+16|0,w=e[v>>2]|0,D=S+7|0,y=D>>3,x=w-y|0,M=(b|0)>(x|0),M){B=t+12|0,e[B>>2]=0,e[t>>2]=w,L=1,e[a>>2]=L;return}else{g=(S|0)/8&-1,h=t+12|0,m=e[h>>2]|0,I=m+g|0,e[h>>2]=I,E=b+g|0,e[t>>2]=E,Q=S&7,L=Q,e[a>>2]=L;return}}function n4(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0;L0=C,E=o>>>0>32;do if(E)$=t+16|0,g=e[$>>2]|0,I=t+4|0,h=t,m=I,v0=g;else{if(Q=8+(o<<2)|0,R=e[Q>>2]|0,s0=t+4|0,Z=e[s0>>2]|0,E0=Z+o|0,T0=e[t>>2]|0,N0=t+16|0,U0=e[N0>>2]|0,O0=U0+-4|0,B=(T0|0)<(O0|0),!B){if(S=E0+7|0,b=S>>3,v=U0-b|0,w=(T0|0)>(v|0),w){h=t,m=s0,v0=U0;break}if(D=(E0|0)==0,D)return a=0,a|0}return y=t+12|0,x=e[y>>2]|0,M=f[x>>0]|0,L=M&255,F=L>>>Z,T=(E0|0)>8,T?(N=x+1|0,G=f[N>>0]|0,V=G&255,X=8-Z|0,K=V<16,W?(r0=x+2|0,J=f[r0>>0]|0,o0=J&255,q=16-Z|0,d0=o0<24,j?(u0=x+3|0,c0=f[u0>>0]|0,$0=c0&255,l0=24-Z|0,I0=$0<>0]|0,C0=p0&255,S0=32-Z|0,Q0=C0<>2]=B0,_0=T0+w0|0,e[t>>2]=_0,K0=E0&7,e[s0>>2]=K0,a=y0,a|0}while(!1);return M0=t+12|0,e[M0>>2]=0,e[h>>2]=v0,e[m>>2]=1,a=-1,a|0}function D8(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0;return E=C,o=e[t>>2]|0,a=t+4|0,$=e[a>>2]|0,g=$+7|0,h=(g|0)/8&-1,m=h+o|0,m|0}function $Q(t){t=t|0;var o=0,a=0,$=0,g=0;return g=C,o=t+8|0,a=e[o>>2]|0,a|0}function _S(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0;if(T=C,g=(t|0)==0,g)return a=-1,a|0;u4(t|0,0,360)|0,h=t+4|0,e[h>>2]=16384,b=t+24|0,e[b>>2]=1024,v=R9(16384)|0,e[t>>2]=v,w=R9(4096)|0,D=t+16|0,e[D>>2]=w,y=R9(8192)|0,x=t+20|0,e[x>>2]=y,M=(v|0)==0;do if(M)I=w;else{if(L=(w|0)==0,m=(y|0)==0,R=m|L,R){p2(v),$=e[D>>2]|0,I=$;break}return S=t+336|0,e[S>>2]=o,a=0,a|0}while(!1);return E=(I|0)==0,E||p2(I),Q=e[x>>2]|0,B=(Q|0)==0,B||p2(Q),u4(t|0,0,360)|0,a=-1,a|0}function xS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0;return S=C,o=(t|0)==0,o||(a=e[t>>2]|0,$=(a|0)==0,$||p2(a),g=t+16|0,h=e[g>>2]|0,m=(h|0)==0,m||p2(h),I=t+20|0,E=e[I>>2]|0,Q=(E|0)==0,Q||p2(E),u4(t|0,0,360)|0),0}function LS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0;if(U0=C,o=(t|0)==0,!o){if(a=e[t>>2]|0,v=a+22|0,f[v>>0]=0,G=e[t>>2]|0,d0=G+23|0,f[d0>>0]=0,n0=e[t>>2]|0,b0=n0+24|0,f[b0>>0]=0,E0=e[t>>2]|0,y0=E0+25|0,f[y0>>0]=0,w0=t+4|0,$=e[w0>>2]|0,g=($|0)>0,g)for(h=e[t>>2]|0,_0=0,v0=0;;)if(S=_0<<8,b=_0>>>24,w=h+v0|0,D=f[w>>0]|0,y=D&255,x=y^b,M=144+(x<<2)|0,L=e[M>>2]|0,R=L^S,F=v0+1|0,T=(F|0)<($|0),T)_0=R,v0=F;else{B0=R;break}else B0=0;if(m=t+12|0,I=e[m>>2]|0,E=(I|0)>0,E)for(Q=t+8|0,B=e[Q>>2]|0,M0=B0,T0=0;;)if(N=M0<<8,V=M0>>>24,X=B+T0|0,K=f[X>>0]|0,a0=K&255,W=a0^V,r0=144+(W<<2)|0,s0=e[r0>>2]|0,J=s0^N,o0=T0+1|0,q=(o0|0)<(I|0),q)M0=J,T0=o0;else{K0=J;break}else K0=B0;t0=K0&255,j=e[t>>2]|0,u0=j+22|0,f[u0>>0]=t0,c0=K0>>>8,$0=c0&255,l0=e[t>>2]|0,Z=l0+23|0,f[Z>>0]=$0,I0=K0>>>16,g0=I0&255,f0=e[t>>2]|0,h0=f0+24|0,f[h0>>0]=g0,p0=K0>>>24,C0=p0&255,S0=e[t>>2]|0,Q0=S0+25|0,f[Q0>>0]=C0}}function MS(t,o,a,$,g,h){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0;var m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0;if(m2=C,n0=(t|0)==0,n0||(_0=e[t>>2]|0,L0=(_0|0)==0,L0))return I=-1,I|0;if(x0=(o|0)==0,x0)return I=0,I|0;j0=(a|0)>0;e:do if(j0){for(f2=0,k2=0;;){if(S1=(o+(k2<<3)|0)+4|0,q1=e[S1>>2]|0,s2=(q1|0)<0,w=2147483647-q1|0,V=(f2|0)>(w|0),N2=s2|V,N2){I=-1;break}if(t0=q1+f2|0,c0=k2+1|0,$0=(c0|0)<(a|0),$0)f2=t0,k2=c0;else{o2=t0;break e}}return I|0}else o2=0;while(!1);l0=(o2|0)/255&-1,Z=l0+1|0,I0=t+12|0,g0=e[I0>>2]|0,f0=(g0|0)==0,v=t+8|0,f0||(h0=e[v>>2]|0,p0=h0-g0|0,e[v>>2]=p0,C0=(h0|0)==(g0|0),C0||(S0=_0+g0|0,oA(_0|0,S0|0,p0|0)|0),e[I0>>2]=0),Q0=t+4|0,b0=e[Q0>>2]|0,E0=b0-o2|0,y0=e[v>>2]|0,w0=(E0|0)>(y0|0);do if(!w0){if(B0=2147483647-o2|0,K0=(b0|0)>(B0|0),K0)return M0=e[t>>2]|0,v0=(M0|0)==0,v0||p2(M0),T0=t+16|0,N0=e[T0>>2]|0,U0=(N0|0)==0,U0||p2(N0),O0=t+20|0,k0=e[O0>>2]|0,V0=(k0|0)==0,V0||p2(k0),u4(t|0,0,360)|0,I=-1,I|0;if(F0=b0+o2|0,G0=(F0|0)<2147482623,z0=F0+1024|0,m=G0?z0:F0,J0=e[t>>2]|0,q0=K7(J0,m)|0,Z0=(q0|0)==0,!Z0){e[Q0>>2]=m,e[t>>2]=q0;break}return P0=e[t>>2]|0,H0=(P0|0)==0,H0||p2(P0),o1=t+16|0,Y0=e[o1>>2]|0,i1=(Y0|0)==0,i1||p2(Y0),n1=t+20|0,d1=e[n1>>2]|0,g1=(d1|0)==0,g1||p2(d1),u4(t|0,0,360)|0,I=-1,I|0}while(!1);if(m1=RS(t,Z)|0,h1=(m1|0)==0,!h1)return I=-1,I|0;if(j0)for(Q=e[v>>2]|0,v1=Q,D2=0;B1=e[t>>2]|0,w1=B1+v1|0,k1=o+(D2<<3)|0,L1=e[k1>>2]|0,M1=(o+(D2<<3)|0)+4|0,D1=e[M1>>2]|0,ge(w1|0,L1|0,D1|0)|0,R1=e[M1>>2]|0,F1=e[v>>2]|0,U1=F1+R1|0,e[v>>2]=U1,b1=D2+1|0,t2=(b1|0)==(a|0),!t2;)v1=U1,D2=b1;if(u1=(o2|0)>254,A1=t+28|0,c1=e[A1>>2]|0,s1=t+16|0,$1=e[s1>>2]|0,u1){for(E1=t+352|0,I1=t+20|0,Q1=e[I1>>2]|0,p1=(l0|0)>1,Q2=0;P1=c1+Q2|0,Z1=$1+(P1<<2)|0,e[Z1>>2]=255,G1=E1,x1=G1,z1=e[x1>>2]|0,H1=G1+4|0,Y1=H1,V1=e[Y1>>2]|0,X1=Q1+(P1<<3)|0,n2=X1,j1=n2,e[j1>>2]=z1,O1=n2+4|0,c2=O1,e[c2>>2]=V1,W1=Q2+1|0,h2=(W1|0)<(l0|0),h2;)Q2=W1;L2=p1?l0:1,B=E1,$2=Q1,S2=L2}else E=t+20|0,S=e[E>>2]|0,b=t+352|0,B=b,$2=S,S2=0;return E2=(o2|0)%255&-1,a2=c1+S2|0,K1=$1+(a2<<2)|0,e[K1>>2]=E2,d2=$2+(a2<<3)|0,i2=d2,l2=i2,e[l2>>2]=g,r2=i2+4|0,A2=r2,e[A2>>2]=h,e2=B,D=e2,e[D>>2]=g,y=e2+4|0,x=y,e[x>>2]=h,M=$1+(c1<<2)|0,L=e[M>>2]|0,R=L|256,e[M>>2]=R,F=c1+Z|0,e[A1>>2]=F,T=t+344|0,N=T,G=N,X=e[G>>2]|0,K=N+4|0,a0=K,W=e[a0>>2]|0,r0=rs(X|0,W|0,1,0)|0,s0=j6,J=T,o0=J,e[o0>>2]=r0,q=J+4|0,d0=q,e[d0>>2]=s0,j=($|0)==0,j?(I=0,I|0):(u0=t+328|0,e[u0>>2]=1,I=0,I|0)}function oE(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0;return M=C,C=C+16|0,y=M,a=e[o>>2]|0,e[y>>2]=a,$=o+4|0,E=e[$>>2]|0,Q=y+4|0,e[Q>>2]=E,B=o+12|0,S=e[B>>2]|0,b=o+16|0,v=b,w=v,D=e[w>>2]|0,g=v+4|0,h=g,m=e[h>>2]|0,I=MS(t,y,1,S,D,m)|0,C=M,I|0}function lQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0;return g=C,a=gQ(t,o,1,4096)|0,a|0}function cQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0;return M=C,h=(t|0)==0,h||(m=e[t>>2]|0,I=(m|0)==0,I)?(a=0,a|0):(E=t+328|0,Q=e[E>>2]|0,B=(Q|0)==0,$=t+28|0,g=e[$>>2]|0,y=(g|0)==0,B?y?D=0:(S=t+332|0,b=e[S>>2]|0,v=(b|0)==0,v?x=7:D=0):y?D=0:x=7,(x|0)==7&&(D=1),w=gQ(t,o,D,4096)|0,a=w,a|0)}function RS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0;return h0=C,g=t+24|0,h=e[g>>2]|0,y=h-o|0,K=t+28|0,u0=e[K>>2]|0,l0=(y|0)>(u0|0),l0?($=0,$|0):(Z=2147483647-o|0,I0=(h|0)>(Z|0),I0?(g0=e[t>>2]|0,f0=(g0|0)==0,f0||p2(g0),m=t+16|0,I=e[m>>2]|0,E=(I|0)==0,E||p2(I),Q=t+20|0,B=e[Q>>2]|0,S=(B|0)==0,S||p2(B),u4(t|0,0,360)|0,$=-1,$|0):(b=h+o|0,v=(b|0)<2147483615,w=b+32|0,a=v?w:b,D=t+16|0,x=e[D>>2]|0,M=a<<2,L=K7(x,M)|0,R=(L|0)==0,R?(F=e[t>>2]|0,T=(F|0)==0,T||p2(F),N=e[D>>2]|0,G=(N|0)==0,G||p2(N),V=t+20|0,X=e[V>>2]|0,a0=(X|0)==0,a0||p2(X),u4(t|0,0,360)|0,$=-1,$|0):(e[D>>2]=L,W=t+20|0,r0=e[W>>2]|0,s0=a<<3,J=K7(r0,s0)|0,o0=(J|0)==0,o0?(q=e[t>>2]|0,d0=(q|0)==0,d0||p2(q),t0=e[D>>2]|0,j=(t0|0)==0,j||p2(t0),c0=e[W>>2]|0,$0=(c0|0)==0,$0||p2(c0),u4(t|0,0,360)|0,$=-1,$|0):(e[W>>2]=J,e[g>>2]=a,$=0,$|0))))}function gQ(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0;if(S5=C,y=t+28|0,x=e[y>>2]|0,d1=(x|0)>255,g=d1?255:x,I1=(t|0)==0,I1||(R1=e[t>>2]|0,Y1=(R1|0)==0,a2=(g|0)==0,b3=a2|Y1,b3))return h=0,h|0;t2=t+332|0,V2=e[t2>>2]|0,j2=(V2|0)==0;e:do if(j2)for(Q0=t+16|0,g3=0;;){if(N0=(g3|0)<(g|0),!N0){I=a,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,z5=g3,V5=14;break e}if(Z0=e[Q0>>2]|0,Y0=Z0+(g3<<2)|0,i1=e[Y0>>2]|0,x0=i1&255,n1=(x0|0)==255,g1=g3+1|0,n1)g3=g1;else{I=a,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,z5=g1,V5=14;break}}else if(M=(g|0)>0,M){for(W=t+16|0,$0=t+20|0,Q5=0,D5=-1,d5=-1,l5=-1,X2=-1,g2=-1,w5=-1,r5=-1,a5=-1,t3=0,T3=0,Q3=0;;){if(m1=(Q5|0)>($|0),h1=(t3|0)>3,q3=m1&h1,q3){m=1,q5=D5,M5=d5,Y2=l5,p5=X2,$5=g2,u5=w5,y5=r5,T1=a5,u3=Q3;break}if(u1=e[W>>2]|0,A1=u1+(Q3<<2)|0,c1=e[A1>>2]|0,s1=c1&255,$1=s1+Q5|0,j0=(s1|0)==255,j0?(h5=D5,z2=d5,f5=l5,n5=X2,R5=g2,e5=w5,c5=r5,F2=a5,s6=0,H3=T3):(E1=e[$0>>2]|0,Q1=E1+(Q3<<3)|0,p1=Q1,B1=p1,w1=e[B1>>2]|0,v1=p1+4|0,k1=v1,L1=e[k1>>2]|0,M1=T3+1|0,S1=w1&255,D1=ns(w1|0,L1|0,8)|0,F1=j6,U1=D1&255,b1=ns(w1|0,L1|0,16)|0,P1=j6,Z1=b1&255,G1=ns(w1|0,L1|0,24)|0,x1=j6,z1=G1&255,q1=L1&255,H1=ns(w1|0,L1|0,40)|0,V1=j6,X1=H1&255,n2=ns(w1|0,L1|0,48)|0,j1=j6,O1=n2&255,c2=ns(w1|0,L1|0,56)|0,W1=j6,h2=c2&255,h5=S1,z2=Z1,f5=z1,n5=q1,R5=X1,e5=O1,c5=h2,F2=U1,s6=M1,H3=M1),s2=Q3+1|0,E2=(s2|0)<(g|0),E2)Q5=$1,D5=h5,d5=z2,l5=f5,X2=n5,g2=R5,w5=e5,r5=c5,a5=F2,t3=s6,T3=H3,Q3=s2;else{m=a,q5=h5,M5=z2,Y2=f5,p5=n5,$5=R5,u5=e5,y5=c5,T1=F2,u3=s2;break}}K1=(u3|0)==255,K1?(a3=q5,B3=M5,G5=Y2,W5=p5,D3=$5,f3=u5,y3=y5,X3=T1,H5=255):(I=m,v5=q5,J5=M5,i3=Y2,E5=p5,I3=$5,h3=u5,K5=y5,r3=T1,z5=u3,V5=14)}else I=a,v5=-1,J5=-1,i3=-1,E5=-1,I3=-1,h3=-1,K5=-1,r3=-1,z5=0,V5=14;while(!1);if((V5|0)==14){if(d2=(I|0)==0,d2)return h=0,h|0;a3=v5,B3=J5,G5=i3,W5=E5,D3=I3,f3=h3,y3=K5,X3=r3,H5=z5}if($2=t+40|0,f[$2>>0]=79,f[$2+1>>0]=103,f[$2+2>>0]=103,f[$2+3>>0]=83,i2=t+44|0,f[i2>>0]=0,l2=t+45|0,f[l2>>0]=0,r2=t+16|0,A2=e[r2>>2]|0,e2=e[A2>>2]|0,o2=e2>>>8,S=o2&1,f2=S^1,k2=f2|2,E=j2?k2:f2,c3=E&255,f[l2>>0]=c3,D2=t+328|0,S2=e[D2>>2]|0,Q2=(S2|0)!=0,N2=(x|0)==(H5|0),X5=Q2&N2,X5&&(Q=j2?k2:f2,L2=Q|4,U2=L2&255,f[l2>>0]=U2),e[t2>>2]=1,m2=t+46|0,f[m2>>0]=a3,W2=t+47|0,f[W2>>0]=X3,P2=t+48|0,f[P2>>0]=B3,G2=t+49|0,f[G2>>0]=G5,q2=t+50|0,f[q2>>0]=W5,Z2=t+51|0,f[Z2>>0]=D3,A5=t+52|0,f[A5>>0]=f3,H2=t+53|0,f[H2>>0]=y3,N1=t+336|0,t5=e[N1>>2]|0,T5=t5&255,i5=t+54|0,f[i5>>0]=T5,x5=t5>>>8,I5=x5&255,b5=t+55|0,f[b5>>0]=I5,Y5=t5>>>16,g5=Y5&255,b2=t+56|0,f[b2>>0]=g5,B5=t5>>>24,s5=B5&255,R2=t+57|0,f[R2>>0]=s5,M2=t+340|0,y2=e[M2>>2]|0,L=(y2|0)==-1,L?(e[M2>>2]=0,F=0):F=y2,R=F+1|0,e[M2>>2]=R,T=F&255,N=t+58|0,f[N>>0]=T,G=F>>>8,V=G&255,X=t+59|0,f[X>>0]=V,K=F>>>16,a0=K&255,r0=t+60|0,f[r0>>0]=a0,s0=F>>>24,J=s0&255,o0=t+61|0,f[o0>>0]=J,q=t+62|0,d0=H5&255,t0=t+66|0,f[q>>0]=0,f[q+1>>0]=0,f[q+2>>0]=0,f[q+3>>0]=0,f[t0>>0]=d0,j=(H5|0)>0,j){if(u0=e[A2>>2]|0,c0=u0&255,l0=t+67|0,f[l0>>0]=c0,Z=u0&255,L5=(H5|0)==1,L5)B=Z;else for(g0=1,b0=Z;;)if(b=e[r2>>2]|0,I0=b+(g0<<2)|0,f0=e[I0>>2]|0,n0=f0&255,h0=g0+27|0,p0=(t+40|0)+h0|0,f[p0>>0]=n0,C0=f0&255,S0=C0+b0|0,E0=g0+1|0,m5=(E0|0)==(H5|0),m5){B=S0;break}else g0=E0,b0=S0;v=e[t>>2]|0,w=e[y>>2]|0,D=e[r2>>2]|0,v0=v,k0=w,F0=D,N5=B}else v0=R1,k0=x,F0=A2,N5=0;return e[o>>2]=$2,y0=H5+27|0,w0=t+324|0,e[w0>>2]=y0,B0=o+4|0,e[B0>>2]=y0,_0=t+12|0,K0=e[_0>>2]|0,M0=v0+K0|0,T0=o+8|0,e[T0>>2]=M0,U0=o+12|0,e[U0>>2]=N5,O0=k0-H5|0,e[y>>2]=O0,V0=F0+(H5<<2)|0,L0=O0<<2,oA(F0|0,V0|0,L0|0)|0,G0=t+20|0,z0=e[G0>>2]|0,J0=z0+(H5<<3)|0,q0=e[y>>2]|0,P0=q0<<3,oA(z0|0,J0|0,P0|0)|0,H0=e[_0>>2]|0,o1=H0+N5|0,e[_0>>2]=o1,LS(o),h=1,h|0}function FS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0;return Y0=C,$=t+104|0,g=e[$>>2]|0,D=t+88|0,X=g+12|0,e[D>>2]=0,e[D+4>>2]=0,e[D+8>>2]=0,e[D+12>>2]=0,j=e[X>>2]|0,Ii(j),p0=g+16|0,M0=e[p0>>2]|0,Ii(M0),z0=g+20|0,P0=e[z0>>2]|0,Ii(P0),H0=g+24|0,h=e[H0>>2]|0,Ii(h),m=g+28|0,I=e[m>>2]|0,Ii(I),E=g+32|0,Q=e[E>>2]|0,Ii(Q),B=g+36|0,S=e[B>>2]|0,Ii(S),b=g+40|0,v=e[b>>2]|0,Ii(v),w=g+44|0,y=e[w>>2]|0,Ii(y),x=g+48|0,M=e[x>>2]|0,Ii(M),L=g+52|0,R=e[L>>2]|0,Ii(R),F=g+56|0,T=e[F>>2]|0,Ii(T),N=g+60|0,G=e[N>>2]|0,Ii(G),V=g+64|0,K=e[V>>2]|0,Ii(K),a0=g+68|0,W=e[a0>>2]|0,Ii(W),r0=e[6416]|0,s0=r0+12|0,J=e[s0>>2]|0,o0=HQ[J&1](t)|0,q=(o0|0)==0,q?(d0=(o|0)==0,d0?(a=0,a|0):(t0=Nu(t)|0,u0=(t0|0)==0,u0?(c0=t+4|0,$0=$Q(c0)|0,e[o>>2]=$0,l0=D8(c0)|0,Z=o+4|0,e[Z>>2]=l0,I0=o+8|0,e[I0>>2]=0,g0=t+44|0,f0=e[g0>>2]|0,n0=o+12|0,e[n0>>2]=f0,h0=t+48|0,C0=h0,S0=C0,Q0=e[S0>>2]|0,b0=C0+4|0,E0=b0,y0=e[E0>>2]|0,w0=o+16|0,B0=w0,_0=B0,e[_0>>2]=Q0,K0=B0+4|0,v0=K0,e[v0>>2]=y0,T0=t+56|0,N0=T0,U0=N0,O0=e[U0>>2]|0,k0=N0+4|0,V0=k0,F0=e[V0>>2]|0,L0=o+24|0,G0=L0,J0=G0,e[J0>>2]=O0,q0=G0+4|0,Z0=q0,e[Z0>>2]=F0,a=0,a|0):(a=-131,a|0))):(a=o0,a|0)}function TS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0;Q0=C,a=t+28|0,$=e[a>>2]|0,C0=o,b0=C0+48|0;do e[C0>>2]=0,C0=C0+4|0;while((C0|0)<(b0|0));w=$+3372|0,V=e[w>>2]|0,t0=(V|0)>0,t0&&(g0=t+8|0,f0=e[g0>>2]|0,n0=e[$>>2]|0,h0=n0>>1,p0=$+4|0,g=e[p0>>2]|0,h=(g|0)/(n0|0)&-1,m=o+24|0,e[m>>2]=h,e[o>>2]=1,I=$+3360|0,E=e[I>>2]|0,Q=+(E|0),B=+(h0|0),S=Q*B,b=+(f0|0),v=S/b,D=+z7(v),y=~~D,x=o+12|0,e[x>>2]=y,M=$+3364|0,L=e[M>>2]|0,R=+(L|0),F=R*B,T=F/b,N=+z7(T),G=~~N,X=o+16|0,e[X>>2]=G,K=$+3368|0,a0=e[K>>2]|0,W=+(a0|0),r0=W*B,s0=r0/b,J=+z7(s0),o0=~~J,q=o+20|0,e[q>>2]=o0,d0=o+32|0,l1[d0>>3]=7,j=+(V|0),u0=$+3376|0,c0=+l1[u0>>3],$0=j*c0,l0=~~$0,Z=o+8|0,e[Z>>2]=l0,I0=o+4|0,e[I0>>2]=l0)}function NS(t){t=t|0;var o=0,a=0,$=0,g=0;$=C,o=t,g=o+48|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(g|0))}function Nu(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0;return B=C,a=t+64|0,$=e[a>>2]|0,g=$+104|0,h=e[g>>2]|0,m=h+80|0,I=e[m>>2]|0,E=(I|0)!=0,o=E&1,o|0}function GS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0;if(F6=C,Q=t+104|0,B=e[Q>>2]|0,W1=t+64|0,b2=e[W1>>2]|0,M5=b2+104|0,g2=e[M5>>2]|0,F2=b2+4|0,G5=e[F2>>2]|0,T3=G5+28|0,U5=e[T3>>2]|0,S=g2+112|0,T=+l1[S>>3],o0=+z7(T),g0=~~o0,w0=(B+12|0)+(g0<<2)|0,V0=e[w0>>2]|0,Y0=D8(V0)|0,s1=Y0<<3,L1=t+28|0,x1=e[L1>>2]|0,h2=(x1|0)==0,e2=g2+96|0,m2=e[e2>>2]|0,h2?(T5=g2+100|0,x5=e[T5>>2]|0,q=m2,b0=T5,B0=x5):(j2=g2+104|0,I5=e[j2>>2]|0,b5=g2+100|0,Y5=e[b5>>2]|0,g5=o5(I5,m2)|0,B5=o5(I5,Y5)|0,q=g5,b0=b5,B0=B5),s5=U5+(x1<<2)|0,R2=e[s5>>2]|0,M2=R2>>1,y2=U5+3372|0,Q5=e[y2>>2]|0,N5=+(Q5|0),m5=U5+3376|0,L5=+l1[m5>>3],q5=N5*L5,Y2=~~q5,p5=g2+80|0,$5=e[p5>>2]|0,u5=($5|0)==0,y5=g2+120|0,u5)return T1=e[y5>>2]|0,D5=(T1|0)==0,D5?(e[y5>>2]=t,a=0,a|0):(a=-1,a|0);if(e[y5>>2]=t,d5=g2+92|0,l5=e[d5>>2]|0,X2=(l5|0)>0,X2){h2?c5=l5:(w5=g2+104|0,r5=e[w5>>2]|0,a5=o5(r5,l5)|0,c5=a5),h5=U5+3384|0,z2=+l1[h5>>3],f5=15/z2,n5=g2+84|0,R5=e[n5>>2]|0,e5=s1-c5|0,v5=R5+e5|0,J5=(v5|0)>(Y2|0);e:do if(J5)if(i3=(g0|0)>0,E5=(s1|0)>(c5|0),R6=E5&i3,R6)if(I3=s1-c5|0,h3=I3+R5|0,K5=(h3|0)>(Y2|0),K5)for(V3=g0;;){if(r3=V3+-1|0,a3=(B+12|0)+(r3<<2)|0,B3=e[a3>>2]|0,W5=D8(B3)|0,D3=W5<<3,f3=(V3|0)>1,y3=(D3|0)>(c5|0),M6=y3&f3,!M6){Z5=r3;break e}if(I=e[n5>>2]|0,X3=D3-c5|0,q3=X3+I|0,X5=(q3|0)>(Y2|0),X5)V3=r3;else{Z5=r3;break}}else Z5=g0;else Z5=g0;else if(b3=(v5|0)<(Y2|0),b3)if(t3=g0+1|0,s6=(t3|0)<15,H3=(s1|0)<(c5|0),r6=H3&s6,r6)if(c3=s1-c5|0,g3=c3+R5|0,u3=(g3|0)<(Y2|0),u3)for(z5=t3;;){if(Q3=(B+12|0)+(z5<<2)|0,H5=e[Q3>>2]|0,V5=D8(H5)|0,S5=V5<<3,Y3=z5+1|0,$6=(Y3|0)<15,n3=(S5|0)<(c5|0),S6=n3&$6,!S6){Z5=z5;break e}if(m=e[n5>>2]|0,l3=S5-c5|0,N3=l3+m|0,E6=(N3|0)<(Y2|0),E6)z5=Y3;else{Z5=z5;break}}else Z5=g0;else Z5=g0;else Z5=g0;while(!1);k3=+(Z5|0),_3=+l1[S>>3],S3=k3-_3,a6=+z7(S3),i6=+(M2|0),b=a6/i6,v=G5+8|0,w=e[v>>2]|0,D=+(w|0),y=D*b,x=-f5,M=yf5,L3=L?f5:v6,R=L3/D,F=R*i6,N=F+_3,l1[S>>3]=N,G=+z7(N),V=~~G,X=(B+12|0)+(V<<2)|0,K=e[X>>2]|0,a0=D8(K)|0,W=a0<<3,E=e[e2>>2]|0,r0=E,x3=V,n6=W}else r0=m2,x3=g0,n6=s1;s0=(r0|0)>0,J=(n6|0)<(q|0),h6=J&s0;e:do if(h6)if(d0=g2+88|0,t0=e[d0>>2]|0,j=n6-q|0,u0=j+t0|0,c0=(u0|0)<0,c0)for(d3=x3,o6=n6;;){if($0=d3+1|0,l0=(d3|0)>13,l0){J3=$0,C6=o6;break e}if(Z=(B+12|0)+($0<<2)|0,I0=e[Z>>2]|0,f0=D8(I0)|0,n0=f0<<3,h0=e[d0>>2]|0,p0=n0-q|0,C0=p0+h0|0,S0=(C0|0)<0,S0)d3=$0,o6=n0;else{J3=$0,C6=n0;break}}else J3=x3,C6=n6;else J3=x3,C6=n6;while(!1);Q0=e[b0>>2]|0,E0=(Q0|0)>0,y0=(C6|0)>(B0|0),b6=y0&E0;e:do if(b6)if(_0=g2+88|0,K0=e[_0>>2]|0,M0=C6-B0|0,v0=M0+K0|0,T0=e[y2>>2]|0,N0=(v0|0)>(T0|0),N0)for(d6=J3,z3=C6;;){if(U0=d6+-1|0,O0=(d6|0)<1,O0){m3=U0,M3=z3;break e}if(k0=(B+12|0)+(U0<<2)|0,F0=e[k0>>2]|0,L0=D8(F0)|0,G0=L0<<3,z0=e[_0>>2]|0,J0=G0-B0|0,q0=J0+z0|0,Z0=e[y2>>2]|0,P0=(q0|0)>(Z0|0),P0)d6=U0,z3=G0;else{m3=U0,M3=G0;break}}else m3=J3,M3=C6;else m3=J3,M3=C6;while(!1);if(H0=(m3|0)<0,H0)o1=e[y2>>2]|0,i1=g2+88|0,x0=e[i1>>2]|0,n1=o1+B0|0,d1=n1-x0|0,g1=(d1|0)/8&-1,m1=g2+124|0,e[m1>>2]=0,h1=B+12|0,u1=e[h1>>2]|0,A1=D8(u1)|0,c1=(A1|0)>(g1|0),c1?($1=e[h1>>2]|0,j0=g1<<3,DS($1,j0),E1=e[h1>>2]|0,I1=D8(E1)|0,Q1=I1<<3,K3=Q1):K3=M3;else{if(p1=g2+88|0,B1=e[p1>>2]|0,w1=q+7|0,v1=w1-B1|0,k1=(v1|0)/8&-1,M1=(m3|0)>14,g=M1?14:m3,S1=g2+124|0,e[S1>>2]=g,D1=(B+12|0)+(g<<2)|0,R1=e[D1>>2]|0,F1=D8(R1)|0,U1=k1-F1|0,b1=(U1|0)>0,P1=e[D1>>2]|0,b1)for(G1=P1,L6=U1;;)if(Z1=L6+-1|0,O2(G1,0,8),z1=(L6|0)>1,q1=e[D1>>2]|0,z1)G1=q1,L6=Z1;else{h=q1;break}else h=P1;H1=D8(h)|0,Y1=H1<<3,K3=Y1}V1=e[e2>>2]|0,X1=(V1|0)>0,X1?e6=37:(n2=e[b0>>2]|0,j1=(n2|0)>0,j1&&(e6=37));do if((e6|0)==37){if(O1=(B0|0)>0,c2=(K3|0)>(B0|0),G6=O1&c2,G6){s2=K3-B0|0,E2=g2+88|0,a2=e[E2>>2]|0,K1=s2+a2|0,e[E2>>2]=K1;break}if(d2=(q|0)>0,$2=(K3|0)<(q|0),X6=d2&$2,X6){i2=K3-q|0,l2=g2+88|0,r2=e[l2>>2]|0,A2=i2+r2|0,e[l2>>2]=A2;break}if(o2=g2+88|0,f2=e[o2>>2]|0,t2=(f2|0)>(Y2|0),t2)if(O1){k2=K3-B0|0,D2=f2+k2|0,S2=(D2|0)<(Y2|0),o=S2?Y2:D2,e[o2>>2]=o;break}else{e[o2>>2]=Y2;break}else if(d2){Q2=K3-q|0,N2=f2+Q2|0,L2=(N2|0)>(Y2|0),$=L2?Y2:N2,e[o2>>2]=$;break}else{e[o2>>2]=Y2;break}}while(!1);return U2=e[d5>>2]|0,W2=(U2|0)>0,W2?(P2=e[L1>>2]|0,V2=(P2|0)==0,V2?H2=U2:(G2=g2+104|0,q2=e[G2>>2]|0,Z2=o5(q2,U2)|0,H2=Z2),A5=K3-H2|0,N1=g2+84|0,t5=e[N1>>2]|0,i5=A5+t5|0,e[N1>>2]=i5,a=0,a|0):(a=0,a|0)}function uQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0;return B0=C,$=t+104|0,g=e[$>>2]|0,D=g+120|0,X=e[D>>2]|0,j=(X|0)==0,j?(a=0,a|0):(p0=(o|0)==0,p0||(C0=X+104|0,S0=e[C0>>2]|0,Q0=X+64|0,b0=e[Q0>>2]|0,h=b0+104|0,m=e[h>>2]|0,I=m+80|0,E=e[I>>2]|0,y0=(E|0)==0,y0?E0=7:(Q=g+124|0,B=e[Q>>2]|0,E0=B),S=(S0+12|0)+(E0<<2)|0,b=e[S>>2]|0,v=$Q(b)|0,e[o>>2]=v,w=e[S>>2]|0,y=D8(w)|0,x=o+4|0,e[x>>2]=y,M=o+8|0,e[M>>2]=0,L=X+44|0,R=e[L>>2]|0,F=o+12|0,e[F>>2]=R,T=X+48|0,N=T,G=N,V=e[G>>2]|0,K=N+4|0,a0=K,W=e[a0>>2]|0,r0=o+16|0,s0=r0,J=s0,e[J>>2]=V,o0=s0+4|0,q=o0,e[q>>2]=W,d0=X+56|0,t0=d0,u0=t0,c0=e[u0>>2]|0,$0=t0+4|0,l0=$0,Z=e[l0>>2]|0,I0=o+24|0,g0=I0,f0=g0,e[f0>>2]=c0,n0=g0+4|0,h0=n0,e[h0>>2]=Z),e[D>>2]=0,a=1,a|0)}function US(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0;F=C,L=o,T=L+112|0;do e[L>>2]=0,L=L+4|0;while((L|0)<(T|0));if(a=o+64|0,e[a>>2]=t,$=o+76|0,e[$>>2]=0,Q=o+68|0,e[Q>>2]=0,B=e[t>>2]|0,S=(B|0)==0,S)return 0;for(b=ce(1,72)|0,v=o+104|0,e[v>>2]=b,w=b+4|0,s[w>>2]=-9999,D=o+4|0,y=b+12|0,g=b+40|0,M=0;;)if(h=(M|0)==7,h){e[g>>2]=D,mC(D),M=8;continue}else{if(m=ce(1,20)|0,I=y+(M<<2)|0,e[I>>2]=m,mC(m),E=M+1|0,x=(E|0)==15,x)break;M=E;continue}return 0}function z8(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0;return K=C,a=o+7|0,$=a&-8,w=t+72|0,L=e[w>>2]|0,R=L+$|0,F=t+76|0,T=e[F>>2]|0,N=(R|0)>(T|0),G=t+68|0,V=e[G>>2]|0,N?(g=(V|0)==0,g||(h=V,m=R9(8)|0,I=t+80|0,E=e[I>>2]|0,Q=E+L|0,e[I>>2]=Q,B=t+84|0,S=e[B>>2]|0,b=m+4|0,e[b>>2]=S,e[m>>2]=h,e[B>>2]=m),e[F>>2]=$,v=R9($)|0,e[G>>2]=v,e[w>>2]=0,y=v,x=0,D=y+x|0,M=x+$|0,e[w>>2]=M,D|0):(y=V,x=L,D=y+x|0,M=x+$|0,e[w>>2]=M,D|0)}function PS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0;if(t0=C,$=t+104|0,g=e[$>>2]|0,D=t+84|0,G=e[D>>2]|0,V=(G|0)==0,!V)for(o0=G;X=o0+4|0,K=e[X>>2]|0,a0=e[o0>>2]|0,p2(a0),p2(o0),W=(K|0)==0,!W;)o0=K;if(r0=t+80|0,h=e[r0>>2]|0,m=(h|0)==0,o=t+68|0,a=e[o>>2]|0,m?y=a:(I=t+76|0,E=e[I>>2]|0,Q=E+h|0,B=K7(a,Q)|0,e[o>>2]=B,S=e[r0>>2]|0,b=e[I>>2]|0,v=b+S|0,e[I>>2]=v,e[r0>>2]=0,y=B),w=t+72|0,e[w>>2]=0,e[D>>2]=0,x=(y|0)==0,x||p2(y),M=(g|0)==0,M){q=t,j=q+112|0;do e[q>>2]=0,q=q+4|0;while((q|0)<(j|0));return 0}else J=0;for(;;){if(L=(g+12|0)+(J<<2)|0,R=e[L>>2]|0,pC(R),F=(J|0)==7,F){J=8;continue}if(T=e[L>>2]|0,p2(T),N=J+1|0,s0=(N|0)==15,s0)break;J=N}p2(g),q=t,j=q+112|0;do e[q>>2]=0,q=q+4|0;while((q|0)<(j|0));return 0}function OS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0;return x=C,$=HS(t,o,1)|0,g=($|0)==0,g?(E=t+104|0,Q=e[E>>2]|0,B=Bb(o)|0,S=Q+60|0,e[S>>2]=B,b=ce(1,180)|0,e[Q>>2]=b,KS(b,o),v=Q+80|0,TS(o,v),w=t+64|0,D=w,h=D,e[h>>2]=3,m=D+4|0,I=m,e[I>>2]=0,a=0,a|0):(a=1,a|0)}function dQ(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0;if(P2=C,B=(t|0)==0,!B){if(S=t+4|0,w0=e[S>>2]|0,V0=(w0|0)!=0,V0?(Y0=w0+28|0,s1=e[Y0>>2]|0,k0=s1):k0=0,L1=t+104|0,x1=e[L1>>2]|0,W1=(x1|0)!=0,W1){if(A2=e[x1>>2]|0,b=(A2|0)==0,b||(WS(A2),N=e[x1>>2]|0,p2(N)),q=x1+12|0,f0=e[q>>2]|0,C0=(f0|0)==0,C0||(S0=e[f0>>2]|0,wC(S0),Q0=e[q>>2]|0,b0=e[Q0>>2]|0,p2(b0),E0=e[q>>2]|0,p2(E0)),y0=x1+16|0,B0=e[y0>>2]|0,_0=(B0|0)==0,_0||(K0=e[B0>>2]|0,wC(K0),M0=e[y0>>2]|0,v0=e[M0>>2]|0,p2(v0),T0=e[y0>>2]|0,p2(T0)),N0=x1+48|0,U0=e[N0>>2]|0,O0=(U0|0)==0,!O0){if(F0=(k0|0)==0,F0)p1=U0;else if(L0=k0+16|0,G0=e[L0>>2]|0,z0=(G0|0)>0,z0){if(J0=k0+800|0,q0=e[J0>>2]|0,Z0=25640+(q0<<2)|0,P0=e[Z0>>2]|0,H0=P0+16|0,o1=e[H0>>2]|0,i1=e[U0>>2]|0,ss[o1&7](i1),x0=e[L0>>2]|0,n1=(x0|0)>1,n1)for(g1=1;o=e[N0>>2]|0,d1=J0+(g1<<2)|0,m1=e[d1>>2]|0,h1=25640+(m1<<2)|0,u1=e[h1>>2]|0,A1=u1+16|0,c1=e[A1>>2]|0,$1=o+(g1<<2)|0,j0=e[$1>>2]|0,ss[c1&7](j0),E1=g1+1|0,I1=e[L0>>2]|0,Q1=(E1|0)<(I1|0),Q1;)g1=E1;a=e[N0>>2]|0,p1=a}else p1=U0;p2(p1)}if(B1=x1+52|0,w1=e[B1>>2]|0,v1=(w1|0)==0,!v1){if(k1=(k0|0)==0,k1)K1=w1;else if(M1=k0+20|0,S1=e[M1>>2]|0,D1=(S1|0)>0,D1){if(R1=k0+1312|0,F1=e[R1>>2]|0,U1=25648+(F1<<2)|0,b1=e[U1>>2]|0,P1=b1+16|0,Z1=e[P1>>2]|0,G1=e[w1>>2]|0,ss[Z1&7](G1),z1=e[M1>>2]|0,q1=(z1|0)>1,q1)for(Y1=1;$=e[B1>>2]|0,H1=R1+(Y1<<2)|0,V1=e[H1>>2]|0,X1=25648+(V1<<2)|0,n2=e[X1>>2]|0,j1=n2+16|0,O1=e[j1>>2]|0,c2=$+(Y1<<2)|0,h2=e[c2>>2]|0,ss[O1&7](h2),s2=Y1+1|0,E2=e[M1>>2]|0,a2=(s2|0)<(E2|0),a2;)Y1=s2;g=e[B1>>2]|0,K1=g}else K1=w1;p2(K1)}if(d2=x1+56|0,$2=e[d2>>2]|0,i2=($2|0)==0,!i2){if(l2=(k0|0)==0,l2)L2=$2;else if(r2=k0+28|0,e2=e[r2>>2]|0,o2=(e2|0)>0,o2){if(QQ($2),f2=e[r2>>2]|0,t2=(f2|0)>1,t2)for(D2=1;h=e[d2>>2]|0,k2=h+(D2*52|0)|0,QQ(k2),S2=D2+1|0,Q2=e[r2>>2]|0,N2=(S2|0)<(Q2|0),N2;)D2=S2;m=e[d2>>2]|0,L2=m}else L2=$2;p2(L2)}v=x1+60|0,w=e[v>>2]|0,D=(w|0)==0,D||Qb(w),y=x1+80|0,NS(y),x=x1+20|0,LQ(x),M=x1+32|0,LQ(M)}if(L=t+8|0,R=e[L>>2]|0,F=(R|0)==0,!F){if(V0)if(T=w0+4|0,G=e[T>>2]|0,V=(G|0)>0,V){for(K=R,p0=G,U2=0;X=K+(U2<<2)|0,a0=e[X>>2]|0,W=(a0|0)==0,W?J=p0:(p2(a0),E=e[T>>2]|0,J=E),r0=U2+1|0,s0=(r0|0)<(J|0),!!s0;)I=e[L>>2]|0,K=I,p0=J,U2=r0;Q=e[L>>2]|0,o0=Q}else o0=R;else o0=R;p2(o0),d0=t+12|0,t0=e[d0>>2]|0,j=(t0|0)==0,j||p2(t0)}W1&&(u0=x1+64|0,c0=e[u0>>2]|0,$0=(c0|0)==0,$0||p2(c0),l0=x1+68|0,Z=e[l0>>2]|0,I0=(Z|0)==0,I0||p2(Z),g0=x1+72|0,n0=e[g0>>2]|0,h0=(n0|0)==0,h0||p2(n0),p2(x1)),m2=t,V2=m2+112|0;do e[m2>>2]=0,m2=m2+4|0;while((m2|0)<(V2|0))}}function hQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0;if(V0=C,I=t+4|0,E=e[I>>2]|0,L=t+104|0,r0=e[L>>2]|0,l0=r0+64|0,b0=e[l0>>2]|0,v0=(b0|0)==0,v0||p2(b0),e[l0>>2]=0,T0=r0+68|0,N0=e[T0>>2]|0,U0=(N0|0)==0,U0||p2(N0),e[T0>>2]=0,Q=r0+72|0,B=e[Q>>2]|0,S=(B|0)==0,S||p2(B),e[Q>>2]=0,b=t+20|0,v=e[b>>2]|0,w=v+o|0,D=t+16|0,y=e[D>>2]|0,x=(w|0)<(y|0),x)a=E+4|0,h=e[a>>2]|0,o0=h,k0=11;else if(M=o<<1,R=v+M|0,e[D>>2]=R,F=E+4|0,T=e[F>>2]|0,N=(T|0)>0,N)if(G=t+8|0,V=e[G>>2]|0,X=e[V>>2]|0,K=R<<2,a0=K7(X,K)|0,W=e[G>>2]|0,e[W>>2]=a0,s0=e[F>>2]|0,J=(s0|0)>1,J)for($0=1;;)if($=e[D>>2]|0,u0=e[G>>2]|0,c0=u0+($0<<2)|0,Z=e[c0>>2]|0,I0=$<<2,g0=K7(Z,I0)|0,f0=e[G>>2]|0,n0=f0+($0<<2)|0,e[n0>>2]=g0,h0=$0+1|0,p0=e[F>>2]|0,C0=(h0|0)<(p0|0),C0)$0=h0;else{o0=p0,k0=11;break}else o0=s0,k0=11;if((k0|0)==11&&(q=(o0|0)>0,q)){for(d0=t+8|0,t0=e[b>>2]|0,j=t+12|0,O0=0;;)if(S0=e[d0>>2]|0,Q0=S0+(O0<<2)|0,E0=e[Q0>>2]|0,y0=E0+(t0<<2)|0,w0=e[j>>2]|0,B0=w0+(O0<<2)|0,e[B0>>2]=y0,_0=O0+1|0,K0=(_0|0)<(o0|0),K0)O0=_0;else{g=j;break}return M0=e[g>>2]|0,M0|0}return m=t+12|0,g=m,M0=e[g>>2]|0,M0|0}function qS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0;if(q0=C,I=t+4|0,E=e[I>>2]|0,L=E+28|0,r0=e[L>>2]|0,l0=(o|0)<1,!l0)return S0=t+20|0,Q0=e[S0>>2]|0,E0=Q0+o|0,y0=t+16|0,w0=e[y0>>2]|0,B0=(E0|0)>(w0|0),B0?($=-131,C=q0,$|0):(e[S0>>2]=E0,_0=t+28|0,K0=e[_0>>2]|0,M0=(K0|0)==0,!M0||(v0=t+48|0,T0=e[v0>>2]|0,N0=E0-T0|0,O0=r0+4|0,k0=e[O0>>2]|0,V0=(N0|0)>(k0|0),!V0)?($=0,C=q0,$|0):(IQ(t),$=0,C=q0,$|0));if(b0=C,C=C+128|0,U0=t+28|0,F0=e[U0>>2]|0,L0=(F0|0)==0,L0&&IQ(t),G0=r0+4|0,Q=e[G0>>2]|0,B=Q*3|0,hQ(t,B)|0,S=t+20|0,b=e[S>>2]|0,v=t+32|0,e[v>>2]=b,w=e[G0>>2]|0,D=w*3|0,y=b+D|0,e[S>>2]=y,x=E+4|0,M=e[x>>2]|0,R=(M|0)>0,!R)return $=0,C=q0,$|0;for(F=t+8|0,T=b,z0=0;;){if(N=(T|0)>64,N?(G=e[G0>>2]|0,V=(T|0)>(G|0),a=V?G:T,X=e[F>>2]|0,K=X+(z0<<2)|0,a0=e[K>>2]|0,h=T-a|0,W=a0+(h<<2)|0,+mQ(W,b0,a,32),s0=e[F>>2]|0,J=s0+(z0<<2)|0,o0=e[J>>2]|0,q=e[v>>2]|0,d0=o0+(q<<2)|0,m=q+-32|0,t0=o0+(m<<2)|0,j=e[S>>2]|0,u0=j-q|0,pQ(b0,t0,32,d0,u0)):(c0=e[F>>2]|0,$0=c0+(z0<<2)|0,Z=e[$0>>2]|0,I0=Z+(T<<2)|0,g0=e[S>>2]|0,f0=g0-T|0,n0=f0<<2,u4(I0|0,0,n0|0)|0),h0=z0+1|0,p0=e[x>>2]|0,C0=(h0|0)<(p0|0),!C0){$=0;break}g=e[v>>2]|0,T=g,z0=h0}return C=q0,$|0}function fQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0;if(ue=C,S=t+4|0,b=e[S>>2]|0,s2=b+28|0,S5=e[s2>>2]|0,a6=t+104|0,R6=e[a6>>2]|0,C6=R6+60|0,B6=e[C6>>2]|0,V6=t+48|0,a9=e[V6>>2]|0,v=t+40|0,G=e[v>>2]|0,d0=S5+(G<<2)|0,n0=e[d0>>2]|0,_0=(n0|0)/2&-1,L0=a9-_0|0,x0=o+104|0,j0=e[x0>>2]|0,S1=t+28|0,q1=e[S1>>2]|0,E2=(q1|0)==0,E2||(f2=t+32|0,P2=e[f2>>2]|0,x5=(P2|0)==-1,x5))return $=0,$|0;y2=ZS(t)|0,y5=(y2|0)==-1;do if(y5){if(z2=e[f2>>2]|0,I3=(z2|0)==0,I3)return $=0,$|0;X3=t+44|0,e[X3>>2]=0,h=X3,V3=0;break}else if(Q3=e[S5>>2]|0,Y3=S5+4|0,U5=e[Y3>>2]|0,$6=(Q3|0)==(U5|0),n3=t+44|0,$6){e[n3>>2]=0,h=n3,V3=0;break}else{e[n3>>2]=y2,h=n3,V3=y2;break}while(!1);if(l3=e[V6>>2]|0,N3=e[v>>2]|0,E6=S5+(N3<<2)|0,k3=e[E6>>2]|0,_3=(k3|0)/4&-1,S3=_3+l3|0,i6=S5+(V3<<2)|0,Z5=e[i6>>2]|0,x3=(Z5|0)/4&-1,d3=S3+x3|0,J3=(Z5|0)/2&-1,d6=d3+J3|0,m3=t+20|0,L6=e[m3>>2]|0,M6=(L6|0)<(d6|0),M6)return $=0,$|0;if(S6=o+84|0,r6=e[S6>>2]|0,h6=(r6|0)==0,!h6)for(w9=r6;b6=w9+4|0,G6=e[b6>>2]|0,X6=e[w9>>2]|0,p2(X6),p2(w9),v6=(G6|0)==0,!v6;)w9=G6;L3=o+80|0,n6=e[L3>>2]|0,o6=(n6|0)==0,o6||(z3=o+68|0,M3=e[z3>>2]|0,K3=o+76|0,e6=e[K3>>2]|0,F6=e6+n6|0,l6=K7(M3,F6)|0,e[z3>>2]=l6,o3=e[L3>>2]|0,K6=e[K3>>2]|0,A3=K6+o3|0,e[K3>>2]=A3,e[L3>>2]=0),c6=o+72|0,e[c6>>2]=0,e[S6>>2]=0,R3=t+36|0,Y6=e[R3>>2]|0,A6=o+24|0,e[A6>>2]=Y6,D6=e[v>>2]|0,U6=o+28|0,e[U6>>2]=D6,t9=e[h>>2]|0,Q6=o+32|0,e[Q6>>2]=t9,e9=(D6|0)==0;do if(e9)if(c9=jS(t)|0,P6=(c9|0)==0,J6=j0+8|0,P6){e[J6>>2]=1;break}else{e[J6>>2]=0;break}else if(G3=(Y6|0)==0,n9=(t9|0)==0,Y9=G3|n9,s9=j0+8|0,Y9){e[s9>>2]=0;break}else{e[s9>>2]=1;break}while(!1);T6=o+64|0,e[T6>>2]=t,i9=t+64|0,_6=i9,O6=_6,U3=e[O6>>2]|0,q6=_6+4|0,d9=q6,o9=e[d9>>2]|0,B9=rs(U3|0,o9|0,1,0)|0,Q9=j6,y9=i9,h9=y9,e[h9>>2]=B9,f9=y9+4|0,H9=f9,e[H9>>2]=Q9,y6=o+56|0,H6=y6,w=H6,e[w>>2]=U3,D=H6+4|0,y=D,e[y>>2]=o9,x=t+56|0,M=x,L=M,R=e[L>>2]|0,F=M+4|0,T=F,N=e[T>>2]|0,V=o+48|0,X=V,K=X,e[K>>2]=R,a0=X+4|0,W=a0,e[W>>2]=N,r0=e[v>>2]|0,s0=S5+(r0<<2)|0,J=e[s0>>2]|0,o0=o+36|0,e[o0>>2]=J,q=j0+4|0,t0=+s[q>>2],j=+s[B6>>2],u0=t0>j,u0?(s[B6>>2]=t0,c0=t0):c0=j,$0=+vb(c0,t),s[B6>>2]=$0,s[q>>2]=$0,l0=b+4|0,Z=e[l0>>2]|0,I0=Z<<2,g0=I0+7|0,f0=g0&-8,h0=e[c6>>2]|0,p0=f0+h0|0,C0=o+76|0,S0=e[C0>>2]|0,Q0=(p0|0)>(S0|0),b0=o+68|0,E0=e[b0>>2]|0,Q0?(y0=(E0|0)==0,y0||(w0=E0,B0=R9(8)|0,K0=e[L3>>2]|0,M0=K0+h0|0,e[L3>>2]=M0,v0=e[S6>>2]|0,T0=B0+4|0,e[T0>>2]=v0,e[B0>>2]=w0,e[S6>>2]=B0),e[C0>>2]=f0,N0=R9(f0)|0,e[b0>>2]=N0,e[c6>>2]=0,g=e[l0>>2]|0,O0=N0,k0=0,G0=g,P0=f0):(O0=E0,k0=h0,G0=Z,P0=S0),U0=O0+k0|0,V0=k0+f0|0,e[c6>>2]=V0,e[o>>2]=U0,F0=G0<<2,z0=F0+7|0,J0=z0&-8,q0=J0+V0|0,Z0=(q0|0)>(P0|0),Z0?(H0=(O0|0)==0,H0||(o1=O0,Y0=R9(8)|0,i1=e[L3>>2]|0,n1=i1+V0|0,e[L3>>2]=n1,d1=e[S6>>2]|0,g1=Y0+4|0,e[g1>>2]=d1,e[Y0>>2]=o1,e[S6>>2]=Y0),e[C0>>2]=J0,m1=R9(J0)|0,e[b0>>2]=m1,e[c6>>2]=0,m=e[l0>>2]|0,u1=m1,A1=0,s1=m,V5=J0):(u1=O0,A1=V0,s1=G0,V5=P0),h1=u1+A1|0,c1=A1+J0|0,e[c6>>2]=c1,e[j0>>2]=h1,$1=(s1|0)>0;e:do if($1)for(E1=t+8|0,k1=c1,M1=V5,D1=u1,A9=0;;){if(I1=e[o0>>2]|0,Q1=I1+L0|0,p1=Q1<<2,B1=p1+7|0,w1=B1&-8,v1=w1+k1|0,L1=(v1|0)>(M1|0),L1?(R1=(D1|0)==0,R1||(F1=D1,U1=R9(8)|0,b1=e[L3>>2]|0,P1=b1+k1|0,e[L3>>2]=P1,Z1=e[S6>>2]|0,G1=U1+4|0,e[G1>>2]=Z1,e[U1>>2]=F1,e[S6>>2]=U1),e[C0>>2]=w1,x1=R9(w1)|0,e[b0>>2]=x1,e[c6>>2]=0,H1=x1,Y1=0):(H1=D1,Y1=k1),z1=H1+Y1|0,V1=Y1+w1|0,e[c6>>2]=V1,X1=e[j0>>2]|0,n2=X1+(A9<<2)|0,e[n2>>2]=z1,j1=e[j0>>2]|0,O1=j1+(A9<<2)|0,c2=e[O1>>2]|0,W1=e[E1>>2]|0,h2=W1+(A9<<2)|0,a2=e[h2>>2]|0,ge(c2|0,a2|0,p1|0)|0,K1=e[j0>>2]|0,d2=K1+(A9<<2)|0,$2=e[d2>>2]|0,i2=$2+(L0<<2)|0,l2=e[o>>2]|0,r2=l2+(A9<<2)|0,e[r2>>2]=i2,A2=A9+1|0,e2=e[l0>>2]|0,o2=(A2|0)<(e2|0),!o2)break e;I=e[c6>>2]|0,E=e[C0>>2]|0,Q=e[b0>>2]|0,k1=I,M1=E,D1=Q,A9=A2}while(!1);if(t2=e[f2>>2]|0,k2=(t2|0)==0,!k2&&(D2=e[V6>>2]|0,S2=(D2|0)<(t2|0),!S2))return e[f2>>2]=-1,Q2=o+44|0,e[Q2>>2]=1,$=1,$|0;if(N2=S5+4|0,L2=e[N2>>2]|0,U2=(L2|0)/2&-1,m2=d3-U2|0,W2=(m2|0)>0,!W2)return $=1,$|0;if(V2=e[R6>>2]|0,XS(V2,m2),G2=e[m3>>2]|0,q2=G2-m2|0,e[m3>>2]=q2,Z2=e[l0>>2]|0,A5=(Z2|0)>0,A5&&(H2=t+8|0,N1=e[H2>>2]|0,t5=e[N1>>2]|0,T5=t5+(m2<<2)|0,i5=q2<<2,oA(t5|0,T5|0,i5|0)|0,j2=e[l0>>2]|0,I5=(j2|0)>1,I5))for(g5=1;B=e[m3>>2]|0,b5=e[H2>>2]|0,Y5=b5+(g5<<2)|0,b2=e[Y5>>2]|0,B5=b2+(m2<<2)|0,s5=B<<2,oA(b2|0,B5|0,s5|0)|0,R2=g5+1|0,M2=e[l0>>2]|0,Q5=(R2|0)<(M2|0),Q5;)g5=R2;return N5=e[v>>2]|0,e[R3>>2]=N5,m5=e[h>>2]|0,e[v>>2]=m5,e[V6>>2]=U2,L5=e[f2>>2]|0,q5=(L5|0)==0,q5?(f3=(m2|0)<0,y3=f3<<31>>31,q3=x,X5=q3,b3=e[X5>>2]|0,t3=q3+4|0,s6=t3,T3=e[s6>>2]|0,H3=rs(b3|0,T3|0,m2|0,y3|0)|0,c3=j6,g3=x,u3=g3,e[u3>>2]=H3,z5=g3+4|0,H5=z5,e[H5>>2]=c3,$=1,$|0):(M5=L5-m2|0,Y2=(M5|0)<1,a=Y2?-1:M5,e[f2>>2]=a,p5=(a|0)>(U2|0),p5?(c5=(m2|0)<0,F2=c5<<31>>31,v5=x,J5=v5,i3=e[J5>>2]|0,E5=v5+4|0,h3=E5,K5=e[h3>>2]|0,r3=rs(i3|0,K5|0,m2|0,F2|0)|0,a3=j6,B3=x,G5=B3,e[G5>>2]=r3,W5=B3+4|0,D3=W5,e[D3>>2]=a3,$=1,$|0):($5=a+m2|0,u5=$5-U2|0,T1=(u5|0)<0,D5=T1<<31>>31,d5=x,l5=d5,X2=e[l5>>2]|0,g2=d5+4|0,w5=g2,r5=e[w5>>2]|0,a5=rs(X2|0,r5|0,u5|0,D5|0)|0,h5=j6,f5=x,n5=f5,e[n5>>2]=a5,R5=f5+4|0,e5=R5,e[e5>>2]=h5,$=1,$|0))}function HS(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0;if(n5=C,Q=o+28|0,B=e[Q>>2]|0,v1=(B|0)==0,v1||(Z1=B+8|0,O1=e[Z1>>2]|0,l2=(O1|0)<1,l2)||(N2=e[B>>2]|0,H2=(N2|0)<64,H2)||(b2=B+4|0,M5=e[b2>>2]|0,S=(M5|0)<(N2|0),S))return $=1,$|0;T=B+3656|0,o0=e[T>>2]|0,z2=t,R5=z2+112|0;do e[z2>>2]=0,z2=z2+4|0;while((z2|0)<(R5|0));g0=ce(1,136)|0,w0=t+104|0,e[w0>>2]=g0,V0=t+4|0,e[V0>>2]=o,Y0=e[Z1>>2]|0,s1=Y0+-1|0,B1=q8(s1)|0,w1=g0+44|0,e[w1>>2]=B1,k1=ce(1,4)|0,L1=g0+12|0,e[L1>>2]=k1,M1=ce(1,4)|0,S1=g0+16|0,e[S1>>2]=M1,D1=ce(1,20)|0,e[k1>>2]=D1,R1=ce(1,20)|0,e[M1>>2]=R1,F1=e[B>>2]|0,U1=F1>>o0,yC(D1,U1),b1=e[S1>>2]|0,P1=e[b1>>2]|0,G1=e[b2>>2]|0,x1=G1>>o0,yC(P1,x1),z1=e[B>>2]|0,q1=q8(z1)|0,H1=q1+-7|0,Y1=g0+4|0,e[Y1>>2]=H1,V1=e[b2>>2]|0,X1=q8(V1)|0,n2=X1+-7|0,j1=g0+8|0,e[j1>>2]=n2,c2=(a|0)==0;e:do if(c2){if(y2=B+2848|0,Q5=e[y2>>2]|0,N5=(Q5|0)==0,N5&&(m5=B+24|0,L5=e[m5>>2]|0,q5=ce(L5,56)|0,e[y2>>2]=q5,Y2=e[m5>>2]|0,p5=(Y2|0)>0,p5)){for(Q1=Y2,w5=0;;){if($5=(B+1824|0)+(w5<<2)|0,u5=e[$5>>2]|0,y5=(u5|0)==0,y5){T1=Q1;break}if(d5=e[y2>>2]|0,l5=d5+(w5*56|0)|0,X2=Vb(l5,u5)|0,b=(X2|0)==0,!b){f5=20;break}if(v=e[$5>>2]|0,vC(v),e[$5>>2]=0,w=w5+1|0,D=e[m5>>2]|0,y=(w|0)<(D|0),y)Q1=D,w5=w;else break e}if((f5|0)==20&&(I=e[m5>>2]|0,T1=I),D5=(T1|0)>0,D5)for(p1=T1,h5=0;A1=(B+1824|0)+(h5<<2)|0,c1=e[A1>>2]|0,$1=(c1|0)==0,$1?I1=p1:(vC(c1),e[A1>>2]=0,E=e[m5>>2]|0,I1=E),j0=h5+1|0,E1=(j0|0)<(I1|0),E1;)p1=I1,h5=j0;return dQ(t),$=-1,$|0}}else{if(W1=g0+20|0,h2=e[B>>2]|0,xQ(W1,h2),s2=g0+32|0,E2=e[b2>>2]|0,xQ(s2,E2),a2=B+2848|0,K1=e[a2>>2]|0,d2=(K1|0)==0,d2&&($2=B+24|0,i2=e[$2>>2]|0,r2=ce(i2,56)|0,e[a2>>2]=r2,A2=e[$2>>2]|0,e2=(A2|0)>0,e2&&(o2=B+1824|0,f2=e[o2>>2]|0,_Q(r2,f2)|0,t2=e[$2>>2]|0,k2=(t2|0)>1,k2)))for(S2=1;g=e[a2>>2]|0,D2=g+(S2*56|0)|0,Q2=(B+1824|0)+(S2<<2)|0,L2=e[Q2>>2]|0,_Q(D2,L2)|0,U2=S2+1|0,m2=e[$2>>2]|0,W2=(U2|0)<(m2|0),W2;)S2=U2;P2=B+28|0,V2=e[P2>>2]|0,G2=ce(V2,52)|0,q2=g0+56|0,e[q2>>2]=G2,Z2=e[P2>>2]|0,A5=(Z2|0)>0;t:do if(A5)for(N1=B+2868|0,t5=o+8|0,i5=G2,g2=0;;){if(T5=i5+(g2*52|0)|0,x5=(B+2852|0)+(g2<<2)|0,j2=e[x5>>2]|0,I5=e[j2>>2]|0,b5=B+(I5<<2)|0,Y5=e[b5>>2]|0,g5=(Y5|0)/2&-1,B5=e[t5>>2]|0,wb(T5,j2,N1,g5,B5),s5=g2+1|0,R2=e[P2>>2]|0,M2=(s5|0)<(R2|0),!M2)break t;h=e[q2>>2]|0,i5=h,g2=s5}while(!1);e[t>>2]=1}while(!1);if(x=e[b2>>2]|0,M=t+16|0,e[M>>2]=x,L=o+4|0,R=e[L>>2]|0,F=R<<2,N=R9(F)|0,G=t+8|0,e[G>>2]=N,V=R9(F)|0,X=t+12|0,e[X>>2]=V,K=(R|0)>0,K&&(a0=ce(x,4)|0,e[N>>2]=a0,W=(R|0)>1,W))for(J=1;m=e[G>>2]|0,r0=ce(x,4)|0,s0=m+(J<<2)|0,e[s0>>2]=r0,q=J+1|0,d0=(q|0)<(R|0),d0;)J=q;if(t0=t+36|0,e[t0>>2]=0,j=t+40|0,e[j>>2]=0,u0=e[b2>>2]|0,c0=(u0|0)/2&-1,$0=t+48|0,e[$0>>2]=c0,l0=t+20|0,e[l0>>2]=c0,Z=B+16|0,I0=e[Z>>2]|0,f0=ce(I0,4)|0,n0=g0+48|0,e[n0>>2]=f0,h0=B+20|0,p0=e[h0>>2]|0,C0=ce(p0,4)|0,S0=g0+52|0,e[S0>>2]=C0,Q0=e[Z>>2]|0,b0=(Q0|0)>0,b0)for(r5=0;B0=(B+800|0)+(r5<<2)|0,_0=e[B0>>2]|0,K0=25640+(_0<<2)|0,M0=e[K0>>2]|0,v0=M0+8|0,T0=e[v0>>2]|0,N0=(B+1056|0)+(r5<<2)|0,U0=e[N0>>2]|0,O0=mi[T0&15](t,U0)|0,k0=e[n0>>2]|0,F0=k0+(r5<<2)|0,e[F0>>2]=O0,L0=r5+1|0,G0=e[Z>>2]|0,z0=(L0|0)<(G0|0),z0;)r5=L0;if(E0=e[h0>>2]|0,y0=(E0|0)>0,y0)a5=0;else return $=0,$|0;for(;;)if(J0=(B+1312|0)+(a5<<2)|0,q0=e[J0>>2]|0,Z0=25648+(q0<<2)|0,P0=e[Z0>>2]|0,H0=P0+8|0,o1=e[H0>>2]|0,i1=(B+1568|0)+(a5<<2)|0,x0=e[i1>>2]|0,n1=mi[o1&15](t,x0)|0,d1=e[S0>>2]|0,g1=d1+(a5<<2)|0,e[g1>>2]=n1,m1=a5+1|0,h1=e[h0>>2]|0,u1=(m1|0)<(h1|0),u1)a5=m1;else{$=0;break}return $|0}function IQ(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0;if(M0=C,C=C+64|0,g=M0,h=t+20|0,y=e[h>>2]|0,K=y<<2,o=K,u0=C,C=C+((1*o|0)+15&-16)|0,C0=t+28|0,e[C0>>2]=1,Q0=t+48|0,b0=e[Q0>>2]|0,E0=y-b0|0,y0=(E0|0)>32,!y0){C=M0;return}if(m=t+4|0,I=e[m>>2]|0,E=I+4|0,Q=e[E>>2]|0,B=(Q|0)>0,!B){C=M0;return}for(S=t+8|0,b=y,w0=0;;){if(v=(b|0)>0,v)for(w=e[S>>2]|0,D=w+(w0<<2)|0,x=e[D>>2]|0,B0=0;M=B0^-1,L=b+M|0,R=x+(L<<2)|0,F=e[R>>2]|0,T=u0+(B0<<2)|0,e[T>>2]=F,N=B0+1|0,G=(b|0)>(N|0),G;)B0=N;if(V=e[Q0>>2]|0,X=b-V|0,+mQ(u0,g,X,16),a0=e[h>>2]|0,W=e[Q0>>2]|0,a=a0-W|0,r0=u0+(a<<2)|0,$=a+-16|0,s0=u0+($<<2)|0,pQ(g,s0,16,r0,W),J=e[h>>2]|0,o0=(J|0)>0,o0)for(q=e[S>>2]|0,d0=q+(w0<<2)|0,t0=e[d0>>2]|0,_0=0;j=u0+(_0<<2)|0,c0=e[j>>2]|0,$0=_0^-1,l0=J+$0|0,Z=t0+(l0<<2)|0,e[Z>>2]=c0,I0=_0+1|0,g0=(J|0)>(I0|0),g0;)_0=I0;if(f0=w0+1|0,n0=e[m>>2]|0,h0=n0+4|0,p0=e[h0>>2]|0,S0=(f0|0)<(p0|0),S0)b=J,w0=f0;else break}C=M0}function YS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0;A2=C,O2(o,5653314,24),m=e[t>>2]|0,O2(o,m,16),I=t+4|0,G=e[I>>2]|0,O2(o,G,24),d0=e[I>>2]|0,n0=(d0|0)>1;e:do if(n0)for(_0=t+8|0,L0=e[_0>>2]|0,g=f[L0>>0]|0,x0=g,O1=1;;){if(j0=x0<<24>>24==0,j0){j1=O1;break e}if(S1=L0+O1|0,E=f[S1>>0]|0,D=E<<24>>24>24,D){j1=O1;break e}if(y=O1+1|0,x=(y|0)<(d0|0),x)x0=E,O1=y;else{j1=y;break}}else j1=1;while(!1);M=(j1|0)==(d0|0);e:do if(M){if(O2(o,1,1),L=t+8|0,R=e[L>>2]|0,F=f[R>>0]|0,T=F<<24>>24,N=T+-1|0,O2(o,N,5),V=e[I>>2]|0,X=(V|0)>1,X)for(w=V,H1=0,W1=1;;){if(K=e[L>>2]|0,a0=K+W1|0,W=f[a0>>0]|0,r0=W1+-1|0,s0=K+r0|0,J=f[s0>>0]|0,o0=W<<24>>24>J<<24>>24,o0)for(q=J<<24>>24,t0=W<<24>>24,c0=w,Y1=H1,$2=q;;)if(j=W1-Y1|0,u0=c0-Y1|0,$0=q8(u0)|0,O2(o,j,$0),l0=$2+1|0,n2=(l0|0)==(t0|0),h=e[I>>2]|0,n2){g0=h,V1=W1;break}else c0=h,Y1=W1,$2=l0;else g0=w,V1=H1;if(Z=W1+1|0,I0=(Z|0)<(g0|0),I0)w=g0,H1=V1,W1=Z;else{$=g0,q1=V1,c2=Z;break}}else $=V,q1=0,c2=1;f0=c2-q1|0,h0=$-q1|0,p0=q8(h0)|0,O2(o,f0,p0)}else{O2(o,0,1),C0=e[I>>2]|0,S0=(C0|0)>0;t:do if(S0)for(Q0=t+8|0,b0=e[Q0>>2]|0,s2=0;;){if(E0=b0+s2|0,y0=f[E0>>0]|0,w0=y0<<24>>24==0,w0){h2=s2;break t}if(B0=s2+1|0,K0=(B0|0)<(C0|0),K0)s2=B0;else{h2=B0;break}}else h2=0;while(!1);if(M0=(h2|0)==(C0|0),M0){if(O2(o,0,1),v0=e[I>>2]|0,T0=(v0|0)>0,!T0)break;for(N0=t+8|0,E2=0;;)if(U0=e[N0>>2]|0,O0=U0+E2|0,k0=f[O0>>0]|0,V0=k0<<24>>24,F0=V0+-1|0,O2(o,F0,5),G0=E2+1|0,z0=e[I>>2]|0,J0=(G0|0)<(z0|0),J0)E2=G0;else break e}if(O2(o,1,1),q0=e[I>>2]|0,Z0=(q0|0)>0,Z0)for(P0=t+8|0,a2=0;H0=e[P0>>2]|0,o1=H0+a2|0,Y0=f[o1>>0]|0,i1=Y0<<24>>24==0,i1?O2(o,0,1):(O2(o,1,1),n1=e[P0>>2]|0,d1=n1+a2|0,g1=f[d1>>0]|0,m1=g1<<24>>24,h1=m1+-1|0,O2(o,h1,5)),u1=a2+1|0,A1=e[I>>2]|0,c1=(u1|0)<(A1|0),c1;)a2=u1}while(!1);if(s1=t+12|0,$1=e[s1>>2]|0,O2(o,$1,4),E1=e[s1>>2]|0,(E1|0)==2|(E1|0)==1)r2=28;else if(E1|0)return a=-1,a|0;do if((r2|0)==28){if(I1=t+32|0,Q1=e[I1>>2]|0,p1=(Q1|0)==0,p1)return a=-1,a|0;if(B1=t+16|0,w1=e[B1>>2]|0,O2(o,w1,32),v1=t+20|0,k1=e[v1>>2]|0,O2(o,k1,32),L1=t+24|0,M1=e[L1>>2]|0,D1=M1+-1|0,O2(o,D1,4),R1=t+28|0,F1=e[R1>>2]|0,O2(o,F1,1),U1=e[s1>>2]|0,(U1|0)==1)b1=qb(t)|0,l2=b1;else if((U1|0)==2)P1=e[I>>2]|0,Z1=e[t>>2]|0,G1=o5(Z1,P1)|0,l2=G1;else break;if(x1=(l2|0)>0,x1)for(K1=0;z1=e[I1>>2]|0,Q=z1+(K1<<2)|0,B=e[Q>>2]|0,d2=(B|0)>-1,i2=0-B|0,S=d2?B:i2,b=e[L1>>2]|0,O2(o,S,b),v=K1+1|0,X1=(v|0)==(l2|0),!X1;)K1=v}while(!1);return a=0,a|0}function Gu(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0;return X=C,g=(o|0)<0,g||(h=t+12|0,y=e[h>>2]|0,M=y+4|0,L=e[M>>2]|0,R=(L|0)>(o|0),!R)?($=0,$|0):(F=t+20|0,T=e[F>>2]|0,N=T+(o<<2)|0,G=e[N>>2]|0,m=y+8|0,I=e[m>>2]|0,E=I+o|0,Q=f[E>>0]|0,B=Q<<24>>24,O2(a,G,B),S=e[h>>2]|0,b=S+8|0,v=e[b>>2]|0,w=v+o|0,D=f[w>>0]|0,x=D<<24>>24,$=x,$|0)}function sE(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0;return v=C,$=t+8|0,g=e[$>>2]|0,h=(g|0)>0,!h||(m=Uu(t,o)|0,I=(m|0)>-1,!I)?(a=-1,a|0):(E=t+24|0,Q=e[E>>2]|0,B=Q+(m<<2)|0,S=e[B>>2]|0,a=S,a|0)}function VS(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0;if(n0=C,E=t+8|0,Q=e[E>>2]|0,R=(Q|0)>0,!R)return g=0,C=n0,g|0;s0=e[t>>2]|0,o0=($|0)/(s0|0)&-1,q=o0<<2,h=q,d0=C,C=C+((1*h|0)+15&-16)|0,t0=(o0|0)>0;e:do if(t0){for(j=t+16|0,l0=0;;){if(N=Uu(t,a)|0,G=(N|0)==-1,G){g=-1;break}if(V=e[j>>2]|0,X=e[t>>2]|0,K=o5(X,N)|0,a0=V+(K<<2)|0,W=d0+(l0<<2)|0,e[W>>2]=a0,r0=l0+1|0,J=(r0|0)<(o0|0),J)l0=r0;else{u0=X;break e}}return C=n0,g|0}else u0=s0;while(!1);if(m=(u0|0)<1,I=t0^1,c0=m|I,c0)return g=0,C=n0,g|0;for(Z=0,g0=0;;){for(I0=0;v=d0+(I0<<2)|0,w=e[v>>2]|0,D=w+(Z<<2)|0,y=+s[D>>2],x=I0+g0|0,M=o+(x<<2)|0,L=+s[M>>2],F=L+y,s[M>>2]=F,T=I0+1|0,$0=(T|0)==(o0|0),!$0;)I0=T;if(B=Z+1|0,S=g0+o0|0,b=(B|0)<(u0|0),b)Z=B,g0=S;else{g=0;break}}return C=n0,g|0}function JS(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0;if(t5=C,K=t+8|0,a0=e[K>>2]|0,f0=(a0|0)>0,!f0)return g=0,g|0;if(B0=e[t>>2]|0,F0=(B0|0)>8,F0){if(M1=($|0)>0,!M1)return g=0,g|0;for(z1=t+16|0,e2=0;;){if(t0=Uu(t,a)|0,j=(t0|0)==-1,j){g=-1,N1=29;break}if(u0=e[z1>>2]|0,c0=e[t>>2]|0,$0=o5(c0,t0)|0,l0=(c0|0)>0,l0){for(Z=(c0|0)>1,H2=Z?c0:1,f2=e2,m2=0;I0=m2+1|0,X=m2+$0|0,g0=u0+(X<<2)|0,n0=+s[g0>>2],h0=f2+1|0,p0=o+(f2<<2)|0,C0=+s[p0>>2],S0=C0+n0,s[p0>>2]=S0,Q0=(I0|0)<(c0|0),Q0;)f2=h0,m2=I0;h2=e2+H2|0,o2=h2}else o2=e2;if(W=(o2|0)<($|0),W)e2=o2;else{g=0,N1=29;break}}if((N1|0)==29)return g|0}if(i1=t+16|0,$1=($|0)>0,$1)t2=0;else return g=0,g|0;e:for(;;){t:for(;;){if(J=Uu(t,a)|0,o0=(J|0)==-1,o0){g=-1,N1=29;break e}switch(q=e[i1>>2]|0,d0=e[t>>2]|0,d0|0){case 4:{B=J,y=q,N1=19;break t}case 3:{S=J,x=q,N1=21;break t}case 7:{I=J,v=q,N1=13;break t}case 6:{E=J,w=q,N1=15;break t}case 8:{h=q,m=J,N1=12;break t}case 5:{Q=J,D=q,N1=17;break t}case 1:{K1=J,$2=q,U2=t2,A5=0;break t}case 2:{b=J,M=q,N1=23;break t}default:}}if((N1|0)==12?(N1=0,b0=m<<3,E0=h+(b0<<2)|0,y0=+s[E0>>2],w0=t2+1|0,_0=o+(t2<<2)|0,K0=+s[_0>>2],M0=K0+y0,s[_0>>2]=M0,N0=b0,O0=h,k2=w0,W2=1,N1=14):(N1|0)==13?(N1=0,v0=I*7|0,N0=v0,O0=v,k2=t2,W2=0,N1=14):(N1|0)==15?(N1=0,J0=E*6|0,Z0=J0,H0=w,D2=t2,P2=0,N1=16):(N1|0)==17?(N1=0,g1=Q*5|0,h1=g1,A1=D,S2=t2,V2=0,N1=18):(N1|0)==19?(N1=0,Q1=B<<2,B1=Q1,v1=y,Q2=t2,G2=0,N1=20):(N1|0)==21?(N1=0,F1=S*3|0,b1=F1,Z1=x,N2=t2,q2=0,N1=22):(N1|0)==23&&(N1=0,V1=b<<1,n2=V1,O1=M,L2=t2,Z2=0,N1=24),(N1|0)==14&&(N1=0,T0=W2+1|0,V=W2+N0|0,U0=O0+(V<<2)|0,k0=+s[U0>>2],V0=k2+1|0,L0=o+(k2<<2)|0,G0=+s[L0>>2],z0=G0+k0,s[L0>>2]=z0,Z0=N0,H0=O0,D2=V0,P2=T0,N1=16),(N1|0)==16&&(N1=0,q0=P2+1|0,G=P2+Z0|0,P0=H0+(G<<2)|0,o1=+s[P0>>2],Y0=D2+1|0,x0=o+(D2<<2)|0,n1=+s[x0>>2],d1=n1+o1,s[x0>>2]=d1,h1=Z0,A1=H0,S2=Y0,V2=q0,N1=18),(N1|0)==18&&(N1=0,m1=V2+1|0,N=V2+h1|0,u1=A1+(N<<2)|0,c1=+s[u1>>2],s1=S2+1|0,j0=o+(S2<<2)|0,E1=+s[j0>>2],I1=E1+c1,s[j0>>2]=I1,B1=h1,v1=A1,Q2=s1,G2=m1,N1=20),(N1|0)==20&&(N1=0,p1=G2+1|0,T=G2+B1|0,w1=v1+(T<<2)|0,k1=+s[w1>>2],L1=Q2+1|0,S1=o+(Q2<<2)|0,D1=+s[S1>>2],R1=D1+k1,s[S1>>2]=R1,b1=B1,Z1=v1,N2=L1,q2=p1,N1=22),(N1|0)==22&&(N1=0,U1=q2+1|0,F=q2+b1|0,P1=Z1+(F<<2)|0,G1=+s[P1>>2],x1=N2+1|0,q1=o+(N2<<2)|0,H1=+s[q1>>2],Y1=H1+G1,s[q1>>2]=Y1,n2=b1,O1=Z1,L2=x1,Z2=U1,N1=24),(N1|0)==24&&(N1=0,X1=Z2+1|0,R=Z2+n2|0,j1=O1+(R<<2)|0,c2=+s[j1>>2],W1=L2+1|0,s2=o+(L2<<2)|0,E2=+s[s2>>2],a2=E2+c2,s[s2>>2]=a2,K1=n2,$2=O1,U2=W1,A5=X1),L=A5+K1|0,d2=$2+(L<<2)|0,i2=+s[d2>>2],l2=U2+1|0,r2=o+(U2<<2)|0,A2=+s[r2>>2],r0=A2+i2,s[r2>>2]=r0,s0=(l2|0)<($|0),s0)t2=l2;else{g=0,N1=29;break}}return(N1|0)==29?g|0:0}function zS(t,o,a,$,g,h){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0;var m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0;if(f0=C,B=t+8|0,S=e[B>>2]|0,T=(S|0)>0,!T||(r0=(a|0)/($|0)&-1,s0=h+a|0,J=(s0|0)/($|0)&-1,o0=(r0|0)<(J|0),!o0))return I=0,I|0;for(q=t+16|0,j=0,$0=r0;;){if(t0=Uu(t,g)|0,b=(t0|0)==-1,b){I=-1,g0=8;break}if(v=e[q>>2]|0,w=e[t>>2]|0,D=o5(w,t0)|0,y=(w|0)>0,y)for(c0=j,Z=$0,I0=0;;)if(Q=I0+D|0,x=v+(Q<<2)|0,M=+s[x>>2],L=c0+1|0,R=o+(c0<<2)|0,F=e[R>>2]|0,N=F+(Z<<2)|0,G=+s[N>>2],V=G+M,s[N>>2]=V,X=(L|0)==($|0),K=X&1,E=K+Z|0,m=X?0:L,a0=I0+1|0,W=(a0|0)<(w|0),W)c0=m,Z=E,I0=a0;else{u0=m,l0=E;break}else u0=j,l0=$0;if(d0=(l0|0)<(J|0),d0)j=u0,$0=l0;else{I=0,g0=8;break}}return(g0|0)==8?I|0:0}function Uu(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0;I1=C,g=t+40|0,h=e[g>>2]|0,y=t+36|0,K=e[y>>2]|0,u0=EC(o,K)|0,C0=(u0|0)>-1;do if(C0){if(v0=t+32|0,J0=e[v0>>2]|0,d1=J0+(u0<<2)|0,g1=e[d1>>2]|0,m=(g1|0)<0,m){I=g1>>>15,E=I&32767,Q=t+8|0,B=e[Q>>2]|0,S=g1&32767,b=B-S|0,m1=b,u1=E;break}return v=g1+-1|0,w=t+28|0,D=e[w>>2]|0,x=D+v|0,M=f[x>>0]|0,L=M<<24>>24,CC(o,L),a=v,a|0}else R=t+8|0,F=e[R>>2]|0,m1=F,u1=0;while(!1);if(T=EC(o,h)|0,N=(T|0)<0,G=(h|0)>1,V=N&G,V)for(j0=h;;)if(X=j0+-1|0,a0=EC(o,X)|0,W=(a0|0)<0,r0=(X|0)>1,s0=W&r0,s0)j0=X;else{$=W,s1=a0,$1=X;break}else $=N,s1=T,$1=h;if($)return a=-1,a|0;if(J=s1>>>16,o0=s1<<16,q=J|o0,d0=q>>>8,t0=d0&16711935,j=q<<8,c0=j&-16711936,$0=t0|c0,l0=$0>>>4,Z=l0&252645135,I0=$0<<4,g0=I0&-252645136,f0=Z|g0,n0=f0>>>2,h0=n0&858993459,p0=f0<<2,S0=p0&-858993460,Q0=h0|S0,b0=Q0>>>1,E0=b0&1431655765,y0=Q0<<1,w0=y0&-1431655766,B0=E0|w0,_0=m1-u1|0,K0=(_0|0)>1,K0)for(M0=t+20|0,T0=e[M0>>2]|0,U0=_0,h1=m1,c1=u1;;)if(N0=U0>>1,O0=N0+c1|0,k0=T0+(O0<<2)|0,V0=e[k0>>2]|0,F0=V0>>>0>B0>>>0,L0=F0?0:N0,G0=L0+c1|0,z0=F0?N0:0,q0=h1-z0|0,Z0=q0-G0|0,P0=(Z0|0)>1,P0)U0=Z0,h1=q0,c1=G0;else{A1=G0;break}else A1=u1;return H0=t+28|0,o1=e[H0>>2]|0,Y0=o1+A1|0,i1=f[Y0>>0]|0,x0=i1<<24>>24,n1=(x0|0)>($1|0),n1?(CC(o,$1),a=-1,a|0):(CC(o,x0),a=A1,a|0)}function KS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0;for(d1=C,Q=o+28|0,B=e[Q>>2]|0,F=o+4|0,J=e[F>>2]|0,I0=t+4|0,e[I0>>2]=128,y0=t+8|0,e[y0>>2]=64,k0=B+2932|0,J0=e[k0>>2]|0,q0=t+12|0,e[q0>>2]=J0,e[t>>2]=J,Z0=t+164|0,e[Z0>>2]=128,S=B+4|0,b=e[S>>2]|0,v=(b|0)/2&-1,w=t+176|0,e[w>>2]=v,D=ce(128,4)|0,y=t+36|0,e[y>>2]=D,x=t+16|0,yC(x,128),M=e[y>>2]|0,Y0=0;L=+(Y0|0),R=L*.024736950028266088,T=+Hn(+R),N=T,G=M+(Y0<<2)|0,V=N*N,s[G>>2]=V,X=Y0+1|0,o1=(X|0)==128,!o1;)Y0=X;for(K=t+40|0,e[K>>2]=2,a0=t+44|0,e[a0>>2]=4,W=t+56|0,e[W>>2]=4,r0=t+60|0,e[r0>>2]=5,s0=t+72|0,e[s0>>2]=6,o0=t+76|0,e[o0>>2]=6,q=t+88|0,e[q>>2]=9,d0=t+92|0,e[d0>>2]=8,t0=t+104|0,e[t0>>2]=13,j=t+108|0,e[j>>2]=8,u0=t+120|0,e[u0>>2]=17,c0=t+124|0,e[c0>>2]=8,$0=t+136|0,e[$0>>2]=22,l0=t+140|0,e[l0>>2]=8,g0=4,x0=0;;){if(Z=g0<<2,f0=R9(Z)|0,n0=((t+40|0)+(x0<<4)|0)+8|0,e[n0>>2]=f0,h0=(g0|0)>0,h0){for(p0=+(g0|0),C0=((t+40|0)+(x0<<4)|0)+12|0,E=+s[C0>>2],M0=E,i1=0;;)if(S0=+(i1|0),Q0=S0+.5,b0=Q0/p0,E0=b0*3.141592653589793,w0=+Hn(+E0),B0=w0,_0=f0+(i1<<2)|0,s[_0>>2]=B0,K0=M0+B0,v0=i1+1|0,P0=(v0|0)==(g0|0),P0){a=K0;break}else M0=K0,i1=v0;s[C0>>2]=a,m=C0,N0=a}else g=((t+40|0)+(x0<<4)|0)+12|0,I=+s[g>>2],m=g,N0=I;if(T0=1/N0,s[m>>2]=T0,U0=x0+1|0,H0=(U0|0)==7,H0)break;$=((t+40|0)+(U0<<4)|0)+4|0,h=e[$>>2]|0,g0=h,x0=U0}O0=J*7|0,V0=ce(O0,144)|0,F0=t+152|0,e[F0>>2]=V0,L0=e[Z0>>2]|0,G0=ce(L0,4)|0,z0=t+160|0,e[z0>>2]=G0}function WS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0;N=C,o=t+16|0,wC(o),a=t+48|0,v=e[a>>2]|0,p2(v),D=t+64|0,y=e[D>>2]|0,p2(y),x=t+80|0,M=e[x>>2]|0,p2(M),L=t+96|0,R=e[L>>2]|0,p2(R),F=t+112|0,$=e[F>>2]|0,p2($),g=t+128|0,h=e[g>>2]|0,p2(h),m=t+144|0,I=e[m>>2]|0,p2(I),E=t+36|0,Q=e[E>>2]|0,p2(Q),B=t+152|0,S=e[B>>2]|0,p2(S),b=t+160|0,w=e[b>>2]|0,p2(w),u4(t|0,0,180)|0}function ZS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0;if(X1=C,h=t+4|0,m=e[h>>2]|0,R=m+28|0,s0=e[R>>2]|0,Z=s0+2868|0,E0=t+104|0,O0=e[E0>>2]|0,H0=e[O0>>2]|0,A1=H0+168|0,v1=e[A1>>2]|0,I=H0+8|0,S=e[I>>2]|0,b=(v1|0)/(S|0)&-1,v=t+20|0,w=e[v>>2]|0,D=(w|0)/(S|0)&-1,y=D+-4|0,x=(b|0)<0,o=x?0:b,M=D+2|0,L=H0+164|0,F=e[L>>2]|0,T=(M|0)>(F|0),T&&(e[L>>2]=M,N=H0+160|0,G=e[N>>2]|0,V=M<<2,X=K7(G,V)|0,e[N>>2]=X),K=(o|0)<(y|0),K)for(a0=H0+156|0,W=H0+160|0,r0=t+8|0,J=H0+40|0,o0=H0+152|0,x1=o;;){if(q=e[a0>>2]|0,d0=q+1|0,t0=(q|0)>23,$=t0?24:d0,e[a0>>2]=$,j=e[H0>>2]|0,u0=(j|0)>0,u0){for(G1=0,Y1=0;;)if(I0=e[r0>>2]|0,g0=I0+(G1<<2)|0,f0=e[g0>>2]|0,n0=e[I>>2]|0,h0=o5(n0,x1)|0,p0=f0+(h0<<2)|0,C0=e[o0>>2]|0,S0=G1*7|0,Q0=C0+(S0*144|0)|0,b0=eb(H0,Z,p0,J,Q0)|0,y0=b0|Y1,w0=G1+1|0,B0=e[H0>>2]|0,_0=(w0|0)<(B0|0),_0)G1=w0,Y1=y0;else{g=y0;break}K0=x1+2|0,M0=e[W>>2]|0,v0=M0+(K0<<2)|0,e[v0>>2]=0,T0=g&1,N0=(T0|0)==0,N0||(U0=M0+(x1<<2)|0,e[U0>>2]=1,k0=x1+1|0,V0=M0+(k0<<2)|0,e[V0>>2]=1),F0=g&2,L0=(F0|0)==0,L0||(G0=M0+(x1<<2)|0,e[G0>>2]=1,z0=(x1|0)>0,z0&&(J0=x1+-1|0,q0=M0+(J0<<2)|0,e[q0>>2]=1)),Z0=g&4,P0=(Z0|0)==0,P0||(e[a0>>2]=-1)}else c0=x1+2|0,$0=e[W>>2]|0,l0=$0+(c0<<2)|0,e[l0>>2]=0;if(o1=x1+1|0,Z1=(o1|0)==(y|0),Z1)break;x1=o1}if(Y0=e[I>>2]|0,i1=o5(Y0,y)|0,e[A1>>2]=i1,x0=t+48|0,n1=e[x0>>2]|0,d1=t+40|0,g1=e[d1>>2]|0,m1=s0+(g1<<2)|0,h1=e[m1>>2]|0,u1=(h1|0)/4&-1,c1=u1+n1|0,s1=s0+4|0,$1=e[s1>>2]|0,j0=($1|0)/2&-1,E1=c1+j0|0,I1=e[s0>>2]|0,Q1=(I1|0)/4&-1,p1=E1+Q1|0,B1=H0+176|0,w1=e[B1>>2]|0,k1=i1-Y0|0,L1=(w1|0)<(k1|0),!L1)return a=-1,a|0;for(M1=H0+160|0,z1=w1;;){if(R1=(z1|0)<(p1|0),!R1){a=1,V1=22;break}if(e[B1>>2]=z1,F1=(z1|0)/(Y0|0)&-1,U1=e[M1>>2]|0,b1=U1+(F1<<2)|0,P1=e[b1>>2]|0,E=(P1|0)!=0,Q=(z1|0)>(n1|0),H1=Q&E,S1=Y0+z1|0,H1){q1=z1,V1=21;break}if(D1=(S1|0)<(k1|0),D1)z1=S1;else{a=-1,V1=22;break}}return(V1|0)==21?(B=H0+172|0,e[B>>2]=q1,a=0,a|0):(V1|0)==22?a|0:0}function jS(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0;if(y0=C,g=t+104|0,h=e[g>>2]|0,y=e[h>>2]|0,K=t+4|0,u0=e[K>>2]|0,g0=u0+28|0,f0=e[g0>>2]|0,n0=t+48|0,h0=e[n0>>2]|0,p0=t+40|0,m=e[p0>>2]|0,I=f0+(m<<2)|0,E=e[I>>2]|0,Q=(E|0)/4&-1,B=h0-Q|0,S=Q+h0|0,b=(m|0)==0,b?(G=e[f0>>2]|0,V=(G|0)/4&-1,a=V,$=V):(v=t+36|0,w=e[v>>2]|0,D=f0+(w<<2)|0,x=e[D>>2]|0,M=(x|0)/4&-1,L=t+44|0,R=e[L>>2]|0,F=f0+(R<<2)|0,T=e[F>>2]|0,N=(T|0)/4&-1,a=N,$=M),C0=B-$|0,S0=S+a|0,X=y+172|0,a0=e[X>>2]|0,W=(a0|0)>=(C0|0),r0=(a0|0)<(S0|0),b0=W&r0,b0)return o=1,o|0;if(s0=y+8|0,J=e[s0>>2]|0,o0=(C0|0)/(J|0)&-1,q=(S0|0)/(J|0)&-1,d0=(o0|0)<(q|0),!d0)return o=0,o|0;for(t0=y+160|0,j=e[t0>>2]|0,Q0=o0;;){if(l0=j+(Q0<<2)|0,Z=e[l0>>2]|0,I0=(Z|0)==0,c0=Q0+1|0,!I0){o=1,E0=9;break}if($0=(c0|0)<(q|0),$0)Q0=c0;else{o=0,E0=9;break}}return(E0|0)==9?o|0:0}function XS(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0;if(G=C,a=t+168|0,$=e[a>>2]|0,w=t+8|0,y=e[w>>2]|0,x=($|0)/(y|0)&-1,M=x+2|0,L=(o|0)/(y|0)&-1,R=t+160|0,F=e[R>>2]|0,T=F+(L<<2)|0,g=M-L|0,h=g<<2,oA(F|0,T|0,h|0)|0,m=e[a>>2]|0,I=m-o|0,e[a>>2]=I,E=t+172|0,Q=e[E>>2]|0,B=(Q|0)>-1,!B){b=t+176|0,v=e[b>>2]|0,D=v-o|0,e[b>>2]=D;return}S=Q-o|0,e[E>>2]=S,b=t+176|0,v=e[b>>2]|0,D=v-o|0,e[b>>2]=D}function eb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0;if(m3=C,K=t+4|0,a0=e[K>>2]|0,l2=t+12|0,N2=+s[l2>>2],H2=a0<<2,x=H2,b2=C,C=C+((1*x|0)+15&-16)|0,M5=t+156|0,g2=e[M5>>2]|0,F2=(g2|0)>5,G5=(g2|0)/2&-1,h=F2?G5:2,W=o+60|0,$0=+s[W>>2],Q0=G5+-2|0,N0=+(Q0|0),Z0=$0-N0,h1=Z0<0,E6=h1?0:Z0,B1=E6>$0,k3=B1?$0:E6,b1=(a0|0)>0,b1)for(n2=t+36|0,$2=e[n2>>2]|0,V5=0;r2=a+(V5<<2)|0,A2=+s[r2>>2],e2=$2+(V5<<2)|0,o2=+s[e2>>2],f2=o2*A2,t2=b2+(V5<<2)|0,s[t2>>2]=f2,k2=V5+1|0,Q3=(k2|0)==(a0|0),!Q3;)V5=k2;D2=t+16|0,EQ(D2,b2,b2),S2=+s[b2>>2],Q2=S2*S2,L2=Q2,U2=b2+4|0,m2=+s[U2>>2],W2=m2,P2=W2*W2,V2=P2*.7,G2=V2+L2,q2=b2+8|0,Z2=+s[q2>>2],A5=Z2,N1=A5*A5,t5=N1*.2,T5=G2+t5,i5=T5,x5=g+140|0,j2=e[x5>>2]|0,I5=(j2|0)==0,I5?(b5=g+136|0,Y5=+s[b5>>2],g5=Y5+i5,B5=g+132|0,s[B5>>2]=g5,s[b5>>2]=i5,T=B5,Y2=g5):(s5=g+132|0,R2=+s[s5>>2],M2=R2+i5,s[s5>>2]=M2,y2=g+136|0,Q5=+s[y2>>2],N5=Q5+i5,s[y2>>2]=N5,T=s5,Y2=M2),m5=(g+72|0)+(j2<<2)|0,L5=+s[m5>>2],q5=Y2-L5,s[T>>2]=q5,s[m5>>2]=i5,p5=e[x5>>2]|0,$5=p5+1|0,u5=(p5|0)>13,m=u5?0:$5,e[x5>>2]=m,y5=(a0|0)/2&-1,T1=(a0|0)>1;e:do if(T1)for(D5=Y2*.0625,d5=(s[w2>>2]=D5,e[w2>>2]|0),l5=d5&2147483647,X2=+(l5>>>0),w5=X2*7177114298428933e-22,r5=w5+-764.6162109375,a5=r5,h5=a5*.5,z2=h5+-15,f5=z2,M=f5,T0=S2,S5=0;;){if(v0=T0*T0,U0=S5|1,O0=b2+(U0<<2)|0,k0=+s[O0>>2],V0=k0*k0,F0=V0+v0,L0=(s[w2>>2]=F0,e[w2>>2]|0),G0=L0&2147483647,z0=+(G0>>>0),J0=z0*35885571492144663e-23,q0=J0+-382.30810546875,P0=q0>1,Y0=b2+(o1<<2)|0,s[Y0>>2]=X,i1=S5+2|0,x0=(i1|0)<(y5|0),!x0)break e;n1=M+-8,R=b2+(i1<<2)|0,F=+s[R>>2],M=n1,T0=F,S5=i1}while(!1);if(n5=(h|0)>0,n5)l3=0,V3=0;else{for(n3=0,i6=0;;){if(d1=($+(n3<<4)|0)+4|0,g1=e[d1>>2]|0,m1=(g1|0)>0,m1)for(u1=$+(n3<<4)|0,A1=e[u1>>2]|0,c1=($+(n3<<4)|0)+8|0,s1=e[c1>>2]|0,c3=0,Y3=0;;)if($1=A1+Y3|0,j0=b2+($1<<2)|0,E1=+s[j0>>2],I1=s1+(Y3<<2)|0,Q1=+s[I1>>2],p1=Q1*E1,w1=p1+c3,v1=Y3+1|0,k1=(v1|0)<(g1|0),k1)c3=w1,Y3=v1;else{T3=w1;break}else T3=0;if(L1=($+(n3<<4)|0)+12|0,M1=+s[L1>>2],S1=M1*T3,D1=(g+(n3*144|0)|0)+68|0,R1=e[D1>>2]|0,F1=(R1|0)<1,Q=F1?16:-1,I=Q+R1|0,U1=(g+(n3*144|0)|0)+(I<<2)|0,P1=+s[U1>>2],Z1=S1P1,S=x1?P1:S1,z1=S+-99999,q1=G1+99999,H1=(g+(n3*144|0)|0)+(R1<<2)|0,s[H1>>2]=S1,Y1=e[D1>>2]|0,V1=Y1+1|0,X1=(Y1|0)>15,D=X1?0:V1,e[D1>>2]=D,j1=(o+4|0)+(n3<<2)|0,O1=+s[j1>>2],c2=O1+k3,W1=q1>c2,h2=i6|5,Z5=W1?h2:i6,s2=(o+32|0)+(n3<<2)|0,E2=+s[s2>>2],a2=E2-k3,K1=z1>2]|0,c5=(e5|0)>0,c5)for(S0=$+(l3<<4)|0,c0=e[S0>>2]|0,b0=($+(l3<<4)|0)+8|0,g0=e[b0>>2]|0,g3=0,U5=0;;)if(u0=c0+U5|0,l0=b2+(u0<<2)|0,Z=+s[l0>>2],I0=g0+(U5<<2)|0,f0=+s[I0>>2],n0=f0*Z,h0=n0+g3,p0=U5+1|0,C0=(p0|0)<(e5|0),C0)g3=h0,U5=p0;else{H3=h0;break}else H3=0;for(E0=($+(l3<<4)|0)+12|0,y0=+s[E0>>2],h3=y0*H3,r3=(g+(l3*144|0)|0)+68|0,I3=e[r3>>2]|0,w0=(I3|0)<1,B=w0?16:-1,E=B+I3|0,B0=(g+(l3*144|0)|0)+(E<<2)|0,_0=+s[B0>>2],K0=h3<_0,i3=K0?_0:h3,M0=h3>_0,b=M0?_0:h3,$6=0,N3=E,_3=-99999,S3=99999;;)if(s0=(N3|0)<1,w=s0?16:-1,v=w+N3|0,J=(g+(l3*144|0)|0)+(v<<2)|0,o0=+s[J>>2],q=_3o0,N=t0?o0:S3,j=$6+1|0,z5=(j|0)==(h|0),z5){L=d0,G=N;break}else $6=j,N3=v,_3=d0,S3=N;if(v5=b-G,J5=i3-L,E5=(g+(l3*144|0)|0)+(I3<<2)|0,s[E5>>2]=h3,K5=e[r3>>2]|0,a3=K5+1|0,B3=(K5|0)>15,y=B3?0:a3,e[r3>>2]=y,W5=(o+4|0)+(l3<<2)|0,D3=+s[W5>>2],f3=D3+k3,y3=J5>f3,X3=V3|5,x3=y3?X3:V3,q3=(o+32|0)+(l3<<2)|0,X5=+s[q3>>2],b3=X5-k3,t3=v5>2]|0,Q2=o+1288|0,r6=e[Q2>>2]|0,U3=o+1284|0,y6=e[U3>>2]|0,v9=(y6|0)>0,v9){for(mt=0;o4=be+(mt<<2)|0,e[o4>>2]=-200,k4=mt+1|0,S4=(k4|0)==(y6|0),!S4;)mt=k4;if(v9){for(W3=0;Be=me+(W3<<2)|0,e[Be>>2]=-200,r0=W3+1|0,Ie=(r0|0)==(y6|0),!Ie;)W3=r0;if(v9){for(l0=y6<<2,u4(Pt|0,0,l0|0)|0,x9=0;b0=F4+(x9<<2)|0,e[b0>>2]=1,U0=x9+1|0,J4=(U0|0)==(y6|0),!J4;)x9=U0;if(v9){if(u1=y6<<2,u4(t8|0,-1,u1|0)|0,w1=(y6|0)>1,!w1)return $4=0,C=ae,$4|0;for(P1=r6+-1|0,j1=W+1112|0,i2=y6+-1|0,F=e[o>>2]|0,ke=F,b9=0,b4=0;;){Fe=b9+1|0,Te=o+(Fe<<2)|0,Ge=e[Te>>2]|0,He=z6+(b9*56|0)|0,O4=He,N8=O4+56|0;do e[O4>>2]=0,O4=O4+4|0;while((O4|0)<(N8|0));if(e[He>>2]=ke,Ye=(z6+(b9*56|0)|0)+4|0,e[Ye>>2]=Ge,J9=(Ge|0)<(r6|0),s8=J9?Ge:P1,Ve=(s8|0)<(ke|0),Ve)_t=0,n8=0,Mt=0,Rt=0,Qt=0,P4=0,a8=0,Z9=0,jt=0,Tt=0,K8=0,W8=0;else for(xe=ke,pt=0,z4=0,We=0,oe=0,D4=0,gt=0,E3=0,T9=0,dt=0,D9=0,u8=0,Nt=0;;){he=$+(xe<<2)|0,V=+s[he>>2],Ue=V*7.314285755157471,Ce=Ue+1023.5,v4=~~Ce,W9=(v4|0)>1023,k9=(v4|0)<0,m=k9?0:v4,S=W9?1023:m,Y4=(S|0)==0;do if(Y4)zt=pt,at=z4,$t=We,Bt=oe,W4=D4,De=gt,wt=E3,Wt=T9,je=dt,et=D9,g4=u8,Xt=Nt;else if(nt=a+(xe<<2)|0,Je=+s[nt>>2],V4=+s[j1>>2],ze=V4+Je,s4=!(ze>=V),s4){h4=xe+gt|0,ne=S+Nt|0,f4=o5(xe,xe)|0,I4=f4+oe|0,Se=o5(S,S)|0,s0=Se+D9|0,J=o5(S,xe)|0,o0=J+T9|0,q=z4+1|0,zt=pt,at=q,$t=We,Bt=I4,W4=D4,De=h4,wt=E3,Wt=o0,je=dt,et=s0,g4=u8,Xt=ne;break}else{R4=xe+D4|0,ot=S+u8|0,re=o5(xe,xe)|0,d4=re+We|0,N6=o5(S,S)|0,Ke=N6+dt|0,P9=o5(S,xe)|0,fe=P9+E3|0,Ne=pt+1|0,zt=Ne,at=z4,$t=d4,Bt=oe,W4=R4,De=gt,wt=fe,Wt=T9,je=Ke,et=D9,g4=ot,Xt=Nt;break}while(!1);if(d0=xe+1|0,t0=(xe|0)<(s8|0),t0)xe=d0,pt=zt,z4=at,We=$t,oe=Bt,D4=W4,gt=De,E3=wt,T9=Wt,dt=je,D9=et,u8=g4,Nt=Xt;else{_t=zt,n8=at,Mt=$t,Rt=Bt,Qt=W4,P4=De,a8=wt,Z9=Wt,jt=je,Tt=et,K8=g4,W8=Xt;break}}if(j=(z6+(b9*56|0)|0)+8|0,e[j>>2]=Qt,u0=(z6+(b9*56|0)|0)+12|0,e[u0>>2]=K8,c0=(z6+(b9*56|0)|0)+16|0,e[c0>>2]=Mt,$0=(z6+(b9*56|0)|0)+20|0,e[$0>>2]=jt,Z=(z6+(b9*56|0)|0)+24|0,e[Z>>2]=a8,I0=(z6+(b9*56|0)|0)+28|0,e[I0>>2]=_t,g0=(z6+(b9*56|0)|0)+32|0,e[g0>>2]=P4,f0=(z6+(b9*56|0)|0)+36|0,e[f0>>2]=W8,n0=(z6+(b9*56|0)|0)+40|0,e[n0>>2]=Rt,h0=(z6+(b9*56|0)|0)+44|0,e[h0>>2]=Tt,p0=(z6+(b9*56|0)|0)+48|0,e[p0>>2]=Z9,C0=(z6+(b9*56|0)|0)+52|0,e[C0>>2]=n8,S0=_t+b4|0,f6=(Fe|0)==(i2|0),f6){E8=S0;break}else ke=Ge,b9=Fe,b4=S0}}else B4=9}else B4=9}else B4=9}else B4=9;if((B4|0)==9){if(P0=(y6|0)==0,!P0)return $4=0,C=ae,$4|0;N2=z6+4|0,O4=z6,N8=O4+56|0;do e[O4>>2]=0,O4=O4+4|0;while((O4|0)<(N8|0));if(e[N2>>2]=r6,H2=(r6|0)<1,H2)Vt=0,r8=0,Kt=0,Ct=0,ct=0,se=0,yt=0,l4=0,l8=0,c8=0,H8=0,Y8=0;else for(b2=W+1112|0,pe=0,xt=0,Et=0,At=0,p4=0,E4=0,C4=0,Ze=0,c4=0,ut=0,X4=0,R8=0,ht=0;;){M5=$+(pe<<2)|0,G=+s[M5>>2],g2=G*7.314285755157471,F2=g2+1023.5,G5=~~F2,T3=(G5|0)>1023,U5=(G5|0)<0,h=U5?0:G5,B=T3?1023:h,V3=(B|0)==0;do if(V3)Jt=xt,G4=Et,U4=At,lt=p4,K4=E4,_4=C4,Z4=Ze,j4=c4,Ft=ut,g8=X4,F8=R8,T8=ht;else if(h6=a+(pe<<2)|0,K3=+s[h6>>2],A6=+s[b2>>2],c9=A6+K3,P6=!(c9>=G),P6){B9=pe+C4|0,Q9=B+ht|0,y9=o5(pe,pe)|0,h9=y9+p4|0,f9=o5(B,B)|0,H9=f9+X4|0,H6=o5(B,pe)|0,A9=H6+c4|0,Y9=Et+1|0,Jt=xt,G4=Y9,U4=At,lt=h9,K4=E4,_4=B9,Z4=Ze,j4=A9,Ft=ut,g8=H9,F8=R8,T8=Q9;break}else{J6=pe+E4|0,T6=B+R8|0,i9=o5(pe,pe)|0,_6=i9+At|0,O6=o5(B,B)|0,q6=O6+ut|0,a9=o5(B,pe)|0,d9=a9+Ze|0,o9=xt+1|0,Jt=o9,G4=Et,U4=_6,lt=p4,K4=J6,_4=C4,Z4=d9,j4=c4,Ft=q6,g8=X4,F8=T6,T8=ht;break}while(!1);if(w9=pe+1|0,S9=(w9|0)==(r6|0),S9){Vt=Jt,r8=G4,Kt=U4,Ct=lt,ct=K4,se=_4,yt=Z4,l4=j4,l8=Ft,c8=g8,H8=F8,Y8=T8;break}else pe=w9,xt=Jt,Et=G4,At=U4,p4=lt,E4=K4,C4=_4,Ze=Z4,c4=j4,ut=Ft,X4=g8,R8=F8,ht=T8}we=z6+8|0,e[we>>2]=ct,ue=z6+12|0,e[ue>>2]=H8,Ee=z6+16|0,e[Ee>>2]=Kt,V9=z6+20|0,e[V9>>2]=l8,ie=z6+24|0,e[ie>>2]=yt,F9=z6+28|0,e[F9>>2]=Vt,W6=z6+32|0,e[W6>>2]=se,$9=z6+36|0,e[$9>>2]=Y8,ve=z6+40|0,e[ve>>2]=Ct,Re=z6+44|0,e[Re>>2]=c8,de=z6+48|0,e[de>>2]=l4,_9=z6+52|0,e[_9>>2]=r8,E8=Vt}if(Q0=(E8|0)==0,Q0)return $4=0,C=ae,$4|0;e[$8>>2]=-200,e[Zt>>2]=-200,E0=y6+-1|0,BC(z6,E0,$8,Zt,W)|0,y0=e[$8>>2]|0,e[be>>2]=y0,e[me>>2]=y0,w0=e[Zt>>2]|0,B0=me+4|0,e[B0>>2]=w0,_0=be+4|0,e[_0>>2]=w0,K0=(y6|0)>2;do if(K0){M0=W+1112|0,v0=W+1096|0,T0=W+1100|0,N0=W+1104|0,Oe=2;e:for(;;){O0=(o+520|0)+(Oe<<2)|0,k0=e[O0>>2]|0,V0=Pt+(k0<<2)|0,F0=e[V0>>2]|0,L0=F4+(k0<<2)|0,G0=e[L0>>2]|0,z0=t8+(F0<<2)|0,J0=e[z0>>2]|0,q0=(J0|0)==(G0|0);t:do if(!q0){if(Z0=(o+520|0)+(F0<<2)|0,H0=e[Z0>>2]|0,o1=(o+520|0)+(G0<<2)|0,Y0=e[o1>>2]|0,e[z0>>2]=G0,i1=(W+836|0)+(F0<<2)|0,x0=e[i1>>2]|0,n1=(W+836|0)+(G0<<2)|0,d1=e[n1>>2]|0,g1=be+(F0<<2)|0,m1=e[g1>>2]|0,h1=(m1|0)<0,A1=me+(F0<<2)|0,c1=e[A1>>2]|0,h1?w=c1:(s1=(c1|0)<0,s1?w=m1:($1=c1+m1|0,j0=$1>>1,w=j0)),E1=be+(G0<<2)|0,I1=e[E1>>2]|0,Q1=(I1|0)<0,p1=me+(G0<<2)|0,B1=e[p1>>2]|0,Q1?y=B1:(v1=(B1|0)<0,v1?y=I1:(k1=B1+I1|0,L1=k1>>1,y=L1)),M1=(w|0)==-1,S1=(y|0)==-1,L8=M1|S1,L8){B4=38;break e}D1=y-w|0,R1=d1-x0|0,N4=(D1|0)>-1,L9=0-D1|0,F1=N4?D1:L9,U1=(D1|0)/(R1|0)&-1,b1=D1>>31,Z1=b1|1,G1=$+(x0<<2)|0,K=+s[G1>>2],x1=K*7.314285755157471,z1=x1+1023.5,q1=~~z1,H1=(q1|0)>1023,Y1=(q1|0)<0,I=Y1?0:q1,b=H1?1023:I,V1=o5(U1,R1)|0,f8=(V1|0)>-1,p8=0-V1|0,X1=f8?V1:p8,n2=F1-X1|0,O1=w-b|0,c2=o5(O1,O1)|0,W1=a+(x0<<2)|0,h2=+s[W1>>2],s2=+s[M0>>2],E2=s2+h2,a2=!(E2>=K),a2?B4=42:(K1=+(w|0),d2=+s[v0>>2],$2=d2+K1,l2=+(b|0),r2=$2>2],e2=K1-A2,o2=e2>l2,o2||(B4=42)));i:do if((B4|0)==42){if(B4=0,f2=x0+1|0,t2=(f2|0)<(d1|0),t2)for(m2=f2,a4=0,x8=c2,Yt=1,C8=w;;){if(k2=a4+n2|0,D2=(k2|0)<(R1|0),S2=D2?0:Z1,L2=D2?0:R1,Pe=k2-L2|0,R=C8+U1|0,A8=R+S2|0,U2=$+(m2<<2)|0,X=+s[U2>>2],W2=X*7.314285755157471,P2=W2+1023.5,V2=~~P2,G2=(V2|0)>1023,q2=(V2|0)<0,E=q2?0:V2,D=G2?1023:E,Z2=A8-D|0,A5=o5(Z2,Z2)|0,N1=A5+x8|0,t5=Yt+1|0,T5=a+(m2<<2)|0,i5=+s[T5>>2],x5=i5+s2,j2=x5>=X,I5=(D|0)!=0,o8=j2&I5,o8&&(b5=+(A8|0),Y5=+s[v0>>2],g5=Y5+b5,B5=+(D|0),s5=g5>2],M2=b5-R2,y2=M2>B5,y2)))break i;if(Q5=m2+1|0,N5=(Q5|0)<(d1|0),N5)m2=Q5,a4=Pe,x8=N1,Yt=t5,C8=A8;else{i8=N1,Ht=t5;break}}else i8=c2,Ht=1;if(m5=+s[v0>>2],L5=m5*m5,q5=+(Ht|0),Y2=L5/q5,p5=+s[N0>>2],$5=Y2>p5,!$5&&(u5=+s[T0>>2],y5=u5*u5,T1=y5/q5,D5=T1>p5,!D5&&(d5=(i8|0)/(Ht|0)&-1,l5=+(d5|0),X2=l5>p5,X2)))break;g3=be+(Oe<<2)|0,e[g3>>2]=-200,u3=me+(Oe<<2)|0,e[u3>>2]=-200;break t}while(!1);if(e[Ot>>2]=-200,e[qt>>2]=-200,e[T4>>2]=-200,e[st>>2]=-200,w5=z6+(H0*56|0)|0,r5=k0-H0|0,a5=BC(w5,r5,Ot,qt,W)|0,h5=z6+(k0*56|0)|0,z2=Y0-k0|0,f5=BC(h5,z2,T4,st,W)|0,n5=(a5|0)!=0,n5&&(e[Ot>>2]=w,R5=e[T4>>2]|0,e[qt>>2]=R5),e5=(f5|0)==0,!e5&&(c5=e[qt>>2]|0,e[T4>>2]=c5,e[st>>2]=y,n5)){v5=be+(Oe<<2)|0,e[v5>>2]=-200,J5=me+(Oe<<2)|0,e[J5>>2]=-200;break}if(i3=e[Ot>>2]|0,e[A1>>2]=i3,E5=(F0|0)==0,E5&&(e[be>>2]=i3),I3=e[qt>>2]|0,h3=be+(Oe<<2)|0,e[h3>>2]=I3,K5=e[T4>>2]|0,r3=me+(Oe<<2)|0,e[r3>>2]=K5,a3=e[st>>2]|0,e[E1>>2]=a3,B3=(G0|0)==1,B3&&(e[B0>>2]=a3),W5=K5&I3,D3=(W5|0)>-1,D3){f3=(k0|0)>0;i:do if(f3)for(e8=k0;;){if(_8=e8+-1|0,X3=F4+(_8<<2)|0,q3=e[X3>>2]|0,X5=(q3|0)==(G0|0),!X5)break i;if(e[X3>>2]=Oe,b3=(e8|0)>1,b3)e8=_8;else break}while(!1);if(m8=k0+1|0,y3=(m8|0)<(y6|0),y3)for(Ut=m8;;){if(t3=Pt+(Ut<<2)|0,s6=e[t3>>2]|0,H3=(s6|0)==(F0|0),!H3)break t;if(e[t3>>2]=Oe,I8=Ut+1|0,c3=(I8|0)<(y6|0),c3)Ut=I8;else break}}}while(!1);if(Q3=Oe+1|0,z5=(Q3|0)<(y6|0),z5)Oe=Q3;else{B4=68;break}}if((B4|0)==38)BS(1);else if((B4|0)==68){T=e[be>>2]|0,N=e[me>>2]|0,S5=T,$6=N;break}}else S5=y0,$6=y0;while(!1);if(H5=y6<<2,V5=z8(t,H5)|0,Y3=(S5|0)<0,Y3?v=$6:(n3=($6|0)<0,n3?v=S5:(l3=$6+S5|0,N3=l3>>1,v=N3)),e[V5>>2]=v,E6=e[_0>>2]|0,k3=(E6|0)<0,_3=e[B0>>2]|0,k3?M=_3:(S3=(_3|0)<0,S3?M=E6:(a6=_3+E6|0,i6=a6>>1,M=i6)),Z5=V5+4|0,e[Z5>>2]=M,K0)A4=2;else return $4=V5,C=ae,$4|0;for(;;)if(x3=A4+-2|0,d3=(o+1032|0)+(x3<<2)|0,J3=e[d3>>2]|0,d6=(o+780|0)+(x3<<2)|0,m3=e[d6>>2]|0,L6=(W+836|0)+(J3<<2)|0,M6=e[L6>>2]|0,R6=(W+836|0)+(m3<<2)|0,S6=e[R6>>2]|0,b6=V5+(J3<<2)|0,G6=e[b6>>2]|0,X6=V5+(m3<<2)|0,v6=e[X6>>2]|0,L3=(W+836|0)+(A4<<2)|0,n6=e[L3>>2]|0,o6=G6&32767,C6=v6&32767,z3=C6-o6|0,M3=S6-M6|0,h8=(z3|0)>-1,Lt=0-z3|0,e6=h8?z3:Lt,F6=n6-M6|0,l6=o5(e6,F6)|0,o3=(l6|0)/(M3|0)&-1,K6=(z3|0)<0,A3=0-o3|0,L=K6?A3:o3,x=L+o6|0,c6=be+(A4<<2)|0,B6=e[c6>>2]|0,R3=(B6|0)<0,Y6=me+(A4<<2)|0,D6=e[Y6>>2]|0,R3?Q=D6:(U6=(D6|0)<0,U6?Q=B6:(t9=D6+B6|0,Q6=t9>>1,Q=Q6)),e9=(Q|0)<0,G3=(x|0)==(Q|0),M8=e9|G3,n9=x|32768,g=M8?n9:Q,V6=V5+(A4<<2)|0,e[V6>>2]=g,s9=A4+1|0,m4=(s9|0)==(y6|0),m4){$4=V5;break}else A4=s9;return C=ae,$4|0}function Gt(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0;if(u0=C,h=o+1284|0,m=e[h>>2]|0,x=(a|0)!=0,X=($|0)!=0,d0=x&X,!d0)return t0=0,t0|0;if(K=m<<2,a0=z8(t,K)|0,W=(m|0)>0,!W)return t0=a0,t0|0;for(r0=65536-g|0,q=0;;)if(s0=a+(q<<2)|0,J=e[s0>>2]|0,I=J&32767,E=o5(I,r0)|0,Q=$+(q<<2)|0,B=e[Q>>2]|0,S=B&32767,b=o5(S,g)|0,v=E+32768|0,w=v+b|0,D=w>>16,y=a0+(q<<2)|0,e[y>>2]=D,M=e[s0>>2]|0,L=M&32768,R=(L|0)==0,R||(F=e[Q>>2]|0,T=F&32768,N=(T|0)==0,N||(G=D|32768,e[y>>2]=G)),V=q+1|0,o0=(V|0)==(m|0),o0){t0=a0;break}else q=V;return t0|0}function tb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0;if(q6=C,C=C+336|0,P6=q6+64|0,d3=q6+32|0,G3=q6,D=a+1296|0,y=e[D>>2]|0,d2=a+1284|0,R2=e[d2>>2]|0,$5=o+64|0,a5=e[$5>>2]|0,i3=a5+4|0,f3=e[i3>>2]|0,g3=f3+28|0,l3=e[g3>>2]|0,x=l3+2848|0,a0=e[x>>2]|0,c0=($|0)==0,c0)return O2(t,0,1),T5=o+36|0,i5=e[T5>>2]|0,x5=(i5|0)/2&-1,j2=x5<<2,u4(g|0,0,j2|0)|0,m=0,C=q6,m|0;if(S0=(R2|0)>0,S0)for(T0=y+832|0,C6=0;q0=$+(C6<<2)|0,m1=e[q0>>2]|0,p1=m1&32767,U1=e[T0>>2]|0,(U1|0)==4?(Z2=p1>>>4,J6=Z2):(U1|0)==1?(X1=p1>>>2,J6=X1):(U1|0)==2?($2=p1>>>3,J6=$2):(U1|0)==3?(S2=(p1>>>0)/12&-1,J6=S2):J6=p1,I5=m1&32768,b5=I5|J6,e[q0>>2]=b5,Y5=C6+1|0,v6=(Y5|0)==(R2|0),!v6;)C6=Y5;if(g5=e[$>>2]|0,e[P6>>2]=g5,b2=$+4|0,B5=e[b2>>2]|0,s5=P6+4|0,e[s5>>2]=B5,M2=(R2|0)>2,y2=a+1292|0,M2){for(z3=2;;){if(Q5=z3+-2|0,N5=(a+1032|0)+(Q5<<2)|0,m5=e[N5>>2]|0,L5=(a+780|0)+(Q5<<2)|0,q5=e[L5>>2]|0,M5=(y+836|0)+(m5<<2)|0,Y2=e[M5>>2]|0,p5=(y+836|0)+(q5<<2)|0,u5=e[p5>>2]|0,y5=$+(m5<<2)|0,T1=e[y5>>2]|0,D5=$+(q5<<2)|0,d5=e[D5>>2]|0,l5=(y+836|0)+(z3<<2)|0,X2=e[l5>>2]|0,g2=T1&32767,w5=d5&32767,r5=w5-g2|0,h5=u5-Y2|0,K3=(r5|0)>-1,n9=0-r5|0,z2=K3?r5:n9,f5=X2-Y2|0,n5=o5(z2,f5)|0,R5=(n5|0)/(h5|0)&-1,e5=(r5|0)<0,c5=0-R5|0,E=e5?c5:R5,I=E+g2|0,F2=$+(z3<<2)|0,v5=e[F2>>2]|0,J5=v5&32768,E5=(J5|0)!=0,I3=(v5|0)==(I|0),c9=E5|I3,c9)h3=I|32768,e[F2>>2]=h3,K5=P6+(z3<<2)|0,e[K5>>2]=0;else{r3=e[y2>>2]|0,a3=r3-I|0,B3=(a3|0)<(I|0),h=B3?a3:I,G5=v5-I|0,W5=(G5|0)<0;do if(W5)if(D3=0-h|0,y3=(G5|0)<(D3|0),y3){X3=G5^-1,q3=h+X3|0,T6=q3;break}else{X5=G5<<1,b3=X5^-1,T6=b3;break}else if(t3=(h|0)>(G5|0),t3){T3=G5<<1,T6=T3;break}else{s6=h+G5|0,T6=s6;break}while(!1);H3=P6+(z3<<2)|0,e[H3>>2]=T6,e[y5>>2]=g2,c3=e[D5>>2]|0,u3=c3&32767,e[D5>>2]=u3}if(Q3=z3+1|0,X6=(Q3|0)==(R2|0),X6)break;z3=Q3}S=e[P6>>2]|0,b=e[s5>>2]|0,a6=S,x3=b}else a6=g5,x3=B5;if(O2(t,1,1),z5=a+1308|0,H5=e[z5>>2]|0,V5=H5+1|0,e[z5>>2]=V5,S5=e[y2>>2]|0,Y3=S5+-1|0,U5=q8(Y3)|0,$6=U5<<1,n3=a+1304|0,N3=e[n3>>2]|0,E6=N3+$6|0,e[n3>>2]=E6,k3=e[y2>>2]|0,_3=k3+-1|0,S3=q8(_3)|0,O2(t,a6,S3),i6=e[y2>>2]|0,V3=i6+-1|0,Z5=q8(V3)|0,O2(t,x3,Z5),M=e[y>>2]|0,L=(M|0)>0,L)for(R=a+1300|0,M3=0,l6=2;;){if(F=(y+4|0)+(M3<<2)|0,T=e[F>>2]|0,N=(y+128|0)+(T<<2)|0,G=e[N>>2]|0,V=(y+192|0)+(T<<2)|0,X=e[V>>2]|0,K=1<>2]=0,e[d3+4>>2]=0,e[d3+8>>2]=0,e[d3+12>>2]=0,e[d3+16>>2]=0,e[d3+20>>2]=0,e[d3+24>>2]=0,e[d3+28>>2]=0,W=(X|0)==0,!W){if(e[G3>>2]=0,e[G3+4>>2]=0,e[G3+8>>2]=0,e[G3+12>>2]=0,e[G3+16>>2]=0,e[G3+20>>2]=0,e[G3+24>>2]=0,e[G3+28>>2]=0,r0=(X|0)==31,!r0)for(A3=0;h0=((y+320|0)+(T<<5)|0)+(A3<<2)|0,p0=e[h0>>2]|0,C0=(p0|0)<0,C0?w=1:(Q0=(l3+1824|0)+(p0<<2)|0,b0=e[Q0>>2]|0,E0=b0+4|0,y0=e[E0>>2]|0,w=y0),w0=G3+(A3<<2)|0,e[w0>>2]=w,B0=A3+1|0,_0=(B0|0)<(K|0),_0;)A3=B0;s0=(G|0)>0;e:do if(s0){if(r0)for(J3=0,L6=0,c6=0;;)if(K0=d3+(c6<<2)|0,M0=e[K0>>2]|0,v0=M0<>2]|0,Y6=0;;){if(J=G3+(Y6<<2)|0,o0=e[J>>2]|0,d0=(q|0)<(o0|0),d0){A6=Y6,U3=31;break}if(t0=Y6+1|0,j=(t0|0)<(K|0),j)Y6=t0;else{U3=33;break}}if((U3|0)==31?(U3=0,u0=d3+(B6<<2)|0,e[u0>>2]=A6,l0=A6):(U3|0)==33&&(U3=0,Q=d3+(B6<<2)|0,v=e[Q>>2]|0,l0=v),$0=l0<>2]|0,F0=a0+(V0*56|0)|0,L0=Gu(F0,m3,t)|0,G0=e[R>>2]|0,z0=G0+L0|0,e[R>>2]=z0}if(J0=(G|0)>0,J0)for(R3=0;Z0=d3+(R3<<2)|0,P0=e[Z0>>2]|0,H0=((y+320|0)+(T<<5)|0)+(P0<<2)|0,o1=e[H0>>2]|0,Y0=(o1|0)>-1,Y0&&(i1=R3+l6|0,x0=P6+(i1<<2)|0,n1=e[x0>>2]|0,d1=(a0+(o1*56|0)|0)+4|0,g1=e[d1>>2]|0,h1=(n1|0)<(g1|0),h1&&(u1=a0+(o1*56|0)|0,A1=Gu(u1,n1,t)|0,c1=e[n3>>2]|0,s1=c1+A1|0,e[n3>>2]=s1)),$1=R3+1|0,b6=($1|0)==(G|0),!b6;)R3=$1;if(j0=G+l6|0,E1=M3+1|0,I1=e[y>>2]|0,Q1=(E1|0)<(I1|0),Q1)M3=E1,l6=j0;else break}if(B1=e[$>>2]|0,w1=y+832|0,v1=e[w1>>2]|0,k1=o5(v1,B1)|0,L1=o+28|0,M1=e[L1>>2]|0,S1=l3+(M1<<2)|0,D1=e[S1>>2]|0,R1=(D1|0)/2&-1,F1=e[d2>>2]|0,b1=(F1|0)>1,b1)for(n6=0,o3=1,D6=0,Q6=k1;;){if(z1=(a+260|0)+(o3<<2)|0,q1=e[z1>>2]|0,H1=$+(q1<<2)|0,Y1=e[H1>>2]|0,V1=Y1&32767,n2=(V1|0)==(Y1|0),n2)if(j1=e[w1>>2]|0,O1=o5(j1,Y1)|0,c2=(y+836|0)+(q1<<2)|0,W1=e[c2>>2]|0,h2=O1-Q6|0,s2=W1-D6|0,e6=(h2|0)>-1,V6=0-h2|0,E2=e6?h2:V6,a2=(h2|0)/(s2|0)&-1,K1=h2>>31,i2=K1|1,l2=o5(a2,s2)|0,F6=(l2|0)>-1,s9=0-l2|0,r2=F6?l2:s9,A2=E2-r2|0,e2=(R1|0)>(W1|0),i9=e2?W1:R1,o2=(i9|0)>(D6|0),o2&&(f2=g+(D6<<2)|0,e[f2>>2]=Q6),t2=D6+1|0,k2=(t2|0)<(i9|0),k2)for(m2=t2,R6=0,_6=Q6;;)if(D2=R6+A2|0,Q2=(D2|0)<(s2|0),N2=Q2?0:i2,L2=Q2?0:s2,S6=D2-L2|0,B=_6+a2|0,O6=B+N2|0,U2=g+(m2<<2)|0,e[U2>>2]=O6,W2=m2+1|0,h6=(W2|0)==(i9|0),h6){o6=W1,U6=W1,e9=O1;break}else m2=W2,R6=S6,_6=O6;else o6=W1,U6=W1,e9=O1;else o6=n6,U6=D6,e9=Q6;if(P2=o3+1|0,V2=e[d2>>2]|0,G2=(P2|0)<(V2|0),G2)n6=o6,o3=P2,D6=U6,Q6=e9;else{L3=o6,t9=e9;break}}else L3=0,t9=k1;if(P1=o+36|0,Z1=e[P1>>2]|0,G1=(Z1|0)/2&-1,x1=(L3|0)<(G1|0),x1)K6=L3;else return m=1,C=q6,m|0;for(;;)if(q2=g+(K6<<2)|0,e[q2>>2]=t9,A5=K6+1|0,H2=e[P1>>2]|0,N1=(H2|0)/2&-1,t5=(A5|0)<(N1|0),t5)K6=A5;else{m=1;break}return C=q6,m|0}function BC(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0;if(A5=C,Q=e[t>>2]|0,B=o+-1|0,$0=(t+(B*56|0)|0)+4|0,Q0=e[$0>>2]|0,N0=(o|0)>0,N0)for(Z0=g+1108|0,h1=+s[Z0>>2],i2=0,e2=0,f2=0,S2=0,U2=0,V2=0;;)if(B1=(t+(e2*56|0)|0)+52|0,b1=e[B1>>2]|0,n2=(t+(e2*56|0)|0)+28|0,S=e[n2>>2]|0,T=S+b1|0,J=+(T|0),o0=J*h1,q=S+1|0,d0=+(q|0),t0=o0/d0,j=t0,u0=j+1,c0=(t+(e2*56|0)|0)+32|0,l0=e[c0>>2]|0,Z=+(l0|0),I0=(t+(e2*56|0)|0)+8|0,g0=e[I0>>2]|0,f0=+(g0|0),n0=f0*u0,h0=Z+S2,p0=h0+n0,C0=(t+(e2*56|0)|0)+36|0,S0=e[C0>>2]|0,b0=+(S0|0),E0=(t+(e2*56|0)|0)+12|0,y0=e[E0>>2]|0,w0=+(y0|0),B0=w0*u0,_0=b0+V2,K0=_0+B0,M0=(t+(e2*56|0)|0)+40|0,v0=e[M0>>2]|0,T0=+(v0|0),U0=(t+(e2*56|0)|0)+16|0,O0=e[U0>>2]|0,k0=+(O0|0),V0=k0*u0,F0=T0+f2,L0=F0+V0,G0=(t+(e2*56|0)|0)+48|0,z0=e[G0>>2]|0,J0=+(z0|0),q0=(t+(e2*56|0)|0)+24|0,P0=e[q0>>2]|0,H0=+(P0|0),o1=H0*u0,Y0=J0+U2,i1=Y0+o1,x0=+(b1|0),n1=+(S|0),d1=u0*n1,g1=x0+i2,m1=g1+d1,u1=e2+1|0,A2=(u1|0)==(o|0),A2){$2=m1,o2=L0,D2=p0,L2=i1,P2=K0;break}else i2=m1,e2=u1,f2=L0,S2=p0,U2=i1,V2=K0;else $2=0,o2=0,D2=0,L2=0,P2=0;return A1=e[a>>2]|0,c1=(A1|0)>-1,c1?(s1=+(Q|0),$1=D2+s1,j0=+(A1|0),E1=j0+P2,I1=o5(Q,Q)|0,Q1=+(I1|0),p1=o2+Q1,w1=o5(A1,Q)|0,v1=+(w1|0),k1=v1+L2,L1=$2+1,l2=L1,t2=p1,Q2=$1,m2=k1,G2=E1):(l2=$2,t2=o2,Q2=D2,m2=L2,G2=P2),M1=e[$>>2]|0,S1=(M1|0)>-1,S1?(D1=+(Q0|0),R1=Q2+D1,F1=+(M1|0),U1=F1+G2,P1=o5(Q0,Q0)|0,Z1=+(P1|0),G1=t2+Z1,x1=o5(M1,Q0)|0,z1=+(x1|0),q1=z1+m2,H1=l2+1,r2=H1,k2=G1,N2=R1,W2=q1,q2=U1):(r2=l2,k2=t2,N2=Q2,W2=m2,q2=G2),Y1=k2*r2,V1=N2*N2,X1=Y1-V1,j1=X1>0,j1?(O1=q2*k2,c2=N2*W2,W1=O1-c2,h2=W1/X1,s2=W2*r2,E2=N2*q2,a2=s2-E2,K1=a2/X1,d2=+(Q|0),b=K1*d2,v=b+h2,w=+z7(v),D=~~w,e[a>>2]=D,y=+(Q0|0),x=K1*y,M=x+h2,L=+z7(M),R=~~L,e[$>>2]=R,F=e[a>>2]|0,N=(F|0)>1023,N?(e[a>>2]=1023,m=e[$>>2]|0,G=m,r0=1023):(G=R,r0=F),V=(G|0)>1023,V?(e[$>>2]=1023,I=e[a>>2]|0,X=I,s0=1023):(X=r0,s0=G),K=(X|0)<0,K?(e[a>>2]=0,E=e[$>>2]|0,a0=E):a0=s0,W=(a0|0)<0,W?(e[$>>2]=0,h=0,h|0):(h=0,h|0)):(e[a>>2]=0,e[$>>2]=0,h=1,h|0)}function ib(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0;if(x0=C,m=t+836|0,I=t+840|0,M=e[I>>2]|0,W=e[t>>2]|0,O2(o,W,5),$0=e[t>>2]|0,Q0=($0|0)>0,Q0){for(N0=t+4|0,z0=0,Y0=-1;;)if(B=N0+(z0<<2)|0,S=e[B>>2]|0,O2(o,S,4),b=e[B>>2]|0,v=(Y0|0)<(b|0),a=v?b:Y0,w=z0+1|0,D=e[t>>2]|0,y=(w|0)<(D|0),y)z0=w,Y0=a;else{$=a;break}if(O0=($|0)>-1,O0)for(k0=t+128|0,V0=t+192|0,E=t+256|0,Q=t+320|0,J0=0;;){if(x=k0+(J0<<2)|0,L=e[x>>2]|0,R=L+-1|0,O2(o,R,3),F=V0+(J0<<2)|0,T=e[F>>2]|0,O2(o,T,2),N=e[F>>2]|0,G=(N|0)==0,G?(Z0=0,i1=8):(V=E+(J0<<2)|0,X=e[V>>2]|0,O2(o,X,8),g=e[F>>2]|0,K=(g|0)==31,K||(Z0=0,i1=8)),(i1|0)==8)for(;i1=0,a0=(Q+(J0<<5)|0)+(Z0<<2)|0,r0=e[a0>>2]|0,s0=r0+1|0,O2(o,s0,8),J=Z0+1|0,o0=e[F>>2]|0,q=1<>2]|0,c0=u0+-1|0,O2(o,c0,2),l0=M+-1|0,Z=q8(l0)|0,O2(o,Z,4),I0=q8(l0)|0,g0=e[t>>2]|0,f0=(g0|0)>0,!!f0)for(n0=t+4|0,h0=t+128|0,U0=g0,F0=0,q0=0,P0=0;;){if(p0=n0+(q0<<2)|0,C0=e[p0>>2]|0,S0=h0+(C0<<2)|0,b0=e[S0>>2]|0,E0=b0+F0|0,y0=(P0|0)<(E0|0),y0){for(o1=P0;w0=o1+2|0,B0=m+(w0<<2)|0,_0=e[B0>>2]|0,O2(o,_0,I0),K0=o1+1|0,L0=(K0|0)==(E0|0),!L0;)o1=K0;h=e[t>>2]|0,T0=h,H0=E0}else T0=U0,H0=P0;if(M0=q0+1|0,v0=(M0|0)<(T0|0),v0)U0=T0,F0=E0,q0=M0,P0=H0;else break}}function rb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0;W1=C,C=C+272|0,O1=W1,D=t+28|0,y=e[D>>2]|0,K=ce(1,1120)|0,u0=n4(o,5)|0,e[K>>2]=u0,C0=(u0|0)>0;e:do if(C0){for(v0=K+4|0,Z1=0,n2=-1;;){if(L=n4(o,4)|0,R=v0+(Z1<<2)|0,e[R>>2]=L,F=(L|0)<0,F)break e;if(T=(n2|0)<(L|0),g=T?L:n2,N=Z1+1|0,G=e[K>>2]|0,V=(N|0)<(G|0),V)Z1=N,n2=g;else{h=g;break}}if(J0=(h|0)>-1,J0)for(g1=K+128|0,Q1=K+192|0,F1=K+256|0,x=y+24|0,M=K+320|0,G1=0;;){if(X=n4(o,3)|0,a0=X+1|0,W=g1+(G1<<2)|0,e[W>>2]=a0,r0=n4(o,2)|0,s0=Q1+(G1<<2)|0,e[s0>>2]=r0,J=(r0|0)<0,J||(o0=(r0|0)==0,o0?(m=F1+(G1<<2)|0,I=e[m>>2]|0,t0=I):(q=n4(o,8)|0,d0=F1+(G1<<2)|0,e[d0>>2]=q,t0=q),j=(t0|0)<0,j)||(c0=e[x>>2]|0,$0=(t0|0)<(c0|0),!$0))break e;if(l0=e[s0>>2]|0,Z=(l0|0)==31,!Z)for(H1=0;;){if(h0=n4(o,8)|0,p0=h0+-1|0,S0=(M+(G1<<5)|0)+(H1<<2)|0,e[S0>>2]=p0,Q0=(h0|0)<0,Q0||(b0=e[x>>2]|0,E0=(h0|0)>(b0|0),f0=H1+1|0,E0))break e;if(I0=e[s0>>2]|0,g0=1<>2]=_0,M0=n4(o,4)|0,T0=(M0|0)<0,!T0)){if(N0=e[K>>2]|0,U0=(N0|0)>0,U0)for(O0=K+4|0,k0=K+128|0,V0=K+836|0,F0=1<>2]|0,z0=k0+(G0<<2)|0,q0=e[z0>>2]|0,Z0=q0+P1|0,P0=(Z0|0)>63,P0)break e;if(H0=(Y1|0)<(Z0|0),H0){for(X1=Y1;;){if(o1=n4(o,M0)|0,Y0=X1+2|0,i1=V0+(Y0<<2)|0,e[i1>>2]=o1,x0=(o1|0)>-1,n1=(o1|0)<(F0|0),j1=x0&n1,!j1)break e;if(d1=X1+1|0,m1=(d1|0)<(Z0|0),m1)X1=d1;else{$=d1;break}}B=e[K>>2]|0,A1=B,V1=$}else A1=U1,V1=Y1;if(h1=x1+1|0,u1=(h1|0)<(A1|0),u1)U1=A1,P1=Z0,x1=h1,Y1=V1;else{E=V0,Q=F0,b1=Z0;break}}else v=K+836|0,w=1<>2]=0,c1=K+840|0,e[c1>>2]=Q,s1=b1+2|0,$1=(b1|0)>-2,$1)for(z1=0;j0=E+(z1<<2)|0,E1=O1+(z1<<2)|0,e[E1>>2]=j0,I1=z1+1|0,p1=(I1|0)<(s1|0),p1;)z1=I1;Pu(O1,s1,4,8),B1=(s1|0)>1;t:do if(B1){for(S=e[O1>>2]|0,b=e[S>>2]|0,S1=b,q1=1;k1=O1+(q1<<2)|0,L1=e[k1>>2]|0,M1=e[L1>>2]|0,D1=(S1|0)==(M1|0),w1=q1+1|0,!D1;)if(v1=(w1|0)<(s1|0),v1)S1=M1,q1=w1;else break t;if(R1=(K|0)==0,R1)a=0;else break e;return C=W1,a|0}while(!1);return a=K,C=W1,a|0}while(!1);return p2(K),a=0,C=W1,a|0}function nb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0;if(R1=C,C=C+272|0,S1=R1,$=ce(1,1312)|0,g=$+1296|0,e[g>>2]=o,D=o+836|0,X=o+840|0,j=e[X>>2]|0,p0=$+1288|0,e[p0>>2]=j,M0=e[o>>2]|0,z0=(M0|0)>0,z0){for(Y0=o+4|0,h=o+128|0,h1=0,k1=0;;)if(m=Y0+(h1<<2)|0,I=e[m>>2]|0,E=h+(I<<2)|0,Q=e[E>>2]|0,B=Q+k1|0,S=h1+1|0,b=(S|0)<(M0|0),b)h1=S,k1=B;else{a=B;break}v=a+2|0,w=$+1284|0,e[w>>2]=v,y=(a|0)>-2,y?(F=v,v1=a,D1=7):(Pu(S1,v,4,8),w1=a)}else o1=$+1284|0,e[o1>>2]=2,F=2,v1=0,D1=7;if((D1|0)==7){for(u1=0;x=D+(u1<<2)|0,M=S1+(u1<<2)|0,e[M>>2]=x,L=u1+1|0,R=(L|0)<(F|0),R;)u1=L;for(Pu(S1,F,4,8),T=D,N=$+260|0,A1=0;K=S1+(A1<<2)|0,a0=e[K>>2]|0,W=a0,r0=W-T|0,s0=r0>>2,J=N+(A1<<2)|0,e[J>>2]=s0,o0=A1+1|0,q=(o0|0)<(F|0),q;)A1=o0;for(G=$+260|0,V=$+520|0,c1=0;t0=G+(c1<<2)|0,u0=e[t0>>2]|0,c0=V+(u0<<2)|0,e[c0>>2]=c1,$0=c1+1|0,l0=($0|0)<(F|0),l0;)c1=$0;for(d0=$+260|0,s1=0;;)if(Z=d0+(s1<<2)|0,I0=e[Z>>2]|0,g0=D+(I0<<2)|0,f0=e[g0>>2]|0,n0=$+(s1<<2)|0,e[n0>>2]=f0,h0=s1+1|0,C0=(h0|0)<(F|0),C0)s1=h0;else{w1=v1;break}}if(S0=o+832|0,Q0=e[S0>>2]|0,(Q0|0)==4?(w0=$+1292|0,e[w0>>2]=64):(Q0|0)==2?(E0=$+1292|0,e[E0>>2]=128):(Q0|0)==1?(b0=$+1292|0,e[b0>>2]=256):(Q0|0)==3&&(y0=$+1292|0,e[y0>>2]=86),B0=(w1|0)>0,!B0)return C=R1,$|0;for(_0=$+1032|0,K0=$+780|0,$1=0;;){for(v0=$1+2|0,T0=D+(v0<<2)|0,N0=e[T0>>2]|0,U0=e[p0>>2]|0,x0=1,g1=U0,j0=0,E1=0,p1=0;;)if(O0=D+(j0<<2)|0,k0=e[O0>>2]|0,V0=(k0|0)>(p1|0),F0=(k0|0)<(N0|0),L1=V0&F0,I1=L1?j0:E1,B1=L1?k0:p1,L0=(k0|0)<(g1|0),G0=(k0|0)>(N0|0),M1=L0&G0,n1=M1?j0:x0,m1=M1?k0:g1,J0=j0+1|0,q0=(J0|0)<(v0|0),q0)x0=n1,g1=m1,j0=J0,E1=I1,p1=B1;else{d1=n1,Q1=I1;break}if(Z0=_0+($1<<2)|0,e[Z0>>2]=Q1,P0=K0+($1<<2)|0,e[P0>>2]=d1,H0=$1+1|0,i1=(H0|0)==(w1|0),i1)break;$1=H0}return C=R1,$|0}function ob(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,o||p2(t)}function sb(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,o||p2(t)}function ab(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0;if(S2=C,h=o+1296|0,m=e[h>>2]|0,l0=t+64|0,b0=e[l0>>2]|0,U0=b0+4|0,P0=e[U0>>2]|0,u1=P0+28|0,w1=e[u1>>2]|0,P1=w1+2848|0,j1=e[P1>>2]|0,I=t+4|0,M=n4(I,1)|0,W=(M|0)==1,!W)return a=0,a|0;q=o+1284|0,d0=e[q>>2]|0,t0=d0<<2,j=z8(t,t0)|0,u0=o+1292|0,c0=e[u0>>2]|0,$0=c0+-1|0,Z=q8($0)|0,I0=n4(I,Z)|0,e[j>>2]=I0,g0=e[u0>>2]|0,f0=g0+-1|0,n0=q8(f0)|0,h0=n4(I,n0)|0,p0=j+4|0,e[p0>>2]=h0,C0=e[m>>2]|0,S0=(C0|0)>0;e:do if(S0){r2=0,o2=2;t:for(;;){if(B0=(m+4|0)+(r2<<2)|0,_0=e[B0>>2]|0,K0=(m+128|0)+(_0<<2)|0,M0=e[K0>>2]|0,v0=(m+192|0)+(_0<<2)|0,T0=e[v0>>2]|0,N0=1<>2]|0,F0=j1+(V0*56|0)|0,L0=sE(F0,I)|0,G0=(L0|0)==-1,G0){a=0,D2=25;break}else i2=L0;if(z0=(M0|0)>0,z0)for(J0=N0+-1|0,l2=i2,f2=0;;){if(q0=l2&J0,Z0=((m+320|0)+(_0<<5)|0)+(q0<<2)|0,H0=e[Z0>>2]|0,o1=l2>>T0,Y0=(H0|0)>-1,Y0){if(i1=j1+(H0*56|0)|0,x0=sE(i1,I)|0,n1=f2+o2|0,d1=j+(n1<<2)|0,e[d1>>2]=x0,g1=(x0|0)==-1,g1){a=0,D2=25;break t}}else m1=f2+o2|0,h1=j+(m1<<2)|0,e[h1>>2]=0;if(A1=f2+1|0,c1=(A1|0)<(M0|0),c1)l2=o1,f2=A1;else break}if(s1=M0+o2|0,$1=r2+1|0,j0=e[m>>2]|0,E1=($1|0)<(j0|0),E1)r2=$1,o2=s1;else break e}if((D2|0)==25)return a|0}while(!1);if(Q0=e[q>>2]|0,E0=(Q0|0)>2,!E0)return a=j,a|0;for(y0=o+1032|0,w0=o+780|0,A2=2;;){if(I1=A2+-2|0,Q1=y0+(I1<<2)|0,p1=e[Q1>>2]|0,B1=(m+836|0)+(p1<<2)|0,v1=e[B1>>2]|0,k1=w0+(I1<<2)|0,L1=e[k1>>2]|0,M1=(m+836|0)+(L1<<2)|0,S1=e[M1>>2]|0,D1=j+(p1<<2)|0,R1=e[D1>>2]|0,F1=j+(L1<<2)|0,U1=e[F1>>2]|0,b1=(m+836|0)+(A2<<2)|0,Z1=e[b1>>2]|0,G1=R1&32767,x1=U1&32767,z1=x1-G1|0,q1=S1-v1|0,e2=(z1|0)>-1,t2=0-z1|0,H1=e2?z1:t2,Y1=Z1-v1|0,V1=o5(H1,Y1)|0,X1=(V1|0)/(q1|0)&-1,n2=(z1|0)<0,O1=0-X1|0,g=n2?O1:X1,$=g+G1|0,c2=e[u0>>2]|0,W1=c2-$|0,h2=j+(A2<<2)|0,s2=e[h2>>2]|0,E2=(s2|0)==0,E2)r0=$|32768,e[h2>>2]=r0;else{a2=(W1|0)<($|0),K1=a2?W1:$,d2=K1<<1,$2=(s2|0)<(d2|0);do if($2)if(b=s2&1,v=(b|0)==0,v){x=s2>>1,k2=x;break}else{w=s2+1|0,D=w>>1,y=0-D|0,k2=y;break}else if(E=(W1|0)>($|0),E){Q=s2-$|0,k2=Q;break}else{B=s2-W1|0,S=B^-1,k2=S;break}while(!1);L=k2+$|0,R=L&32767,e[h2>>2]=R,F=e[Q1>>2]|0,T=j+(F<<2)|0,N=e[T>>2]|0,G=N&32767,e[T>>2]=G,V=e[k1>>2]|0,X=j+(V<<2)|0,K=e[X>>2]|0,a0=K&32767,e[X>>2]=a0}if(s0=A2+1|0,J=e[q>>2]|0,o0=(s0|0)<(J|0),o0)A2=s0;else{a=j;break}}return a|0}function Ab(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0;if(b1=C,m=o+1296|0,I=e[m>>2]|0,M=t+64|0,W=e[M>>2]|0,$0=W+4|0,Q0=e[$0>>2]|0,N0=Q0+28|0,Z0=e[N0>>2]|0,g1=t+28|0,m1=e[g1>>2]|0,E=Z0+(m1<<2)|0,Q=e[E>>2]|0,B=(Q|0)/2&-1,S=(a|0)==0,S)return d1=B<<2,u4($|0,0,d1|0)|0,g=0,g|0;if(b=e[a>>2]|0,v=I+832|0,w=e[v>>2]|0,D=o5(w,b)|0,y=(D|0)<0,x=(D|0)>255,L=x?255:D,R=y?0:L,F=o+1284|0,T=e[F>>2]|0,N=(T|0)>1,N)for(G=o+260|0,$1=0,Q1=1,B1=0,k1=R;;){if(a0=G+(Q1<<2)|0,r0=e[a0>>2]|0,s0=a+(r0<<2)|0,J=e[s0>>2]|0,o0=J&32767,q=(o0|0)==(J|0),q)if(d0=(I+836|0)+(r0<<2)|0,t0=e[d0>>2]|0,j=o5(w,J)|0,u0=(j|0)<0,c0=(j|0)>255,l0=c0?255:j,Z=u0?0:l0,I0=Z-k1|0,g0=t0-B1|0,E1=(I0|0)>-1,M1=0-I0|0,f0=E1?I0:M1,n0=(I0|0)/(g0|0)&-1,h0=I0>>31,p0=h0|1,C0=o5(n0,g0)|0,I1=(C0|0)>-1,S1=0-C0|0,S0=I1?C0:S1,b0=f0-S0|0,E0=(B|0)>(t0|0),D1=E0?t0:B,y0=(D1|0)>(B1|0),y0&&(w0=1768+(k1<<2)|0,B0=+s[w0>>2],_0=$+(B1<<2)|0,K0=+s[_0>>2],M0=K0*B0,s[_0>>2]=M0),v0=B1+1|0,T0=(v0|0)<(D1|0),T0)for(z0=v0,h1=0,R1=k1;;)if(U0=h1+b0|0,O0=(U0|0)<(g0|0),k0=O0?0:p0,V0=O0?0:g0,u1=U0-V0|0,h=R1+n0|0,F1=h+k0|0,F0=1768+(F1<<2)|0,L0=+s[F0>>2],G0=$+(z0<<2)|0,J0=+s[G0>>2],q0=J0*L0,s[G0>>2]=q0,P0=z0+1|0,c1=(P0|0)==(D1|0),c1){j0=t0,w1=t0,L1=Z;break}else z0=P0,h1=u1,R1=F1;else j0=t0,w1=t0,L1=Z;else j0=$1,w1=B1,L1=k1;if(H0=Q1+1|0,o1=(H0|0)<(T|0),o1)$1=j0,Q1=H0,B1=w1,k1=L1;else{s1=j0,v1=L1;break}}else s1=0,v1=R;if(V=(s1|0)<(B|0),!V)return g=1,g|0;for(X=1768+(v1<<2)|0,K=+s[X>>2],p1=s1;;)if(Y0=$+(p1<<2)|0,i1=+s[Y0>>2],x0=i1*K,s[Y0>>2]=x0,n1=p1+1|0,A1=(n1|0)==(B|0),A1){g=1;break}else p1=n1;return g|0}function $b(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0;return E=C,a=e[t>>2]|0,$=e[a>>2]|0,g=e[o>>2]|0,h=e[g>>2]|0,m=$-h|0,m|0}function lb(t){t=t|0;var o=0,a=0;a=C,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0}function cb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0;u0=C,g=nl(o|0)|0,h=nl(a|0)|0,y=g+2|0,K=y+h|0,$=K,W=C,C=C+((1*$|0)+15&-16)|0,kC(W|0,o|0)|0,t0=nl(W|0)|0,d0=W+t0|0,f[d0>>0]=61,f[d0+1>>0]=0,GQ(W|0,a|0)|0,r0=e[t>>2]|0,s0=t+8|0,J=e[s0>>2]|0,o0=J<<2,q=o0+8|0,m=K7(r0,q)|0,e[t>>2]=m,I=t+4|0,E=e[I>>2]|0,Q=e[s0>>2]|0,B=Q<<2,S=B+8|0,b=K7(E,S)|0,e[I>>2]=b,v=nl(W|0)|0,w=e[s0>>2]|0,D=b+(w<<2)|0,e[D>>2]=v,x=v+1|0,M=R9(x)|0,L=e[t>>2]|0,R=L+(w<<2)|0,e[R>>2]=M,F=e[t>>2]|0,T=F+(w<<2)|0,N=e[T>>2]|0,kC(N|0,W|0)|0,G=e[s0>>2]|0,V=G+1|0,e[s0>>2]=V,X=e[t>>2]|0,a0=X+(V<<2)|0,e[a0>>2]=0,C=u0}function gb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0;if(K=C,g=(t|0)==0,!g){if(h=e[t>>2]|0,y=(h|0)==0,!y){if(M=t+8|0,L=e[M>>2]|0,R=(L|0)>0,R){for(x=L,T=h,V=0;F=T+(V<<2)|0,N=e[F>>2]|0,G=(N|0)==0,G?E=x:(p2(N),a=e[M>>2]|0,E=a),m=V+1|0,I=(m|0)<(E|0),!!I;)o=e[t>>2]|0,x=E,T=o,V=m;$=e[t>>2]|0,Q=$}else Q=h;p2(Q)}B=t+4|0,S=e[B>>2]|0,b=(S|0)==0,b||p2(S),v=t+12|0,w=e[v>>2]|0,D=(w|0)==0,D||p2(w),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0}}function ub(t){t=t|0;var o=0,a=0,$=0,g=0;g=C,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,o=ce(1,3664)|0,a=t+28|0,e[a>>2]=o}function QC(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0;if(w1=C,h=t+28|0,m=e[h>>2]|0,x=(m|0)==0,x){e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,e[t+28>>2]=0;return}if(a0=m+8|0,c0=e[a0>>2]|0,S0=(c0|0)>0,S0)for(h1=c0,$1=0;s1=(m+32|0)+($1<<2)|0,I=e[s1>>2]|0,E=(I|0)==0,E?S=h1:(p2(I),o=e[a0>>2]|0,S=o),Q=$1+1|0,B=(Q|0)<(S|0),B;)h1=S,$1=Q;if(T0=m+12|0,q0=e[T0>>2]|0,m1=(q0|0)>0,m1)for(u1=q0,j0=0;D=(m+544|0)+(j0<<2)|0,y=e[D>>2]|0,M=(y|0)==0,M?K=u1:(L=(m+288|0)+(j0<<2)|0,R=e[L>>2]|0,F=25664+(R<<2)|0,T=e[F>>2]|0,N=T+8|0,G=e[N>>2]|0,ss[G&7](y),a=e[T0>>2]|0,K=a),V=j0+1|0,X=(V|0)<(K|0),X;)u1=K,j0=V;if(b=m+16|0,v=e[b>>2]|0,w=(v|0)>0,w)for(A1=v,E1=0;J=(m+1056|0)+(E1<<2)|0,o0=e[J>>2]|0,q=(o0|0)==0,q?g0=A1:(d0=(m+800|0)+(E1<<2)|0,t0=e[d0>>2]|0,j=25640+(t0<<2)|0,u0=e[j>>2]|0,$0=u0+12|0,l0=e[$0>>2]|0,ss[l0&7](o0),$=e[b>>2]|0,g0=$),Z=E1+1|0,I0=(Z|0)<(g0|0),I0;)A1=g0,E1=Z;if(W=m+20|0,r0=e[W>>2]|0,s0=(r0|0)>0,s0)for(c1=r0,I1=0;C0=(m+1568|0)+(I1<<2)|0,Q0=e[C0>>2]|0,b0=(Q0|0)==0,b0?N0=c1:(E0=(m+1312|0)+(I1<<2)|0,y0=e[E0>>2]|0,w0=25648+(y0<<2)|0,B0=e[w0>>2]|0,_0=B0+12|0,K0=e[_0>>2]|0,ss[K0&7](Q0),g=e[W>>2]|0,N0=g),M0=I1+1|0,v0=(M0|0)<(N0|0),v0;)c1=N0,I1=M0;if(f0=m+24|0,n0=e[f0>>2]|0,h0=(n0|0)>0,p0=m+2848|0,h0)for(Q1=0;U0=(m+1824|0)+(Q1<<2)|0,O0=e[U0>>2]|0,k0=(O0|0)==0,k0||vC(O0),V0=e[p0>>2]|0,F0=(V0|0)==0,F0||(L0=V0+(Q1*56|0)|0,Yb(L0)),G0=Q1+1|0,z0=e[f0>>2]|0,J0=(G0|0)<(z0|0),J0;)Q1=G0;if(Z0=e[p0>>2]|0,P0=(Z0|0)==0,P0||p2(Z0),H0=m+28|0,o1=e[H0>>2]|0,Y0=(o1|0)>0,Y0)for(p1=0;i1=(m+2852|0)+(p1<<2)|0,x0=e[i1>>2]|0,yb(x0),n1=p1+1|0,d1=e[H0>>2]|0,g1=(n1|0)<(d1|0),g1;)p1=n1;p2(m),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,e[t+28>>2]=0}function db(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0;if(X2=C,C=C+32|0,T1=X2,E=t+4|0,Q=e[E>>2]|0,c1=t+104|0,k1=e[c1>>2]|0,G1=(k1|0)==0,G1)return e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,e[a+12>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,e[a+24>>2]=0,e[a+28>>2]=0,e[$>>2]=0,e[$+4>>2]=0,e[$+8>>2]=0,e[$+12>>2]=0,e[$+16>>2]=0,e[$+20>>2]=0,e[$+24>>2]=0,e[$+28>>2]=0,e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,e[g+12>>2]=0,e[g+16>>2]=0,e[g+20>>2]=0,e[g+24>>2]=0,e[g+28>>2]=0,h=-129,C=X2,h|0;if(c2=Q+4|0,r2=e[c2>>2]|0,L2=(r2|0)<1,L2)D5=-129,l5=27;else if(mC(T1),N1=Q+28|0,B5=e[N1>>2]|0,B=(B5|0)==0,B)D5=-130,l5=27;else if(F=e[B5>>2]|0,J=(F|0)<64,J)D5=-130,l5=27;else if(I0=B5+4|0,y0=e[I0>>2]|0,k0=(y0|0)<(F|0),k0)D5=-130,l5=27;else{O2(T1,1,8),O2(T1,118,8),O2(T1,111,8),O2(T1,114,8),O2(T1,98,8),O2(T1,105,8),O2(T1,115,8),O2(T1,0,32),o1=e[c2>>2]|0,O2(T1,o1,8),h1=Q+8|0,u1=e[h1>>2]|0,O2(T1,u1,32),A1=Q+12|0,s1=e[A1>>2]|0,O2(T1,s1,32),$1=Q+16|0,j0=e[$1>>2]|0,O2(T1,j0,32),E1=Q+20|0,I1=e[E1>>2]|0,O2(T1,I1,32),Q1=e[B5>>2]|0,p1=Q1+-1|0,B1=q8(p1)|0,O2(T1,B1,4),w1=e[I0>>2]|0,v1=w1+-1|0,L1=q8(v1)|0,O2(T1,L1,4),O2(T1,1,1),M1=k1+64|0,S1=e[M1>>2]|0,D1=(S1|0)==0,D1||p2(S1),R1=D8(T1)|0,F1=R9(R1)|0,e[M1>>2]=F1,U1=T1+8|0,b1=e[U1>>2]|0,P1=D8(T1)|0,ge(F1|0,b1|0,P1|0)|0,Z1=e[M1>>2]|0,e[a>>2]=Z1,x1=D8(T1)|0,z1=a+4|0,e[z1>>2]=x1,q1=a+8|0,e[q1>>2]=1,H1=a+12|0,e[H1>>2]=0,e[H1+4>>2]=0,e[H1+8>>2]=0,e[H1+12>>2]=0,e[H1+16>>2]=0,Ii(T1),hb(T1,o),Y1=k1+68|0,V1=e[Y1>>2]|0,X1=(V1|0)==0,X1||p2(V1),n2=D8(T1)|0,j1=R9(n2)|0,e[Y1>>2]=j1,O1=e[U1>>2]|0,W1=D8(T1)|0,ge(j1|0,O1|0,W1|0)|0,h2=e[Y1>>2]|0,e[$>>2]=h2,s2=D8(T1)|0,E2=$+4|0,e[E2>>2]=s2,a2=$+8|0,K1=$+24|0,e[a2>>2]=0,e[a2+4>>2]=0,e[a2+8>>2]=0,e[a2+12>>2]=0,d2=K1,$2=d2,e[$2>>2]=1,i2=d2+4|0,l2=i2,e[l2>>2]=0,Ii(T1),A2=e[N1>>2]|0,e2=(A2|0)==0;e:do if(!e2){if(O2(T1,5,8),O2(T1,118,8),O2(T1,111,8),O2(T1,114,8),O2(T1,98,8),O2(T1,105,8),O2(T1,115,8),o2=A2+24|0,f2=e[o2>>2]|0,t2=f2+-1|0,O2(T1,t2,8),k2=e[o2>>2]|0,D2=(k2|0)>0,D2)for(Y2=0;;){if(U2=(A2+1824|0)+(Y2<<2)|0,m2=e[U2>>2]|0,W2=YS(m2,T1)|0,P2=(W2|0)==0,Q2=Y2+1|0,!P2)break e;if(S2=e[o2>>2]|0,N2=(Q2|0)<(S2|0),N2)Y2=Q2;else break}if(O2(T1,0,6),O2(T1,0,16),V2=A2+16|0,G2=e[V2>>2]|0,q2=G2+-1|0,O2(T1,q2,6),Z2=e[V2>>2]|0,A5=(Z2|0)>0,A5)for(p5=0;;){if(H2=(A2+800|0)+(p5<<2)|0,t5=e[H2>>2]|0,O2(T1,t5,16),T5=e[H2>>2]|0,i5=25640+(T5<<2)|0,x5=e[i5>>2]|0,j2=e[x5>>2]|0,I5=(j2|0)==0,I5)break e;if(b5=(A2+1056|0)+(p5<<2)|0,Y5=e[b5>>2]|0,_C[j2&3](Y5,T1),g5=p5+1|0,b2=e[V2>>2]|0,s5=(g5|0)<(b2|0),s5)p5=g5;else break}if(R2=A2+20|0,M2=e[R2>>2]|0,y2=M2+-1|0,O2(T1,y2,6),Q5=e[R2>>2]|0,N5=(Q5|0)>0,N5)for($5=0;m5=(A2+1312|0)+($5<<2)|0,L5=e[m5>>2]|0,O2(T1,L5,16),q5=e[m5>>2]|0,M5=25648+(q5<<2)|0,S=e[M5>>2]|0,b=e[S>>2]|0,v=(A2+1568|0)+($5<<2)|0,w=e[v>>2]|0,_C[b&3](w,T1),D=$5+1|0,y=e[R2>>2]|0,x=(D|0)<(y|0),x;)$5=D;if(M=A2+12|0,L=e[M>>2]|0,R=L+-1|0,O2(T1,R,6),T=e[M>>2]|0,N=(T|0)>0,N)for(u5=0;G=(A2+288|0)+(u5<<2)|0,V=e[G>>2]|0,O2(T1,V,16),X=e[G>>2]|0,K=25664+(X<<2)|0,a0=e[K>>2]|0,W=e[a0>>2]|0,r0=(A2+544|0)+(u5<<2)|0,s0=e[r0>>2]|0,YQ[W&1](Q,s0,T1),o0=u5+1|0,q=e[M>>2]|0,d0=(o0|0)<(q|0),d0;)u5=o0;if(t0=A2+8|0,j=e[t0>>2]|0,u0=j+-1|0,O2(T1,u0,6),c0=e[t0>>2]|0,$0=(c0|0)>0,$0)for(y5=0;l0=(A2+32|0)+(y5<<2)|0,Z=e[l0>>2]|0,g0=e[Z>>2]|0,O2(T1,g0,1),f0=e[l0>>2]|0,n0=f0+4|0,h0=e[n0>>2]|0,O2(T1,h0,16),p0=e[l0>>2]|0,C0=p0+8|0,S0=e[C0>>2]|0,O2(T1,S0,16),Q0=e[l0>>2]|0,b0=Q0+12|0,E0=e[b0>>2]|0,O2(T1,E0,8),w0=y5+1|0,B0=e[t0>>2]|0,_0=(w0|0)<(B0|0),_0;)y5=w0;return O2(T1,1,1),K0=k1+72|0,M0=e[K0>>2]|0,v0=(M0|0)==0,v0||p2(M0),T0=D8(T1)|0,N0=R9(T0)|0,e[K0>>2]=N0,U0=e[U1>>2]|0,O0=D8(T1)|0,ge(N0|0,U0|0,O0|0)|0,V0=e[K0>>2]|0,e[g>>2]=V0,F0=D8(T1)|0,L0=g+4|0,e[L0>>2]=F0,G0=g+8|0,z0=g+24|0,e[G0>>2]=0,e[G0+4>>2]=0,e[G0+8>>2]=0,e[G0+12>>2]=0,J0=z0,q0=J0,e[q0>>2]=2,Z0=J0+4|0,P0=Z0,e[P0>>2]=0,pC(T1),h=0,C=X2,h|0}while(!1);e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,e[a+12>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,e[a+24>>2]=0,e[a+28>>2]=0,e[$>>2]=0,e[$+4>>2]=0,e[$+8>>2]=0,e[$+12>>2]=0,e[$+16>>2]=0,e[$+20>>2]=0,e[$+24>>2]=0,e[$+28>>2]=0,e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,e[g+12>>2]=0,e[g+16>>2]=0,e[g+20>>2]=0,e[g+24>>2]=0,e[g+28>>2]=0,I=M1,d5=-130}return(l5|0)==27&&(e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,e[a+12>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,e[a+24>>2]=0,e[a+28>>2]=0,e[$>>2]=0,e[$+4>>2]=0,e[$+8>>2]=0,e[$+12>>2]=0,e[$+16>>2]=0,e[$+20>>2]=0,e[$+24>>2]=0,e[$+28>>2]=0,e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,e[g+12>>2]=0,e[g+16>>2]=0,e[g+20>>2]=0,e[g+24>>2]=0,e[g+28>>2]=0,m=k1+64|0,I=m,d5=D5),pC(T1),H0=e[I>>2]|0,Y0=(H0|0)==0,Y0||p2(H0),i1=k1+68|0,x0=e[i1>>2]|0,n1=(x0|0)==0,n1||p2(x0),d1=k1+72|0,g1=e[d1>>2]|0,m1=(g1|0)==0,m1||p2(g1),e[I>>2]=0,e[i1>>2]=0,e[d1>>2]=0,h=d5,C=X2,h|0}function hb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0;for($0=C,O2(t,3,8),O2(t,118,8),O2(t,111,8),O2(t,114,8),O2(t,98,8),O2(t,105,8),O2(t,115,8),O2(t,44,32),a=1200,g=44;m=g+-1|0,I=a+1|0,M=f[a>>0]|0,W=M<<24>>24,O2(t,W,8),J=(m|0)==0,!J;)a=I,g=m;if(o0=o+8|0,q=e[o0>>2]|0,O2(t,q,32),d0=e[o0>>2]|0,t0=(d0|0)>0,!t0){O2(t,1,1);return}for(j=o+4|0,u0=0;;){if(E=e[o>>2]|0,Q=E+(u0<<2)|0,B=e[Q>>2]|0,S=(B|0)==0,S)O2(t,0,32);else if(b=e[j>>2]|0,v=b+(u0<<2)|0,w=e[v>>2]|0,O2(t,w,32),D=e[j>>2]|0,y=D+(u0<<2)|0,x=e[y>>2]|0,L=(x|0)==0,!L)for(R=e[o>>2]|0,F=R+(u0<<2)|0,T=e[F>>2]|0,$=T,h=x;N=h+-1|0,G=$+1|0,V=f[$>>0]|0,X=V<<24>>24,O2(t,X,8),K=(N|0)==0,!K;)$=G,h=N;if(a0=u0+1|0,r0=e[o0>>2]|0,s0=(a0|0)<(r0|0),s0)u0=a0;else break}O2(t,1,1)}function mQ(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0;if(V1=C,E=$+1|0,Q=E<<3,g=Q,R=C,C=C+((1*g|0)+15&-16)|0,s0=$<<3,h=s0,Z=C,C=C+((1*h|0)+15&-16)|0,E0=(E|0)==0,E0)N=0;else{for(O0=$;;){if(H0=(O0|0)<(a|0),H0)for(Q1=0,R1=O0;;)if(A1=t+(R1<<2)|0,E1=+s[A1>>2],B=E1,S=R1-O0|0,b=t+(S<<2)|0,v=+s[b>>2],w=v,D=w*B,y=D+Q1,x=R1+1|0,D1=(x|0)==(a|0),D1){I1=y;break}else Q1=y,R1=x;else I1=0;if(M=R+(O0<<3)|0,l1[M>>3]=I1,L=O0+-1|0,F=(O0|0)==0,F)break;O0=L}I=+l1[R>>3],N=I}if(T=N*1.0000000001,G=N*1e-9,V=G+1e-10,X=($|0)>0,X)B1=T,F1=0;else return k1=T,j0=k1,C=V1,+j0;for(;;){if(b1=F1+1|0,K=B1>3],q=-o0,d0=(F1|0)>0,d0){for(P1=0,q1=q;;)if(u0=Z+(P1<<3)|0,c0=+l1[u0>>3],$0=F1-P1|0,l0=R+($0<<3)|0,I0=+l1[l0>>3],g0=I0*c0,f0=q1-g0,n0=P1+1|0,S1=(n0|0)==(F1|0),S1){m=f0;break}else P1=n0,q1=f0;if(h0=m/B1,p0=Z+(F1<<3)|0,l1[p0>>3]=h0,C0=(F1|0)/2&-1,S0=(F1|0)>1,S0){for(Q0=F1+-1|0,b0=(C0|0)>1,G1=0;y0=Z+(G1<<3)|0,w0=+l1[y0>>3],B0=Q0-G1|0,_0=Z+(B0<<3)|0,K0=+l1[_0>>3],M0=K0*h0,v0=M0+w0,l1[y0>>3]=v0,T0=w0*h0,N0=+l1[_0>>3],U0=N0+T0,l1[_0>>3]=U0,k0=G1+1|0,V0=(k0|0)<(C0|0),V0;)G1=k0;H1=b0?C0:1,q0=h0,Z1=H1}else q0=h0,Z1=0}else t0=q/B1,j=Z+(F1<<3)|0,l1[j>>3]=t0,q0=t0,Z1=0;if(F0=F1&1,L0=(F0|0)==0,L0||(G0=Z+(Z1<<3)|0,z0=+l1[G0>>3],J0=z0*q0,Z0=J0+z0,l1[G0>>3]=Z0),P0=q0*q0,o1=1-P0,Y0=o1*B1,i1=(b1|0)<($|0),i1)B1=Y0,F1=b1;else{v1=Y0;break}}if((Y1|0)==8&&(a0=Z+(U1<<3)|0,W=$-U1|0,r0=W<<3,u4(a0|0,0,r0|0)|0,v1=w1),X)p1=.99,x1=0;else return k1=v1,j0=k1,C=V1,+j0;for(;x0=Z+(x1<<3)|0,n1=+l1[x0>>3],d1=n1*p1,l1[x0>>3]=d1,g1=p1*.99,m1=x1+1|0,M1=(m1|0)==($|0),!M1;)p1=g1,x1=m1;if(X)z1=0;else return k1=v1,j0=k1,C=V1,+j0;for(;;)if(h1=Z+(z1<<3)|0,u1=+l1[h1>>3],c1=u1,s1=o+(z1<<2)|0,s[s1>>2]=c1,$1=z1+1|0,L1=($1|0)==($|0),L1){k1=v1;break}else z1=$1;return j0=k1,C=V1,+j0}function pQ(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0;if(j=C,I=g+a|0,E=I<<2,h=E,L=C,C=C+((1*h|0)+15&-16)|0,F=(o|0)==0,T=(a|0)>0,F?T&&(G=a<<2,u4(L|0,0,G|0)|0):T&&(N=a<<2,ge(L|0,o|0,N|0)|0),V=(g|0)>0,!V){C=j;return}if(X=(a|0)>0,X)r0=0,s0=a;else{K=g<<2,u4(L|0,0,K|0)|0,u4($|0,0,K|0)|0,C=j;return}for(;;){for(o0=r0,q=a,d0=0;;)if(b=o0+1|0,v=L+(o0<<2)|0,w=+s[v>>2],D=q+-1|0,y=t+(D<<2)|0,x=+s[y>>2],M=x*w,R=d0-M,a0=(b|0)==(s0|0),a0){m=R;break}else o0=b,q=D,d0=R;if(Q=L+(s0<<2)|0,s[Q>>2]=m,B=$+(r0<<2)|0,s[B>>2]=m,S=r0+1|0,J=s0+1|0,W=(S|0)==(g|0),W)break;r0=S,s0=J}C=j}function fb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0;if(_0=C,g=e[o>>2]|0,h=(g|0)>1,h?(O2(a,1,1),y=e[o>>2]|0,K=y+-1|0,O2(a,K,4)):O2(a,0,1),u0=o+1156|0,p0=e[u0>>2]|0,C0=(p0|0)>0,C0){if(O2(a,1,1),S0=e[u0>>2]|0,Q0=S0+-1|0,O2(a,Q0,8),b0=e[u0>>2]|0,m=(b0|0)>0,m)for(I=o+1160|0,E=t+4|0,Q=o+2184|0,E0=0;B=I+(E0<<2)|0,S=e[B>>2]|0,b=e[E>>2]|0,v=b+-1|0,w=q8(v)|0,O2(a,S,w),D=Q+(E0<<2)|0,x=e[D>>2]|0,M=e[E>>2]|0,L=M+-1|0,R=q8(L)|0,O2(a,x,R),F=E0+1|0,T=e[u0>>2]|0,N=(F|0)<(T|0),N;)E0=F}else O2(a,0,1);if(O2(a,0,2),G=e[o>>2]|0,V=(G|0)>1,V){if(X=t+4|0,a0=e[X>>2]|0,W=(a0|0)>0,W){for(r0=o+4|0,y0=0;d0=r0+(y0<<2)|0,t0=e[d0>>2]|0,O2(a,t0,4),j=y0+1|0,c0=e[X>>2]|0,$0=(j|0)<(c0|0),$0;)y0=j;$=e[o>>2]|0,s0=$,B0=13}}else s0=G,B0=13;if(!((B0|0)==13&&(J=(s0|0)>0,!J)))for(o0=o+1028|0,q=o+1092|0,w0=0;O2(a,0,8),l0=o0+(w0<<2)|0,Z=e[l0>>2]|0,O2(a,Z,8),I0=q+(w0<<2)|0,g0=e[I0>>2]|0,O2(a,g0,8),f0=w0+1|0,n0=e[o>>2]|0,h0=(f0|0)<(n0|0),h0;)w0=f0}function Ib(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0;s1=C,g=ce(1,3208)|0,h=t+28|0,y=e[h>>2]|0,u4(g|0,0,3208)|0,K=t+4|0,u0=e[K>>2]|0,C0=(u0|0)<1;e:do if(C0)c1=24;else if(v0=n4(o,1)|0,J0=(v0|0)<0,J0)c1=24;else{if(Y0=(v0|0)==0,Y0)e[g>>2]=1;else if(i1=n4(o,4)|0,m=i1+1|0,e[g>>2]=m,I=(i1|0)<0,I)break;if(E=n4(o,1)|0,Q=(E|0)<0,!Q){if(B=(E|0)==0,!B){if(S=n4(o,8)|0,b=S+1|0,v=g+1156|0,e[v>>2]=b,w=(S|0)<0,w)break;for(D=g+1160|0,x=g+2184|0,$=e[K>>2]|0,T=$,x0=0;;){if(F=T+-1|0,N=q8(F)|0,G=n4(o,N)|0,V=D+(x0<<2)|0,e[V>>2]=G,X=e[K>>2]|0,a0=X+-1|0,W=q8(a0)|0,r0=n4(o,W)|0,s0=x+(x0<<2)|0,e[s0>>2]=r0,J=r0|G,o0=(J|0)<0,q=(G|0)==(r0|0),g1=q|o0,g1||(d0=e[K>>2]|0,t0=(G|0)<(d0|0),j=(r0|0)<(d0|0),m1=t0&j,L=x0+1|0,!m1))break e;if(M=e[v>>2]|0,R=(L|0)<(M|0),R)T=d0,x0=L;else break}}if(c0=n4(o,2)|0,$0=(c0|0)==0,$0){if(l0=e[g>>2]|0,Z=(l0|0)>1,Z){if(I0=e[K>>2]|0,g0=(I0|0)>0,g0)for(f0=g+4|0,n1=0;;){if(B0=n4(o,4)|0,_0=f0+(n1<<2)|0,e[_0>>2]=B0,K0=e[g>>2]|0,M0=(B0|0)>=(K0|0),T0=(B0|0)<0,h1=T0|M0,y0=n1+1|0,h1)break e;if(E0=e[K>>2]|0,w0=(y0|0)<(E0|0),w0)n1=y0;else{n0=K0,c1=17;break}}}else n0=l0,c1=17;if((c1|0)==17&&(h0=(n0|0)>0,!h0))return a=g,a|0;for(p0=g+1028|0,S0=y+16|0,Q0=g+1092|0,b0=y+20|0,d1=0;;){if(n4(o,8)|0,k0=n4(o,8)|0,V0=p0+(d1<<2)|0,e[V0>>2]=k0,F0=e[S0>>2]|0,L0=(k0|0)>=(F0|0),G0=(k0|0)<0,u1=G0|L0,u1||(z0=n4(o,8)|0,q0=Q0+(d1<<2)|0,e[q0>>2]=z0,Z0=e[b0>>2]|0,P0=(z0|0)>=(Z0|0),H0=(z0|0)<0,A1=H0|P0,U0=d1+1|0,A1))break e;if(N0=e[g>>2]|0,O0=(U0|0)<(N0|0),O0)d1=U0;else{a=g;break}}return a|0}}}while(!1);return(c1|0)==24&&(o1=(g|0)==0,o1)?(a=0,a|0):(p2(g),a=0,a|0)}function mb(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,o||p2(t)}function pb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0,H8=0,K8=0,R8=0,u8=0,F8=0,g4=0,Y8=0,W8=0,ht=0,Nt=0,T8=0,Xt=0,O4=0,B4=0,ae=0,N8=0,Ai=0,Oi=0,qi=0,Hi=0,pi=0,Z8=0,Ei=0,j8=0,Ci=0,X8=0,Bi=0,$i=0,c7=0,Yi=0,Qi=0,yi=0,g7=0,wi=0,li=0,u7=0,Vi=0,Ji=0,zi=0,Ki=0,ci=0,vi=0,Wi=0,ei=0,gi=0,V8=0,ti=0,d7=0,Zi=0,h7=0,ki=0,ji=0,Si=0,bi=0,Xi=0,Di=0,ii=0,_i=0,e7=0,ui=0,J8=0,xi=0,x4=0,Li=0,G8=0,di=0,l9=0,B8=0,vt=0,Q8=0,U8=0,nn=0,yr=0,as=0,Vn=0,As=0,Jn=0,$s=0,ls=0,zn=0,cs=0,on=0,gs=0,us=0,ds=0,Kn=0,hs=0,Wn=0,Zn=0,fs=0,sn=0,jn=0,an=0,Xn=0,eo=0,Is=0,ms=0,ps=0,An=0,to=0,Es=0,wr=0,$n=0,Cs=0,Bs=0,ln=0,f7=0,io=0,Qs=0,ys=0,ro=0,no=0,oo=0,ws=0,I7=0,cn=0,vs=0,so=0,ks=0,Ss=0,bs=0,ao=0,Ds=0,_s=0,xs=0,Ls=0,Ao=0,Ms=0,Rs=0,gn=0,vr=0,un=0,Fs=0,or=0,Ts=0,$o=0,dn=0,lo=0,hn=0,Ns=0,co=0,go=0,Gs=0,uo=0,ho=0,Us=0,kr=0,fo=0,m7=0,fn=0,Sr=0,sr=0,br=0,W7=0,Dr=0,Io=0,Z7=0,S7=0,b7=0,t7=0,D7=0,_r=0,ar=0,Ar=0,xr=0,p7=0,Ps=0,hi=0,sl=0,In=0,mn=0;if(In=C,x=t+64|0,M=e[x>>2]|0,i2=M+4|0,V3=e[i2>>2]|0,Ne=V3+28|0,je=e[Ne>>2]|0,Cs=M+104|0,I7=e[Cs>>2]|0,Ls=t+104|0,dn=e[Ls>>2]|0,L=t+36|0,r0=e[L>>2]|0,l0=V3+4|0,b0=e[l0>>2]|0,U0=b0<<2,$=U0,P0=C,C=C+((1*$|0)+15&-16)|0,u1=z8(t,U0)|0,w1=e[l0>>2]|0,P1=w1<<2,j1=z8(t,P1)|0,l2=e[l0>>2]|0,N2=l2<<2,H2=z8(t,N2)|0,b2=dn+4|0,M5=+s[b2>>2],g2=e[l0>>2]|0,F2=g2<<2,g=F2,G5=C,C=C+((1*g|0)+15&-16)|0,T3=dn+8|0,U5=e[T3>>2]|0,Z5=t+28|0,h6=e[Z5>>2]|0,K3=(je+544|0)+(h6<<2)|0,A6=e[K3>>2]|0,P6=I7+56|0,B9=e[P6>>2]|0,we=(h6|0)!=0,de=we?2:0,D=de+U5|0,he=B9+(D*52|0)|0,ze=t+40|0,e[ze>>2]=h6,h4=(g2|0)>0,h4)for(Ie=+(r0|0),W3=4/Ie,m8=(s[w2>>2]=W3,e[w2>>2]|0),_t=(r0|0)/2&-1,Lt=_t<<2,Mt=m8&2147483647,ct=+(Mt>>>0),De=ct*7177114298428933e-22,j4=De+-764.6162109375,c8=j4,g4=c8+.345,Ai=g4,$i=I7+4|0,zi=t+24|0,h7=t+32|0,J8=Ai+-764.6162109375,nn=r0+-1|0,gs=(nn|0)>1,Xn=Ai+-382.30810546875,Dr=M5,Z7=0;;){if(Bs=e[t>>2]|0,ln=Bs+(Z7<<2)|0,f7=e[ln>>2]|0,io=z8(t,Lt)|0,Qs=j1+(Z7<<2)|0,e[Qs>>2]=io,ys=z8(t,Lt)|0,ro=u1+(Z7<<2)|0,e[ro>>2]=ys,no=e[zi>>2]|0,oo=e[Z5>>2]|0,ws=e[h7>>2]|0,Xb(f7,$i,je,no,oo,ws),cn=e[Z5>>2]|0,vs=(I7+12|0)+(cn<<2)|0,so=e[vs>>2]|0,ks=e[so>>2]|0,Ss=e[ro>>2]|0,EQ(ks,f7,Ss),bs=e[Z5>>2]|0,ao=(I7+20|0)+(bs*12|0)|0,zb(ao,f7),Ds=e[f7>>2]|0,_s=Ds&2147483647,xs=+(_s>>>0),Ao=xs*7177114298428933e-22,Ms=J8+Ao,Rs=Ms,gn=Rs+.345,vr=gn,s[f7>>2]=vr,un=G5+(Z7<<2)|0,s[un>>2]=vr,gs)for(V=vr,_r=1;;)if(Fs=f7+(_r<<2)|0,or=+s[Fs>>2],Ts=or*or,$o=_r+1|0,lo=f7+($o<<2)|0,hn=+s[lo>>2],Ns=hn*hn,co=Ns+Ts,go=(s[w2>>2]=co,e[w2>>2]|0),Gs=go&2147483647,uo=+(Gs>>>0),ho=uo*35885571492144663e-23,Us=Xn+ho,kr=Us,R=kr+.345,F=R,T=$o>>1,N=f7+(T<<2)|0,s[N>>2]=F,G=F>V,G?(s[un>>2]=F,wr=F):wr=V,X=_r+2|0,K=(X|0)<(nn|0),K)V=wr,_r=X;else{W=wr;break}else W=vr;if(a0=W>0,a0?(s[un>>2]=0,J=0):J=W,s0=J>Dr,Io=s0?J:Dr,o0=Z7+1|0,q=e[l0>>2]|0,d0=(o0|0)<(q|0),d0)Dr=Io,Z7=o0;else{Q=Lt,S=_t,W7=Io;break}}else b=(r0|0)/2&-1,v=b<<2,Q=v,S=b,W7=M5;t0=z8(t,Q)|0,j=z8(t,Q)|0,u0=e[l0>>2]|0,c0=(u0|0)>0;e:do if(c0){if($0=(r0|0)>1,Z=I7+48|0,$0)b7=0;else{for(S7=0;;){o6=(A6+4|0)+(S7<<2)|0,C6=e[o6>>2]|0,z3=u1+(S7<<2)|0,M3=e[z3>>2]|0,e6=e[t>>2]|0,F6=e6+(S7<<2)|0,l6=e[F6>>2]|0,o3=l6+(S<<2)|0,e[ze>>2]=h6,K6=z8(t,60)|0,A3=H2+(S7<<2)|0,e[A3>>2]=K6,hi=K6,mn=hi+60|0;do e[hi>>2]=0,hi=hi+4|0;while((hi|0)<(mn|0));if(yQ(he,o3,t0),c6=G5+(S7<<2)|0,B6=+s[c6>>2],wQ(he,l6,j,W7,B6),rl(he,t0,j,1,l6,M3,o3),R3=(A6+1028|0)+(C6<<2)|0,Y6=e[R3>>2]|0,D6=(je+800|0)+(Y6<<2)|0,U6=e[D6>>2]|0,t9=(U6|0)==1,!t9){a=-1;break}if(Q6=e[Z>>2]|0,e9=Q6+(Y6<<2)|0,G3=e[e9>>2]|0,n9=il(t,G3,o3,l6)|0,V6=e[A3>>2]|0,s9=V6+28|0,e[s9>>2]=n9,c9=Nu(t)|0,J6=(c9|0)==0,J6||(T6=e[A3>>2]|0,i9=T6+28|0,_6=e[i9>>2]|0,O6=(_6|0)==0,O6||(rl(he,t0,j,2,l6,M3,o3),U3=e[R3>>2]|0,q6=e[Z>>2]|0,a9=q6+(U3<<2)|0,d9=e[a9>>2]|0,o9=il(t,d9,o3,l6)|0,Q9=e[A3>>2]|0,y9=Q9+56|0,e[y9>>2]=o9,rl(he,t0,j,0,l6,M3,o3),h9=e[R3>>2]|0,f9=e[Z>>2]|0,H9=f9+(h9<<2)|0,y6=e[H9>>2]|0,H6=il(t,y6,o3,l6)|0,A9=e[A3>>2]|0,e[A9>>2]=H6,Y9=e[R3>>2]|0,w9=e[Z>>2]|0,ue=w9+(Y9<<2)|0,Ee=e[ue>>2]|0,V9=e[A3>>2]|0,ie=e[V9>>2]|0,F9=V9+28|0,v9=e[F9>>2]|0,W6=Gt(t,Ee,ie,v9,9362)|0,$9=e[A3>>2]|0,ve=$9+4|0,e[ve>>2]=W6,Re=e[R3>>2]|0,_9=e[Z>>2]|0,Fe=_9+(Re<<2)|0,Te=e[Fe>>2]|0,Ge=e[A3>>2]|0,He=e[Ge>>2]|0,o4=Ge+28|0,ke=e[o4>>2]|0,Ye=Gt(t,Te,He,ke,18724)|0,J9=e[A3>>2]|0,Ve=J9+8|0,e[Ve>>2]=Ye,Ue=e[R3>>2]|0,Ce=e[Z>>2]|0,v4=Ce+(Ue<<2)|0,W9=e[v4>>2]|0,k9=e[A3>>2]|0,k4=e[k9>>2]|0,Y4=k9+28|0,nt=e[Y4>>2]|0,Je=Gt(t,W9,k4,nt,28086)|0,V4=e[A3>>2]|0,s4=V4+12|0,e[s4>>2]=Je,R4=e[R3>>2]|0,ot=e[Z>>2]|0,re=ot+(R4<<2)|0,d4=e[re>>2]|0,Be=e[A3>>2]|0,N6=e[Be>>2]|0,Ke=Be+28|0,P9=e[Ke>>2]|0,fe=Gt(t,d4,N6,P9,37449)|0,ne=e[A3>>2]|0,f4=ne+16|0,e[f4>>2]=fe,I4=e[R3>>2]|0,Se=e[Z>>2]|0,a4=Se+(I4<<2)|0,Pe=e[a4>>2]|0,m4=e[A3>>2]|0,S9=e[m4>>2]|0,f6=m4+28|0,J4=e[f6>>2]|0,S4=Gt(t,Pe,S9,J4,46811)|0,be=e[A3>>2]|0,me=be+20|0,e[me>>2]=S4,z6=e[R3>>2]|0,F4=e[Z>>2]|0,T4=F4+(z6<<2)|0,st=e[T4>>2]|0,pe=e[A3>>2]|0,xe=e[pe>>2]|0,mt=pe+28|0,x9=e[mt>>2]|0,b9=Gt(t,st,xe,x9,56173)|0,Oe=e[A3>>2]|0,A4=Oe+24|0,e[A4>>2]=b9,h8=e[R3>>2]|0,N4=e[Z>>2]|0,f8=N4+(h8<<2)|0,_8=e[f8>>2]|0,e8=e[A3>>2]|0,I8=e8+28|0,Ut=e[I8>>2]|0,Pt=e8+56|0,Ot=e[Pt>>2]|0,qt=Gt(t,_8,Ut,Ot,9362)|0,t8=e[A3>>2]|0,i8=t8+32|0,e[i8>>2]=qt,x8=e[R3>>2]|0,Ht=e[Z>>2]|0,Yt=Ht+(x8<<2)|0,Vt=e[Yt>>2]|0,xt=e[A3>>2]|0,pt=xt+28|0,Jt=e[pt>>2]|0,zt=xt+56|0,r8=e[zt>>2]|0,n8=Gt(t,Vt,Jt,r8,18724)|0,Et=e[A3>>2]|0,z4=Et+36|0,e[z4>>2]=n8,G4=e[R3>>2]|0,at=e[Z>>2]|0,L9=at+(G4<<2)|0,p8=e[L9>>2]|0,b4=e[A3>>2]|0,E8=b4+28|0,L8=e[E8>>2]|0,o8=b4+56|0,M8=e[o8>>2]|0,$4=Gt(t,p8,L8,M8,28086)|0,s8=e[A3>>2]|0,Kt=s8+40|0,e[Kt>>2]=$4,At=e[R3>>2]|0,We=e[Z>>2]|0,U4=We+(At<<2)|0,$t=e[U4>>2]|0,Ct=e[A3>>2]|0,Rt=Ct+28|0,p4=e[Rt>>2]|0,oe=Ct+56|0,lt=e[oe>>2]|0,Bt=Gt(t,$t,p4,lt,37449)|0,Qt=e[A3>>2]|0,E4=Qt+44|0,e[E4>>2]=Bt,D4=e[R3>>2]|0,K4=e[Z>>2]|0,W4=K4+(D4<<2)|0,se=e[W4>>2]|0,P4=e[A3>>2]|0,C4=P4+28|0,gt=e[C4>>2]|0,_4=P4+56|0,yt=e[_4>>2]|0,a8=Gt(t,se,gt,yt,46811)|0,Ze=e[A3>>2]|0,E3=Ze+48|0,e[E3>>2]=a8,Z4=e[R3>>2]|0,wt=e[Z>>2]|0,l4=wt+(Z4<<2)|0,Z9=e[l4>>2]|0,c4=e[A3>>2]|0,T9=c4+28|0,Wt=e[T9>>2]|0,C8=c4+56|0,A8=e[C8>>2]|0,$8=Gt(t,Z9,Wt,A8,56173)|0,Zt=e[A3>>2]|0,l8=Zt+52|0,e[l8>>2]=$8)),jt=S7+1|0,ut=e[l0>>2]|0,dt=(jt|0)<(ut|0),dt)S7=jt;else{B=Z,Tt=ut;break e}}return C=In,a|0}for(;;){G6=(A6+4|0)+(b7<<2)|0,C0=e[G6>>2]|0,X6=u1+(b7<<2)|0,h0=e[X6>>2]|0,v6=e[t>>2]|0,L3=v6+(b7<<2)|0,n0=e[L3>>2]|0,I0=n0+(S<<2)|0,e[ze>>2]=h6,n6=z8(t,60)|0,v0=H2+(b7<<2)|0,e[v0>>2]=n6,hi=n6,mn=hi+60|0;do e[hi>>2]=0,hi=hi+4|0;while((hi|0)<(mn|0));for(ar=0;i6=h0+(ar<<2)|0,x3=e[i6>>2]|0,d3=x3&2147483647,J3=+(d3>>>0),d6=J3*7177114298428933e-22,m3=d6+-764.6162109375,L6=m3,M6=L6+.345,R6=M6,y=ar+S|0,S6=n0+(y<<2)|0,s[S6>>2]=R6,r6=ar+1|0,b6=(r6|0)<(S|0),b6;)ar=r6;if(yQ(he,I0,t0),g0=G5+(b7<<2)|0,f0=+s[g0>>2],wQ(he,n0,j,W7,f0),rl(he,t0,j,1,n0,h0,I0),p0=(A6+1028|0)+(C0<<2)|0,S0=e[p0>>2]|0,Q0=(je+800|0)+(S0<<2)|0,E0=e[Q0>>2]|0,y0=(E0|0)==1,!y0){a=-1;break}if(w0=e[Z>>2]|0,B0=w0+(S0<<2)|0,_0=e[B0>>2]|0,K0=il(t,_0,I0,n0)|0,M0=e[v0>>2]|0,T0=M0+28|0,e[T0>>2]=K0,N0=Nu(t)|0,O0=(N0|0)==0,O0||(k0=e[v0>>2]|0,V0=k0+28|0,F0=e[V0>>2]|0,L0=(F0|0)==0,L0||(rl(he,t0,j,2,n0,h0,I0),G0=e[p0>>2]|0,z0=e[Z>>2]|0,J0=z0+(G0<<2)|0,q0=e[J0>>2]|0,Z0=il(t,q0,I0,n0)|0,H0=e[v0>>2]|0,o1=H0+56|0,e[o1>>2]=Z0,rl(he,t0,j,0,n0,h0,I0),Y0=e[p0>>2]|0,i1=e[Z>>2]|0,x0=i1+(Y0<<2)|0,n1=e[x0>>2]|0,d1=il(t,n1,I0,n0)|0,g1=e[v0>>2]|0,e[g1>>2]=d1,m1=e[p0>>2]|0,h1=e[Z>>2]|0,A1=h1+(m1<<2)|0,c1=e[A1>>2]|0,s1=e[v0>>2]|0,$1=e[s1>>2]|0,j0=s1+28|0,E1=e[j0>>2]|0,I1=Gt(t,c1,$1,E1,9362)|0,Q1=e[v0>>2]|0,p1=Q1+4|0,e[p1>>2]=I1,B1=e[p0>>2]|0,v1=e[Z>>2]|0,k1=v1+(B1<<2)|0,L1=e[k1>>2]|0,M1=e[v0>>2]|0,S1=e[M1>>2]|0,D1=M1+28|0,R1=e[D1>>2]|0,F1=Gt(t,L1,S1,R1,18724)|0,U1=e[v0>>2]|0,b1=U1+8|0,e[b1>>2]=F1,Z1=e[p0>>2]|0,G1=e[Z>>2]|0,x1=G1+(Z1<<2)|0,z1=e[x1>>2]|0,q1=e[v0>>2]|0,H1=e[q1>>2]|0,Y1=q1+28|0,V1=e[Y1>>2]|0,X1=Gt(t,z1,H1,V1,28086)|0,n2=e[v0>>2]|0,O1=n2+12|0,e[O1>>2]=X1,c2=e[p0>>2]|0,W1=e[Z>>2]|0,h2=W1+(c2<<2)|0,s2=e[h2>>2]|0,E2=e[v0>>2]|0,a2=e[E2>>2]|0,K1=E2+28|0,d2=e[K1>>2]|0,$2=Gt(t,s2,a2,d2,37449)|0,r2=e[v0>>2]|0,A2=r2+16|0,e[A2>>2]=$2,e2=e[p0>>2]|0,o2=e[Z>>2]|0,f2=o2+(e2<<2)|0,t2=e[f2>>2]|0,k2=e[v0>>2]|0,D2=e[k2>>2]|0,S2=k2+28|0,Q2=e[S2>>2]|0,L2=Gt(t,t2,D2,Q2,46811)|0,U2=e[v0>>2]|0,m2=U2+20|0,e[m2>>2]=L2,W2=e[p0>>2]|0,P2=e[Z>>2]|0,V2=P2+(W2<<2)|0,G2=e[V2>>2]|0,q2=e[v0>>2]|0,Z2=e[q2>>2]|0,A5=q2+28|0,N1=e[A5>>2]|0,t5=Gt(t,G2,Z2,N1,56173)|0,T5=e[v0>>2]|0,i5=T5+24|0,e[i5>>2]=t5,x5=e[p0>>2]|0,j2=e[Z>>2]|0,I5=j2+(x5<<2)|0,b5=e[I5>>2]|0,Y5=e[v0>>2]|0,g5=Y5+28|0,B5=e[g5>>2]|0,s5=Y5+56|0,R2=e[s5>>2]|0,M2=Gt(t,b5,B5,R2,9362)|0,y2=e[v0>>2]|0,Q5=y2+32|0,e[Q5>>2]=M2,N5=e[p0>>2]|0,m5=e[Z>>2]|0,L5=m5+(N5<<2)|0,q5=e[L5>>2]|0,Y2=e[v0>>2]|0,p5=Y2+28|0,$5=e[p5>>2]|0,u5=Y2+56|0,y5=e[u5>>2]|0,T1=Gt(t,q5,$5,y5,18724)|0,D5=e[v0>>2]|0,d5=D5+36|0,e[d5>>2]=T1,l5=e[p0>>2]|0,X2=e[Z>>2]|0,w5=X2+(l5<<2)|0,r5=e[w5>>2]|0,a5=e[v0>>2]|0,h5=a5+28|0,z2=e[h5>>2]|0,f5=a5+56|0,n5=e[f5>>2]|0,R5=Gt(t,r5,z2,n5,28086)|0,e5=e[v0>>2]|0,c5=e5+40|0,e[c5>>2]=R5,v5=e[p0>>2]|0,J5=e[Z>>2]|0,i3=J5+(v5<<2)|0,E5=e[i3>>2]|0,I3=e[v0>>2]|0,h3=I3+28|0,K5=e[h3>>2]|0,r3=I3+56|0,a3=e[r3>>2]|0,B3=Gt(t,E5,K5,a3,37449)|0,W5=e[v0>>2]|0,D3=W5+44|0,e[D3>>2]=B3,f3=e[p0>>2]|0,y3=e[Z>>2]|0,X3=y3+(f3<<2)|0,q3=e[X3>>2]|0,X5=e[v0>>2]|0,b3=X5+28|0,t3=e[b3>>2]|0,s6=X5+56|0,H3=e[s6>>2]|0,c3=Gt(t,q3,t3,H3,46811)|0,g3=e[v0>>2]|0,u3=g3+48|0,e[u3>>2]=c3,Q3=e[p0>>2]|0,z5=e[Z>>2]|0,H5=z5+(Q3<<2)|0,V5=e[H5>>2]|0,S5=e[v0>>2]|0,Y3=S5+28|0,$6=e[Y3>>2]|0,n3=S5+56|0,l3=e[n3>>2]|0,N3=Gt(t,V5,$6,l3,56173)|0,E6=e[v0>>2]|0,k3=E6+52|0,e[k3>>2]=N3)),_3=b7+1|0,S3=e[l0>>2]|0,a6=(_3|0)<(S3|0),a6)b7=_3;else{B=Z,Tt=S3;break e}}return C=In,a|0}else w=I7+48|0,B=w,Tt=u0;while(!1);for(s[b2>>2]=W7,Ft=Tt<<2,h=Ft,X4=C,C=C+((1*h|0)+15&-16)|0,m=Ft,D9=C,C=C+((1*m|0)+15&-16)|0,g8=Nu(t)|0,et=(g8|0)!=0,H8=et?0:7,K8=I7+44|0,R8=t+24|0,u8=t+32|0,F8=je+2868|0,Y8=I7+52|0,p7=H8;;){if(W8=(dn+12|0)+(p7<<2)|0,ht=e[W8>>2]|0,O2(ht,0,1),Nt=e[K8>>2]|0,O2(ht,h6,Nt),T8=e[Z5>>2]|0,Xt=(T8|0)==0,Xt||(O4=e[R8>>2]|0,O2(ht,O4,1),B4=e[u8>>2]|0,O2(ht,B4,1)),ae=e[l0>>2]|0,N8=(ae|0)>0,N8)for(t7=0;;)if(Oi=(A6+4|0)+(t7<<2)|0,qi=e[Oi>>2]|0,Hi=j1+(t7<<2)|0,pi=e[Hi>>2]|0,Z8=(A6+1028|0)+(qi<<2)|0,Ei=e[Z8>>2]|0,j8=e[B>>2]|0,Ci=j8+(Ei<<2)|0,X8=e[Ci>>2]|0,Bi=H2+(t7<<2)|0,c7=e[Bi>>2]|0,Yi=c7+(p7<<2)|0,Qi=e[Yi>>2]|0,yi=tb(ht,t,X8,Qi,pi)|0,g7=P0+(t7<<2)|0,e[g7>>2]=yi,wi=t7+1|0,li=e[l0>>2]|0,u7=(wi|0)<(li|0),u7)t7=wi;else{I=li;break}else I=ae;if(Vi=e[Z5>>2]|0,Ji=((je+3240|0)+(Vi*60|0)|0)+(p7<<2)|0,Ki=e[Ji>>2]|0,kb(p7,F8,he,A6,u1,j1,P0,Ki,I),ci=e[A6>>2]|0,vi=(ci|0)>0,vi)for(D7=0;;){if(Wi=(A6+1092|0)+(D7<<2)|0,ei=e[Wi>>2]|0,gi=e[l0>>2]|0,V8=(gi|0)>0,V8)for($n=gi,m7=0,Ar=0;;)if(ti=(A6+4|0)+(Ar<<2)|0,d7=e[ti>>2]|0,Zi=(d7|0)==(D7|0),Zi?(ki=D9+(m7<<2)|0,ji=P0+(Ar<<2)|0,Si=e[ji>>2]|0,Ps=(Si|0)!=0,o=Ps&1,e[ki>>2]=o,bi=j1+(Ar<<2)|0,Xi=e[bi>>2]|0,Di=m7+1|0,ii=X4+(m7<<2)|0,e[ii>>2]=Xi,E=e[l0>>2]|0,ui=E,fn=Di):(ui=$n,fn=m7),_i=Ar+1|0,e7=(_i|0)<(ui|0),e7)$n=ui,m7=fn,Ar=_i;else{fo=fn;break}else fo=0;if(xi=(je+1312|0)+(ei<<2)|0,x4=e[xi>>2]|0,Li=25648+(x4<<2)|0,G8=e[Li>>2]|0,di=G8+20|0,l9=e[di>>2]|0,B8=e[Y8>>2]|0,vt=B8+(ei<<2)|0,Q8=e[vt>>2]|0,U8=xC[l9&7](t,Q8,X4,D9,fo)|0,yr=e[l0>>2]|0,as=(yr|0)>0,as)for(sr=0,xr=0;;)if(Vn=(A6+4|0)+(xr<<2)|0,As=e[Vn>>2]|0,Jn=(As|0)==(D7|0),Jn?($s=j1+(xr<<2)|0,ls=e[$s>>2]|0,zn=sr+1|0,cs=X4+(sr<<2)|0,e[cs>>2]=ls,br=zn):br=sr,on=xr+1|0,us=(on|0)<(yr|0),us)sr=br,xr=on;else{Sr=br;break}else Sr=0;if(ds=e[xi>>2]|0,Kn=25648+(ds<<2)|0,hs=e[Kn>>2]|0,Wn=hs+24|0,Zn=e[Wn>>2]|0,fs=e[Y8>>2]|0,sn=fs+(ei<<2)|0,jn=e[sn>>2]|0,VQ[Zn&3](ht,t,jn,X4,D9,Sr,U8,D7)|0,an=D7+1|0,eo=e[A6>>2]|0,Is=(an|0)<(eo|0),Is)D7=an;else break}if(ms=p7+1|0,ps=Nu(t)|0,An=(ps|0)!=0,to=An?14:7,Es=(p7|0)<(to|0),Es)p7=ms;else{a=0;break}}return C=In,a|0}function Eb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0;if(F2=C,b=t+64|0,v=e[b>>2]|0,Q1=v+4|0,F1=e[Q1>>2]|0,V1=F1+28|0,K1=e[V1>>2]|0,k2=v+104|0,G2=e[k2>>2]|0,I5=t+28|0,N5=e[I5>>2]|0,w=K1+(N5<<2)|0,V=e[w>>2]|0,t0=t+36|0,e[t0>>2]=V,h0=F1+4|0,K0=e[h0>>2]|0,G0=K0<<2,g=G0,n1=C,C=C+((1*g|0)+15&-16)|0,h=G0,j0=C,C=C+((1*h|0)+15&-16)|0,m=G0,E1=C,C=C+((1*m|0)+15&-16)|0,I=G0,I1=C,C=C+((1*I|0)+15&-16)|0,p1=e[h0>>2]|0,B1=(p1|0)>0,B1)for(w1=o+4|0,v1=o+1028|0,k1=G2+48|0,L1=V<<1,M1=L1&2147483646,X2=0;;)if(P1=w1+(X2<<2)|0,Z1=e[P1>>2]|0,G1=v1+(Z1<<2)|0,x1=e[G1>>2]|0,z1=(K1+800|0)+(x1<<2)|0,q1=e[z1>>2]|0,H1=25640+(q1<<2)|0,Y1=e[H1>>2]|0,X1=Y1+20|0,n2=e[X1>>2]|0,j1=e[k1>>2]|0,O1=j1+(x1<<2)|0,c2=e[O1>>2]|0,W1=mi[n2&15](t,c2)|0,h2=I1+(X2<<2)|0,e[h2>>2]=W1,s2=E1+(X2<<2)|0,e5=(W1|0)!=0,a=e5&1,e[s2>>2]=a,E2=e[t>>2]|0,a2=E2+(X2<<2)|0,d2=e[a2>>2]|0,u4(d2|0,0,M1|0)|0,$2=X2+1|0,i2=e[h0>>2]|0,l2=($2|0)<(i2|0),l2)X2=$2;else{s1=i2;break}else s1=p1;if(S1=o+1156|0,D1=e[S1>>2]|0,R1=(D1|0)>0,R1)for(U1=o+1160|0,b1=o+2184|0,g2=0;t2=U1+(g2<<2)|0,D2=e[t2>>2]|0,S2=E1+(D2<<2)|0,Q2=e[S2>>2]|0,N2=(Q2|0)==0,L2=b1+(g2<<2)|0,U2=e[L2>>2]|0,N2?(m2=E1+(U2<<2)|0,W2=e[m2>>2]|0,P2=(W2|0)==0,P2||(c5=10)):c5=10,(c5|0)==10&&(c5=0,e[S2>>2]=1,V2=E1+(U2<<2)|0,e[V2>>2]=1),q2=g2+1|0,Z2=(q2|0)<(D1|0),Z2;)g2=q2;if(r2=e[o>>2]|0,A2=(r2|0)>0,A2){for(e2=o+1092|0,o2=G2+52|0,f2=o+4|0,A5=s1,w5=0;;){if(H2=(A5|0)>0,H2)for($1=A5,d5=0,f5=0;;)if(N1=f2+(f5<<2)|0,t5=e[N1>>2]|0,T5=(t5|0)==(w5|0),T5?(i5=E1+(f5<<2)|0,x5=e[i5>>2]|0,j2=j0+(d5<<2)|0,R5=(x5|0)!=0,$=R5&1,e[j2>>2]=$,b5=e[t>>2]|0,Y5=b5+(f5<<2)|0,g5=e[Y5>>2]|0,b2=d5+1|0,B5=n1+(d5<<2)|0,e[B5>>2]=g5,B=e[h0>>2]|0,M2=B,l5=b2):(M2=$1,l5=d5),s5=f5+1|0,R2=(s5|0)<(M2|0),R2)$1=M2,d5=l5,f5=s5;else{D5=l5;break}else D5=0;if(y2=e2+(w5<<2)|0,Q5=e[y2>>2]|0,m5=(K1+1312|0)+(Q5<<2)|0,L5=e[m5>>2]|0,q5=25648+(L5<<2)|0,M5=e[q5>>2]|0,Y2=M5+28|0,p5=e[Y2>>2]|0,$5=e[o2>>2]|0,u5=$5+(Q5<<2)|0,y5=e[u5>>2]|0,xC[p5&7](t,y5,n1,j0,D5)|0,T1=w5+1|0,D=e[o>>2]|0,y=(T1|0)<(D|0),!y)break;Q=e[h0>>2]|0,A5=Q,w5=T1}S=e[S1>>2]|0,x=S}else x=D1;if(M=(x|0)>0,M)for(L=o+1160|0,R=e[t>>2]|0,F=o+2184|0,T=(V|0)/2&-1,N=(V|0)>1,a5=x;;){if(r5=a5+-1|0,s0=L+(r5<<2)|0,J=e[s0>>2]|0,o0=R+(J<<2)|0,q=e[o0>>2]|0,d0=F+(r5<<2)|0,j=e[d0>>2]|0,u0=R+(j<<2)|0,c0=e[u0>>2]|0,N)for(n5=0;;){$0=q+(n5<<2)|0,l0=+s[$0>>2],Z=c0+(n5<<2)|0,I0=+s[Z>>2],g0=l0>0,f0=I0>0;do if(g0)if(f0){s[$0>>2]=l0,n0=l0-I0,s[Z>>2]=n0;break}else{s[Z>>2]=l0,p0=I0+l0,s[$0>>2]=p0;break}else if(f0){s[$0>>2]=l0,C0=I0+l0,s[Z>>2]=C0;break}else{s[Z>>2]=l0,S0=l0-I0,s[$0>>2]=S0;break}while(!1);if(Q0=n5+1|0,b0=(Q0|0)<(T|0),b0)n5=Q0;else break}if(G=(a5|0)>1,G)a5=r5;else break}if(X=e[h0>>2]|0,K=(X|0)>0,!K)return C=F2,0;for(a0=o+4|0,W=o+1028|0,r0=G2+48|0,h5=0;;)if(y0=e[t>>2]|0,w0=y0+(h5<<2)|0,B0=e[w0>>2]|0,_0=a0+(h5<<2)|0,M0=e[_0>>2]|0,v0=W+(M0<<2)|0,T0=e[v0>>2]|0,N0=(K1+800|0)+(T0<<2)|0,U0=e[N0>>2]|0,O0=25640+(U0<<2)|0,k0=e[O0>>2]|0,V0=k0+24|0,F0=e[V0>>2]|0,L0=e[r0>>2]|0,z0=L0+(T0<<2)|0,J0=e[z0>>2]|0,q0=I1+(h5<<2)|0,Z0=e[q0>>2]|0,DC[F0&3](t,J0,Z0,B0)|0,P0=h5+1|0,H0=e[h0>>2]|0,o1=(P0|0)<(H0|0),o1)h5=P0;else{E=H0;break}if(E0=(E|0)>0,!E0)return C=F2,0;for(z2=0;Y0=e[t>>2]|0,i1=Y0+(z2<<2)|0,x0=e[i1>>2]|0,d1=e[I5>>2]|0,g1=(G2+12|0)+(d1<<2)|0,m1=e[g1>>2]|0,h1=e[m1>>2]|0,Cb(h1,x0,x0),u1=z2+1|0,A1=e[h0>>2]|0,c1=(u1|0)<(A1|0),c1;)z2=u1;return C=F2,0}function yC(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0;if(S1=C,a=(o|0)/4&-1,$=a<<2,w=R9($)|0,V=a+o|0,t0=V<<2,h0=R9(t0)|0,K0=o>>1,G0=+(o|0),n1=G0,E1=+tn(+n1),g=E1*1.4426950408889634,h=+z7(g),m=~~h,I=t+4|0,e[I>>2]=m,e[t>>2]=o,E=t+8|0,e[E>>2]=h0,Q=t+12|0,e[Q>>2]=w,B=(o|0)>3,!B){j0=4/G0,I1=t+16|0,s[I1>>2]=j0;return}for(S=+(o|0),b=3.141592653589793/S,v=o<<1,D=+(v|0),y=3.141592653589793/D,w1=0;F=w1<<2,T=+(F|0),N=b*T,G=+rA(+N),X=G,K=w1<<1,a0=h0+(K<<2)|0,s[a0>>2]=X,W=+Hn(+N),r0=W,s0=-r0,J=K|1,o0=h0+(J<<2)|0,s[o0>>2]=s0,q=+(J|0),d0=y*q,j=+rA(+d0),u0=j,c0=K+K0|0,$0=h0+(c0<<2)|0,s[$0>>2]=u0,l0=+Hn(+d0),Z=l0,I0=c0+1|0,g0=h0+(I0<<2)|0,s[g0>>2]=Z,f0=w1+1|0,n0=(f0|0)<(a|0),n0;)w1=f0;if(x=(o|0)/8&-1,M=(o|0)>7,!M){j0=4/G0,I1=t+16|0,s[I1>>2]=j0;return}for(L=+(o|0),R=3.141592653589793/L,v1=0;p0=v1<<2,C0=p0|2,S0=+(C0|0),Q0=R*S0,b0=+rA(+Q0),E0=b0*.5,y0=E0,w0=v1<<1,B0=w0+o|0,_0=h0+(B0<<2)|0,s[_0>>2]=y0,M0=+Hn(+Q0),v0=M0*-.5,T0=v0,N0=B0+1|0,U0=h0+(N0<<2)|0,s[U0>>2]=T0,O0=v1+1|0,k0=(O0|0)<(x|0),k0;)v1=O0;if(V0=m+-1|0,F0=1<>2]=j0;return}for(;;){for(Z0=J0,Q1=0,L1=0;;)if(q0=Z0&k1,P0=(q0|0)==0,H0=1<>Y0,x0=(i1|0)==0,x0){B1=p1;break}else Z0=i1,Q1=p1,L1=Y0;if(d1=B1^-1,g1=L0&d1,m1=g1+-1|0,h1=k1<<1,u1=w+(h1<<2)|0,e[u1>>2]=m1,A1=h1|1,c1=w+(A1<<2)|0,e[c1>>2]=B1,s1=k1+1|0,$1=(s1|0)<(x|0),$1)k1=s1;else break}j0=4/G0,I1=t+16|0,s[I1>>2]=j0}function wC(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0;Q=C,o=(t|0)==0,!o&&(a=t+8|0,$=e[a>>2]|0,g=($|0)==0,g||p2($),h=t+12|0,m=e[h>>2]|0,I=(m|0)==0,I||p2(m),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0)}function Cb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0;for(J3=C,m=e[t>>2]|0,I=m>>1,j1=m>>2,$=I+-7|0,W2=o+($<<2)|0,g=I+j1|0,i5=a+(g<<2)|0,M2=t+8|0,u5=e[M2>>2]|0,h5=u5+(j1<<2)|0,u3=h5,H5=W2,_3=i5;E5=_3+-16|0,y3=H5+8|0,E=+s[y3>>2],L=u3+12|0,r0=+s[L>>2],l0=E*r0,b0=-l0,U0=+s[H5>>2],P0=u3+8|0,u1=+s[P0>>2],w1=u1*U0,P1=b0-w1,s[E5>>2]=P1,O1=+s[H5>>2],l2=+s[L>>2],k2=l2*O1,D2=+s[y3>>2],S2=+s[P0>>2],Q2=S2*D2,N2=k2-Q2,L2=_3+-12|0,s[L2>>2]=N2,U2=H5+24|0,m2=+s[U2>>2],P2=u3+4|0,V2=+s[P2>>2],G2=m2*V2,q2=-G2,Z2=H5+16|0,A5=+s[Z2>>2],H2=+s[u3>>2],N1=H2*A5,t5=q2-N1,T5=_3+-8|0,s[T5>>2]=t5,x5=+s[Z2>>2],j2=+s[P2>>2],I5=j2*x5,b5=+s[U2>>2],Y5=+s[u3>>2],g5=Y5*b5,b2=I5-g5,B5=_3+-4|0,s[B5>>2]=b2,s5=H5+-32|0,R2=u3+16|0,y2=s5>>>0>>0,!y2;)u3=R2,H5=s5,_3=E5;for(Q5=a+(I<<2)|0,h=I+-8|0,N5=o+(h<<2)|0,Q3=h5,V5=N5,S3=i5;m5=Q3+-16|0,L5=V5+16|0,q5=+s[L5>>2],M5=Q3+-4|0,Y2=+s[M5>>2],p5=Y2*q5,$5=V5+24|0,y5=+s[$5>>2],T1=Q3+-8|0,D5=+s[T1>>2],d5=D5*y5,l5=d5+p5,s[S3>>2]=l5,X2=+s[L5>>2],g2=+s[T1>>2],w5=g2*X2,r5=+s[$5>>2],a5=+s[M5>>2],z2=a5*r5,f5=w5-z2,n5=S3+4|0,s[n5>>2]=f5,R5=+s[V5>>2],e5=Q3+-12|0,c5=+s[e5>>2],F2=c5*R5,v5=V5+8|0,J5=+s[v5>>2],i3=+s[m5>>2],I3=i3*J5,h3=I3+F2,K5=S3+8|0,s[K5>>2]=h3,r3=+s[V5>>2],a3=+s[m5>>2],B3=a3*r3,G5=+s[v5>>2],W5=+s[e5>>2],D3=W5*G5,f3=B3-D3,X3=S3+12|0,s[X3>>2]=f3,q3=V5+-32|0,X5=S3+16|0,b3=q3>>>0>>0,!b3;)Q3=m5,V5=q3,S3=X5;for($6=t+4|0,n3=e[$6>>2]|0,CQ(n3,u5,Q5,I),l3=e[t>>2]|0,N3=e[M2>>2]|0,E6=t+12|0,k3=e[E6>>2]|0,BQ(l3,N3,k3,a),t3=e[M2>>2]|0,s6=t3+(I<<2)|0,z5=s6,S5=a,a6=i5,Z5=i5;T3=a6+-16|0,H3=+s[S5>>2],c3=z5+4|0,g3=+s[c3>>2],Q=g3*H3,B=S5+4|0,S=+s[B>>2],b=+s[z5>>2],v=b*S,w=Q-v,D=a6+-4|0,s[D>>2]=w,y=+s[S5>>2],x=+s[z5>>2],M=x*y,R=+s[B>>2],F=+s[c3>>2],T=F*R,N=M+T,G=-N,s[Z5>>2]=G,V=S5+8|0,X=+s[V>>2],K=z5+12|0,a0=+s[K>>2],W=a0*X,s0=S5+12|0,J=+s[s0>>2],o0=z5+8|0,q=+s[o0>>2],d0=q*J,t0=W-d0,j=a6+-8|0,s[j>>2]=t0,u0=+s[V>>2],c0=+s[o0>>2],$0=c0*u0,Z=+s[s0>>2],I0=+s[K>>2],g0=I0*Z,f0=$0+g0,n0=-f0,h0=Z5+4|0,s[h0>>2]=n0,p0=S5+16|0,C0=+s[p0>>2],S0=z5+20|0,Q0=+s[S0>>2],E0=Q0*C0,y0=S5+20|0,w0=+s[y0>>2],B0=z5+16|0,_0=+s[B0>>2],K0=_0*w0,M0=E0-K0,v0=a6+-12|0,s[v0>>2]=M0,T0=+s[p0>>2],N0=+s[B0>>2],O0=N0*T0,k0=+s[y0>>2],V0=+s[S0>>2],F0=V0*k0,L0=O0+F0,G0=-L0,z0=Z5+8|0,s[z0>>2]=G0,J0=S5+24|0,q0=+s[J0>>2],Z0=z5+28|0,H0=+s[Z0>>2],o1=H0*q0,Y0=S5+28|0,i1=+s[Y0>>2],x0=z5+24|0,n1=+s[x0>>2],d1=n1*i1,g1=o1-d1,s[T3>>2]=g1,m1=+s[J0>>2],h1=+s[x0>>2],A1=h1*m1,c1=+s[Y0>>2],s1=+s[Z0>>2],$1=s1*c1,j0=A1+$1,E1=-j0,I1=Z5+12|0,s[I1>>2]=E1,Q1=Z5+16|0,p1=S5+32|0,B1=z5+32|0,v1=p1>>>0>>0,v1;)z5=B1,S5=p1,a6=T3,Z5=Q1;for(k1=a+(j1<<2)|0,Y3=i5,i6=k1,x3=k1;;)if(L1=i6+-16|0,M1=Y3+-16|0,S1=Y3+-4|0,D1=+s[S1>>2],R1=i6+-4|0,s[R1>>2]=D1,F1=-D1,s[x3>>2]=F1,U1=Y3+-8|0,b1=+s[U1>>2],Z1=i6+-8|0,s[Z1>>2]=b1,G1=-b1,x1=x3+4|0,s[x1>>2]=G1,z1=Y3+-12|0,q1=+s[z1>>2],H1=i6+-12|0,s[H1>>2]=q1,Y1=-q1,V1=x3+8|0,s[V1>>2]=Y1,X1=+s[M1>>2],s[L1>>2]=X1,n2=-X1,c2=x3+12|0,s[c2>>2]=n2,W1=x3+16|0,h2=W1>>>0>>0,h2)Y3=M1,i6=L1,x3=W1;else{U5=i5,V3=i5;break}for(;s2=V3+-16|0,E2=U5+12|0,a2=e[E2>>2]|0,e[s2>>2]=a2,K1=U5+8|0,d2=e[K1>>2]|0,$2=V3+-12|0,e[$2>>2]=d2,i2=U5+4|0,r2=e[i2>>2]|0,A2=V3+-8|0,e[A2>>2]=r2,e2=e[U5>>2]|0,o2=V3+-4|0,e[o2>>2]=e2,f2=U5+16|0,t2=s2>>>0>Q5>>>0,t2;)U5=f2,V3=s2}function EQ(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0;if(J5=C,v=e[t>>2]|0,w=v>>1,o1=v>>2,c1=v>>3,k1=v<<2,$=k1,G1=C,C=C+((1*$|0)+15&-16)|0,c2=G1+(w<<2)|0,g=w+o1|0,r2=o+(g<<2)|0,L2=t+8|0,N1=e[L2>>2]|0,D=N1+(w<<2)|0,X=(c1|0)>0,X){for(h=g+1|0,j=o+(h<<2)|0,p0=c1+-1|0,M0=p0>>>1,z0=M0<<1,q0=w+-2|0,Z0=q0-z0|0,P0=g+-4|0,H0=M0<<2,Y0=P0-H0|0,s5=D,L5=0,h5=r2,R5=j;i1=h5+-16|0,x0=s5+-8|0,n1=h5+-8|0,d1=+s[n1>>2],g1=+s[R5>>2],m1=g1+d1,h1=+s[i1>>2],u1=R5+8|0,A1=+s[u1>>2],s1=A1+h1,$1=s5+-4|0,j0=+s[$1>>2],E1=s1*j0,I1=+s[x0>>2],Q1=I1*m1,p1=Q1+E1,S=L5+w|0,B1=G1+(S<<2)|0,s[B1>>2]=p1,w1=+s[x0>>2],v1=w1*s1,L1=+s[$1>>2],M1=L1*m1,S1=v1-M1,D1=L5|1,b=D1+w|0,R1=G1+(b<<2)|0,s[R1>>2]=S1,F1=R5+16|0,U1=L5+2|0,b1=(U1|0)<(c1|0),b1;)s5=x0,L5=U1,h5=i1,R5=F1;P1=z0+2|0,g2=N1+(Z0<<2)|0,w5=o+(Y0<<2)|0,H2=Z0,B5=g2,m5=P1,a5=w5}else H2=w,B5=D,m5=0,a5=r2;if(Z1=o+4|0,x1=w-c1|0,z1=(m5|0)<(x1|0),z1){for(q1=w+-1|0,H1=q1-m5|0,Y1=H1-c1|0,V1=Y1>>>1,X1=V1<<1,n2=m5+X1|0,j1=V1<<2,O1=j1+5|0,W1=-2-X1|0,M2=B5,M5=m5,z2=a5,c5=Z1;h2=M2+-8|0,s2=z2+-16|0,E2=z2+-8|0,a2=+s[E2>>2],K1=+s[c5>>2],d2=a2-K1,$2=+s[s2>>2],i2=c5+8|0,l2=+s[i2>>2],A2=$2-l2,e2=M2+-4|0,o2=+s[e2>>2],f2=A2*o2,t2=+s[h2>>2],k2=t2*d2,D2=k2+f2,E=M5+w|0,S2=G1+(E<<2)|0,s[S2>>2]=D2,Q2=+s[h2>>2],N2=Q2*A2,U2=+s[e2>>2],m2=U2*d2,W2=N2-m2,P2=M5|1,Q=P2+w|0,V2=G1+(Q<<2)|0,s[V2>>2]=W2,G2=c5+16|0,q2=M5+2|0,Z2=(q2|0)<(x1|0),Z2;)M2=h2,M5=q2,z2=s2,c5=G2;A5=n2+2|0,l5=o+(O1<<2)|0,B=H2+W1|0,X2=N1+(B<<2)|0,R2=X2,q5=A5,e5=l5}else R2=B5,q5=m5,e5=Z1;if(t5=(q5|0)<(w|0),t5)for(T5=o+(v<<2)|0,y2=R2,Y2=q5,f5=T5,F2=e5;i5=y2+-8|0,x5=f5+-16|0,j2=f5+-8|0,I5=+s[j2>>2],b5=-I5,Y5=+s[F2>>2],g5=b5-Y5,b2=+s[x5>>2],y=-b2,x=F2+8|0,M=+s[x>>2],L=y-M,R=y2+-4|0,F=+s[R>>2],T=L*F,N=+s[i5>>2],G=N*g5,V=G+T,m=Y2+w|0,K=G1+(m<<2)|0,s[K>>2]=V,a0=+s[i5>>2],W=a0*L,r0=+s[R>>2],s0=r0*g5,J=W-s0,o0=Y2|1,I=o0+w|0,q=G1+(I<<2)|0,s[q>>2]=J,d0=F2+16|0,t0=Y2+2|0,u0=(t0|0)<(w|0),u0;)y2=i5,Y2=t0,f5=x5,F2=d0;if($5=t+4|0,u5=e[$5>>2]|0,CQ(u5,N1,c2,w),d5=e[t>>2]|0,y5=e[L2>>2]|0,T1=t+12|0,D5=e[T1>>2]|0,BQ(d5,y5,D5,G1),c0=(o1|0)>0,!c0){C=J5;return}for($0=a+(w<<2)|0,l0=e[L2>>2]|0,Z=l0+(w<<2)|0,I0=t+16|0,Q5=Z,p5=0,r5=G1,n5=$0;g0=n5+-4|0,f0=+s[r5>>2],n0=+s[Q5>>2],h0=n0*f0,C0=r5+4|0,S0=+s[C0>>2],Q0=Q5+4|0,b0=+s[Q0>>2],E0=b0*S0,y0=E0+h0,w0=+s[I0>>2],B0=y0*w0,_0=a+(p5<<2)|0,s[_0>>2]=B0,K0=+s[r5>>2],v0=+s[Q0>>2],T0=v0*K0,N0=+s[C0>>2],U0=+s[Q5>>2],O0=U0*N0,k0=T0-O0,V0=+s[I0>>2],F0=k0*V0,s[g0>>2]=F0,L0=r5+8|0,G0=Q5+8|0,J0=p5+1|0,N5=(J0|0)==(o1|0),!N5;)Q5=G0,p5=J0,r5=L0,n5=g0;C=J5}function CQ(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0,H8=0,K8=0,R8=0,u8=0,F8=0,g4=0,Y8=0,W8=0,ht=0,Nt=0,T8=0,Xt=0,O4=0,B4=0,ae=0,N8=0,Ai=0,Oi=0,qi=0,Hi=0,pi=0,Z8=0,Ei=0,j8=0,Ci=0,X8=0,Bi=0,$i=0,c7=0,Yi=0,Qi=0,yi=0,g7=0,wi=0,li=0,u7=0,Vi=0,Ji=0,zi=0,Ki=0,ci=0,vi=0,Wi=0,ei=0,gi=0,V8=0,ti=0,d7=0,Zi=0,h7=0,ki=0,ji=0,Si=0,bi=0,Xi=0,Di=0,ii=0,_i=0,e7=0,ui=0,J8=0,xi=0,x4=0,Li=0,G8=0,di=0,l9=0,B8=0,vt=0,Q8=0,U8=0,nn=0,yr=0;if(yr=C,C0=t+-6|0,S0=(t|0)>6,S0)for(I=$+-8|0,Y5=a+(I<<2)|0,R3=$>>1,B=R3+-8|0,e8=a+(B<<2)|0,g=o,B8=Y5,Q8=e8;ht=B8+24|0,Hi=+s[ht>>2],Qi=Q8+24|0,vi=+s[Qi>>2],Si=Hi-vi,Q0=B8+28|0,N0=+s[Q0>>2],Z0=Q8+28|0,h1=+s[Z0>>2],B1=N0-h1,b1=vi+Hi,s[ht>>2]=b1,n2=+s[Z0>>2],$2=n2+N0,s[Q0>>2]=$2,S2=g+4|0,Z2=+s[S2>>2],g5=Z2*B1,q5=+s[g>>2],X2=q5*Si,c5=X2+g5,s[Qi>>2]=c5,B3=+s[g>>2],s6=B3*B1,Y3=+s[S2>>2],i6=Y3*Si,S6=s6-i6,s[Z0>>2]=S6,z3=B8+16|0,Y6=+s[z3>>2],c9=Q8+16|0,o9=+s[c9>>2],w9=Y6-o9,Re=B8+20|0,Ve=+s[Re>>2],V4=Q8+20|0,fe=+s[V4>>2],f6=Ve-fe,xe=o9+Y6,s[z3>>2]=xe,I8=+s[V4>>2],Vt=I8+Ve,s[Re>>2]=Vt,at=g+20|0,Kt=+s[at>>2],Bt=Kt*f6,_4=g+16|0,T9=+s[_4>>2],Ft=T9*w9,u8=Ft+Bt,s[c9>>2]=u8,W8=+s[_4>>2],Nt=W8*f6,T8=+s[at>>2],Xt=T8*w9,O4=Nt-Xt,s[V4>>2]=O4,B4=B8+8|0,ae=+s[B4>>2],N8=Q8+8|0,Ai=+s[N8>>2],Oi=ae-Ai,qi=B8+12|0,pi=+s[qi>>2],Z8=Q8+12|0,Ei=+s[Z8>>2],j8=pi-Ei,Ci=Ai+ae,s[B4>>2]=Ci,X8=+s[Z8>>2],Bi=X8+pi,s[qi>>2]=Bi,$i=g+36|0,c7=+s[$i>>2],Yi=c7*j8,yi=g+32|0,g7=+s[yi>>2],wi=g7*Oi,li=wi+Yi,s[N8>>2]=li,u7=+s[yi>>2],Vi=u7*j8,Ji=+s[$i>>2],zi=Ji*Oi,Ki=Vi-zi,s[Z8>>2]=Ki,ci=+s[B8>>2],Wi=+s[Q8>>2],ei=ci-Wi,gi=B8+4|0,V8=+s[gi>>2],ti=Q8+4|0,d7=+s[ti>>2],Zi=V8-d7,h7=Wi+ci,s[B8>>2]=h7,ki=+s[ti>>2],ji=ki+V8,s[gi>>2]=ji,bi=g+52|0,Xi=+s[bi>>2],Di=Xi*Zi,ii=g+48|0,_i=+s[ii>>2],e7=_i*ei,ui=e7+Di,s[Q8>>2]=ui,J8=+s[ii>>2],xi=J8*Zi,x4=+s[bi>>2],b0=x4*ei,E0=xi-b0,s[ti>>2]=E0,y0=B8+-32|0,w0=Q8+-32|0,B0=g+64|0,_0=w0>>>0>>0,!_0;)g=B0,B8=y0,Q8=w0;if(K0=(C0|0)>1,K0)for(G8=1;;){if(M0=1<>G8,U0=4<>1,S=O0+-8|0,N=U0+1|0,d0=U0<<1,$0=d0|1,I0=U0*3|0,f0=I0+1|0,h0=U0<<2,di=0;;){for(V0=o5(di,T0)|0,F0=a+(V0<<2)|0,m=E+V0|0,L0=a+(m<<2)|0,u0=S+V0|0,G0=a+(u0<<2)|0,h=o,vt=L0,U8=G0;z0=vt+24|0,J0=+s[z0>>2],q0=U8+24|0,P0=+s[q0>>2],H0=J0-P0,o1=vt+28|0,Y0=+s[o1>>2],i1=U8+28|0,x0=+s[i1>>2],n1=Y0-x0,d1=P0+J0,s[z0>>2]=d1,g1=+s[i1>>2],m1=g1+Y0,s[o1>>2]=m1,u1=h+4|0,A1=+s[u1>>2],c1=A1*n1,s1=+s[h>>2],$1=s1*H0,j0=$1+c1,s[q0>>2]=j0,E1=+s[h>>2],I1=E1*n1,Q1=+s[u1>>2],p1=Q1*H0,w1=I1-p1,s[i1>>2]=w1,v1=h+(U0<<2)|0,k1=vt+16|0,L1=+s[k1>>2],M1=U8+16|0,S1=+s[M1>>2],D1=L1-S1,R1=vt+20|0,F1=+s[R1>>2],U1=U8+20|0,P1=+s[U1>>2],Z1=F1-P1,G1=S1+L1,s[k1>>2]=G1,x1=+s[U1>>2],z1=x1+F1,s[R1>>2]=z1,q1=h+(N<<2)|0,H1=+s[q1>>2],Y1=H1*Z1,V1=+s[v1>>2],X1=V1*D1,j1=X1+Y1,s[M1>>2]=j1,O1=+s[v1>>2],c2=O1*Z1,W1=+s[q1>>2],h2=W1*D1,s2=c2-h2,s[U1>>2]=s2,E2=h+(d0<<2)|0,a2=vt+8|0,K1=+s[a2>>2],d2=U8+8|0,i2=+s[d2>>2],l2=K1-i2,r2=vt+12|0,A2=+s[r2>>2],e2=U8+12|0,o2=+s[e2>>2],f2=A2-o2,t2=i2+K1,s[a2>>2]=t2,k2=+s[e2>>2],D2=k2+A2,s[r2>>2]=D2,Q2=h+($0<<2)|0,N2=+s[Q2>>2],L2=N2*f2,U2=+s[E2>>2],m2=U2*l2,W2=m2+L2,s[d2>>2]=W2,P2=+s[E2>>2],V2=P2*f2,G2=+s[Q2>>2],q2=G2*l2,A5=V2-q2,s[e2>>2]=A5,H2=h+(I0<<2)|0,N1=+s[vt>>2],t5=+s[U8>>2],T5=N1-t5,i5=vt+4|0,x5=+s[i5>>2],j2=U8+4|0,I5=+s[j2>>2],b5=x5-I5,b2=t5+N1,s[vt>>2]=b2,B5=+s[j2>>2],s5=B5+x5,s[i5>>2]=s5,R2=h+(f0<<2)|0,M2=+s[R2>>2],y2=M2*b5,Q5=+s[H2>>2],N5=Q5*T5,m5=N5+y2,s[U8>>2]=m5,L5=+s[H2>>2],M5=L5*b5,Y2=+s[R2>>2],p5=Y2*T5,$5=M5-p5,s[j2>>2]=$5,u5=h+(h0<<2)|0,y5=vt+-32|0,T1=U8+-32|0,D5=T1>>>0>>0,!D5;)h=u5,vt=y5,U8=T1;if(d5=di+1|0,l5=(d5|0)<(M0|0),l5)di=d5;else break}if(g2=G8+1|0,Li=(g2|0)==(C0|0),Li)break;G8=g2}if(k0=($|0)>0,k0)l9=0;else return;for(;w5=a+(l9<<2)|0,Q=l9|30,r5=a+(Q<<2)|0,a5=+s[r5>>2],T=l9|14,h5=a+(T<<2)|0,z2=+s[h5>>2],f5=a5-z2,q=l9|31,n5=a+(q<<2)|0,R5=+s[n5>>2],c0=l9|15,e5=a+(c0<<2)|0,F2=+s[e5>>2],v5=R5-F2,J5=z2+a5,s[r5>>2]=J5,i3=F2+R5,s[n5>>2]=i3,s[h5>>2]=f5,s[e5>>2]=v5,l0=l9|28,E5=a+(l0<<2)|0,I3=+s[E5>>2],Z=l9|12,h3=a+(Z<<2)|0,K5=+s[h3>>2],r3=I3-K5,g0=l9|29,a3=a+(g0<<2)|0,G5=+s[a3>>2],n0=l9|13,W5=a+(n0<<2)|0,D3=+s[W5>>2],f3=G5-D3,y3=K5+I3,s[E5>>2]=y3,X3=D3+G5,s[a3>>2]=X3,q3=r3*.9238795042037964,X5=f3*.3826834261417389,b3=q3-X5,s[h3>>2]=b3,t3=r3*.3826834261417389,T3=f3*.9238795042037964,H3=T3+t3,s[W5>>2]=H3,p0=l9|26,c3=a+(p0<<2)|0,g3=+s[c3>>2],b=l9|10,u3=a+(b<<2)|0,Q3=+s[u3>>2],z5=g3-Q3,v=l9|27,H5=a+(v<<2)|0,V5=+s[H5>>2],w=l9|11,S5=a+(w<<2)|0,U5=+s[S5>>2],$6=V5-U5,n3=Q3+g3,s[c3>>2]=n3,l3=U5+V5,s[H5>>2]=l3,N3=z5-$6,E6=N3*.7071067690849304,s[u3>>2]=E6,k3=$6+z5,_3=k3*.7071067690849304,s[S5>>2]=_3,D=l9|24,S3=a+(D<<2)|0,a6=+s[S3>>2],y=l9|8,V3=a+(y<<2)|0,Z5=+s[V3>>2],x3=a6-Z5,x=l9|25,d3=a+(x<<2)|0,J3=+s[d3>>2],M=l9|9,d6=a+(M<<2)|0,m3=+s[d6>>2],L6=J3-m3,M6=Z5+a6,s[S3>>2]=M6,R6=m3+J3,s[d3>>2]=R6,r6=x3*.3826834261417389,h6=L6*.9238795042037964,b6=r6-h6,G6=L6*.3826834261417389,X6=x3*.9238795042037964,v6=G6+X6,L=l9|22,L3=a+(L<<2)|0,n6=+s[L3>>2],R=l9|6,o6=a+(R<<2)|0,C6=+s[o6>>2],M3=n6-C6,F=l9|7,K3=a+(F<<2)|0,e6=+s[K3>>2],G=l9|23,F6=a+(G<<2)|0,l6=+s[F6>>2],o3=e6-l6,K6=C6+n6,s[L3>>2]=K6,A3=l6+e6,s[F6>>2]=A3,s[o6>>2]=o3,s[K3>>2]=M3,V=l9|4,c6=a+(V<<2)|0,B6=+s[c6>>2],X=l9|20,A6=a+(X<<2)|0,D6=+s[A6>>2],U6=B6-D6,K=l9|5,t9=a+(K<<2)|0,Q6=+s[t9>>2],a0=l9|21,e9=a+(a0<<2)|0,G3=+s[e9>>2],n9=Q6-G3,V6=D6+B6,s[A6>>2]=V6,s9=G3+Q6,s[e9>>2]=s9,P6=n9*.9238795042037964,J6=U6*.3826834261417389,T6=P6+J6,i9=n9*.3826834261417389,_6=U6*.9238795042037964,O6=i9-_6,W=l9|2,U3=a+(W<<2)|0,q6=+s[U3>>2],r0=l9|18,a9=a+(r0<<2)|0,d9=+s[a9>>2],B9=q6-d9,s0=l9|3,Q9=a+(s0<<2)|0,y9=+s[Q9>>2],J=l9|19,h9=a+(J<<2)|0,f9=+s[h9>>2],H9=y9-f9,y6=d9+q6,s[a9>>2]=y6,H6=f9+y9,s[h9>>2]=H6,A9=H9+B9,Y9=A9*.7071067690849304,we=H9-B9,ue=we*.7071067690849304,Ee=+s[w5>>2],o0=l9|16,V9=a+(o0<<2)|0,ie=+s[V9>>2],F9=Ee-ie,t0=l9|1,v9=a+(t0<<2)|0,W6=+s[v9>>2],j=l9|17,$9=a+(j<<2)|0,ve=+s[$9>>2],de=W6-ve,_9=ie+Ee,s[V9>>2]=_9,Fe=ve+W6,s[$9>>2]=Fe,Te=de*.3826834261417389,Ge=F9*.9238795042037964,He=Te+Ge,o4=de*.9238795042037964,ke=F9*.3826834261417389,Ye=o4-ke,J9=Ye-v6,he=He-b6,Ue=He+b6,Ce=Ye+v6,v4=he+J9,W9=J9-he,k9=+s[S5>>2],k4=ue-k9,Y4=+s[u3>>2],nt=Y4-Y9,Je=Y4+Y9,ze=k9+ue,s4=+s[h3>>2],R4=s4-T6,ot=+s[W5>>2],re=ot-O6,d4=s4+T6,Be=ot+O6,N6=R4-re,Ke=re+R4,P9=+s[h5>>2],Ne=P9-o3,h4=+s[e5>>2],ne=h4-M3,f4=o3+P9,I4=M3+h4,Se=Ne+k4,a4=Ne-k4,Pe=N6+v4,m4=Pe*.7071067690849304,S9=N6-v4,J4=S9*.7071067690849304,Ie=m4+Se,s[o6>>2]=Ie,S4=Se-m4,s[c6>>2]=S4,be=Ke-W9,me=be*.7071067690849304,z6=ne-nt,F4=me+a4,s[w5>>2]=F4,T4=a4-me,s[U3>>2]=T4,st=Ke+W9,pe=st*.7071067690849304,mt=ne+nt,W3=z6+J4,s[Q9>>2]=W3,x9=z6-J4,s[v9>>2]=x9,b9=mt+pe,s[K3>>2]=b9,Oe=mt-pe,s[t9>>2]=Oe,A4=f4+Je,h8=f4-Je,N4=Ue+d4,f8=d4-Ue,_8=A4+N4,s[h5>>2]=_8,m8=A4-N4,s[h3>>2]=m8,Ut=Be-Ce,Pt=I4-ze,Ot=h8+Ut,s[V3>>2]=Ot,qt=h8-Ut,s[u3>>2]=qt,t8=Be+Ce,i8=I4+ze,x8=Pt+f8,s[S5>>2]=x8,Ht=Pt-f8,s[d6>>2]=Ht,Yt=i8+t8,s[e5>>2]=Yt,_t=i8-t8,s[W5>>2]=_t,xt=+s[d3>>2],pt=Fe-xt,Jt=+s[S3>>2],zt=_9-Jt,r8=Jt+_9,n8=xt+Fe,Et=zt+pt,z4=pt-zt,G4=+s[h9>>2],Lt=+s[H5>>2],L9=G4-Lt,p8=+s[c3>>2],b4=+s[a9>>2],E8=p8-b4,L8=b4+p8,o8=Lt+G4,M8=+s[E5>>2],$4=+s[A6>>2],s8=M8-$4,Mt=+s[a3>>2],At=+s[e9>>2],We=Mt-At,U4=$4+M8,$t=At+Mt,Ct=s8-We,Rt=We+s8,p4=+s[r5>>2],oe=+s[L3>>2],lt=p4-oe,ct=+s[n5>>2],Qt=+s[F6>>2],E4=ct-Qt,D4=oe+p4,K4=Qt+ct,W4=lt+L9,se=lt-L9,P4=Ct+Et,C4=P4*.7071067690849304,gt=Ct-Et,De=gt*.7071067690849304,yt=C4+W4,s[L3>>2]=yt,a8=W4-C4,s[A6>>2]=a8,Ze=Rt-z4,E3=Ze*.7071067690849304,Z4=E4-E8,wt=E3+se,s[V9>>2]=wt,l4=se-E3,s[a9>>2]=l4,Z9=Rt+z4,c4=Z9*.7071067690849304,j4=E4+E8,Wt=Z4+De,s[h9>>2]=Wt,C8=Z4-De,s[$9>>2]=C8,A8=j4+c4,s[F6>>2]=A8,$8=j4-c4,s[e9>>2]=$8,Zt=D4+L8,l8=D4-L8,jt=U4+r8,ut=U4-r8,dt=Zt+jt,s[r5>>2]=dt,je=Zt-jt,s[E5>>2]=je,c8=$t-n8,Tt=K4-o8,X4=l8+c8,s[S3>>2]=X4,D9=l8-c8,s[c3>>2]=D9,g8=$t+n8,et=K4+o8,H8=Tt+ut,s[H5>>2]=H8,K8=Tt-ut,s[d3>>2]=K8,R8=et+g8,s[n5>>2]=R8,F8=et-g8,s[a3>>2]=F8,g4=l9+32|0,Y8=(g4|0)<($|0),Y8;)l9=g4}function BQ(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0;for(Q1=C,b=t>>1,v=$+(b<<2)|0,G=o+(t<<2)|0,s1=G,$1=a,j0=$,E1=v;d0=e[$1>>2]|0,g=d0+b|0,n0=$+(g<<2)|0,_0=$1+4|0,L0=e[_0>>2]|0,h=L0+b|0,x0=$+(h<<2)|0,m=g+1|0,A1=$+(m<<2)|0,c1=+s[A1>>2],I=h+1|0,w=$+(I<<2)|0,D=+s[w>>2],y=c1-D,x=+s[n0>>2],M=+s[x0>>2],L=M+x,R=+s[s1>>2],F=L*R,T=s1+4|0,N=+s[T>>2],V=N*y,X=V+F,K=N*L,a0=R*y,W=K-a0,r0=E1+-16|0,s0=D+c1,J=s0*.5,o0=x-M,q=o0*.5,t0=X+J,s[j0>>2]=t0,j=J-X,u0=E1+-8|0,s[u0>>2]=j,c0=W+q,$0=j0+4|0,s[$0>>2]=c0,l0=W-q,Z=E1+-4|0,s[Z>>2]=l0,I0=$1+8|0,g0=e[I0>>2]|0,E=g0+b|0,f0=$+(E<<2)|0,h0=$1+12|0,p0=e[h0>>2]|0,Q=p0+b|0,C0=$+(Q<<2)|0,B=E+1|0,S0=$+(B<<2)|0,Q0=+s[S0>>2],S=Q+1|0,b0=$+(S<<2)|0,E0=+s[b0>>2],y0=Q0-E0,w0=+s[f0>>2],B0=+s[C0>>2],K0=B0+w0,M0=s1+8|0,v0=+s[M0>>2],T0=K0*v0,N0=s1+12|0,U0=+s[N0>>2],O0=U0*y0,k0=O0+T0,V0=U0*K0,F0=v0*y0,G0=V0-F0,z0=E0+Q0,J0=z0*.5,q0=w0-B0,Z0=q0*.5,P0=k0+J0,H0=j0+8|0,s[H0>>2]=P0,o1=J0-k0,s[r0>>2]=o1,Y0=G0+Z0,i1=j0+12|0,s[i1>>2]=Y0,n1=G0-Z0,d1=E1+-12|0,s[d1>>2]=n1,g1=s1+16|0,m1=$1+16|0,h1=j0+16|0,u1=h1>>>0>>0,u1;)s1=g1,$1=m1,j0=h1,E1=r0}function Bb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0;return B=C,o=t+28|0,a=e[o>>2]|0,$=a+2868|0,g=ce(1,36)|0,h=t+4|0,m=e[h>>2]|0,I=g+4|0,e[I>>2]=m,s[g>>2]=-9999,E=g+8|0,e[E>>2]=$,g|0}function Qb(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,!o&&p2(t)}function yb(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,o||p2(t)}function wb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0;A9=C,y6=t,Y9=y6+48|0;do e[y6>>2]=0,y6=y6+4|0;while((y6|0)<(Y9|0));x=e[a>>2]|0,M=t+36|0,e[M>>2]=x,i2=+(x|0),i3=i2*8,f3=i3,g3=+tn(+f3),l3=g3*1.4426950408889634,d3=+z7(l3),G6=d3+-1,F6=~~G6,L=t+32|0,e[L>>2]=F6,r0=+(g|0),l0=r0*.25,b0=l0,U0=b0*.5,P0=+($|0),u1=U0/P0,w1=+tn(+u1),P1=w1*1.4426950216293335,j1=P1+-5.965784072875977,l2=F6+1|0,N2=1<>2]=c5,v5=+($|0),J5=v5+.25,E5=J5*r0,I3=E5,h3=I3*.5,K5=h3/P0,r3=+tn(+K5),a3=r3*1.4426950216293335,B3=a3+-5.965784072875977,G5=H2*B3,W5=G5+.5,D3=~~W5,y3=1-c5|0,X3=y3+D3|0,q3=t+40|0,e[q3>>2]=X3,X5=$<<2,b3=R9(X5)|0,t3=t+16|0,e[t3>>2]=b3,s6=R9(X5)|0,T3=t+20|0,e[T3>>2]=s6,H3=R9(X5)|0,c3=t+24|0,e[c3>>2]=H3,u3=t+4|0,e[u3>>2]=o,e[t>>2]=$,Q3=t+44|0,e[Q3>>2]=g,z5=t+48|0,s[z5>>2]=1,H5=(g|0)<26e3;do if(H5)s[z5>>2]=0;else{if(V5=(g|0)<38e3,V5){s[z5>>2]=.9399999976158142;break}S5=(g|0)>46e3,S5&&(s[z5>>2]=1.274999976158142)}while(!1);Y3=P0*2,U5=+(g|0),$6=($|0)>0,k3=$6,i9=0,o9=0;e:for(;;){for(Q=k3^1,_6=i9;;){if(S3=_6+1|0,a6=+(S3|0),i6=a6*.08664337545633316,V3=i6+2.7488713472395148,Z5=+Yn(+V3),x3=Y3*Z5,J3=x3/U5,d6=+z7(J3),m3=~~d6,E=(m3|0)<=(o9|0),t9=E|Q,!t9){m=S3,I=m3,O6=_6;break}if(L6=(S3|0)<87,L6)_6=S3;else{d9=o9;break e}}for(M6=1272+(O6<<2)|0,R6=+s[M6>>2],S6=1272+(m<<2)|0,r6=+s[S6>>2],h6=r6-R6,b6=I-o9|0,X6=+(b6|0),v6=h6/X6,L3=o9-I|0,n6=o9-$|0,o6=L3>>>0>n6>>>0,H9=o6?L3:n6,n3=o9-H9|0,U6=R6,B9=o9;C6=U6+100,z3=b3+(B9<<2)|0,s[z3>>2]=C6,M3=U6+v6,K3=B9+1|0,V6=(K3|0)==(n3|0),!V6;)U6=M3,B9=K3;if(N3=(n3|0)<($|0),E6=(m|0)<87,E6)k3=N3,i9=m,o9=n3;else{d9=n3;break}}if(_3=(d9|0)<($|0),_3)for(Q9=d9;Y6=Q9+-1|0,A6=b3+(Y6<<2)|0,D6=e[A6>>2]|0,R=b3+(Q9<<2)|0,e[R>>2]=D6,F=Q9+1|0,n9=(F|0)==($|0),!n9;)Q9=F;if(e6=($|0)>0,e6){for(l6=$<<1,o3=(g|0)/(l6|0)&-1,K6=o+120|0,A3=e[K6>>2]|0,c6=o+124|0,B6=o+116|0,R3=o+112|0,P6=1,U3=0,y9=-99;;){K=o5(o3,U3)|0,a0=+(K|0),W=a0*.0007399999885819852,s0=W,J=+ts(+s0),o0=J*13.100000381469727,q=o5(K,K)|0,d0=+(q|0),t0=d0*18499999754340024e-24,j=t0,u0=+ts(+j),c0=u0*2.240000009536743,$0=c0+o0,Z=a0*9999999747378752e-20,I0=Z,g0=$0+I0,f0=g0,n0=A3+y9|0,h0=(n0|0)<(U3|0);e:do if(h0)for(p0=+s[R3>>2],C0=f0-p0,S0=C0,f9=y9;;){if(Q0=o5(f9,o3)|0,E0=+(Q0|0),y0=E0*.0007399999885819852,w0=y0,B0=+ts(+w0),_0=B0*13.100000381469727,K0=o5(Q0,Q0)|0,M0=+(K0|0),v0=M0*18499999754340024e-24,T0=v0,N0=+ts(+T0),O0=N0*2.240000009536743,k0=E0*9999999747378752e-20,V0=k0,F0=_0+V0,L0=F0+O0,G0=L0($|0);e:do if(z0)J6=P6;else for(J0=e[c6>>2]|0,q0=J0+U3|0,T6=P6;;){if(Y0=(T6|0)<(q0|0),!Y0&&(i1=o5(T6,o3)|0,x0=+(i1|0),n1=x0*.0007399999885819852,d1=n1,g1=+ts(+d1),m1=g1*13.100000381469727,h1=o5(i1,i1)|0,A1=+(h1|0),c1=A1*18499999754340024e-24,s1=c1,$1=+ts(+s1),j0=$1*2.240000009536743,E1=x0*9999999747378752e-20,I1=E1,Q1=m1+I1,p1=Q1+j0,B1=+s[B6>>2],v1=B1+f0,k1=v1,L1=p1>2]=F1,b1=U3+1|0,G3=(b1|0)==($|0),G3)break;P6=J6,U3=b1,y9=h9}if(e6)for(T=U5*.5,N=e[L>>2]|0,G=N+1|0,V=1<>2]=O1,W1=q6+1|0,e9=(W1|0)==($|0),e9){v=T;break}else q6=W1;else H6=19}else H6=19;if((H6|0)==19&&(y=U5*.5,v=y),h2=o+36|0,s2=v/P0,E2=s2,a2=o+24|0,K1=+s[a2>>2],d2=o+28|0,$2=+s[d2>>2],r2=Sb(h2,E2,$,K1,$2)|0,A2=t+8|0,e[A2>>2]=r2,e2=R9(12)|0,o2=t+12|0,e[o2>>2]=e2,f2=R9(X5)|0,e[e2>>2]=f2,t2=R9(X5)|0,k2=e2+4|0,e[k2>>2]=t2,D2=R9(X5)|0,S2=e2+8|0,e[S2>>2]=D2,!!e6)for(Q2=e[u3>>2]|0,b=e[e2>>2]|0,B=e2+4|0,w=e[B>>2]|0,S=e2+8|0,D=e[S>>2]|0,a9=0;L2=+(a9|0),U2=L2+.5,m2=U2*U5,W2=m2/Y3,P2=+tn(+W2),V2=P2*2.885390043258667,G2=V2+-11.931568145751953,q2=G2,Z2=q2<0,s9=Z2?0:q2,h=s9>=16,c9=h?16:s9,A5=~~c9,N1=+(A5|0),t5=c9-N1,T5=t5,i5=1-T5,x5=A5+1|0,j2=(Q2+132|0)+(A5<<2)|0,I5=+s[j2>>2],b5=I5,Y5=b5*i5,g5=(Q2+132|0)+(x5<<2)|0,B5=+s[g5>>2],s5=B5*t5,R2=s5,M2=R2+Y5,y2=M2,Q5=b+(a9<<2)|0,s[Q5>>2]=y2,N5=(Q2+200|0)+(A5<<2)|0,m5=+s[N5>>2],L5=m5,q5=L5*i5,Y2=(Q2+200|0)+(x5<<2)|0,p5=+s[Y2>>2],$5=p5*t5,u5=$5,y5=u5+q5,T1=y5,D5=w+(a9<<2)|0,s[D5>>2]=T1,d5=(Q2+268|0)+(A5<<2)|0,l5=+s[d5>>2],X2=l5,w5=X2*i5,r5=(Q2+268|0)+(x5<<2)|0,a5=+s[r5>>2],h5=a5*t5,z2=h5,f5=z2+w5,n5=f5,R5=D+(a9<<2)|0,s[R5>>2]=n5,e5=a9+1|0,Q6=(e5|0)==($|0),!Q6;)a9=e5}function QQ(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0;if(P0=C,a=(t|0)==0,!a){if($=t+16|0,w=e[$>>2]|0,V=(w|0)==0,V||p2(w),t0=t+20|0,h0=e[t0>>2]|0,K0=(h0|0)==0,K0||p2(h0),F0=t+24|0,L0=e[F0>>2]|0,G0=(L0|0)==0,G0||p2(L0),g=t+8|0,h=e[g>>2]|0,m=(h|0)==0,!m){for(E=h,J0=0;I=E+(J0<<2)|0,Q=e[I>>2]|0,B=e[Q>>2]|0,p2(B),S=e[g>>2]|0,b=S+(J0<<2)|0,v=e[b>>2]|0,D=v+4|0,y=e[D>>2]|0,p2(y),x=e[g>>2]|0,M=x+(J0<<2)|0,L=e[M>>2]|0,R=L+8|0,F=e[R>>2]|0,p2(F),T=e[g>>2]|0,N=T+(J0<<2)|0,G=e[N>>2]|0,X=G+12|0,K=e[X>>2]|0,p2(K),a0=e[g>>2]|0,W=a0+(J0<<2)|0,r0=e[W>>2]|0,s0=r0+16|0,J=e[s0>>2]|0,p2(J),o0=e[g>>2]|0,q=o0+(J0<<2)|0,d0=e[q>>2]|0,j=d0+20|0,u0=e[j>>2]|0,p2(u0),c0=e[g>>2]|0,$0=c0+(J0<<2)|0,l0=e[$0>>2]|0,Z=l0+24|0,I0=e[Z>>2]|0,p2(I0),g0=e[g>>2]|0,f0=g0+(J0<<2)|0,n0=e[f0>>2]|0,p0=n0+28|0,C0=e[p0>>2]|0,p2(C0),S0=e[g>>2]|0,Q0=S0+(J0<<2)|0,b0=e[Q0>>2]|0,p2(b0),E0=J0+1|0,z0=(E0|0)==17,!z0;)o=e[g>>2]|0,E=o,J0=E0;y0=e[g>>2]|0,p2(y0)}w0=t+12|0,B0=e[w0>>2]|0,_0=(B0|0)==0,_0||(M0=e[B0>>2]|0,p2(M0),v0=e[w0>>2]|0,T0=v0+4|0,N0=e[T0>>2]|0,p2(N0),U0=e[w0>>2]|0,O0=U0+8|0,k0=e[O0>>2]|0,p2(k0),V0=e[w0>>2]|0,p2(V0)),q0=t,H0=q0+52|0;do e[q0>>2]=0,q0=q0+4|0;while((q0|0)<(H0|0))}}function yQ(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0;if(Q0=C,m=e[t>>2]|0,I=m<<2,h=I,M=C,C=C+((1*h|0)+15&-16)|0,W=t+24|0,u0=e[W>>2]|0,vQ(m,u0,o,a,140,-1),c0=(m|0)>0,c0)for(h0=0;$0=o+(h0<<2)|0,l0=+s[$0>>2],Z=a+(h0<<2)|0,I0=+s[Z>>2],E=l0-I0,Q=M+(h0<<2)|0,s[Q>>2]=E,B=h0+1|0,f0=(B|0)==(m|0),!f0;)h0=B;if(S=e[W>>2]|0,b=t+4|0,v=e[b>>2]|0,w=v+128|0,D=e[w>>2]|0,vQ(m,S,M,a,0,D),c0)p0=0;else{C=Q0;return}for(;x=o+(p0<<2)|0,L=+s[x>>2],R=M+(p0<<2)|0,F=+s[R>>2],T=L-F,s[R>>2]=T,N=p0+1|0,n0=(N|0)==(m|0),!n0;)p0=N;if(!c0){C=Q0;return}for(y=e[b>>2]|0,C0=0;G=a+(C0<<2)|0,V=+s[G>>2],X=V,K=X+.5,a0=~~K,r0=(a0|0)>39,$=r0?39:a0,s0=($|0)<0,g=s0?0:$,J=M+(C0<<2)|0,o0=+s[J>>2],q=(y+336|0)+(g<<2)|0,d0=+s[q>>2],t0=d0+o0,s[G>>2]=t0,j=C0+1|0,g0=(j|0)==(m|0),!g0;)C0=j;C=Q0}function wQ(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=+$,g=+g;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0;if(E5=C,F=e[t>>2]|0,T=t+40|0,u1=e[T>>2]|0,w1=u1<<2,I=w1,P1=C,C=C+((1*I|0)+15&-16)|0,j1=t+4|0,i2=e[j1>>2]|0,Q2=i2+4|0,A5=+s[Q2>>2],g5=A5+g,N=(u1|0)>0,N)for($5=0;q=P1+($5<<2)|0,s[q>>2]=-9999,f0=$5+1|0,B0=(f0|0)<(u1|0),B0;)$5=f0;if(F0=i2+8|0,i1=+s[F0>>2],d1=g50,g1){for(m1=t+16|0,h1=e[m1>>2]|0,d5=0;A1=h1+(d5<<2)|0,c1=+s[A1>>2],s1=c1+q5,$1=a+(d5<<2)|0,s[$1>>2]=s1,j0=d5+1|0,Y2=(j0|0)==(F|0),!Y2;)d5=j0;if(E1=t+8|0,I1=e[E1>>2]|0,Q1=i2+496|0,p1=+s[Q1>>2],B1=p1-$,g1)for(v1=t+20|0,k1=e[v1>>2]|0,L1=t+32|0,M1=t+36|0,S1=t+28|0,u5=0;;){D1=o+(u5<<2)|0,R1=+s[D1>>2],F1=k1+(u5<<2)|0,U1=e[F1>>2]|0,D5=u5,a5=R1;e:for(;;)for(y5=D5;;){if(b1=y5+1|0,Z1=(b1|0)<(F|0),!Z1){S=0,v=b1,T1=y5,h5=a5;break e}if(G1=k1+(b1<<2)|0,x1=e[G1>>2]|0,z1=(x1|0)==(U1|0),!z1){S=1,v=b1,T1=y5,h5=a5;break e}if(q1=o+(b1<<2)|0,H1=+s[q1>>2],Y1=H1>a5,Y1){D5=b1,a5=H1;continue e}else y5=b1}if(V1=h5+6,X1=a+(T1<<2)|0,n2=+s[X1>>2],O1=V1>n2,O1&&(c2=e[L1>>2]|0,W1=U1>>c2,h2=(W1|0)>16,m=h2?16:W1,s2=(m|0)<0,h=s2?0:m,E2=I1+(h<<2)|0,a2=e[E2>>2]|0,K1=e[M1>>2]|0,d2=B1+h5,$2=d2,l2=$2+-30,r2=l2*.10000000149011612,A2=~~r2,e2=(A2|0)<0,o2=e2?0:A2,f2=(o2|0)>7,t2=f2?7:o2,k2=a2+(t2<<2)|0,D2=e[k2>>2]|0,S2=D2+4|0,N2=+s[S2>>2],L2=~~N2,U2=+s[D2>>2],m2=~~U2,W2=(m2|0)<(L2|0),W2))for(P2=k1+(T1<<2)|0,V2=e[P2>>2]|0,G2=e[S1>>2]|0,q2=V2-G2|0,Z2=+(q2|0),H2=K1>>1,N1=+(H2|0),t5=U2+-16,T5=+(K1|0),i5=t5*T5,x5=i5-N1,j2=x5+Z2,I5=~~j2,p5=m2,J5=I5;b5=(J5|0)>0,b5&&(R=p5+2|0,Y5=D2+(R<<2)|0,b2=+s[Y5>>2],B5=b2+h5,s5=P1+(J5<<2)|0,R2=+s[s5>>2],M2=R2>2]=B5)),y2=J5+K1|0,Q5=(y2|0)<(u1|0),N5=p5+1|0,m5=(N5|0)<(L2|0),c5=m5&Q5,c5;)p5=N5,J5=y2;if(S)u5=v;else{M=M1;break}}else i3=7}else i3=7;(i3|0)==7&&(y=t+36|0,M=y),L5=e[M>>2]|0,bb(P1,L5,u1),G=e[t>>2]|0,V=(G|0)>1;e:do if(V)for(X=t+20|0,K=t+28|0,a0=e[X>>2]|0,W=e[a0>>2]|0,r0=L5>>1,s0=W-r0|0,J=e[K>>2]|0,o0=s0-J|0,d0=e[j1>>2]|0,t0=d0+32|0,Z=1,n0=W,X2=0,F2=o0;;){c0=P1+(F2<<2)|0,$0=+s[c0>>2],l0=a0+(Z<<2)|0,I0=e[l0>>2]|0,g0=I0+n0|0,h0=g0>>1,p0=h0-J|0,C0=+s[t0>>2],S0=$0>C0,z2=S0?C0:$0,Q0=(F2|0)<(p0|0);t:do if(Q0)for(E=F2,n5=z2;;){for(b0=n5==-9999,Q=E;;){if(E0=Q+1|0,y0=P1+(E0<<2)|0,w0=+s[y0>>2],_0=w0>-9999,_0){if(K0=w0=(G|0),U0=(n0|0)>(T0|0),R5=N0|U0;t:do if(R5)g2=X2;else for(w5=X2;;){if(O0=a+(w5<<2)|0,k0=+s[O0>>2],V0=k0>2]=f5),L0=w5+1|0,G0=(L0|0)<(G|0),!G0){g2=L0;break t}if(D=a0+(L0<<2)|0,L=e[D>>2]|0,z0=(L|0)>(T0|0),z0){g2=L0;break}else w5=L0}while(!1);if(j=g2+1|0,u0=(j|0)<(G|0),!u0){l5=g2;break e}w=a0+(g2<<2)|0,x=e[w>>2]|0,Z=j,n0=x,X2=g2,F2=v5}else l5=0;while(!1);if(J0=e[T>>2]|0,q0=J0+-1|0,Z0=P1+(q0<<2)|0,P0=+s[Z0>>2],H0=(l5|0)<(G|0),H0)r5=l5;else{C=E5;return}for(;o1=a+(r5<<2)|0,Y0=+s[o1>>2],x0=Y0>2]=P0),n1=r5+1|0,M5=(n1|0)==(G|0),!M5;)r5=n1;C=E5}function rl(t,o,a,$,g,h,m){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0;var I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0;if(M0=C,E=e[t>>2]|0,Q=t+4|0,R=e[Q>>2]|0,s0=(R+12|0)+($<<2)|0,Z=+s[s0>>2],C0=(E|0)>0,!!C0)for(S0=t+48|0,Q0=+s[S0>>2],b0=t+12|0,E0=e[b0>>2]|0,B=E0+($<<2)|0,S=e[B>>2]|0,b=R+108|0,v=($|0)==1,w=Q0,D=w*.005,y=w*3e-4,B0=0;x=o+(B0<<2)|0,M=+s[x>>2],L=S+(B0<<2)|0,F=+s[L>>2],T=F+M,N=+s[b>>2],G=T>N,_0=G?N:T,V=a+(B0<<2)|0,X=+s[V>>2],K=X+Z,a0=_0>2]=I,v&&(r0=m+(B0<<2)|0,J=+s[r0>>2],o0=_0-J,q=o0>-17.200000762939453,d0=o0+17.200000762939453,t0=d0,q?(j=D*t0,u0=1-j,c0=u0,$0=c0<0,$0?y0=9999999747378752e-20:y0=c0):(l0=y*t0,I0=1-l0,g0=I0,y0=g0),f0=h+(B0<<2)|0,n0=+s[f0>>2],h0=n0*y0,s[f0>>2]=h0),p0=B0+1|0,w0=(p0|0)==(E|0),!w0;)B0=p0}function vb(t,o){t=+t,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0;return N=C,$=o+4|0,g=e[$>>2]|0,w=g+28|0,D=e[w>>2]|0,y=o+40|0,x=e[y>>2]|0,M=D+(x<<2)|0,L=e[M>>2]|0,R=(L|0)/2&-1,F=+(R|0),h=g+8|0,m=e[h>>2]|0,I=+(m|0),E=F/I,Q=D+2936|0,B=+s[Q>>2],S=B*E,b=S+t,v=b<-9999,a=v?-9999:b,+a}function kb(t,o,a,$,g,h,m,I,E){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0,E=E|0;var Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0;if(Ve=C,c0=e[a>>2]|0,$0=a+4|0,A5=e[$0>>2]|0,X3=A5+500|0,Q3=e[X3>>2]|0,E6=(Q3|0)==0,E6?W5=16:(d6=A5+508|0,v6=e[d6>>2]|0,W5=v6),o3=e[A5>>2]|0,Q6=((o+132|0)+(o3*60|0)|0)+(t<<2)|0,l0=e[Q6>>2]|0,b0=(o+252|0)+(t<<2)|0,U0=e[b0>>2]|0,P0=1624+(U0<<3)|0,u1=+l1[P0>>3],w1=(o+312|0)+(t<<2)|0,P1=e[w1>>2]|0,j1=E<<2,S=j1,i2=C,C=C+((1*S|0)+15&-16)|0,b=j1,Q2=C,C=C+((1*b|0)+15&-16)|0,y=j1,H2=C,C=C+((1*y|0)+15&-16)|0,x=j1,b2=C,C=C+((1*x|0)+15&-16)|0,M=j1,M5=C,C=C+((1*M|0)+15&-16)|0,g2=$+1156|0,F2=(c0|0)>1e3,Ye=F2?1696:1624,He=Ye+(P1<<3)|0,Ge=+l1[He>>3],G5=o5(j1,W5)|0,L=G5,D3=C,C=C+((1*L|0)+15&-16)|0,e[i2>>2]=D3,v=G5,f3=C,C=C+((1*v|0)+15&-16)|0,e[Q2>>2]=f3,w=G5,y3=C,C=C+((1*w|0)+15&-16)|0,e[H2>>2]=y3,D=G5,q3=C,C=C+((1*D|0)+15&-16)|0,e[b2>>2]=q3,X5=(E|0)>1,X5&&(b3=D3+(W5<<2)|0,t3=i2+4|0,e[t3>>2]=b3,s6=f3+(W5<<2)|0,T3=Q2+4|0,e[T3>>2]=s6,H3=y3+(W5<<2)|0,c3=H2+4|0,e[c3>>2]=H3,g3=q3+(W5<<2)|0,u3=b2+4|0,e[u3>>2]=g3,B9=(E|0)==2,!B9))for(S5=2;F=e[i2>>2]|0,G=e[Q2>>2]|0,V=e[H2>>2]|0,X=e[b2>>2]|0,V5=o5(S5,W5)|0,Y3=F+(V5<<2)|0,U5=i2+(S5<<2)|0,e[U5>>2]=Y3,$6=G+(V5<<2)|0,n3=Q2+(S5<<2)|0,e[n3>>2]=$6,l3=V+(V5<<2)|0,N3=H2+(S5<<2)|0,e[N3>>2]=l3,k3=X+(V5<<2)|0,_3=b2+(S5<<2)|0,e[_3>>2]=k3,S3=S5+1|0,o9=(S3|0)==(E|0),!o9;)S5=S3;if(z5=e[g2>>2]|0,H5=(c0|0)>0,H5)for(a6=e[b2>>2]|0,i6=(E|0)>0,V3=c0^-1,Z5=W5^-1,H6=0,w9=V3;;){if(J3=(w9|0)>(Z5|0),o4=J3?w9:Z5,m3=o4^-1,L6=c0-H6|0,M6=(W5|0)>(L6|0),Q=M6?L6:W5,ge(M5|0,m|0,j1|0)|0,u4(a6|0,0,G5|0)|0,i6)for(R6=(Q|0)>0,S6=l0-H6|0,$9=0;;){if(L3=h+($9<<2)|0,n6=e[L3>>2]|0,o6=n6+(H6<<2)|0,C6=M5+($9<<2)|0,z3=e[C6>>2]|0,M3=(z3|0)==0,M3){if(R6)for(F6=H2+($9<<2)|0,l6=e[F6>>2]|0,K6=i2+($9<<2)|0,A3=e[K6>>2]|0,c6=Q2+($9<<2)|0,B6=e[c6>>2]|0,R3=b2+($9<<2)|0,Y6=e[R3>>2]|0,v9=0;G0=l6+(v9<<2)|0,s[G0>>2]=1000000013351432e-25,z0=A3+(v9<<2)|0,s[z0>>2]=0,J0=B6+(v9<<2)|0,s[J0>>2]=0,q0=Y6+(v9<<2)|0,e[q0>>2]=0,q=v9+H6|0,Z0=n6+(q<<2)|0,e[Z0>>2]=0,H0=v9+1|0,q6=(H0|0)==(m3|0),!q6;)v9=H0}else{if(K3=H2+($9<<2)|0,e6=e[K3>>2]|0,R6){for(ie=0;d0=ie+H6|0,A6=n6+(d0<<2)|0,D6=e[A6>>2]|0,U6=1768+(D6<<2)|0,t9=e[U6>>2]|0,e9=e6+(ie<<2)|0,e[e9>>2]=t9,G3=ie+1|0,_6=(G3|0)==(m3|0),!_6;)ie=G3;if(n9=g+($9<<2)|0,V6=e[n9>>2]|0,s9=b2+($9<<2)|0,c9=e[s9>>2]|0,R6){for(V9=0;P6=(V9|0)>=(S6|0),u0=P6?Ge:u1,J6=u0,t0=V9+H6|0,T6=V6+(t0<<2)|0,i9=+s[T6>>2],y9=+rr(+i9),Z=e6+(V9<<2)|0,I0=+s[Z>>2],g0=y9/I0,f0=c9+(V9<<2)|0,_9=!(g0>2]=B,n0=V9+1|0,O6=(n0|0)==(Q|0),!O6;)V9=n0;if(R6)for(h0=i2+($9<<2)|0,p0=e[h0>>2]|0,C0=Q2+($9<<2)|0,S0=e[C0>>2]|0,F9=0;;)if(Q0=F9+H6|0,E0=V6+(Q0<<2)|0,y0=+s[E0>>2],w0=y0*y0,B0=p0+(F9<<2)|0,s[B0>>2]=w0,_0=S0+(F9<<2)|0,s[_0>>2]=w0,K0=+s[E0>>2],M0=K0<0,M0&&(v0=+s[B0>>2],T0=-v0,s[B0>>2]=T0),N0=e6+(F9<<2)|0,O0=+s[N0>>2],k0=O0*O0,s[N0>>2]=k0,V0=F9+1|0,U3=(V0|0)==(m3|0),U3){T=C0,L0=p0;break}else F9=V0;else J9=21}else J9=21}else J9=21;(J9|0)==21&&(J9=0,R=i2+($9<<2)|0,K=e[R>>2]|0,J=Q2+($9<<2)|0,T=J,L0=K),F0=e[T>>2]|0,Fe=e[$0>>2]|0,+kQ(Fe,l0,L0,F0,e6,0,H6,Q,o6)}if(o1=$9+1|0,a9=(o1|0)==(E|0),a9)break;$9=o1}if(r6=e[g2>>2]|0,h6=(r6|0)>0,h6)for(b6=(Q|0)>0,G6=I-H6|0,X6=l0-H6|0,B3=r6,ke=0;;){if(Y0=($+1160|0)+(ke<<2)|0,i1=e[Y0>>2]|0,x0=($+2184|0)+(ke<<2)|0,n1=e[x0>>2]|0,d1=h+(i1<<2)|0,g1=e[d1>>2]|0,m1=g1+(H6<<2)|0,h1=h+(n1<<2)|0,A1=e[h1>>2]|0,c1=i2+(i1<<2)|0,s1=e[c1>>2]|0,$1=i2+(n1<<2)|0,j0=e[$1>>2]|0,E1=Q2+(i1<<2)|0,I1=e[E1>>2]|0,Q1=Q2+(n1<<2)|0,p1=e[Q1>>2]|0,B1=H2+(i1<<2)|0,v1=e[B1>>2]|0,k1=H2+(n1<<2)|0,L1=e[k1>>2]|0,M1=b2+(i1<<2)|0,S1=e[M1>>2]|0,D1=b2+(n1<<2)|0,R1=e[D1>>2]|0,F1=M5+(i1<<2)|0,U1=e[F1>>2]|0,b1=(U1|0)==0,Z1=M5+(n1<<2)|0,b1?(G1=e[Z1>>2]|0,x1=(G1|0)==0,x1?X2=B3:J9=31):J9=31,(J9|0)==31){if(J9=0,e[Z1>>2]=1,e[F1>>2]=1,b6)for(W6=0;;){z1=(W6|0)<(G6|0);do if(z1){if(q1=S1+(W6<<2)|0,H1=e[q1>>2]|0,Y1=(H1|0)==0,V1=R1+(W6<<2)|0,Y1&&(X1=e[V1>>2]|0,n2=(X1|0)==0,n2)){i5=(W6|0)<(X6|0);do if(i5)x5=j0+(W6<<2)|0,j2=+s[x5>>2],I5=s1+(W6<<2)|0,b5=+s[I5>>2],Y5=b5+j2,s[I5>>2]=Y5,f9=+rr(+Y5),g5=I1+(W6<<2)|0,s[g5>>2]=f9,N=x5;else if(B5=s1+(W6<<2)|0,s5=+s[B5>>2],R2=j0+(W6<<2)|0,M2=+s[R2>>2],y2=M2+s5,Q5=y2<0,Q9=+rr(+s5),h9=+rr(+M2),N5=h9+Q9,m5=I1+(W6<<2)|0,s[m5>>2]=N5,Q5){L5=-N5,s[B5>>2]=L5,N=R2;break}else{s[B5>>2]=N5,N=R2;break}while(!1);q5=p1+(W6<<2)|0,s[q5>>2]=0,s[N>>2]=0,e[V1>>2]=1,o0=W6+H6|0,Y2=A1+(o0<<2)|0,e[Y2>>2]=0;break}O1=s1+(W6<<2)|0,c2=+s[O1>>2],H9=+rr(+c2),W1=j0+(W6<<2)|0,h2=+s[W1>>2],y6=+rr(+h2),s2=y6+H9,s[O1>>2]=s2,E2=I1+(W6<<2)|0,a2=+s[E2>>2],K1=p1+(W6<<2)|0,d2=+s[K1>>2],$2=d2+a2,s[E2>>2]=$2,e[V1>>2]=1,e[q1>>2]=1,j=W6+H6|0,l2=g1+(j<<2)|0,r2=e[l2>>2]|0,A2=A1+(j<<2)|0,e2=e[A2>>2]|0,we=(r2|0)>-1,ve=0-r2|0,o2=we?r2:ve,ue=(e2|0)>-1,de=0-e2|0,f2=ue?e2:de,t2=(o2|0)>(f2|0),t2?(k2=(r2|0)>0,D2=r2-e2|0,S2=e2-r2|0,N2=k2?D2:S2,e[A2>>2]=N2,W=e[l2>>2]|0,P2=W,q2=N2):(L2=(e2|0)>0,U2=r2-e2|0,m2=e2-r2|0,W2=L2?U2:m2,e[A2>>2]=W2,e[l2>>2]=e2,a0=e[A2>>2]|0,P2=e2,q2=a0),Ee=(P2|0)>-1,Re=0-P2|0,V2=Ee?P2:Re,G2=V2<<1,Z2=(q2|0)<(G2|0),Z2||(N1=0-q2|0,e[A2>>2]=N1,t5=e[l2>>2]|0,T5=0-t5|0,e[l2>>2]=T5)}while(!1);if(p5=v1+(W6<<2)|0,$5=+s[p5>>2],u5=L1+(W6<<2)|0,y5=+s[u5>>2],T1=y5+$5,s[u5>>2]=T1,s[p5>>2]=T1,D5=W6+1|0,d9=(D5|0)==(m3|0),d9)break;W6=D5}Te=e[$0>>2]|0,+kQ(Te,l0,s1,I1,v1,S1,H6,Q,m1),r0=e[g2>>2]|0,X2=r0}if(d5=ke+1|0,l5=(d5|0)<(X2|0),l5)B3=X2,ke=d5;else{a3=X2;break}}else a3=r6;if(w5=H6+W5|0,r5=(c0|0)>(w5|0),Y9=w9+W5|0,r5)H6=w5,w9=Y9;else{x3=a3;break}}else x3=z5;if(d3=(x3|0)>0,d3)r3=x3,A9=0;else{C=Ve;return}for(;a5=($+1160|0)+(A9<<2)|0,h5=e[a5>>2]|0,z2=m+(h5<<2)|0,f5=e[z2>>2]|0,n5=(f5|0)==0,R5=($+2184|0)+(A9<<2)|0,n5?(e5=e[R5>>2]|0,c5=m+(e5<<2)|0,v5=e[c5>>2]|0,J5=(v5|0)==0,J5?K5=r3:J9=52):J9=52,(J9|0)==52&&(J9=0,e[z2>>2]=1,i3=e[R5>>2]|0,E5=m+(i3<<2)|0,e[E5>>2]=1,s0=e[g2>>2]|0,K5=s0),I3=A9+1|0,h3=(I3|0)<(K5|0),h3;)r3=K5,A9=I3;C=Ve}function Sb(t,o,a,$,g){t=t|0,o=+o,a=a|0,$=+$,g=+g;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0;for(et=C,C=C+32480|0,W3=et+32256|0,D9=et+1792|0,x9=et,L=a<<2,b=L,R=C,C=C+((1*b|0)+15&-16)|0,r2=R9(68)|0,u4(D9|0,0,30464)|0,x3=$>0,ue=$<0,L9=0;;){for(h4=L9<<2,$4=0;s5=$4+h4|0,p5=(s5|0)<88,p5?(r5=1272+(s5<<2)|0,J5=+s[r5>>2],Z9=J5):Z9=-30,D3=s5+1|0,c3=(D3|0)<88,c3?(P6=1272+(D3<<2)|0,J6=+s[P6>>2],i9=Z9>J6,i9?c4=J6:c4=Z9):(c9=Z9>-30,c9?c4=-30:c4=Z9),_6=s5+2|0,O6=(_6|0)<88,O6?(q6=1272+(_6<<2)|0,a9=+s[q6>>2],d9=c4>a9,d9?T9=a9:T9=c4):(U3=c4>-30,U3?T9=-30:T9=c4),o9=s5+3|0,B9=(o9|0)<88,B9?(h9=1272+(o9<<2)|0,f9=+s[h9>>2],H9=T9>f9,H9?j4=f9:j4=T9):(Q9=T9>-30,Q9?j4=-30:j4=T9),y6=W3+($4<<2)|0,s[y6>>2]=j4,H6=$4+1|0,Ot=(H6|0)==56,!Ot;)$4=H6;if(Ie=(D9+(L9*1792|0)|0)+448|0,F=2792+(L9*1344|0)|0,ge(Ie|0,F|0,224)|0,J=(D9+(L9*1792|0)|0)+672|0,I0=(2792+(L9*1344|0)|0)+224|0,ge(J|0,I0|0,224)|0,y0=(D9+(L9*1792|0)|0)+896|0,k0=(2792+(L9*1344|0)|0)+448|0,ge(y0|0,k0|0,224)|0,o1=(D9+(L9*1792|0)|0)+1120|0,c1=(2792+(L9*1344|0)|0)+672|0,ge(o1|0,c1|0,224)|0,k1=(D9+(L9*1792|0)|0)+1344|0,G1=(2792+(L9*1344|0)|0)+896|0,ge(k1|0,G1|0,224)|0,c2=(D9+(L9*1792|0)|0)+1568|0,A2=(2792+(L9*1344|0)|0)+1120|0,ge(c2|0,A2|0,224)|0,U2=D9+(L9*1792|0)|0,ge(U2|0,F|0,224)|0,t5=(D9+(L9*1792|0)|0)+224|0,ge(t5|0,F|0,224)|0,x3)for(At=0;;){if(ue)for(Bt=0;Ee=16-Bt|0,L8=(Ee|0)>-1,$8=0-Ee|0,V9=L8?Ee:$8,ie=+(V9|0),F9=ie*g,v9=F9+$,W6=v9<0,I=W6?0:v9,$9=I>0,h=$9?0:I,ve=((D9+(L9*1792|0)|0)+(At*224|0)|0)+(Bt<<2)|0,Re=+s[ve>>2],de=Re+h,s[ve>>2]=de,Fe=Bt+1|0,Vt=(Fe|0)==56,!Vt;)Bt=Fe;else for(ct=0;d3=16-ct|0,o8=(d3|0)>-1,Zt=0-d3|0,G6=o8?d3:Zt,F6=+(G6|0),U6=F6*g,T6=U6+$,y9=T6<0,E=y9?0:T6,A9=((D9+(L9*1792|0)|0)+(At*224|0)|0)+(ct<<2)|0,Y9=+s[A9>>2],w9=Y9+E,s[A9>>2]=w9,we=ct+1|0,Yt=(we|0)==56,!Yt;)ct=we;if(n3=At+1|0,_t=(n3|0)==8,_t)break;At=n3}else for(Mt=0;;){if(ue)for(Qt=0;o4=16-Qt|0,M8=(o4|0)>-1,l8=0-o4|0,ke=M8?o4:l8,Ye=+(ke|0),J9=Ye*g,Ve=J9+$,he=Ve>0,m=he?0:Ve,Ce=((D9+(L9*1792|0)|0)+(Mt*224|0)|0)+(Qt<<2)|0,v4=+s[Ce>>2],W9=v4+m,s[Ce>>2]=W9,k9=Qt+1|0,t8=(k9|0)==56,!t8;)Qt=k9;else for(lt=0;k4=16-lt|0,E8=(k4|0)>-1,A8=0-k4|0,Y4=E8?k4:A8,nt=+(Y4|0),Je=nt*g,V4=Je+$,ze=((D9+(L9*1792|0)|0)+(Mt*224|0)|0)+(lt<<2)|0,R4=+s[ze>>2],ot=R4+V4,s[ze>>2]=ot,re=lt+1|0,qt=(re|0)==56,!qt;)lt=re;if(d4=Mt+1|0,i8=(d4|0)==8,i8)break;Mt=d4}for(Te=t+(L9<<2)|0,Ge=+s[Te>>2],He=Ge,We=0;;){for(Be=(We|0)<2,N6=+(We|0),v=N6*10,w=70-v,Ke=Be?50:w,P9=Ke+He,fe=P9,Et=0;Ne=((D9+(L9*1792|0)|0)+(We*224|0)|0)+(Et<<2)|0,ne=+s[Ne>>2],f4=ne+fe,s[Ne>>2]=f4,I4=Et+1|0,Oe=(I4|0)==56,!Oe;)Et=I4;for(Se=x9+(We*224|0)|0,ge(Se|0,W3|0,224)|0,a4=+(We|0),Pe=a4*10,m4=70-Pe,Lt=0;;)if(S9=(x9+(We*224|0)|0)+(Lt<<2)|0,f6=+s[S9>>2],J4=m4+f6,s[S9>>2]=J4,S4=Lt+1|0,f8=(S4|0)==56,f8){at=0;break}else Lt=S4;for(;be=((D9+(L9*1792|0)|0)+(We*224|0)|0)+(at<<2)|0,me=+s[be>>2],z6=(x9+(We*224|0)|0)+(at<<2)|0,F4=+s[z6>>2],T4=me>F4,T4&&(s[z6>>2]=me),st=at+1|0,N4=(st|0)==56,!N4;)at=st;if(pe=We+1|0,x8=(pe|0)==8,x8){U4=1;break}else We=pe}for(;;){for(xe=U4+-1|0,G4=0;;)if(mt=(x9+(xe*224|0)|0)+(G4<<2)|0,T=+s[mt>>2],N=(x9+(U4*224|0)|0)+(G4<<2)|0,G=+s[N>>2],V=T>2]=T),X=G4+1|0,h8=(X|0)==56,h8){z4=0;break}else G4=X;for(;K=(x9+(U4*224|0)|0)+(z4<<2)|0,a0=+s[K>>2],W=((D9+(L9*1792|0)|0)+(U4*224|0)|0)+(z4<<2)|0,r0=+s[W>>2],s0=a0>2]=a0),o0=z4+1|0,A4=(o0|0)==56,!A4;)z4=o0;if(q=U4+1|0,Ht=(q|0)==8,Ht)break;U4=q}if(d0=L9+1|0,xt=(d0|0)==17,xt)break;L9=d0}for(_9=o,Ue=(a|0)>0,s4=a^-1,b4=0;;){for(t0=R9(32)|0,j=r2+(b4<<2)|0,e[j>>2]=t0,u0=+(b4|0),c0=u0*.5,$0=u0*.34657350182533264,l0=$0+4.135165354540845,Z=+Yn(+l0),g0=Z/_9,f0=+iA(+g0),n0=~~f0,h0=+(n0|0),p0=h0*o,C0=p0+1,S0=C0,Q0=+tn(+S0),b0=Q0*2.885390043258667,E0=b0+-11.931568145751953,w0=+IC(+E0),B0=~~w0,_0=n0+1|0,K0=+(_0|0),M0=K0*o,v0=M0,T0=+tn(+v0),N0=T0*2.885390043258667,U0=N0+-11.931568145751953,O0=+iA(+U0),V0=~~O0,F0=(B0|0)>(b4|0),p8=F0?b4:B0,L0=(p8|0)<0,wt=L0?0:p8,G0=(V0|0)>16,Q=G0?16:V0,z0=(wt|0)>(Q|0),J0=b4+1|0,q0=(J0|0)<17,Z0=c0+3.9657840728759766,l4=0;;){if(P0=R9(232)|0,H0=t0+(l4<<2)|0,e[H0>>2]=P0,Ue)for($t=0;Y0=R+($t<<2)|0,s[Y0>>2]=999,i1=$t+1|0,b9=(i1|0)==(a|0),!b9;)$t=i1;if(!z0)for(E4=wt;;){for(x0=+(E4|0),n1=x0*.5,Ct=0,D4=0;;){if(h1=+(Ct|0),u1=h1*.125,A1=u1+n1,s1=A1+3.9032840728759766,$1=s1*.6931470036506653,j0=+Yn(+$1),E1=j0/_9,I1=~~E1,Q1=A1+4.028284072875977,p1=Q1*.6931470036506653,B1=+Yn(+p1),w1=B1/_9,v1=w1+1,L1=~~v1,M1=(I1|0)<0,B=M1?0:I1,S1=(B|0)>(a|0),a8=S1?a:B,D1=(a8|0)<(D4|0),Ze=D1?a8:D4,R1=(L1|0)<0,r8=R1?0:L1,F1=(r8|0)>(a|0),Wt=F1?a:r8,U1=(Ze|0)<(Wt|0),b1=(Ze|0)<(a|0),jt=U1&b1,jt)for(P1=((D9+(E4*1792|0)|0)+(l4*224|0)|0)+(Ct<<2)|0,Z1=+s[P1>>2],x1=(D4|0)<(a|0),z1=x1?D4:a,q1=z1^-1,H1=(I1|0)>0,x=I1^-1,Y1=H1?x:-1,V1=(Y1|0)<(q1|0),je=V1?q1:Y1,X1=je^-1,n2=(L1|0)>0,M=L1^-1,j1=n2?M:-1,O1=(j1|0)<(s4|0),c8=O1?s4:j1,W1=c8-je|0,h2=je+a|0,s2=h2^-1,E2=W1>>>0>s2>>>0,Tt=E2?W1:s2,a2=X1-Tt|0,se=Ze;;)if(K1=R+(se<<2)|0,d2=+s[K1>>2],$2=d2>Z1,$2&&(s[K1>>2]=Z1),i2=se+1|0,pt=(i2|0)==(a2|0),pt){K4=a2;break}else se=i2;else K4=Ze;if(l2=Ct+1|0,Jt=(l2|0)==56,Jt){W4=K4;break}else Ct=l2,D4=K4}if(d1=(W4|0)<(a|0),d1)for(g1=((D9+(E4*1792|0)|0)+(l4*224|0)|0)+220|0,m1=+s[g1>>2],P4=W4;e2=R+(P4<<2)|0,o2=+s[e2>>2],f2=o2>m1,f2&&(s[e2>>2]=m1),t2=P4+1|0,zt=(t2|0)==(a|0),!zt;)P4=t2;if(k2=E4+1|0,D2=(E4|0)<(Q|0),D2)E4=k2;else break}if(q0){for(Rt=0,C4=0;;){if(P2=+(Rt|0),V2=P2*.125,G2=V2+c0,q2=G2+3.9032840728759766,Z2=q2*.6931470036506653,A5=+Yn(+Z2),H2=A5/_9,N1=~~H2,T5=G2+4.028284072875977,i5=T5*.6931470036506653,x5=+Yn(+i5),j2=x5/_9,I5=j2+1,b5=~~I5,Y5=(N1|0)<0,S=Y5?0:N1,g5=(S|0)>(a|0),E3=g5?a:S,b2=(E3|0)<(C4|0),Z4=b2?E3:C4,B5=(b5|0)<0,n8=B5?0:b5,R2=(n8|0)>(a|0),C8=R2?a:n8,M2=(Z4|0)<(C8|0),y2=(Z4|0)<(a|0),ut=M2&y2,ut)for(Q5=((D9+(J0*1792|0)|0)+(l4*224|0)|0)+(Rt<<2)|0,N5=+s[Q5>>2],m5=(C4|0)<(a|0),L5=m5?C4:a,q5=L5^-1,M5=(N1|0)>0,D=N1^-1,Y2=M5?D:-1,$5=(Y2|0)<(q5|0),dt=$5?q5:Y2,u5=dt^-1,y5=(b5|0)>0,y=b5^-1,T1=y5?y:-1,D5=(T1|0)<(s4|0),Ft=D5?s4:T1,d5=Ft-dt|0,l5=dt+a|0,X2=l5^-1,g2=d5>>>0>X2>>>0,X4=g2?d5:X2,w5=u5-X4|0,De=Z4;;)if(a5=R+(De<<2)|0,h5=+s[a5>>2],z2=h5>N5,z2&&(s[a5>>2]=N5),f5=De+1|0,_8=(f5|0)==(w5|0),_8){gt=w5;break}else De=f5;else gt=Z4;if(n5=Rt+1|0,e8=(n5|0)==56,e8){_4=gt;break}else Rt=n5,C4=gt}if(L2=(_4|0)<(a|0),L2)for(m2=((D9+(J0*1792|0)|0)+(l4*224|0)|0)+220|0,W2=+s[m2>>2],yt=_4;R5=R+(yt<<2)|0,e5=+s[R5>>2],c5=e5>W2,c5&&(s[R5>>2]=W2),F2=yt+1|0,I8=(F2|0)==(a|0),!I8;)yt=F2}for(S2=t0+(l4<<2)|0,Q2=t0+(l4<<2)|0,N2=t0+(l4<<2)|0,p4=0;;){I3=+(p4|0),h3=I3*.125,K5=Z0+h3,r3=K5*.6931470036506653,a3=+Yn(+r3),B3=a3/_9,G5=~~B3,W5=(G5|0)<0;do if(W5)f3=p4+2|0,y3=e[S2>>2]|0,X3=y3+(f3<<2)|0,s[X3>>2]=-999;else if(q3=(G5|0)<(a|0),q3){s6=R+(G5<<2)|0,T3=e[s6>>2]|0,H3=p4+2|0,g3=e[Q2>>2]|0,u3=g3+(H3<<2)|0,e[u3>>2]=T3;break}else{X5=p4+2|0,b3=e[N2>>2]|0,t3=b3+(X5<<2)|0,s[t3>>2]=-999;break}while(!1);if(Q3=p4+1|0,m8=(Q3|0)==56,m8)break;p4=Q3}v5=P0+8|0,i3=+s[v5>>2],E5=i3>-200;do if(E5)oe=0;else if(z5=P0+12|0,H5=+s[z5>>2],V5=H5>-200,V5)oe=1;else if(S3=P0+16|0,a6=+s[S3>>2],i6=a6>-200,i6)oe=2;else if(V3=P0+20|0,Z5=+s[V3>>2],J3=Z5>-200,J3)oe=3;else if(d6=P0+24|0,m3=+s[d6>>2],L6=m3>-200,L6)oe=4;else if(M6=P0+28|0,R6=+s[M6>>2],S6=R6>-200,S6)oe=5;else if(r6=P0+32|0,h6=+s[r6>>2],b6=h6>-200,b6)oe=6;else if(X6=P0+36|0,v6=+s[X6>>2],L3=v6>-200,L3)oe=7;else if(n6=P0+40|0,o6=+s[n6>>2],C6=o6>-200,C6)oe=8;else if(z3=P0+44|0,M3=+s[z3>>2],K3=M3>-200,K3)oe=9;else if(e6=P0+48|0,l6=+s[e6>>2],o3=l6>-200,o3)oe=10;else if(K6=P0+52|0,A3=+s[K6>>2],c6=A3>-200,c6)oe=11;else if(B6=P0+56|0,R3=+s[B6>>2],Y6=R3>-200,Y6)oe=12;else if(A6=P0+60|0,D6=+s[A6>>2],t9=D6>-200,t9)oe=13;else{if(Q6=P0+64|0,e9=+s[Q6>>2],G3=e9>-200,G3){oe=14;break}if(n9=P0+68|0,V6=+s[n9>>2],s9=V6>-200,s9){oe=15;break}oe=16}while(!1);for(s[P0>>2]=oe,Kt=55;;){if(S5=Kt+2|0,Y3=P0+(S5<<2)|0,U5=+s[Y3>>2],$6=U5>-200,$6){s8=Kt;break}if(l3=Kt+-1|0,N3=(l3|0)>17,N3)Kt=l3;else{s8=l3;break}}if(E6=+(s8|0),k3=P0+4|0,s[k3>>2]=E6,_3=l4+1|0,Ut=(_3|0)==8,Ut)break;l4=_3}if(Pt=(J0|0)==17,Pt)break;b4=J0}return C=et,r2|0}function vQ(t,o,a,$,g,h){t=t|0,o=o|0,a=a|0,$=$|0,g=+g,h=h|0;var m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0;if(Te=C,v=t<<2,m=v,w=C,C=C+((1*m|0)+15&-16)|0,I=v,a2=C,C=C+((1*I|0)+15&-16)|0,E=v,e5=C,C=C+((1*E|0)+15&-16)|0,Q=v,a3=C,C=C+((1*Q|0)+15&-16)|0,B=v,t3=C,C=C+((1*B|0)+15&-16)|0,S5=+s[a>>2],a6=S5+g,R6=a6<1,de=R6?1:a6,C6=de*de,D=C6*.5,X=D*de,s[w>>2]=D,s[a2>>2]=D,s[e5>>2]=0,s[a3>>2]=X,s[t3>>2]=0,j=(t|0)>1,j)for(U3=1,y6=D,H6=D,A9=0,Y9=0,w9=X,we=1;d1=a+(U3<<2)|0,I1=+s[d1>>2],R1=I1+g,Y1=R1<1,_9=Y1?1:R1,K1=_9*_9,k2=K1+y6,G2=K1*we,I5=G2+H6,N5=G2*we,D5=N5+A9,z2=K1*_9,f5=z2+w9,n5=G2*_9,R5=n5+Y9,c5=w+(U3<<2)|0,s[c5>>2]=k2,F2=a2+(U3<<2)|0,s[F2>>2]=I5,v5=e5+(U3<<2)|0,s[v5>>2]=D5,J5=a3+(U3<<2)|0,s[J5>>2]=f5,i3=t3+(U3<<2)|0,s[i3>>2]=R5,E5=U3+1|0,I3=we+1,O6=(E5|0)==(t|0),!O6;)U3=E5,y6=k2,H6=I5,A9=D5,Y9=R5,w9=f5,we=I3;if(p0=e[o>>2]|0,M0=p0>>16,z0=(M0|0)>-1,z0)K5=p0,B6=0,D6=0,e9=1,q6=0,ue=0;else for(G5=p0,y3=M0,a9=0,Ee=0;;)if(B3=G5&65535,W5=w+(B3<<2)|0,D3=+s[W5>>2],f3=0-y3|0,X3=w+(f3<<2)|0,q3=+s[X3>>2],X5=q3+D3,b3=a2+(B3<<2)|0,s6=+s[b3>>2],T3=a2+(f3<<2)|0,H3=+s[T3>>2],c3=s6-H3,g3=e5+(B3<<2)|0,u3=+s[g3>>2],Q3=e5+(f3<<2)|0,z5=+s[Q3>>2],H5=z5+u3,V5=a3+(B3<<2)|0,Y3=+s[V5>>2],U5=a3+(f3<<2)|0,$6=+s[U5>>2],n3=$6+Y3,l3=t3+(B3<<2)|0,N3=+s[l3>>2],E6=t3+(f3<<2)|0,k3=+s[E6>>2],_3=N3-k3,S3=n3*H5,i6=_3*c3,V3=S3-i6,Z5=_3*X5,x3=n3*c3,d3=Z5-x3,J3=H5*X5,d6=c3*c3,m3=J3-d6,L6=d3*Ee,M6=L6+V3,S6=M6/m3,r6=S6<0,s9=r6?0:S6,h6=s9-g,b6=$+(a9<<2)|0,s[b6>>2]=h6,G6=a9+1|0,X6=Ee+1,v6=o+(G6<<2)|0,L3=e[v6>>2]|0,n6=L3>>16,o6=(n6|0)>-1,o6){K5=L3,B6=V3,D6=d3,e9=m3,q6=G6,ue=X6;break}else G5=L3,y3=n6,a9=G6,Ee=X6;if(h3=K5&65535,r3=(h3|0)<(t|0),r3)for(S=K5,e6=h3,o9=q6,ie=ue;;)if(M3=S>>16,K3=w+(e6<<2)|0,F6=+s[K3>>2],l6=w+(M3<<2)|0,o3=+s[l6>>2],K6=F6-o3,A3=a2+(e6<<2)|0,c6=+s[A3>>2],y=a2+(M3<<2)|0,x=+s[y>>2],M=c6-x,L=e5+(e6<<2)|0,R=+s[L>>2],F=e5+(M3<<2)|0,T=+s[F>>2],N=R-T,G=a3+(e6<<2)|0,V=+s[G>>2],K=a3+(M3<<2)|0,a0=+s[K>>2],W=V-a0,r0=t3+(e6<<2)|0,s0=+s[r0>>2],J=t3+(M3<<2)|0,o0=+s[J>>2],q=s0-o0,d0=W*N,t0=q*M,u0=d0-t0,c0=q*K6,$0=W*M,l0=c0-$0,Z=N*K6,I0=M*M,g0=Z-I0,f0=l0*ie,n0=f0+u0,h0=n0/g0,C0=h0<0,c9=C0?0:h0,S0=c9-g,Q0=$+(o9<<2)|0,s[Q0>>2]=S0,b0=o9+1|0,E0=ie+1,y0=o+(b0<<2)|0,w0=e[y0>>2]|0,B0=w0&65535,_0=(B0|0)<(t|0),_0)S=w0,e6=B0,o9=b0,ie=E0;else{R3=u0,U6=l0,G3=g0,d9=b0,V9=E0;break}else R3=B6,U6=D6,G3=e9,d9=q6,V9=ue;if(z3=(d9|0)<(t|0),z3)for(B9=d9,F9=V9;K0=F9*U6,v0=K0+R3,T0=v0/G3,N0=T0<0,P6=N0?0:T0,U0=P6-g,O0=$+(B9<<2)|0,s[O0>>2]=U0,k0=B9+1|0,V0=F9+1,_6=(k0|0)==(t|0),!_6;)B9=k0,F9=V0;if(F0=(h|0)<1,F0){C=Te;return}if(L0=(h|0)/2&-1,G0=L0-h|0,J0=(G0|0)>-1,J0)Y6=R3,t9=U6,n9=G3,Q9=0,v9=0;else for(q0=h-L0|0,Y0=L0,n1=G0,y9=0,W6=0;;)if(o1=w+(Y0<<2)|0,i1=+s[o1>>2],x0=0-n1|0,g1=w+(x0<<2)|0,m1=+s[g1>>2],h1=m1+i1,u1=a2+(Y0<<2)|0,A1=+s[u1>>2],c1=a2+(x0<<2)|0,s1=+s[c1>>2],$1=A1-s1,j0=e5+(Y0<<2)|0,E1=+s[j0>>2],Q1=e5+(x0<<2)|0,p1=+s[Q1>>2],B1=p1+E1,w1=a3+(Y0<<2)|0,v1=+s[w1>>2],k1=a3+(x0<<2)|0,L1=+s[k1>>2],M1=L1+v1,S1=t3+(Y0<<2)|0,D1=+s[S1>>2],F1=t3+(x0<<2)|0,U1=+s[F1>>2],b1=D1-U1,P1=M1*B1,Z1=b1*$1,G1=P1-Z1,x1=b1*h1,z1=M1*$1,q1=x1-z1,H1=B1*h1,V1=$1*$1,X1=H1-V1,n2=q1*W6,j1=n2+G1,O1=j1/X1,c2=O1-g,W1=$+(y9<<2)|0,h2=+s[W1>>2],s2=c2>2]=c2),E2=y9+1|0,d2=W6+1,$2=L0+E2|0,i2=$2-h|0,i9=(E2|0)==(q0|0),i9){Y6=G1,t9=q1,n9=X1,Q9=q0,v9=d2;break}else Y0=$2,n1=i2,y9=E2,W6=d2;if(Z0=Q9+L0|0,P0=(Z0|0)<(t|0),P0)for(H0=t-L0|0,b=Z0,f9=Q9,ve=v9;;)if(r2=b-h|0,A2=w+(b<<2)|0,e2=+s[A2>>2],o2=w+(r2<<2)|0,f2=+s[o2>>2],t2=e2-f2,D2=a2+(b<<2)|0,S2=+s[D2>>2],Q2=a2+(r2<<2)|0,N2=+s[Q2>>2],L2=S2-N2,U2=e5+(b<<2)|0,m2=+s[U2>>2],W2=e5+(r2<<2)|0,P2=+s[W2>>2],V2=m2-P2,q2=a3+(b<<2)|0,Z2=+s[q2>>2],A5=a3+(r2<<2)|0,H2=+s[A5>>2],N1=Z2-H2,t5=t3+(b<<2)|0,T5=+s[t5>>2],i5=t3+(r2<<2)|0,x5=+s[i5>>2],j2=T5-x5,b5=N1*V2,Y5=j2*L2,g5=b5-Y5,b2=j2*t2,B5=N1*L2,s5=b2-B5,R2=V2*t2,M2=L2*L2,y2=R2-M2,Q5=s5*ve,m5=Q5+g5,L5=m5/y2,q5=L5-g,M5=$+(f9<<2)|0,Y2=+s[M5>>2],p5=q5>2]=q5),$5=f9+1|0,u5=ve+1,y5=$5+L0|0,T6=($5|0)==(H0|0),T6){A6=g5,Q6=s5,V6=y2,h9=H0,$9=u5;break}else b=y5,f9=$5,ve=u5;else A6=Y6,Q6=t9,V6=n9,h9=Q9,$9=v9;if(l2=(h9|0)<(t|0),l2)H9=h9,Re=$9;else{C=Te;return}for(;T1=Re*Q6,d5=T1+A6,l5=d5/V6,X2=l5-g,g2=$+(H9<<2)|0,w5=+s[g2>>2],r5=X2>2]=X2),a5=H9+1|0,h5=Re+1,J6=(a5|0)==(t|0),!J6;)H9=a5,Re=h5;C=Te}function bb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0;if(d1=C,h=a<<2,$=h,m=C,C=C+((1*$|0)+15&-16)|0,g=h,x=C,C=C+((1*g|0)+15&-16)|0,a0=(a|0)>0,a0)k0=0,q0=0;else{C=d1;return}for(;;){_0=(q0|0)<2;do if(_0)v0=m+(q0<<2)|0,e[v0>>2]=k0,I=t+(k0<<2)|0,E=e[I>>2]|0,Q=x+(q0<<2)|0,e[Q>>2]=E,Y0=q0;else{for(K0=t+(k0<<2)|0,M0=+s[K0>>2],Z0=q0;;){if(B=Z0+-1|0,S=x+(B<<2)|0,b=+s[S>>2],v=M0>2]|0,L=M+o|0,R=(k0|0)<(L|0),F=(Z0|0)>1,L0=F&R,!L0){H0=Z0,n1=12;break}if(T=Z0+-2|0,N=x+(T<<2)|0,G=+s[N>>2],V=!(b<=G),V){H0=Z0,n1=12;break}if(X=m+(T<<2)|0,K=e[X>>2]|0,W=K+o|0,r0=(k0|0)<(W|0),r0)Z0=B;else{H0=Z0,n1=12;break}}if((n1|0)==8){n1=0,w=m+(P0<<2)|0,e[w>>2]=k0,D=x+(P0<<2)|0,s[D>>2]=M0,Y0=P0;break}else if((n1|0)==12){n1=0,s0=m+(H0<<2)|0,e[s0>>2]=k0,J=x+(H0<<2)|0,s[J>>2]=M0,Y0=H0;break}}while(!1);if(o1=Y0+1|0,o0=k0+1|0,O0=(o0|0)==(a|0),O0){i1=Y0,x0=o1;break}else k0=o0,q0=o1}if(c0=(i1|0)>-1,!c0){C=d1;return}for(S0=o+1|0,V0=0,G0=0;;){if(q=(V0|0)<(i1|0),q?(d0=V0+1|0,t0=x+(d0<<2)|0,j=+s[t0>>2],u0=x+(V0<<2)|0,$0=+s[u0>>2],l0=j>$0,l0?(Z=m+(d0<<2)|0,I0=e[Z>>2]|0,T0=I0):n1=17):n1=17,(n1|0)==17&&(n1=0,g0=m+(V0<<2)|0,f0=e[g0>>2]|0,n0=S0+f0|0,T0=n0),h0=(T0|0)>(a|0),F0=h0?a:T0,p0=(G0|0)<(F0|0),p0)for(C0=x+(V0<<2)|0,Q0=e[C0>>2]|0,b0=(T0|0)<(a|0),E0=b0?T0:a,J0=G0;;)if(y0=t+(J0<<2)|0,e[y0>>2]=Q0,w0=J0+1|0,N0=(w0|0)==(E0|0),N0){z0=E0;break}else J0=w0;else z0=G0;if(B0=V0+1|0,U0=(B0|0)==(x0|0),U0)break;V0=B0,G0=z0}C=d1}function kQ(t,o,a,$,g,h,m,I,E){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0,E=E|0;var Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0;if(c2=C,L=I<<2,D=L,R=C,C=C+((1*D|0)+15&-16)|0,s0=t+500|0,Z=e[s0>>2]|0,E0=(Z|0)==0,E0?v1=I:(O0=t+504|0,H0=e[O0>>2]|0,A1=H0-m|0,v1=A1),F1=(v1|0)>(I|0),V1=F1?I:v1,F=(V1|0)>0,F)for(T=(h|0)==0,N=(v1|0)<(I|0),G=N?v1:I,q1=0;;){T?O1=9:(a0=h+(q1<<2)|0,W=e[a0>>2]|0,r0=(W|0)==0,r0&&(O1=9));do if((O1|0)==9)if(O1=0,J=$+(q1<<2)|0,o0=+s[J>>2],q=g+(q1<<2)|0,d0=+s[q>>2],t0=o0/d0,j=a+(q1<<2)|0,u0=+s[j>>2],c0=u0<0,$0=t0,l0=+qn(+$0),I0=+z7(l0),c0){g0=-I0,f0=~~g0,n0=E+(q1<<2)|0,e[n0>>2]=f0;break}else{h0=~~I0,p0=E+(q1<<2)|0,e[p0>>2]=h0;break}while(!1);if(C0=q1+1|0,x1=(C0|0)==(G|0),x1){z1=G;break}else q1=C0}else z1=0;if(V=(z1|0)<(I|0),!V)return w=0,C=c2,+w;for(X=(h|0)!=0,K=o-m|0,Q=0,U1=0,H1=z1;;){X?(S0=h+(H1<<2)|0,Q0=e[S0>>2]|0,b0=(Q0|0)==0,b0?O1=15:(B=Q,b1=U1)):O1=15;do if((O1|0)==15)if(O1=0,y0=$+(H1<<2)|0,w0=+s[y0>>2],B0=g+(H1<<2)|0,_0=+s[B0>>2],K0=w0/_0,M0=!(K0<.25),v0=(H1|0)<(K|0),X1=X&v0,n2=M0|X1,n2){k0=a+(H1<<2)|0,V0=+s[k0>>2],F0=V0<0,L0=K0,G0=+qn(+L0),z0=+z7(G0),J0=-z0,x=F0?J0:z0,y=~~x,q0=E+(H1<<2)|0,e[q0>>2]=y,Z0=o5(y,y)|0,P0=+(Z0|0),o1=+s[B0>>2],Y0=P0*o1,s[y0>>2]=Y0,B=Q,b1=U1;break}else{T0=K0+Q,N0=U1+1|0,U0=R+(U1<<2)|0,e[U0>>2]=y0,B=T0,b1=N0;break}while(!1);if(i1=H1+1|0,G1=(i1|0)==(I|0),G1){S=B,P1=b1;break}else Q=B,U1=b1,H1=i1}if(x0=(P1|0)==0,x0||(Pu(R,P1,4,9),n1=(P1|0)>0,!n1))return w=S,C=c2,+w;for(d1=$,g1=t+512|0,m1=+l1[g1>>3],b=S,Y1=0;;)if(h1=R+(Y1<<2)|0,u1=e[h1>>2]|0,c1=u1,s1=c1-d1|0,$1=s1>>2,j0=b,E1=!(j0>=m1),E1?(v=b,M=0,j1=0):(I1=a+($1<<2)|0,Q1=e[I1>>2]|0,p1=Q1&-2147483648,B1=p1|1065353216,w1=(e[w2>>2]=B1,+s[w2>>2]),k1=~~w1,L1=b+-1,M1=g+($1<<2)|0,S1=+s[M1>>2],v=L1,M=k1,j1=S1),D1=E+($1<<2)|0,e[D1>>2]=M,s[u1>>2]=j1,R1=Y1+1|0,Z1=(R1|0)==(P1|0),Z1){w=v;break}else b=v,Y1=R1;return C=c2,+w}function Db(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0;return b=C,a=e[t>>2]|0,$=+s[a>>2],g=e[o>>2]|0,h=+s[g>>2],m=$h,Q=E&1,B=I-Q|0,B|0}function _b(t){t=t|0;var o=0,a=0,$=0;$=C,o=(t|0)==0,o||p2(t)}function xb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0;if(r0=C,a=(t|0)==0,!a){if($=t+4|0,w=e[$>>2]|0,R=(w|0)>0,F=t+20|0,R)for(L=w,K=0;T=e[F>>2]|0,N=T+(K<<2)|0,G=e[N>>2]|0,V=(G|0)==0,V?h=L:(p2(G),o=e[$>>2]|0,h=o),X=K+1|0,g=(X|0)<(h|0),g;)L=h,K=X;if(m=e[F>>2]|0,p2(m),I=t+24|0,E=e[I>>2]|0,Q=(E|0)>0,B=t+28|0,Q)for(a0=0;S=e[B>>2]|0,b=S+(a0<<2)|0,v=e[b>>2]|0,p2(v),D=a0+1|0,y=e[I>>2]|0,x=(D|0)<(y|0),x;)a0=D;M=e[B>>2]|0,p2(M),p2(t)}}function Lb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0;if(h0=C,g=e[t>>2]|0,O2(o,g,24),h=t+4|0,y=e[h>>2]|0,O2(o,y,24),K=t+8|0,q=e[K>>2]|0,d0=q+-1|0,O2(o,d0,24),t0=t+12|0,j=e[t0>>2]|0,u0=j+-1|0,O2(o,u0,6),c0=t+20|0,m=e[c0>>2]|0,O2(o,m,8),I=e[t0>>2]|0,E=(I|0)>0,!!E){for(Q=t+24|0,$0=0,Z=0;;){if(b=Q+(Z<<2)|0,v=e[b>>2]|0,w=q8(v)|0,D=(w|0)>3,x=e[b>>2]|0,D?(O2(o,x,3),O2(o,1,1),M=e[b>>2]|0,L=M>>3,O2(o,L,5)):O2(o,x,4),R=e[b>>2]|0,F=(R|0)==0,F)g0=0;else for(a=R,f0=0;;)if(T=a&1,N=T+f0|0,G=a>>>1,V=(G|0)==0,V){g0=N;break}else a=G,f0=N;if(X=g0+$0|0,a0=Z+1|0,W=e[t0>>2]|0,r0=(a0|0)<(W|0),r0)$0=X,Z=a0;else{$=X;break}}if(B=($|0)>0,!!B)for(S=t+280|0,I0=0;s0=S+(I0<<2)|0,J=e[s0>>2]|0,O2(o,J,8),o0=I0+1|0,l0=(o0|0)==($|0),!l0;)I0=o0}}function Mb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0;s1=C,m=ce(1,2840)|0,I=t+28|0,M=e[I>>2]|0,W=n4(o,24)|0,e[m>>2]=W,$0=n4(o,24)|0,Q0=m+4|0,e[Q0>>2]=$0,N0=n4(o,24)|0,Z0=N0+1|0,H0=m+8|0,e[H0>>2]=Z0,o1=n4(o,6)|0,E=o1+1|0,Q=m+12|0,e[Q>>2]=E,B=n4(o,8)|0,S=m+20|0,e[S>>2]=B,b=(B|0)<0;e:do if(b)c1=26;else{if(v=(o1|0)>-1,v){for(w=m+24|0,i1=0,d1=0;;){if(x=n4(o,3)|0,L=n4(o,1)|0,R=(L|0)<0,R){c1=26;break e}if(F=(L|0)==0,F)x0=x;else{if(T=n4(o,5)|0,N=(T|0)<0,N){c1=26;break e}G=T<<3,V=G|x,x0=V}if(X=w+(d1<<2)|0,e[X>>2]=x0,K=(x0|0)==0,K)u1=0;else for($=x0,A1=0;;)if(a0=$&1,r0=a0+A1|0,s0=$>>>1,J=(s0|0)==0,J){u1=r0;break}else $=s0,A1=r0;if(o0=u1+i1|0,q=d1+1|0,d0=e[Q>>2]|0,t0=(q|0)<(d0|0),t0)i1=o0,d1=q;else{h=o0;break}}if(D=(h|0)>0,D)for(y=m+280|0,g1=0;;){if(j=n4(o,8)|0,u0=(j|0)<0,u0)break e;if(c0=y+(g1<<2)|0,e[c0>>2]=j,l0=g1+1|0,Z=(l0|0)<(h|0),Z)g1=l0;else{P0=D,Y0=h;break}}else P0=0,Y0=h}else P0=0,Y0=0;if(I0=e[S>>2]|0,g0=M+24|0,f0=e[g0>>2]|0,n0=(I0|0)<(f0|0),n0){if(P0)for(h0=m+280|0,m1=0;;){if(S0=h0+(m1<<2)|0,b0=e[S0>>2]|0,E0=(b0|0)<(f0|0),!E0||(y0=(M+1824|0)+(b0<<2)|0,w0=e[y0>>2]|0,B0=w0+12|0,_0=e[B0>>2]|0,K0=(_0|0)==0,p0=m1+1|0,K0))break e;if(C0=(p0|0)<(Y0|0),C0)m1=p0;else break}if(M0=(M+1824|0)+(I0<<2)|0,v0=e[M0>>2]|0,T0=v0+4|0,U0=e[T0>>2]|0,O0=e[v0>>2]|0,k0=(O0|0)<1,!k0){for(V0=e[Q>>2]|0,n1=O0,h1=1;;){if(G0=o5(V0,h1)|0,z0=(G0|0)>(U0|0),z0)break e;if(F0=n1+-1|0,L0=(n1|0)>1,L0)n1=F0,h1=G0;else{g=G0;break}}return J0=m+16|0,e[J0>>2]=g,a=m,a|0}}}while(!1);return(c1|0)==26&&(q0=(m|0)==0,q0)?(a=0,a|0):(p2(m),a=0,a|0)}function Rb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0;if(v1=C,h=ce(1,44)|0,m=t+4|0,x=e[m>>2]|0,a0=x+28|0,c0=e[a0>>2]|0,e[h>>2]=o,S0=o+12|0,T0=e[S0>>2]|0,q0=h+4|0,e[q0>>2]=T0,o1=c0+2848|0,Y0=e[o1>>2]|0,I=h+12|0,e[I>>2]=Y0,E=Y0,Q=o+20|0,B=e[Q>>2]|0,S=E+(B*56|0)|0,b=h+16|0,e[b>>2]=S,v=e[S>>2]|0,w=ce(T0,4)|0,D=h+20|0,e[D>>2]=w,y=(T0|0)>0,y)for(M=o+24|0,L=o+280|0,i1=0,u1=0,I1=0;;){if(R=M+(u1<<2)|0,F=e[R>>2]|0,T=q8(F)|0,N=(T|0)==0,N)d1=i1,Q1=I1;else if(G=(T|0)>(I1|0),$=G?T:I1,V=ce(T,4)|0,X=w+(u1<<2)|0,e[X>>2]=V,K=(T|0)>0,K)for(W=e[R>>2]|0,r0=w+(u1<<2)|0,x0=i1,$1=0;;)if(s0=1<<$1,J=W&s0,o0=(J|0)==0,o0?n1=x0:(q=e[o1>>2]|0,d0=x0+1|0,t0=L+(x0<<2)|0,j=e[t0>>2]|0,u0=q+(j*56|0)|0,$0=e[r0>>2]|0,l0=$0+($1<<2)|0,e[l0>>2]=u0,n1=d0),Z=$1+1|0,m1=(Z|0)==(T|0),m1){d1=n1,Q1=$;break}else x0=n1,$1=Z;else d1=i1,Q1=$;if(I0=u1+1|0,g0=(I0|0)<(T0|0),g0)i1=d1,u1=I0,I1=Q1;else{E1=Q1;break}}else E1=0;if(f0=h+24|0,e[f0>>2]=1,n0=(v|0)>0,n0){for(p0=1,A1=0;;)if(h0=o5(p0,T0)|0,C0=A1+1|0,g1=(C0|0)==(v|0),g1){a=h0;break}else p0=h0,A1=C0;e[f0>>2]=a,E0=a}else E0=1;if(Q0=h+8|0,e[Q0>>2]=E1,b0=E0<<2,y0=R9(b0)|0,w0=h+28|0,e[w0>>2]=y0,B0=(E0|0)>0,!B0)return h|0;if(_0=v<<2,!n0){for(c1=0;J0=R9(_0)|0,Z0=y0+(c1<<2)|0,e[Z0>>2]=J0,P0=c1+1|0,H0=(P0|0)<(E0|0),H0;)c1=P0;return h|0}for(K0=e[w0>>2]|0,s1=0;;){for(L0=R9(_0)|0,G0=y0+(s1<<2)|0,e[G0>>2]=L0,z0=K0+(s1<<2)|0,V0=e[z0>>2]|0,g=E0,j0=0,B1=s1;p1=(g|0)/(T0|0)&-1,N0=(B1|0)/(p1|0)&-1,U0=o5(N0,p1)|0,O0=B1-U0|0,k0=V0+(j0<<2)|0,e[k0>>2]=N0,F0=j0+1|0,h1=(F0|0)==(v|0),!h1;)g=p1,j0=F0,B1=O0;if(M0=s1+1|0,v0=(M0|0)<(E0|0),v0)s1=M0;else break}return h|0}function Fb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0;if(F=C,h=(g|0)>0,h)y=0,x=0;else return 0;for(;;)if(m=$+(y<<2)|0,I=e[m>>2]|0,E=(I|0)==0,E?M=x:(Q=a+(y<<2)|0,B=e[Q>>2]|0,S=x+1|0,b=a+(x<<2)|0,e[b>>2]=B,M=S),v=y+1|0,D=(v|0)==(g|0),D){L=M;break}else y=v,x=M;return w=(L|0)==0,w||SQ(t,o,a,L,2),0}function Tb(t,o,a,$,g,h,m,I){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0;var E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0;if(G=C,E=(h|0)>0,E)L=0,R=0;else return 0;for(;;)if(Q=g+(L<<2)|0,B=e[Q>>2]|0,S=(B|0)==0,S?F=R:(b=$+(L<<2)|0,v=e[b>>2]|0,w=R+1|0,D=$+(R<<2)|0,e[D>>2]=v,F=w),y=L+1|0,M=(y|0)==(h|0),M){T=F;break}else L=y,R=F;return x=(T|0)==0,x||bQ(t,a,$,T,m),0}function Nb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0;if(w1=C,I=(g|0)>0,I)n1=0,I1=0;else return h=0,h|0;for(;;)if(E=$+(n1<<2)|0,L=e[E>>2]|0,r0=(L|0)==0,r0?Q1=I1:(l0=a+(n1<<2)|0,b0=e[l0>>2]|0,U0=I1+1|0,z0=a+(I1<<2)|0,e[z0>>2]=b0,Q1=U0),J0=n1+1|0,H0=(J0|0)==(g|0),H0){p1=Q1;break}else n1=J0,I1=Q1;if(q0=(p1|0)==0,q0)return h=0,h|0;if(Q=e[o>>2]|0,B=Q+8|0,S=e[B>>2]|0,b=Q+12|0,v=e[b>>2]|0,w=Q+4|0,D=e[w>>2]|0,y=e[Q>>2]|0,x=D-y|0,M=(x|0)/(S|0)&-1,R=p1<<2,F=z8(t,R)|0,T=+(S|0),N=100/T,G=N,V=(p1|0)>0,V)for(X=M<<2,d1=0;J=z8(t,X)|0,o0=F+(d1<<2)|0,e[o0>>2]=J,u4(J|0,0,X|0)|0,q=d1+1|0,x0=(q|0)==(p1|0),!x0;)d1=q;if(K=(M|0)>0,K)for(a0=(S|0)>0,W=v+-1|0,s0=(v|0)>1,g1=0;;){if(d0=o5(g1,S)|0,t0=e[Q>>2]|0,j=t0+d0|0,V)for(h1=0;;){if(a0)for(u0=a+(h1<<2)|0,c0=e[u0>>2]|0,P0=0,u1=0,$1=0;;)if($0=j+u1|0,Z=c0+($0<<2)|0,I0=e[Z>>2]|0,m1=(I0|0)>-1,j0=0-I0|0,g0=m1?I0:j0,f0=(g0|0)>($1|0),m=f0?g0:$1,n0=g0+P0|0,h0=u1+1|0,o1=(h0|0)==(S|0),o1){Z0=n0,s1=m;break}else P0=n0,u1=h0,$1=m;else Z0=0,s1=0;p0=+(Z0|0),C0=p0*G,S0=~~C0;e:do if(s0)for(c1=0;;){if(Q0=(Q+2328|0)+(c1<<2)|0,E0=e[Q0>>2]|0,y0=(s1|0)>(E0|0),!y0&&(w0=(Q+2584|0)+(c1<<2)|0,B0=e[w0>>2]|0,_0=(B0|0)<0,K0=(S0|0)<(B0|0),E1=_0|K0,E1)){A1=c1;break e}if(M0=c1+1|0,v0=(M0|0)<(W|0),v0)c1=M0;else{A1=M0;break}}else A1=0;while(!1);if(T0=F+(h1<<2)|0,N0=e[T0>>2]|0,O0=N0+(g1<<2)|0,e[O0>>2]=A1,k0=h1+1|0,Y0=(k0|0)==(p1|0),Y0)break;h1=k0}if(V0=g1+1|0,i1=(V0|0)==(M|0),i1)break;g1=V0}return F0=o+40|0,L0=e[F0>>2]|0,G0=L0+1|0,e[F0>>2]=G0,h=F,h|0}function Gb(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0;if(F=C,h=(g|0)>0,h)y=0,x=0;else return 0;for(;;)if(m=$+(y<<2)|0,I=e[m>>2]|0,E=(I|0)==0,E?M=x:(Q=a+(y<<2)|0,B=e[Q>>2]|0,S=x+1|0,b=a+(x<<2)|0,e[b>>2]=B,M=S),v=y+1|0,D=(v|0)==(g|0),D){L=M;break}else y=v,x=M;return w=(L|0)==0,w||SQ(t,o,a,L,3),0}function Ub(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0;if(j0=C,E=(g|0)>0,E)G0=0,s1=0;else return h=0,h|0;for(;;)if(Q=$+(G0<<2)|0,R=e[Q>>2]|0,h1=(R|0)!=0,s0=h1&1,A1=s0+s1|0,Z=G0+1|0,V0=(Z|0)==(g|0),V0){c1=A1;break}else G0=Z,s1=A1;if(u1=(c1|0)==0,u1)return h=0,h|0;if(E0=e[o>>2]|0,K0=E0+8|0,M0=e[K0>>2]|0,v0=E0+12|0,T0=e[v0>>2]|0,B=E0+4|0,S=e[B>>2]|0,b=e[E0>>2]|0,v=S-b|0,w=(v|0)/(M0|0)&-1,D=z8(t,4)|0,y=w<<2,x=z8(t,y)|0,e[D>>2]=x,u4(x|0,0,y|0)|0,M=(w|0)>0,M)for(L=e[E0>>2]|0,F=(L|0)/(g|0)&-1,T=(M0|0)>0,N=T0+-1|0,G=(T0|0)>1,V=e[D>>2]|0,X=(g|0)>1,z0=0,Y0=F;;){if(T)for(K=e[a>>2]|0,U0=0,Z0=0,x0=Y0,d1=0;;){if(a0=K+(x0<<2)|0,W=e[a0>>2]|0,J0=(W|0)>-1,g1=0-W|0,r0=J0?W:g1,J=(r0|0)>(d1|0),I=J?r0:d1,X)for(k0=U0,o1=1;;)if(o0=a+(o1<<2)|0,q=e[o0>>2]|0,d0=q+(x0<<2)|0,t0=e[d0>>2]|0,q0=(t0|0)>-1,m1=0-t0|0,j=q0?t0:m1,u0=(j|0)>(k0|0),m=u0?j:k0,c0=o1+1|0,F0=(c0|0)==(g|0),F0){O0=m;break}else k0=m,o1=c0;else O0=U0;if($0=x0+1|0,l0=Z0+g|0,I0=(l0|0)<(M0|0),I0)U0=O0,Z0=l0,x0=$0,d1=I;else{N0=O0,i1=$0,n1=I;break}}else N0=0,i1=Y0,n1=0;e:do if(G)for(H0=0;;){if(g0=(E0+2328|0)+(H0<<2)|0,f0=e[g0>>2]|0,n0=(n1|0)>(f0|0),!n0&&(h0=(E0+2584|0)+(H0<<2)|0,p0=e[h0>>2]|0,C0=(N0|0)>(p0|0),!C0)){P0=H0;break e}if(S0=H0+1|0,Q0=(S0|0)<(N|0),Q0)H0=S0;else{P0=S0;break}}else P0=0;while(!1);if(b0=V+(z0<<2)|0,e[b0>>2]=P0,y0=z0+1|0,L0=(y0|0)==(w|0),L0)break;z0=y0,Y0=i1}return w0=o+40|0,B0=e[w0>>2]|0,_0=B0+1|0,e[w0>>2]=_0,h=D,h|0}function Pb(t,o,a,$,g,h,m,I){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0;var E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0;if(c0=C,C=C+16|0,j=c0,E=o+36|0,Q=e[E>>2]|0,R=(Q|0)/2&-1,F=h<<2,T=o5(F,R)|0,N=z8(o,T)|0,e[j>>2]=N,G=(h|0)>0,!G)return C=c0,0;for(V=(Q|0)>1,W=0,t0=0;;){if(X=$+(W<<2)|0,K=e[X>>2]|0,B=g+(W<<2)|0,S=e[B>>2]|0,J=(S|0)!=0,b=J&1,q=b+t0|0,V)for(r0=0,s0=W;v=K+(r0<<2)|0,w=e[v>>2]|0,D=N+(s0<<2)|0,e[D>>2]=w,y=r0+1|0,x=s0+h|0,M=(y|0)<(R|0),M;)r0=y,s0=x;if(L=W+1|0,a0=(L|0)==(h|0),a0){d0=q;break}else W=L,t0=q}return o0=(d0|0)==0,o0?(C=c0,0):(bQ(t,a,j,1,m),C=c0,0)}function Ob(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0;if(k1=C,I=e[o>>2]|0,E=I+8|0,L=e[E>>2]|0,r0=o+16|0,l0=e[r0>>2]|0,b0=e[l0>>2]|0,U0=t+36|0,P0=e[U0>>2]|0,u1=o5(P0,g)|0,A1=u1>>1,Q=I+4|0,B=e[Q>>2]|0,S=(B|0)<(A1|0),h=S?B:A1,b=e[I>>2]|0,v=h-b|0,w=(v|0)>0,!w)return 0;D=(v|0)/(L|0)&-1,y=b0+-1|0,x=y+D|0,M=(x|0)/(b0|0)&-1,R=M<<2,F=z8(t,R)|0,T=(g|0)>0;e:do if(T)for(s1=0;;){if(N=$+(s1<<2)|0,G=e[N>>2]|0,V=(G|0)==0,!V){c1=s1;break e}if(X=s1+1|0,K=(X|0)<(g|0),K)s1=X;else{c1=X;break}}else c1=0;while(!1);if(a0=(c1|0)==(g|0),a0||(W=o+8|0,s0=e[W>>2]|0,J=(s0|0)>0,!J))return 0;o0=(D|0)>0,q=t+4|0,d0=I+16|0,t0=o+28|0,j=(b0|0)>0,u0=o+20|0,h1=s0,w1=0;e:for(;;){if(o0){for(c0=(w1|0)==0,$0=1<>2]|0,I0=sE(Z,q)|0,g0=(I0|0)==-1,g0){v1=23;break e}if(f0=e[d0>>2]|0,n0=(I0|0)<(f0|0),!n0){v1=23;break e}if(h0=e[t0>>2]|0,p0=h0+(I0<<2)|0,C0=e[p0>>2]|0,S0=F+(Q1<<2)|0,e[S0>>2]=C0,Q0=(C0|0)==0,Q0){v1=23;break e}}if(E0=($1|0)<(D|0),B1=j&E0,B1)for(y0=F+(Q1<<2)|0,E1=$1,I1=0;;){if(w0=e[y0>>2]|0,B0=w0+(I1<<2)|0,_0=e[B0>>2]|0,K0=(I+24|0)+(_0<<2)|0,M0=e[K0>>2]|0,v0=M0&$0,T0=(v0|0)==0,!T0&&(N0=e[u0>>2]|0,O0=N0+(_0<<2)|0,k0=e[O0>>2]|0,V0=k0+(w1<<2)|0,F0=e[V0>>2]|0,L0=(F0|0)==0,!L0&&(G0=o5(E1,L)|0,z0=e[I>>2]|0,J0=z0+G0|0,q0=zS(F0,a,J0,g,q,L)|0,Z0=(q0|0)==-1,Z0))){v1=23;break e}if(H0=I1+1|0,o1=E1+1|0,Y0=(H0|0)<(b0|0),i1=(o1|0)<(D|0),p1=Y0&i1,p1)E1=o1,I1=H0;else{j0=o1;break}}else j0=$1;if(x0=Q1+1|0,n1=(j0|0)<(D|0),n1)$1=j0,Q1=x0;else break}m=e[W>>2]|0,m1=m}else m1=h1;if(d1=w1+1|0,g1=(d1|0)<(m1|0),g1)h1=m1,w1=d1;else{v1=23;break}}return(v1|0)==23,0}function SQ(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0;if(X1=C,Q=e[o>>2]|0,B=Q+8|0,F=e[B>>2]|0,J=o+16|0,I0=e[J>>2]|0,y0=e[I0>>2]|0,k0=t+36|0,o1=e[k0>>2]|0,c1=o1>>1,k1=Q+4|0,S=e[k1>>2]|0,b=(S|0)<(c1|0),h=b?S:c1,v=e[Q>>2]|0,w=h-v|0,D=(w|0)>0,!D){C=X1;return}if(y=(w|0)/(F|0)&-1,x=$<<2,m=x,M=C,C=C+((1*m|0)+15&-16)|0,L=($|0)>0,L)for(R=y0+-1|0,T=R+y|0,N=(T|0)/(y0|0)&-1,G=N<<2,U1=0;d0=z8(t,G)|0,t0=M+(U1<<2)|0,e[t0>>2]=d0,j=U1+1|0,M1=(j|0)==($|0),!M1;)U1=j;if(V=o+8|0,X=e[V>>2]|0,K=(X|0)>0,!K){C=X1;return}a0=(y|0)>0,W=t+4|0,r0=Q+16|0,s0=o+28|0,o0=(y0|0)>0,q=o+20|0,E=L^1,Y1=0;e:for(;;){if(a0)for(u0=1<>2]|0,Y0=sE(H0,W)|0,i1=(Y0|0)==-1,i1){V1=25;break e}if(x0=e[r0>>2]|0,n1=(Y0|0)<(x0|0),!n1){V1=25;break e}if(d1=e[s0>>2]|0,g1=d1+(Y0<<2)|0,m1=e[g1>>2]|0,h1=M+(b1<<2)|0,u1=e[h1>>2]|0,A1=u1+(x1<<2)|0,e[A1>>2]=m1,s1=(m1|0)==0,Z0=b1+1|0,s1){V1=25;break e}if(P0=(Z0|0)<($|0),P0)b1=Z0;else break}c0=(S1|0)<(y|0),H1=o0&c0;t:do if(H1){if(L)F1=S1,G1=0;else for(R1=S1,Z1=0;;)if($1=Z1+1|0,j0=R1+1|0,E1=($1|0)<(y0|0),I1=(j0|0)<(y|0),z1=E1&I1,z1)R1=j0,Z1=$1;else{D1=j0;break t}for(;;){for(h0=o5(F1,F)|0,P1=0;;){if(f0=e[Q>>2]|0,n0=f0+h0|0,p0=M+(P1<<2)|0,C0=e[p0>>2]|0,S0=C0+(x1<<2)|0,Q0=e[S0>>2]|0,b0=Q0+(G1<<2)|0,E0=e[b0>>2]|0,w0=(Q+24|0)+(E0<<2)|0,B0=e[w0>>2]|0,_0=B0&u0,K0=(_0|0)==0,!K0&&(M0=e[q>>2]|0,v0=M0+(E0<<2)|0,T0=e[v0>>2]|0,N0=T0+(Y1<<2)|0,U0=e[N0>>2]|0,O0=(U0|0)==0,!O0&&(V0=a+(P1<<2)|0,F0=e[V0>>2]|0,L0=F0+(n0<<2)|0,G0=DC[g&3](U0,L0,W,F)|0,z0=(G0|0)==-1,z0))){V1=25;break e}if(J0=P1+1|0,q0=(J0|0)<($|0),q0)P1=J0;else break}if($0=G1+1|0,l0=F1+1|0,Z=($0|0)<(y0|0),g0=(l0|0)<(y|0),q1=Z&g0,q1)F1=l0,G1=$0;else{D1=l0;break}}}else D1=S1;while(!1);if(Q1=x1+1|0,p1=(D1|0)<(y|0),p1)S1=D1,x1=Q1;else break}if(B1=Y1+1|0,w1=e[V>>2]|0,v1=(B1|0)<(w1|0),v1)Y1=B1;else{V1=25;break}}if((V1|0)==25){C=X1;return}}function bQ(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0;if(Q6=C,C=C+1088|0,o3=Q6+1056|0,U5=Q6+1024|0,K6=Q6+512|0,A3=Q6,y=e[o>>2]|0,x=y+8|0,$2=e[x>>2]|0,V2=y+12|0,j2=e[V2>>2]|0,Q5=o+16|0,T1=e[Q5>>2]|0,f5=e[T1>>2]|0,h3=y+4|0,q3=e[h3>>2]|0,M=e[y>>2]|0,W=q3-M|0,$0=(W|0)/($2|0)&-1,u4(K6|0,0,512)|0,u4(A3|0,0,512)|0,Q0=o+8|0,N0=e[Q0>>2]|0,Z0=(N0|0)>0,!Z0){C=Q6;return}for(h1=($0|0)>0,B1=($|0)>0,b1=(f5|0)>1,n2=o+36|0,i2=(f5|0)>0,D2=o+20|0,S2=o+32|0,Q2=0-f5|0,k2=N0,c6=0;;){if(h1){for(N2=(c6|0)==0,L2=1<>2]|0,q5=L5+(Z5<<2)|0,M5=e[q5>>2]|0,Y2=e[Q5>>2]|0,p5=Y2+4|0,$5=e[p5>>2]|0,u5=(M5|0)<($5|0),u5&&(y5=Gu(Y2,M5,t)|0,D5=e[n2>>2]|0,d5=D5+y5|0,e[n2>>2]=d5),l5=v6+1|0,$6=(l5|0)==($|0),$6)break e;v6=l5}for(;;){for(b2=g+(L3<<2)|0,I5=e[b2>>2]|0,B5=I5+(Z5<<2)|0,s5=e[B5>>2]|0,C6=1,A6=s5;;)if(t5=o5(A6,j2)|0,T5=C6+Z5|0,i5=(T5|0)<($0|0),i5?(x5=I5+(T5<<2)|0,b5=e[x5>>2]|0,Y5=b5+t5|0,D6=Y5):D6=t5,g5=C6+1|0,_3=(g5|0)==(f5|0),_3){U6=D6;break}else C6=g5,A6=D6;if(W2=e[Q5>>2]|0,P2=W2+4|0,G2=e[P2>>2]|0,q2=(U6|0)<(G2|0),q2&&(Z2=Gu(W2,U6,t)|0,A5=e[n2>>2]|0,H2=A5+Z2|0,e[n2>>2]=H2),N1=L3+1|0,S3=(N1|0)==($|0),S3)break;L3=N1}}while(!1);if(R2=(Z5|0)<($0|0),F6=i2&R2,F6){for(M2=Z5-$0|0,y2=M2>>>0>>0,Y6=y2?Q2:M2,N5=0-Y6|0,d6=Z5,z3=0;;){if(X2=o5(d6,$2)|0,g2=e[y>>2]|0,w5=g2+X2|0,B1)for(o6=0;;){if(r5=g+(o6<<2)|0,a5=e[r5>>2]|0,h5=a5+(d6<<2)|0,z2=e[h5>>2]|0,N2&&(n5=A3+(z2<<2)|0,R5=e[n5>>2]|0,e5=R5+$2|0,e[n5>>2]=e5),c5=(y+24|0)+(z2<<2)|0,F2=e[c5>>2]|0,v5=F2&L2,J5=(v5|0)==0,!J5&&(i3=e[D2>>2]|0,E5=i3+(z2<<2)|0,I3=e[E5>>2]|0,K5=I3+(c6<<2)|0,r3=e[K5>>2]|0,a3=(r3|0)==0,!a3)){if(B3=a+(o6<<2)|0,G5=e[B3>>2]|0,W5=e[r3>>2]|0,D3=($2|0)/(W5|0)&-1,f3=(D3|0)>0,f3){for(y3=r3+48|0,X3=r3+52|0,X5=r3+44|0,b3=r3+12|0,t3=r3+4|0,L=W5,S5=0,d3=0;;){s6=o5(d3,W5)|0,b=s6+w5|0,T3=G5+(b<<2)|0,H3=e[y3>>2]|0,c3=e[X3>>2]|0,g3=e[X5>>2]|0,u3=g3>>1,e[o3>>2]=0,e[o3+4>>2]=0,e[o3+8>>2]=0,e[o3+12>>2]=0,e[o3+16>>2]=0,e[o3+20>>2]=0,e[o3+24>>2]=0,e[o3+28>>2]=0,Q3=(c3|0)==1,R=(L|0)>0;do if(Q3){if(!R){r6=0;break}for(G=g3+-1|0,m3=0,S6=0,K3=L;;)if(C0=K3+-1|0,D=b+C0|0,S0=G5+(D<<2)|0,b0=e[S0>>2]|0,E0=b0-H3|0,y0=(E0|0)<(u3|0),y0?(w0=u3-E0|0,B0=w0<<1,_0=B0+-1|0,T0=_0):(K0=E0-u3|0,M0=K0<<1,T0=M0),v0=o5(S6,g3)|0,U0=(T0|0)<0,O0=(T0|0)>=(g3|0),k0=O0?G:T0,V0=U0?0:k0,F0=V0+v0|0,L0=o3+(C0<<2)|0,e[L0>>2]=b0,G0=m3+1|0,i6=(G0|0)==(L|0),i6){r6=F0;break}else m3=G0,S6=F0,K3=C0}else{if(!R){r6=0;break}for(F=c3>>1,T=F-H3|0,N=g3+-1|0,x3=0,R6=0,M3=L;;)if(V=M3+-1|0,w=b+V|0,X=G5+(w<<2)|0,K=e[X>>2]|0,a0=T+K|0,r0=(a0|0)/(c3|0)&-1,s0=(r0|0)<(u3|0),s0?(J=u3-r0|0,o0=J<<1,q=o0+-1|0,u0=q):(d0=r0-u3|0,t0=d0<<1,u0=t0),j=o5(R6,g3)|0,c0=(u0|0)<0,l0=(u0|0)>=(g3|0),Z=l0?N:u0,I0=c0?0:Z,g0=I0+j|0,f0=o5(r0,c3)|0,n0=f0+H3|0,h0=o3+(V<<2)|0,e[h0>>2]=n0,p0=x3+1|0,V3=(p0|0)==(L|0),V3){r6=g0;break}else x3=p0,R6=g0,M3=V}while(!1);z0=e[b3>>2]|0,J0=z0+8|0,q0=e[J0>>2]|0,P0=q0+r6|0,H0=f[P0>>0]|0,o1=H0<<24>>24<1;do if(o1){if(e[U5>>2]=0,e[U5+4>>2]=0,e[U5+8>>2]=0,e[U5+12>>2]=0,e[U5+16>>2]=0,e[U5+20>>2]=0,e[U5+24>>2]=0,e[U5+28>>2]=0,Y0=g3+-1|0,i1=o5(Y0,c3)|0,x0=i1+H3|0,n1=e[t3>>2]|0,d1=(n1|0)>0,d1)z5=-1,L6=0,h6=r6;else{G6=r6;break}for(;;){g1=q0+L6|0,m1=f[g1>>0]|0,u1=m1<<24>>24>0;do if(u1){if(R)for(X6=0,R3=0;;)if(A1=U5+(X6<<2)|0,c1=e[A1>>2]|0,v=b+X6|0,s1=G5+(v<<2)|0,$1=e[s1>>2]|0,j0=c1-$1|0,E1=o5(j0,j0)|0,I1=E1+R3|0,Q1=X6+1|0,a6=(Q1|0)==(L|0),a6){B6=I1;break}else X6=Q1,R3=I1;else B6=0;if(p1=(z5|0)==-1,w1=(B6|0)<(z5|0),e6=p1|w1,!e6){H5=z5,b6=h6;break}e[o3>>2]=e[U5>>2]|0,e[o3+4>>2]=e[U5+4>>2]|0,e[o3+8>>2]=e[U5+8>>2]|0,e[o3+12>>2]=e[U5+12>>2]|0,e[o3+16>>2]=e[U5+16>>2]|0,e[o3+20>>2]=e[U5+20>>2]|0,e[o3+24>>2]=e[U5+24>>2]|0,e[o3+28>>2]=e[U5+28>>2]|0,H5=B6,b6=L6}else H5=z5,b6=h6;while(!1);if(v1=e[U5>>2]|0,k1=(v1|0)<(x0|0),k1)m=U5,I=v1;else for(M1=U5,n6=0;;)if(L1=n6+1|0,e[M1>>2]=0,S1=U5+(L1<<2)|0,D1=e[S1>>2]|0,R1=(D1|0)<(x0|0),R1){m=S1,I=D1;break}else M1=S1,n6=L1;if(F1=(I|0)>-1,F1?(U1=I+c3|0,e[m>>2]=U1,Z1=U1):Z1=I,P1=0-Z1|0,e[m>>2]=P1,G1=L6+1|0,n3=(G1|0)==(n1|0),n3){G6=b6;break}else z5=H5,L6=G1,h6=b6}}else G6=r6;while(!1);if(x1=(G6|0)>-1,l6=R&x1,l6)for(h=T3,M6=0;z1=o3+(M6<<2)|0,q1=e[z1>>2]|0,H1=h+4|0,Y1=e[h>>2]|0,V1=Y1-q1|0,e[h>>2]=V1,X1=M6+1|0,l3=(X1|0)==(L|0),!l3;)h=H1,M6=X1;if(j1=Gu(r3,G6,t)|0,O1=j1+S5|0,c2=d3+1|0,N3=(c2|0)==(D3|0),N3){E=O1;break}Q=e[r3>>2]|0,L=Q,S5=O1,d3=c2}B=e[r5>>2]|0,E2=B,V5=E}else E2=a5,V5=0;W1=e[S2>>2]|0,h2=W1+V5|0,e[S2>>2]=h2,s2=E2+(d6<<2)|0,a2=e[s2>>2]|0,K1=K6+(a2<<2)|0,d2=e[K1>>2]|0,l2=d2+V5|0,e[K1>>2]=l2}if(r2=o6+1|0,E6=(r2|0)==($|0),E6)break;o6=r2}if(A2=z3+1|0,e2=d6+1|0,k3=(A2|0)==(N5|0),k3)break;d6=e2,z3=A2}U2=Z5-Y6|0,J3=U2}else J3=Z5;if(m2=(J3|0)<($0|0),m2)Z5=J3;else break}S=e[Q0>>2]|0,t2=S}else t2=k2;if(o2=c6+1|0,f2=(o2|0)<(t2|0),f2)k2=t2,c6=o2;else break}C=Q6}function q8(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0;if(Q=C,a=(t|0)==0,a)m=0;else for(o=t,I=0;;)if($=o>>>1,g=I+1|0,h=($|0)==0,h){m=g;break}else o=$,I=g;return m|0}function DQ(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0;d2=C,C=C+144|0,O1=d2,E=(a|0)!=0,Q=E?a:o,R=Q<<2,s0=R9(R)|0,u4(O1|0,0,132)|0,Z=(o|0)>0;do if(Z){E0=O1+4|0,O0=(a|0)==0,H0=O0&1,v1=0,b1=0;e:for(;;){A1=t+b1|0,w1=f[A1>>0]|0,B=w1<<24>>24,S=w1<<24>>24>0;t:do if(S){if(b=O1+(B<<2)|0,v=e[b>>2]|0,w=w1<<24>>24>31,D=v>>>B,y=(D|0)==0,c2=w|y,!c2){K1=5;break e}x=s0+(v1<<2)|0,e[x>>2]=v,M=O1+(B<<2)|0,L=v&1,F=(L|0)==0;i:do if(F)for(J=v,o0=M,z1=B;;){if(r0=J+1|0,e[o0>>2]=r0,q=z1+-1|0,d0=(z1|0)>1,!d0)break i;if(h=O1+(q<<2)|0,I=e[h>>2]|0,t0=O1+(q<<2)|0,j=I&1,u0=(j|0)==0,u0)J=I,o0=t0,z1=q;else{g=t0,x1=q,K1=8;break}}else g=M,x1=B,K1=8;while(!1);do if((K1|0)==8)if(K1=0,N=(x1|0)==1,N){G=e[E0>>2]|0,V=G+1|0,e[E0>>2]=V;break}else{X=x1+-1|0,K=O1+(X<<2)|0,a0=e[K>>2]|0,W=a0<<1,e[g>>2]=W;break}while(!1);if(V1=B+1|0,T=(V1|0)<33,T)for(R1=v,H1=B,X1=V1;;){if(c0=O1+(X1<<2)|0,$0=e[c0>>2]|0,l0=$0>>>1,I0=(l0|0)==(R1|0),!I0){m=1;break t}if(g0=O1+(H1<<2)|0,f0=e[g0>>2]|0,n0=f0<<1,e[c0>>2]=n0,q1=X1+1|0,h0=(q1|0)<33,h0)Y1=X1,R1=$0,X1=q1,H1=Y1;else{m=1;break}}else m=1}else m=H0;while(!1);if(k1=v1+m|0,p0=b1+1|0,C0=(p0|0)<(o|0),C0)v1=k1,b1=p0;else{L1=k1,K1=16;break}}if((K1|0)==5)return p2(s0),$=0,C=d2,$|0;if((K1|0)==16){if(W1=(L1|0)==1,!W1){P1=1,K1=27;break}if(S0=O1+8|0,Q0=e[S0>>2]|0,b0=(Q0|0)==2,b0)break;P1=1,K1=27;break}}else P1=1,K1=27;while(!1);e:do if((K1|0)==27){for(;K1=0,Z0=O1+(P1<<2)|0,P0=e[Z0>>2]|0,o1=32-P1|0,Y0=-1>>>o1,i1=P0&Y0,x0=(i1|0)==0,J0=P1+1|0,!!x0;)if(q0=(J0|0)<33,q0)P1=J0,K1=27;else break e;return p2(s0),$=0,C=d2,$|0}while(!1);if(!Z)return $=s0,C=d2,$|0;if(E)S1=0,G1=0;else{for(M1=0,Z1=0;;){if(n1=t+Z1|0,d1=f[n1>>0]|0,g1=d1<<24>>24>0,g1)for(m1=s0+(M1<<2)|0,h1=e[m1>>2]|0,u1=d1<<24>>24,n2=0,E2=0;;)if(c1=E2<<1,s1=h1>>>n2,$1=s1&1,j0=$1|c1,E1=n2+1|0,I1=(E1|0)<(u1|0),I1)n2=E1,E2=j0;else{h2=j0;break}else h2=0;if(Q1=M1+1|0,p1=s0+(M1<<2)|0,e[p1>>2]=h2,B1=Z1+1|0,F1=(B1|0)==(o|0),F1){$=s0;break}else M1=Q1,Z1=B1}return C=d2,$|0}for(;;){if(y0=t+G1|0,w0=f[y0>>0]|0,B0=w0<<24>>24>0,B0)for(z0=s0+(S1<<2)|0,U0=e[z0>>2]|0,G0=w0<<24>>24,j1=0,a2=0;;)if(T0=a2<<1,N0=U0>>>j1,k0=N0&1,V0=k0|T0,F0=j1+1|0,L0=(F0|0)<(G0|0),L0)j1=F0,a2=V0;else{s2=V0;break}else s2=0;if(_0=w0<<24>>24==0,_0?D1=S1:(K0=S1+1|0,M0=s0+(S1<<2)|0,e[M0>>2]=s2,D1=K0),v0=G1+1|0,U1=(v0|0)==(o|0),U1){$=s0;break}else S1=D1,G1=v0}return C=d2,$|0}function qb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0;if(J=C,$=t+4|0,g=e[$>>2]|0,D=e[t>>2]|0,y=(D|0)>0,!y)for(;;);for(x=+(g|0),M=x,L=+(D|0),R=1/L,F=R,T=+Fu(+M,+F),h=+iA(+T),m=~~h,K=m;;){for(b=K+1|0,N=1,G=1,V=0;;)if(B=o5(N,K)|0,S=o5(G,b)|0,v=V+1|0,w=(v|0)<(D|0),w)N=B,G=S,V=v;else{o=B,a=S;break}if(I=(o|0)<=(g|0),E=(a|0)>(g|0),X=I&E,X){r0=K;break}Q=(o|0)>(g|0),W=Q?-1:1,a0=K+W|0,K=a0}return r0|0}function Hb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0;if(J5=C,Q=t+12|0,B=e[Q>>2]|0,E=B+-1|0,n5=E>>>0<2,!n5)return h=0,h|0;if(Y0=t+16|0,s1=e[Y0>>2]|0,L1=s1&2097151,x1=+(L1|0),W1=s1>>>21,A2=W1&1023,U2=(s1|0)<0,t5=-x1,$=U2?t5:x1,S=A2+-788|0,T=+$E($,S),o0=T,g0=t+20|0,w0=e[g0>>2]|0,V0=w0&2097151,Z0=+(V0|0),P0=w0>>>21,H0=P0&1023,o1=(w0|0)<0,i1=-Z0,g=o1?i1:Z0,x0=H0+-788|0,n1=+$E(g,x0),d1=n1,g1=e[t>>2]|0,m1=o5(g1,o)|0,h1=ce(m1,4)|0,(B|0)==1){if(w1=t+4|0,v1=e[w1>>2]|0,k1=(g1|0)>0,!k1)for(;;);for(M1=+(v1|0),S1=M1,D1=+(g1|0),R1=1/D1,F1=R1,U1=+Fu(+S1,+F1),b1=+iA(+U1),P1=~~b1,c5=P1;;){for(h2=c5+1|0,s5=1,R2=1,p5=0;;)if(O1=o5(s5,c5)|0,c2=o5(R2,h2)|0,s2=p5+1|0,m5=(s2|0)==(g1|0),m5){m=O1,I=c2;break}else s5=O1,R2=c2,p5=s2;if(Z1=(m|0)<=(v1|0),G1=(I|0)>(v1|0),f5=G1&Z1,f5){F2=c5;break}j1=(m|0)>(v1|0),e5=j1?-1:1,R5=e5+c5|0,c5=R5}if(z1=(v1|0)>0,!z1)return h=h1,h|0;for(q1=(a|0)==0,H1=t+8|0,Y1=t+32|0,V1=d1,X1=o0,n2=t+28|0,M2=0,T1=0;;){if(q1)if($2=e[Y1>>2]|0,i2=e[n2>>2]|0,l2=(i2|0)==0,r2=o5(g1,M2)|0,l2)for(y5=1,X2=0;;)if(x5=(T1|0)/(y5|0)&-1,j2=(x5|0)%(F2|0)&-1,I5=$2+(j2<<2)|0,b5=e[I5>>2]|0,Y5=+(b5|0),Y2=+rr(+Y5),g5=Y2,b2=g5*V1,B5=X1+b2,b=B5,v=r2+X2|0,w=h1+(v<<2)|0,s[w>>2]=b,D=o5(y5,F2)|0,y=X2+1|0,x=(y|0)<(g1|0),x)y5=D,X2=y;else{v5=21;break}else for($5=1,d5=0,r5=0;;)if(M=(T1|0)/($5|0)&-1,L=(M|0)%(F2|0)&-1,R=$2+(L<<2)|0,F=e[R>>2]|0,N=+(F|0),q5=+rr(+N),G=q5,V=G*V1,X=r5,K=X+X1,a0=K+V,W=a0,r0=r2+d5|0,s0=h1+(r0<<2)|0,s[s0>>2]=W,J=o5($5,F2)|0,q=d5+1|0,d0=(q|0)<(g1|0),d0)$5=J,d5=q,r5=W;else{v5=21;break}else if(E2=e[H1>>2]|0,a2=E2+T1|0,K1=f[a2>>0]|0,d2=K1<<24>>24==0,d2)y2=M2;else for(e2=e[Y1>>2]|0,o2=e[n2>>2]|0,f2=(o2|0)==0,t2=a+(M2<<2)|0,k2=e[t2>>2]|0,D2=o5(k2,g1)|0,u5=1,l5=0,a5=0;;)if(S2=(T1|0)/(u5|0)&-1,Q2=(S2|0)%(F2|0)&-1,N2=e2+(Q2<<2)|0,L2=e[N2>>2]|0,m2=+(L2|0),M5=+rr(+m2),W2=M5,P2=W2*V1,V2=a5,G2=V2+X1,q2=G2+P2,Z2=q2,w5=f2?a5:Z2,A5=D2+l5|0,H2=h1+(A5<<2)|0,s[H2>>2]=Z2,N1=o5(u5,F2)|0,T5=l5+1|0,i5=(T5|0)<(g1|0),i5)u5=N1,l5=T5,a5=w5;else{v5=21;break}if((v5|0)==21&&(v5=0,t0=M2+1|0,y2=t0),j=T1+1|0,u0=(j|0)<(v1|0),u0)M2=y2,T1=j;else{h=h1;break}}return h|0}else if((B|0)==2){if(u1=t+4|0,A1=e[u1>>2]|0,c1=(A1|0)>0,!c1)return h=h1,h|0;for($1=(a|0)!=0,j0=t+8|0,E1=t+32|0,I1=d1,Q1=o0,p1=t+28|0,B1=(g1|0)>0,Q5=0,D5=0;;){if($1?(c0=e[j0>>2]|0,$0=c0+D5|0,l0=f[$0>>0]|0,Z=l0<<24>>24==0,Z?N5=Q5:v5=25):v5=25,(v5|0)==25){if(v5=0,B1)for(I0=e[E1>>2]|0,f0=e[p1>>2]|0,n0=(f0|0)==0,h0=a+(Q5<<2)|0,p0=o5(g1,D5)|0,C0=o5(g1,Q5)|0,g2=0,z2=0;S0=p0+g2|0,Q0=I0+(S0<<2)|0,b0=e[Q0>>2]|0,E0=+(b0|0),L5=+rr(+E0),y0=L5,B0=y0*I1,_0=z2,K0=_0+Q1,M0=K0+B0,v0=M0,h5=n0?z2:v0,$1?(T0=e[h0>>2]|0,N0=o5(T0,g1)|0,U0=N0+g2|0,O0=h1+(U0<<2)|0,s[O0>>2]=v0):(k0=C0+g2|0,F0=h1+(k0<<2)|0,s[F0>>2]=v0),L0=g2+1|0,G0=(L0|0)<(g1|0),G0;)g2=L0,z2=h5;z0=Q5+1|0,N5=z0}if(J0=D5+1|0,q0=(J0|0)<(A1|0),q0)Q5=N5,D5=J0;else{h=h1;break}}return h|0}else return h=h1,h|0;return 0}function vC(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0;S=C,o=t+36|0,a=e[o>>2]|0,$=(a|0)==0,!$&&(g=t+32|0,h=e[g>>2]|0,m=(h|0)==0,m||p2(h),I=t+8|0,E=e[I>>2]|0,Q=(E|0)==0,Q||p2(E),p2(t))}function Yb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0;M=C,o=t+16|0,a=e[o>>2]|0,E=(a|0)==0,E||p2(a),Q=t+20|0,B=e[Q>>2]|0,S=(B|0)==0,S||p2(B),b=t+24|0,v=e[b>>2]|0,w=(v|0)==0,w||p2(v),D=t+28|0,$=e[D>>2]|0,g=($|0)==0,g||p2($),h=t+32|0,m=e[h>>2]|0,I=(m|0)==0,I||p2(m),y=t,L=y+56|0;do e[y>>2]=0,y=y+4|0;while((y|0)<(L|0))}function _Q(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0;P0=C,q0=t,H0=q0+56|0;do e[q0>>2]=0,q0=q0+4|0;while((q0|0)<(H0|0));if(m=t+12|0,e[m>>2]=o,I=o+4|0,M=e[I>>2]|0,W=t+4|0,e[W>>2]=M,$0=t+8|0,e[$0>>2]=M,Q0=e[o>>2]|0,e[t>>2]=Q0,_0=o+8|0,K0=e[_0>>2]|0,M0=DQ(K0,M,0)|0,v0=t+20|0,e[v0>>2]=M0,E=e[I>>2]|0,Q=e[o>>2]|0,B=(Q|0)>0,!B)for(;;);for(S=+(E|0),b=S,v=+(Q|0),w=1/v,D=w,y=+Fu(+b,+D),x=+iA(+y),L=~~x,z0=L;;){for(V=z0+1|0,T0=1,N0=1,O0=0;;)if(N=o5(T0,z0)|0,G=o5(N0,V)|0,X=O0+1|0,U0=(X|0)==(Q|0),U0){g=N,h=G;break}else T0=N,N0=G,O0=X;if(R=(g|0)<=(E|0),F=(h|0)>(E|0),k0=F&R,k0){J0=z0;break}T=(g|0)>(E|0),G0=T?-1:1,L0=G0+z0|0,z0=L0}return K=t+44|0,e[K>>2]=J0,a0=o+16|0,r0=e[a0>>2]|0,s0=r0&2097151,J=+(s0|0),o0=r0>>>21,q=o0&1023,d0=(r0|0)<0,t0=-J,a=d0?t0:J,j=q+-788|0,u0=+$E(a,j),c0=u0,V0=+TQ(c0),l0=~~V0,Z=t+48|0,e[Z>>2]=l0,I0=o+20|0,g0=e[I0>>2]|0,f0=g0&2097151,n0=+(f0|0),h0=g0>>>21,p0=h0&1023,C0=(g0|0)<0,S0=-n0,$=C0?S0:n0,b0=p0+-788|0,E0=+$E($,b0),y0=E0,F0=+TQ(y0),w0=~~F0,B0=t+52|0,e[B0>>2]=w0,0}function Vb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0;U3=C,_6=t,q6=_6+56|0;do e[_6>>2]=0,_6=_6+4|0;while((_6|0)<(q6|0));if(b=o+4|0,v=e[b>>2]|0,E2=(v|0)>0,E2)for(Y2=o+8|0,w5=e[Y2>>2]|0,z3=0,U6=0;;)if(v5=w5+z3|0,W5=f[v5>>0]|0,H3=W5<<24>>24>0,$6=H3&1,E=$6+U6|0,Z5=z3+1|0,w=(Z5|0)<(v|0),w)z3=Z5,U6=E;else{h0=E;break}else h0=0;if(V=t+4|0,e[V>>2]=v,t0=t+8|0,e[t0>>2]=h0,K0=e[o>>2]|0,e[t>>2]=K0,G0=(h0|0)>0,!G0)return $=0,C=U3,$|0;if(n1=o+8|0,E1=e[n1>>2]|0,D1=DQ(E1,v,h0)|0,H1=h0<<2,h=H1,a2=C,C=C+((1*h|0)+15&-16)|0,t2=(D1|0)==0,t2){q2=t+16|0,Z2=e[q2>>2]|0,A5=(Z2|0)==0,A5||p2(Z2),H2=t+20|0,N1=e[H2>>2]|0,t5=(N1|0)==0,t5||p2(N1),T5=t+24|0,i5=e[T5>>2]|0,x5=(i5|0)==0,x5||p2(i5),I5=t+28|0,b5=e[I5>>2]|0,Y5=(b5|0)==0,Y5||p2(b5),g5=t+32|0,b2=e[g5>>2]|0,B5=(b2|0)==0,B5||p2(b2),_6=t,q6=_6+56|0;do e[_6>>2]=0,_6=_6+4|0;while((_6|0)<(q6|0));return $=-1,C=U3,$|0}else M3=0;for(;V2=D1+(M3<<2)|0,j2=e[V2>>2]|0,Q5=j2>>>16,N5=j2<<16,m5=Q5|N5,L5=m5>>>8,q5=L5&16711935,M5=m5<<8,p5=M5&-16711936,$5=q5|p5,u5=$5>>>4,y5=u5&252645135,T1=$5<<4,D5=T1&-252645136,d5=y5|D5,l5=d5>>>2,X2=l5&858993459,g2=d5<<2,r5=g2&-858993460,a5=X2|r5,h5=a5>>>1,z2=h5&1431655765,f5=a5<<1,n5=f5&-1431655766,R5=z2|n5,e[V2>>2]=R5,e5=a2+(M3<<2)|0,e[e5>>2]=V2,c5=M3+1|0,X6=(c5|0)==(h0|0),!X6;)M3=c5;for(Pu(a2,h0,4,10),m=H1,F2=C,C=C+((1*m|0)+15&-16)|0,J5=R9(H1)|0,i3=t+20|0,e[i3>>2]=J5,E5=D1,K3=0;;)if(I3=a2+(K3<<2)|0,h3=e[I3>>2]|0,K5=h3,r3=K5-E5|0,a3=r3>>2,B3=F2+(a3<<2)|0,e[B3>>2]=K3,G5=K3+1|0,G6=(G5|0)==(h0|0),G6){e6=0;break}else K3=G5;for(;D3=D1+(e6<<2)|0,f3=e[D3>>2]|0,y3=F2+(e6<<2)|0,X3=e[y3>>2]|0,q3=J5+(X3<<2)|0,e[q3>>2]=f3,X5=e6+1|0,b6=(X5|0)==(h0|0),!b6;)e6=X5;if(p2(D1),b3=Hb(o,h0,F2)|0,t3=t+16|0,e[t3>>2]=b3,s6=R9(H1)|0,T3=t+24|0,e[T3>>2]=s6,c3=e[b>>2]|0,g3=(c3|0)>0,g3)for(Q=e[n1>>2]|0,F6=0,Q6=0;;)if(u3=Q+F6|0,Q3=f[u3>>0]|0,z5=Q3<<24>>24>0,z5?(H5=Q6+1|0,V5=F2+(Q6<<2)|0,S5=e[V5>>2]|0,Y3=s6+(S5<<2)|0,e[Y3>>2]=F6,e9=H5):e9=Q6,U5=F6+1|0,n3=(U5|0)<(c3|0),n3)F6=U5,Q6=e9;else{t9=e9;break}else t9=0;if(l3=R9(t9)|0,N3=t+28|0,e[N3>>2]=l3,E6=t+40|0,e[E6>>2]=0,g3){for(B=e[n1>>2]|0,s5=0,_3=B,l6=0,n9=0;;)if(k3=_3+l6|0,S3=f[k3>>0]|0,a6=S3<<24>>24>0,a6?(i6=n9+1|0,V3=F2+(n9<<2)|0,x3=e[V3>>2]|0,d3=e[N3>>2]|0,J3=d3+x3|0,f[J3>>0]=S3,d6=e[n1>>2]|0,m3=d6+l6|0,L6=f[m3>>0]|0,M6=L6<<24>>24,R6=e[E6>>2]|0,S6=(M6|0)>(R6|0),S6?(e[E6>>2]=M6,R2=M6,M2=d6,V6=i6):(R2=R6,M2=d6,V6=i6)):(R2=s5,M2=_3,V6=n9),r6=l6+1|0,D=e[b>>2]|0,y=(r6|0)<(D|0),y)s5=R2,_3=M2,l6=r6,n9=V6;else{I=R2,s9=V6;break}if(x=(s9|0)==1,x){if(M=(I|0)==1,M)return L=t+36|0,e[L>>2]=1,R=ce(2,4)|0,F=t+32|0,e[F>>2]=R,T=R+4|0,e[T>>2]=1,e[R>>2]=1,$=0,C=U3,$|0;G3=1}else G3=s9}else G3=0;if(N=e[t0>>2]|0,G=(N|0)==0,G)P6=-4;else{for(g=N,J6=0;;)if(X=g>>>1,K=J6+1|0,a0=(X|0)==0,a0){T6=J6;break}else g=X,J6=K;c9=T6+-3|0,P6=c9}if(W=t+36|0,r0=(P6|0)<5,a=r0?5:P6,s0=(a|0)>8,i9=s0?8:a,e[W>>2]=i9,J=1<>2]=o0,d0=(G3|0)>0,d0)for(l0=i9,o3=0;;){if(j=e[N3>>2]|0,u0=j+o3|0,c0=f[u0>>0]|0,$0=c0<<24>>24,Z=(l0|0)<($0|0),Z)y2=l0;else if(I0=e[i3>>2]|0,g0=I0+(o3<<2)|0,f0=e[g0>>2]|0,n0=f0>>>16,p0=f0<<16,C0=n0|p0,S0=C0>>>8,Q0=S0&16711935,b0=C0<<8,E0=b0&-16711936,y0=Q0|E0,w0=y0>>>4,B0=w0&252645135,_0=y0<<4,M0=_0&-252645136,v0=B0|M0,T0=v0>>>2,N0=T0&858993459,U0=v0<<2,O0=U0&-858993460,k0=N0|O0,V0=k0>>>1,F0=V0&1431655765,L0=k0<<1,z0=L0&-1431655766,J0=F0|z0,q0=l0-$0|0,Z0=(q0|0)==31,Z0)y2=l0;else for(P0=o3+1|0,o1=$0,A3=0;;)if(H0=A3<>2]=P0,x0=A3+1|0,d1=e[W>>2]|0,g1=f[u0>>0]|0,m1=g1<<24>>24,h1=d1-m1|0,u1=1<>>16,v1=B1<<16,k1=w1|v1,L1=k1>>>8,M1=L1&16711935,S1=k1<<8,R1=S1&-16711936,F1=M1|R1,U1=F1>>>4,b1=U1&252645135,P1=F1<<4,Z1=P1&-252645136,G1=b1|Z1,x1=G1>>>2,z1=x1&858993459,q1=G1<<2,Y1=q1&-858993460,V1=z1|Y1,X1=V1>>>1,n2=X1&1431655765,j1=V1<<1,O1=j1&-1431655766,c2=n2|O1,W1=o0+(c2<<2)|0,h2=e[W1>>2]|0,s2=(h2|0)==0,s2){for(B6=c6;;){if(K1=B6+1|0,d2=(K1|0)<(G3|0),!d2){R3=B6;break}if($2=e[i3>>2]|0,i2=$2+(K1<<2)|0,l2=e[i2>>2]|0,r2=l2>>>0>B1>>>0,r2){R3=B6;break}else B6=K1}A2=(G3|0)>(v6|0);e:do if(A2)for(e2=e[i3>>2]|0,n6=v6;;){if(o2=e2+(n6<<2)|0,f2=e[o2>>2]|0,k2=f2&j0,D2=B1>>>0>>0,D2){L3=n6;break e}if(S2=n6+1|0,Q2=(G3|0)>(S2|0),Q2)n6=S2;else{L3=S2;break}}else L3=v6;while(!1);N2=G3-L3|0,L2=R3>>>0>32767,U2=N2>>>0>32767,C6=U2?32767:N2,Y6=R3<<15,A6=Y6|-2147483648,m2=L2?-1073774592:A6,W2=m2|C6,e[W1>>2]=W2,o6=L3,D6=R3}else o6=v6,D6=c6;if(P2=K6+1|0,G2=(P2|0)<(J|0),!G2){$=0;break}S=e[W>>2]|0,p1=S,v6=o6,K6=P2,c6=D6}return C=U3,$|0}function Jb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0;return b=C,a=e[t>>2]|0,$=e[a>>2]|0,g=e[o>>2]|0,h=e[g>>2]|0,m=$>>>0>h>>>0,I=m&1,E=$>>>0>>0,Q=E&1,B=I-Q|0,B|0}function zb(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0;if(K0=C,Q=e[t>>2]|0,B=(Q|0)==1,!B&&(F=t+4|0,J=e[F>>2]|0,$0=t+8|0,l0=e[$0>>2]|0,Z=l0+4|0,I0=e[Z>>2]|0,g0=(I0|0)>0,!!g0)){for(f0=I0+1|0,E=Q+-1|0,C0=Q,S0=0,Q0=Q,E0=1;;){S=f0-S0|0,b=l0+(S<<2)|0,v=e[b>>2]|0,w=(Q0|0)/(v|0)&-1,D=(Q|0)/(Q0|0)&-1,y=o5(D,w)|0,x=v+-1|0,M=o5(D,x)|0,L=C0-M|0,R=1-E0|0;do if((v|0)==2)if(K=(R|0)==0,a=E+L|0,a0=J+(a<<2)|0,K){RQ(D,w,o,J,a0),y0=0;break}else{RQ(D,w,J,o,a0),y0=R;break}else if((v|0)==4)if(T=L+D|0,N=(R|0)==0,$=E+L|0,G=J+($<<2)|0,g=E+T|0,V=J+(g<<2)|0,h=E+D|0,m=h+T|0,X=J+(m<<2)|0,N){MQ(D,w,o,J,G,V,X),y0=0;break}else{MQ(D,w,J,o,G,V,X),y0=R;break}else if(W=(D|0)==1,b0=W?E0:R,r0=(b0|0)==0,I=E+L|0,s0=J+(I<<2)|0,r0){FQ(D,v,w,y,o,o,o,J,J,s0),y0=1;break}else{FQ(D,v,w,y,J,J,J,o,o,s0),y0=0;break}while(!1);if(o0=S0+1|0,h0=(o0|0)==(I0|0),h0){w0=y0;break}else C0=L,S0=o0,Q0=w,E0=y0}if(q=(w0|0)!=1,d0=(Q|0)>0,B0=d0&q,B0)p0=0;else return;for(;t0=J+(p0<<2)|0,j=e[t0>>2]|0,u0=o+(p0<<2)|0,e[u0>>2]=j,c0=p0+1|0,n0=(c0|0)==(Q|0),!n0;)p0=c0}}function xQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0;if(E1=C,e[t>>2]=o,m=o*3|0,I=ce(m,4)|0,M=t+4|0,e[M>>2]=I,W=ce(32,4)|0,$0=t+8|0,e[$0>>2]=W,Q0=(o|0)==1,!Q0){K0=W+8|0,Y0=-1,g1=0,m1=o,u1=0;e:for(;;)for(M0=Y0+1|0,v0=(M0|0)<4,v0?(T0=25768+(M0<<2)|0,E=e[T0>>2]|0,A1=E):(Q=u1+2|0,A1=Q),B=(A1|0)!=2,q0=g1,h1=m1;;){if(z0=q0+1|0,S=(h1|0)/(A1|0)&-1,b=o5(S,A1)|0,v=(h1|0)==(b|0),!v){Y0=M0,g1=q0,m1=h1,u1=A1;continue e}if(w=q0+2|0,D=W+(w<<2)|0,e[D>>2]=A1,y=(q0|0)==0,c1=B|y,!c1){if(x=(q0|0)<1,!x)for(F0=1;L=z0-F0|0,R=L+1|0,F=W+(R<<2)|0,T=e[F>>2]|0,N=L+2|0,G=W+(N<<2)|0,e[G>>2]=T,V=F0+1|0,k0=(V|0)==(z0|0),!k0;)F0=V;e[K0>>2]=2}if(X=(S|0)==1,X){a=y,J0=z0,Z0=q0;break e}else q0=z0,h1=S}if(e[W>>2]=o,K=W+4|0,e[K>>2]=J0,a0=+(o|0),r0=6.2831854820251465/a0,$=a^1,s0=(Z0|0)>0,s1=s0&$,!!s1)for(J=o+1|0,P0=0,x0=0,n1=1;;){if(o0=x0+2|0,q=W+(o0<<2)|0,d0=e[q>>2]|0,t0=o5(d0,n1)|0,j=(o|0)/(t0|0)&-1,u0=(d0|0)>1,u0){for(c0=(j|0)>2,l0=d0+-1|0,o1=P0,i1=0,d1=0;;){if(Z=d1+n1|0,I0=+(Z|0),g0=I0*r0,c0)for(V0=0,L0=o1,G0=2;f0=V0+1,n0=g0*f0,N0=+rA(+n0),g=L0+o|0,h0=I+(g<<2)|0,s[h0>>2]=N0,$1=+Hn(+n0),p0=L0+2|0,h=J+L0|0,C0=I+(h<<2)|0,s[C0>>2]=$1,S0=G0+2|0,b0=(S0|0)<(j|0),b0;)V0=f0,L0=p0,G0=S0;if(E0=o1+j|0,y0=i1+1|0,U0=(y0|0)==(l0|0),U0)break;o1=E0,i1=y0,d1=Z}w0=o5(j,l0)|0,B0=w0+P0|0,H0=B0}else H0=P0;if(_0=x0+1|0,O0=(_0|0)==(Z0|0),O0)break;P0=H0,x0=_0,n1=t0}}}function LQ(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0;Q=C,o=(t|0)==0,!o&&(a=t+4|0,$=e[a>>2]|0,g=($|0)==0,g||p2($),h=t+8|0,m=e[h>>2]|0,I=(m|0)==0,I||p2(m),e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0)}function MQ(t,o,a,$,g,h,m){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0;var I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0;if(I3=C,I=o5(o,t)|0,E=I<<1,Q1=(o|0)>0,Q1)for(F1=I*3|0,V1=t<<2,K1=V1+-1|0,k2=t<<1,g2=0,a5=I,f5=F1,e5=0,c5=E;G2=a+(a5<<2)|0,I5=+s[G2>>2],N5=a+(f5<<2)|0,Q=+s[N5>>2],R=Q+I5,s0=a+(e5<<2)|0,Z=+s[s0>>2],E0=a+(c5<<2)|0,O0=+s[E0>>2],H0=O0+Z,A1=H0+R,E1=e5<<2,I1=$+(E1<<2)|0,s[I1>>2]=A1,p1=H0-R,B1=K1+E1|0,w1=$+(B1<<2)|0,s[w1>>2]=p1,v1=+s[s0>>2],k1=+s[E0>>2],L1=v1-k1,M1=E1+k2|0,S1=M1+-1|0,D1=$+(S1<<2)|0,s[D1>>2]=L1,R1=+s[N5>>2],U1=+s[G2>>2],b1=R1-U1,P1=$+(M1<<2)|0,s[P1>>2]=b1,Z1=a5+t|0,G1=f5+t|0,x1=e5+t|0,z1=c5+t|0,q1=g2+1|0,d5=(q1|0)==(o|0),!d5;)g2=q1,a5=Z1,f5=G1,e5=x1,c5=z1;if(H1=(t|0)<2,!H1){if(Y1=(t|0)==2,!Y1){if(Q1)for(X1=t<<1,w5=0,h5=0;;){for(n0=h5<<2,h0=n0+X1|0,X2=2,n5=h5,F2=n0,J5=h0;O1=n5+2|0,c2=F2+2|0,W1=J5+-2|0,h2=O1+I|0,s2=X2+-2|0,E2=g+(s2<<2)|0,a2=+s[E2>>2],d2=h2+-1|0,$2=a+(d2<<2)|0,i2=+s[$2>>2],l2=i2*a2,r2=X2+-1|0,A2=g+(r2<<2)|0,e2=+s[A2>>2],o2=a+(h2<<2)|0,f2=+s[o2>>2],t2=f2*e2,D2=t2+l2,S2=f2*a2,Q2=e2*i2,N2=S2-Q2,L2=h2+I|0,U2=h+(s2<<2)|0,m2=+s[U2>>2],W2=L2+-1|0,P2=a+(W2<<2)|0,V2=+s[P2>>2],q2=V2*m2,Z2=h+(r2<<2)|0,A5=+s[Z2>>2],H2=a+(L2<<2)|0,N1=+s[H2>>2],t5=N1*A5,T5=t5+q2,i5=N1*m2,x5=A5*V2,j2=i5-x5,b5=L2+I|0,Y5=m+(s2<<2)|0,g5=+s[Y5>>2],b2=b5+-1|0,B5=a+(b2<<2)|0,s5=+s[B5>>2],R2=s5*g5,M2=m+(r2<<2)|0,y2=+s[M2>>2],Q5=a+(b5<<2)|0,m5=+s[Q5>>2],L5=m5*y2,q5=L5+R2,M5=m5*g5,Y2=y2*s5,p5=M5-Y2,$5=q5+D2,u5=q5-D2,y5=p5+N2,T1=N2-p5,B=a+(O1<<2)|0,S=+s[B>>2],b=S+j2,v=S-j2,w=n5+1|0,D=a+(w<<2)|0,y=+s[D>>2],x=y+T5,M=y-T5,L=$5+x,F=F2|1,T=$+(F<<2)|0,s[T>>2]=L,N=y5+b,G=$+(c2<<2)|0,s[G>>2]=N,V=M-T1,X=J5+-3|0,K=$+(X<<2)|0,s[K>>2]=V,a0=u5-v,W=$+(W1<<2)|0,s[W>>2]=a0,r0=T1+M,J=c2+X1|0,o0=J+-1|0,q=$+(o0<<2)|0,s[q>>2]=r0,d0=u5+v,t0=$+(J<<2)|0,s[t0>>2]=d0,j=x-$5,u0=W1+X1|0,c0=u0+-1|0,$0=$+(c0<<2)|0,s[$0>>2]=j,l0=y5-b,I0=$+(u0<<2)|0,s[I0>>2]=l0,g0=X2+2|0,f0=(g0|0)<(t|0),f0;)X2=g0,n5=O1,F2=c2,J5=W1;if(n2=h5+t|0,j1=w5+1|0,l5=(j1|0)==(o|0),l5)break;w5=j1,h5=n2}if(p0=t&1,C0=(p0|0)==0,!C0)return}if(S0=t+-1|0,Q0=S0+I|0,b0=t<<2,y0=t<<1,!!Q1)for(w0=Q0+E|0,r5=0,z2=Q0,R5=w0,v5=t,i3=t;B0=a+(z2<<2)|0,_0=+s[B0>>2],K0=a+(R5<<2)|0,M0=+s[K0>>2],v0=M0+_0,T0=v0*-.7071067690849304,N0=_0-M0,U0=N0*.7071067690849304,k0=i3+-1|0,V0=a+(k0<<2)|0,F0=+s[V0>>2],L0=U0+F0,G0=v5+-1|0,z0=$+(G0<<2)|0,s[z0>>2]=L0,J0=+s[V0>>2],q0=J0-U0,Z0=v5+y0|0,P0=Z0+-1|0,o1=$+(P0<<2)|0,s[o1>>2]=q0,Y0=z2+I|0,i1=a+(Y0<<2)|0,x0=+s[i1>>2],n1=T0-x0,d1=$+(v5<<2)|0,s[d1>>2]=n1,g1=+s[i1>>2],m1=g1+T0,h1=$+(Z0<<2)|0,s[h1>>2]=m1,u1=z2+t|0,c1=R5+t|0,s1=v5+b0|0,$1=i3+t|0,j0=r5+1|0,D5=(j0|0)==(o|0),!D5;)r5=j0,z2=u1,R5=c1,v5=s1,i3=$1}}function RQ(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0;if(b1=C,h=o5(o,t)|0,m=t<<1,x=(o|0)>0,x)for(a0=m+-1|0,E1=0,p1=0,v1=h;c0=a+(p1<<2)|0,S0=+s[c0>>2],T0=a+(v1<<2)|0,q0=+s[T0>>2],m1=q0+S0,A1=p1<<1,I=$+(A1<<2)|0,s[I>>2]=m1,E=+s[c0>>2],Q=+s[T0>>2],B=E-Q,S=a0+A1|0,b=$+(S<<2)|0,s[b>>2]=B,v=p1+t|0,w=v1+t|0,D=E1+1|0,s1=(D|0)==(o|0),!s1;)E1=D,p1=v,v1=w;if(y=(t|0)<2,!y){if(M=(t|0)==2,!M){if(x)for(I1=0,B1=0,k1=h;;){for(V0=B1<<1,F0=V0+m|0,j0=2,M1=k1,D1=F0,R1=B1,F1=V0;T=M1+2|0,N=D1+-2|0,G=R1+2|0,V=F1+2|0,X=j0+-2|0,K=g+(X<<2)|0,W=+s[K>>2],r0=M1+1|0,s0=a+(r0<<2)|0,J=+s[s0>>2],o0=J*W,q=j0+-1|0,d0=g+(q<<2)|0,t0=+s[d0>>2],j=a+(T<<2)|0,u0=+s[j>>2],$0=u0*t0,l0=$0+o0,Z=u0*W,I0=t0*J,g0=Z-I0,f0=a+(G<<2)|0,n0=+s[f0>>2],h0=g0+n0,p0=$+(V<<2)|0,s[p0>>2]=h0,C0=+s[f0>>2],Q0=g0-C0,b0=$+(N<<2)|0,s[b0>>2]=Q0,E0=R1+1|0,y0=a+(E0<<2)|0,w0=+s[y0>>2],B0=w0+l0,_0=F1|1,K0=$+(_0<<2)|0,s[K0>>2]=B0,M0=+s[y0>>2],v0=M0-l0,N0=D1+-3|0,U0=$+(N0<<2)|0,s[U0>>2]=v0,O0=j0+2|0,k0=(O0|0)<(t|0),k0;)j0=O0,M1=T,D1=N,R1=G,F1=V;if(L=B1+t|0,R=k1+t|0,F=I1+1|0,$1=(F|0)==(o|0),$1)break;I1=F,B1=L,k1=R}if(L0=(t|0)%2&-1,G0=(L0|0)==1,G0)return}if(z0=t+-1|0,!!x)for(J0=h+z0|0,Q1=0,w1=t,L1=J0,S1=z0;Z0=a+(L1<<2)|0,P0=+s[Z0>>2],H0=-P0,o1=$+(w1<<2)|0,s[o1>>2]=H0,Y0=a+(S1<<2)|0,i1=e[Y0>>2]|0,x0=w1+-1|0,n1=$+(x0<<2)|0,e[n1>>2]=i1,d1=w1+m|0,g1=L1+t|0,h1=S1+t|0,u1=Q1+1|0,c1=(u1|0)==(o|0),!c1;)Q1=u1,w1=d1,L1=g1,S1=h1}}function FQ(t,o,a,$,g,h,m,I,E,Q){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0,E=E|0,Q=Q|0;var B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0,H8=0,K8=0,R8=0,u8=0,F8=0,g4=0,Y8=0,W8=0,ht=0,Nt=0,T8=0,Xt=0,O4=0,B4=0,ae=0,N8=0,Ai=0,Oi=0,qi=0,Hi=0,pi=0,Z8=0,Ei=0,j8=0,Ci=0,X8=0,Bi=0,$i=0,c7=0,Yi=0,Qi=0,yi=0,g7=0,wi=0,li=0,u7=0,Vi=0,Ji=0,zi=0,Ki=0,ci=0,vi=0,Wi=0,ei=0,gi=0,V8=0,ti=0,d7=0,Zi=0,h7=0,ki=0,ji=0,Si=0,bi=0,Xi=0,Di=0,ii=0,_i=0,e7=0,ui=0,J8=0,xi=0,x4=0,Li=0,G8=0,di=0,l9=0,B8=0,vt=0;vt=C,b=+(o|0),v=6.2831854820251465/b,pt=+rA(+v),H8=+Hn(+v),E2=o+1|0,k3=E2>>1,J9=t+-1|0,Je=J9>>1,P9=o5(a,t)|0,S9=o5(o,t)|0,pe=(t|0)==1;e:do if(!pe){if(_8=($|0)>0,_8)for(_4=0;h0=m+(_4<<2)|0,K0=e[h0>>2]|0,G0=E+(_4<<2)|0,e[G0>>2]=K0,n1=_4+1|0,Bt=(n1|0)==($|0),!Bt;)_4=n1;if(V=(o|0)>1,V)for(t0=(a|0)>0,wt=1,K8=0;;){if(E1=K8+P9|0,t0)for(l8=0,ae=E1;D1=h+(ae<<2)|0,H1=e[D1>>2]|0,a2=I+(ae<<2)|0,e[a2>>2]=H1,t2=ae+t|0,V2=l8+1|0,oe=(V2|0)==(a|0),!oe;)l8=V2,ae=t2;if(j2=wt+1|0,lt=(j2|0)==(o|0),lt)break;wt=j2,K8=E1}if(Q5=0-t|0,T1=(Je|0)>(a|0),T1){if(V)for(q3=(a|0)>0,z5=(t|0)>2,E3=Q5,Z9=1,F8=0;;){if(_3=F8+P9|0,L6=E3+t|0,q3)for(n6=_3-t|0,A3=L6+-1|0,ut=0,N8=n6;;){if(G3=N8+t|0,z5)for(ct=2,C4=A3,Ci=G3;U3=C4+2|0,y6=Ci+2|0,v9=C4+1|0,o4=Q+(v9<<2)|0,Ye=+s[o4>>2],Ve=Ci+1|0,he=h+(Ve<<2)|0,Ue=+s[he>>2],Ce=Ue*Ye,v4=Q+(U3<<2)|0,W9=+s[v4>>2],k9=h+(y6<<2)|0,k4=+s[k9>>2],Y4=k4*W9,nt=Y4+Ce,V4=I+(Ve<<2)|0,s[V4>>2]=nt,ze=+s[o4>>2],s4=+s[k9>>2],R4=s4*ze,ot=+s[v4>>2],re=+s[he>>2],d4=re*ot,Be=R4-d4,N6=I+(y6<<2)|0,s[N6>>2]=Be,Ke=ct+2|0,fe=(Ke|0)<(t|0),fe;)ct=Ke,C4=U3,Ci=y6;if(Ne=ut+1|0,$t=(Ne|0)==(a|0),$t)break;ut=Ne,N8=G3}if(h4=Z9+1|0,Ct=(h4|0)==(o|0),Ct)break;E3=L6,Z9=h4,F8=_3}}else if(V)for(f5=(t|0)>2,h3=(a|0)>0,Z4=Q5,c4=1,Y8=0;;){if(ne=Z4+t|0,f4=Y8+P9|0,f5)for(I4=ne+-1|0,Qt=2,gt=I4,Ai=f4;;){if(Se=gt+2|0,a4=Ai+2|0,h3)for(Pe=gt+1|0,m4=Q+(Pe<<2)|0,f6=Q+(Se<<2)|0,dt=0,X8=a4;J4=+s[m4>>2],Ie=X8+-1|0,S4=h+(Ie<<2)|0,be=+s[S4>>2],me=be*J4,z6=+s[f6>>2],F4=h+(X8<<2)|0,T4=+s[F4>>2],st=T4*z6,xe=st+me,mt=I+(Ie<<2)|0,s[mt>>2]=xe,W3=+s[m4>>2],x9=+s[F4>>2],b9=x9*W3,Oe=+s[f6>>2],A4=+s[S4>>2],h8=A4*Oe,N4=b9-h8,f8=I+(X8<<2)|0,s[f8>>2]=N4,e8=X8+t|0,I8=dt+1|0,Rt=(I8|0)==(a|0),!Rt;)dt=I8,X8=e8;if(m8=Qt+2|0,Ut=(m8|0)<(t|0),Ut)Qt=m8,gt=Se,Ai=a4;else break}if(Pt=c4+1|0,p4=(Pt|0)==(o|0),p4)break;Z4=ne,c4=Pt,Y8=f4}if(Ot=o5(P9,o)|0,qt=(Je|0)<(a|0),t8=(k3|0)>1,!qt){if(!t8)break;for(i8=(a|0)>0,x8=(t|0)>2,j4=1,ht=0,qi=Ot;;){if(y0=ht+P9|0,w0=qi-P9|0,i8)for(je=0,$i=y0,li=w0;;){if(x8)for(D4=2,ei=$i,ki=li;B0=ei+2|0,_0=ki+2|0,M0=ei+1|0,v0=I+(M0<<2)|0,T0=+s[v0>>2],N0=ki+1|0,U0=I+(N0<<2)|0,O0=+s[U0>>2],k0=O0+T0,V0=h+(M0<<2)|0,s[V0>>2]=k0,F0=I+(B0<<2)|0,L0=+s[F0>>2],z0=I+(_0<<2)|0,J0=+s[z0>>2],q0=L0-J0,Z0=h+(N0<<2)|0,s[Z0>>2]=q0,P0=+s[F0>>2],H0=+s[z0>>2],o1=H0+P0,Y0=h+(B0<<2)|0,s[Y0>>2]=o1,i1=+s[U0>>2],x0=+s[v0>>2],d1=i1-x0,g1=h+(_0<<2)|0,s[g1>>2]=d1,m1=D4+2|0,h1=(m1|0)<(t|0),h1;)D4=m1,ei=B0,ki=_0;if(u1=$i+t|0,A1=li+t|0,c1=je+1|0,We=(c1|0)==(a|0),We)break;je=c1,$i=u1,li=A1}if(s1=j4+1|0,U4=(s1|0)==(k3|0),U4)break e;j4=s1,ht=y0,qi=w0}}if(t8)for(D=(t|0)>2,y=(a|0)>0,T9=1,W8=0,Oi=Ot;;){if(x=W8+P9|0,M=Oi-P9|0,D)for(E4=2,Bi=x,wi=M;;){if(L=Bi+2|0,R=wi+2|0,y)for(F=R-t|0,T=L-t|0,Ft=0,Wi=T,h7=F;N=Wi+t|0,G=h7+t|0,X=N+-1|0,K=I+(X<<2)|0,a0=+s[K>>2],W=G+-1|0,r0=I+(W<<2)|0,s0=+s[r0>>2],J=s0+a0,o0=h+(X<<2)|0,s[o0>>2]=J,q=I+(N<<2)|0,d0=+s[q>>2],j=I+(G<<2)|0,u0=+s[j>>2],c0=d0-u0,$0=h+(W<<2)|0,s[$0>>2]=c0,l0=+s[q>>2],Z=+s[j>>2],I0=Z+l0,g0=h+(N<<2)|0,s[g0>>2]=I0,f0=+s[r0>>2],n0=+s[K>>2],p0=f0-n0,C0=h+(G<<2)|0,s[C0>>2]=p0,S0=Ft+1|0,Mt=(S0|0)==(a|0),!Mt;)Ft=S0,Wi=N,h7=G;if(Q0=E4+2|0,b0=(Q0|0)<(t|0),b0)E4=Q0,Bi=L,wi=R;else break}if(E0=T9+1|0,At=(E0|0)==(k3|0),At)break;T9=E0,W8=x,Oi=M}}while(!1);if(w=($|0)>0,w)for(De=0;$1=E+(De<<2)|0,j0=e[$1>>2]|0,I1=m+(De<<2)|0,e[I1>>2]=j0,Q1=De+1|0,Kt=(Q1|0)==($|0),!Kt;)De=Q1;if(p1=o5($,o)|0,B1=(k3|0)>1,B1){for(w1=(a|0)>0,Wt=1,Nt=0,Hi=p1;;){if(v1=Nt+P9|0,k1=Hi-P9|0,w1)for(L1=k1-t|0,M1=v1-t|0,c8=0,c7=M1,u7=L1;S1=c7+t|0,R1=u7+t|0,F1=I+(S1<<2)|0,U1=+s[F1>>2],b1=I+(R1<<2)|0,P1=+s[b1>>2],Z1=P1+U1,G1=h+(S1<<2)|0,s[G1>>2]=Z1,x1=+s[b1>>2],z1=+s[F1>>2],q1=x1-z1,Y1=h+(R1<<2)|0,s[Y1>>2]=q1,V1=c8+1|0,$4=(V1|0)==(a|0),!$4;)c8=V1,c7=S1,u7=R1;if(X1=Wt+1|0,s8=(X1|0)==(k3|0),s8)break;Wt=X1,Nt=v1,Hi=k1}if(n2=o+-1|0,j1=o5(n2,$)|0,B1){for(O1=(k3|0)>2,Ht=0,Vt=1,et=1,T8=0,pi=p1;;){if(c2=T8+$|0,W1=pi-$|0,h2=Vt*pt,s2=Ht*H8,K1=h2-s2,d2=Ht*pt,$2=Vt*H8,i2=$2+d2,w)for(yt=0,Vi=c2,gi=W1,ji=j1,ii=$;l2=m+(yt<<2)|0,r2=+s[l2>>2],A2=ii+1|0,e2=m+(ii<<2)|0,o2=+s[e2>>2],f2=o2*K1,k2=f2+r2,D2=Vi+1|0,S2=E+(Vi<<2)|0,s[S2>>2]=k2,Q2=ji+1|0,N2=m+(ji<<2)|0,L2=+s[N2>>2],U2=L2*i2,m2=gi+1|0,W2=E+(gi<<2)|0,s[W2>>2]=U2,P2=yt+1|0,E8=(P2|0)==($|0),!E8;)yt=P2,Vi=D2,gi=m2,ji=Q2,ii=A2;if(O1)for(Yt=i2,_t=K1,C8=2,Ji=$,V8=j1;;){if(G2=Ji+$|0,q2=V8-$|0,Z2=_t*K1,A5=Yt*i2,H2=Z2-A5,N1=Yt*K1,t5=_t*i2,T5=t5+N1,w)for(a8=0,Si=c2,_i=W1,xi=G2,G8=q2;i5=xi+1|0,x5=m+(xi<<2)|0,I5=+s[x5>>2],b5=I5*H2,Y5=Si+1|0,g5=E+(Si<<2)|0,b2=+s[g5>>2],B5=b2+b5,s[g5>>2]=B5,s5=G8+1|0,R2=m+(G8<<2)|0,M2=+s[R2>>2],y2=M2*T5,N5=_i+1|0,m5=E+(_i<<2)|0,L5=+s[m5>>2],q5=L5+y2,s[m5>>2]=q5,M5=a8+1|0,L8=(M5|0)==($|0),!L8;)a8=M5,Si=Y5,_i=N5,xi=i5,G8=s5;if(Y2=C8+1|0,o8=(Y2|0)==(k3|0),o8)break;Yt=T5,_t=H2,C8=Y2,Ji=G2,V8=q2}if(p5=et+1|0,M8=(p5|0)==(k3|0),M8)break;Ht=i2,Vt=K1,et=p5,T8=c2,pi=W1}if(B1)for(A8=1,Xt=0;;){if($5=Xt+$|0,w)for(Ze=0,Z8=$5;u5=Z8+1|0,y5=m+(Z8<<2)|0,D5=+s[y5>>2],d5=E+(Ze<<2)|0,l5=+s[d5>>2],X2=l5+D5,s[d5>>2]=X2,g2=Ze+1|0,p8=(g2|0)==($|0),!p8;)Ze=g2,Z8=u5;if(w5=A8+1|0,b4=(w5|0)==(k3|0),b4)break;A8=w5,Xt=$5}}}if(r5=(t|0)<(a|0),r5){if(z2=(t|0)>0,z2)for(n5=(a|0)>0,W4=0;;){if(n5)for(X4=0,B4=W4,j8=W4;K5=I+(B4<<2)|0,r3=e[K5>>2]|0,a3=g+(j8<<2)|0,e[a3>>2]=r3,B3=B4+t|0,G5=j8+S9|0,W5=X4+1|0,G4=(W5|0)==(a|0),!G4;)X4=W5,B4=B3,j8=G5;if(D3=W4+1|0,at=(D3|0)==(t|0),at)break;W4=D3}}else if(a5=(a|0)>0,a5)for(h5=(t|0)>0,Tt=0,O4=0,Ei=0;;){if(h5)for(K4=0,Yi=O4,zi=Ei;R5=Yi+1|0,e5=I+(Yi<<2)|0,c5=e[e5>>2]|0,F2=zi+1|0,v5=g+(zi<<2)|0,e[v5>>2]=c5,J5=K4+1|0,Lt=(J5|0)==(t|0),!Lt;)K4=J5,Yi=R5,zi=F2;if(i3=O4+t|0,E5=Ei+S9|0,I3=Tt+1|0,L9=(I3|0)==(a|0),L9)break;Tt=I3,O4=i3,Ei=E5}if(f3=t<<1,y3=o5(P9,o)|0,B1)for(X3=(a|0)>0,$8=1,R8=0,Qi=0,Ki=y3;;){if(X5=R8+f3|0,b3=Qi+P9|0,t3=Ki-P9|0,X3)for(D9=0,ti=X5,bi=b3,e7=t3;s6=I+(bi<<2)|0,T3=e[s6>>2]|0,H3=ti+-1|0,c3=g+(H3<<2)|0,e[c3>>2]=T3,g3=I+(e7<<2)|0,u3=e[g3>>2]|0,Q3=g+(ti<<2)|0,e[Q3>>2]=u3,H5=ti+S9|0,V5=bi+t|0,S5=e7+t|0,Y3=D9+1|0,Et=(Y3|0)==(a|0),!Et;)D9=Y3,ti=H5,bi=V5,e7=S5;if(U5=$8+1|0,z4=(U5|0)==(k3|0),z4)break;$8=U5,R8=X5,Qi=b3,Ki=t3}if(!pe){if($6=(Je|0)<(a|0),n3=0-t|0,!$6){if(!B1)return;for(B=(a|0)<1,S=(t|0)<3,xt=B|S,Zt=1,u8=n3,yi=0,ci=0,d7=y3;;){if(E6=u8+f3|0,S3=yi+f3|0,a6=ci+P9|0,i6=d7-P9|0,!xt)for(g8=0,Xi=E6,ui=S3,x4=a6,di=i6;;){for(se=2;d6=t-se|0,m3=se+x4|0,M6=m3+-1|0,R6=I+(M6<<2)|0,S6=+s[R6>>2],r6=se+di|0,h6=r6+-1|0,b6=I+(h6<<2)|0,G6=+s[b6>>2],X6=G6+S6,v6=se+ui|0,L3=v6+-1|0,o6=g+(L3<<2)|0,s[o6>>2]=X6,C6=+s[R6>>2],z3=+s[b6>>2],M3=C6-z3,K3=d6+Xi|0,e6=K3+-1|0,F6=g+(e6<<2)|0,s[F6>>2]=M3,l6=I+(m3<<2)|0,o3=+s[l6>>2],K6=I+(r6<<2)|0,c6=+s[K6>>2],B6=c6+o3,R3=g+(v6<<2)|0,s[R3>>2]=B6,Y6=+s[K6>>2],A6=+s[l6>>2],D6=Y6-A6,U6=g+(K3<<2)|0,s[U6>>2]=D6,t9=se+2|0,Q6=(t9|0)<(t|0),Q6;)se=t9;if(V3=Xi+S9|0,Z5=ui+S9|0,x3=x4+t|0,d3=di+t|0,J3=g8+1|0,r8=(J3|0)==(a|0),r8)break;g8=J3,Xi=V3,ui=Z5,x4=x3,di=d3}if(e9=Zt+1|0,n8=(e9|0)==(k3|0),n8)break;Zt=e9,u8=E6,yi=S3,ci=a6,d7=i6}return}if(B1)for(l3=(t|0)>2,N3=(a|0)>0,l4=1,g4=n3,g7=0,vi=0,Zi=y3;;){if(n9=g4+f3|0,V6=g7+f3|0,s9=vi+P9|0,c9=Zi-P9|0,l3&&(P6=n9+t|0,N3))for(P4=2;;){for(Fe=P4+c9|0,Te=P4+s9|0,Ge=P4+V6|0,He=P6-P4|0,jt=0,Di=He,J8=Ge,Li=Te,l9=Fe;i9=Li+-1|0,_6=I+(i9<<2)|0,O6=+s[_6>>2],q6=l9+-1|0,a9=I+(q6<<2)|0,d9=+s[a9>>2],o9=d9+O6,B9=J8+-1|0,Q9=g+(B9<<2)|0,s[Q9>>2]=o9,y9=+s[_6>>2],h9=+s[a9>>2],f9=y9-h9,H9=Di+-1|0,H6=g+(H9<<2)|0,s[H6>>2]=f9,A9=I+(Li<<2)|0,Y9=+s[A9>>2],w9=I+(l9<<2)|0,we=+s[w9>>2],ue=we+Y9,Ee=g+(J8<<2)|0,s[Ee>>2]=ue,V9=+s[w9>>2],ie=+s[A9>>2],F9=V9-ie,W6=g+(Di<<2)|0,s[W6>>2]=F9,$9=Di+S9|0,ve=J8+S9|0,Re=Li+t|0,de=l9+t|0,_9=jt+1|0,Jt=(_9|0)==(a|0),!Jt;)jt=_9,Di=$9,J8=ve,Li=Re,l9=de;if(J6=P4+2|0,T6=(J6|0)<(t|0),T6)P4=J6;else break}if(ke=l4+1|0,zt=(ke|0)==(k3|0),zt)break;l4=ke,g4=n9,g7=V6,vi=s9,Zi=c9}}}function Kb(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0,H8=0,K8=0,R8=0,u8=0,F8=0,g4=0,Y8=0,W8=0,ht=0,Nt=0,T8=0,Xt=0,O4=0,B4=0,ae=0,N8=0,Ai=0,Oi=0,qi=0,Hi=0,pi=0,Z8=0,Ei=0,j8=0,Ci=0,X8=0,Bi=0,$i=0,c7=0,Yi=0,Qi=0,yi=0,g7=0,wi=0,li=0,u7=0,Vi=0,Ji=0,zi=0,Ki=0,ci=0,vi=0,Wi=0,ei=0,gi=0,V8=0,ti=0,d7=0,Zi=0,h7=0,ki=0,ji=0,Si=0,bi=0,Xi=0,Di=0,ii=0,_i=0,e7=0,ui=0,J8=0,xi=0,x4=0,Li=0,G8=0,di=0,l9=0,B8=0,vt=0,Q8=0,U8=0,nn=0,yr=0,as=0,Vn=0,As=0,Jn=0,$s=0,ls=0,zn=0,cs=0,on=0,gs=0,us=0,ds=0,Kn=0,hs=0,Wn=0,Zn=0,fs=0,sn=0,jn=0,an=0,Xn=0,eo=0,Is=0,ms=0,ps=0,An=0,to=0,Es=0,wr=0,$n=0,Cs=0,Bs=0,ln=0,f7=0,io=0,Qs=0,ys=0,ro=0,no=0,oo=0,ws=0,I7=0,cn=0,vs=0,so=0,ks=0,Ss=0,bs=0,ao=0,Ds=0,_s=0,xs=0,Ls=0,Ao=0,Ms=0,Rs=0,gn=0,vr=0,un=0,Fs=0,or=0,Ts=0,$o=0,dn=0,lo=0,hn=0,Ns=0,co=0,go=0,Gs=0,uo=0,ho=0,Us=0,kr=0,fo=0,m7=0,fn=0,Sr=0,sr=0,br=0,W7=0,Dr=0,Io=0,Z7=0,S7=0,b7=0,t7=0,D7=0,_r=0,ar=0,Ar=0,xr=0,p7=0,Ps=0,hi=0,sl=0,In=0,mn=0,Ou=0,al=0,Os=0,qu=0,sA=0,Al=0,Hu=0,Yu=0,Vu=0,aA=0,$l=0,ll=0,AA=0,pn=0,cl=0,Ju=0,qs=0,$r=0,zu=0,Ku=0,Wu=0,Zu=0,ju=0,Xu=0,ed=0,td=0,id=0,rd=0,gl=0,Lr=0,nd=0,od=0,ul=0,sd=0,$A=0,Hs=0,lA=0,ad=0,Ad=0,cA=0,dl=0,hl=0,fl=0,gA=0,Il=0,Ys=0,$d=0,ld=0,ml=0,cd=0,gd=0,pl=0,ud=0,dd=0,El=0,Cl=0,Bl=0,Ql=0,yl=0,En=0,hd=0,wl=0,fd=0,vl=0,kl=0,Id=0,md=0,pd=0,uA=0,Sl=0,bl=0,mo=0,Dl=0,dA=0,Ed=0,_l=0,Cd=0,xl=0,Bd=0,Qd=0,Ll=0,Ml=0,yd=0,Vs=0,wd=0,hA=0,Rl=0,Fl=0,vd=0,kd=0,Sd=0,bd=0,Dd=0,_d=0,Js=0,Tl=0,Nl=0,Gl=0,zs=0,xd=0,Ul=0,Ld=0,Pl=0,Md=0,Rd=0,Ol=0,fA=0,Fd=0,Td=0,Ks=0,Nd=0,Ws=0,Gd=0,IA=0,Ud=0,Pd=0,Od=0,ql=0,qd=0,Hd=0,Yd=0,Vd=0,Hl=0,Yl=0,lr=0,Vl=0,Zs=0,mA=0,pA=0,Cn=0,Jl=0,Bn=0,Jd=0,zl=0,zd=0,Kd=0,Wd=0,Zd=0,js=0,EA=0,Mr=0,jd=0,Xd=0,Kl=0,CA=0,Wl=0,Zl=0,eh=0,jl=0,th=0,BA=0,ih=0,rh=0,z9=0,nh=0,Xl=0,oh=0,sh=0,QA=0,ah=0,yA=0,ec=0,Ah=0,$h=0,tc=0,ic=0,lh=0,wA=0,vA=0,rc=0,nc=0,ch=0,oc=0,kA=0,gh=0,sc=0,uh=0,dh=0,hh=0,fh=0,ac=0,Ac=0,SA=0,Xs=0,$c=0,Ih=0,lc=0,cc=0,mh=0,ph=0,Eh=0,gc=0,Ch=0,Bh=0,Qh=0,yh=0,wh=0,vh=0,uc=0,kh=0,dc=0,Sh=0,Qn=0,bh=0,hc=0,Dh=0,po=0,fc=0,bA=0,_h=0,ea=0,DA=0,xh=0,_A=0,Ic=0,Lh=0,Mh=0,Rh=0,Fh=0,Th=0,mc=0,Nh=0,Gh=0,Uh=0,ta=0,Eo=0,xA=0,Ph=0,LA=0,Oh=0,qh=0,Hh=0,pc=0,Yh=0,Vh=0,Jh=0,zh=0,Kh=0,ia=0,Wh=0,Zh=0,Ec=0,jh=0,Xh=0,ef=0,tf=0,E7=0,Cc=0,C7=0,Bc=0,MA=0,rf=0,i7=0,Co=0,nf=0,of=0,sf=0,af=0,Af=0,Qc=0,$f=0,lf=0,yc=0,cf=0,gf=0,Bo=0,RA=0,uf=0,wc=0,df=0,hf=0,ra=0,ff=0,If=0,vc=0,kc=0,mf=0,pf=0,yn=0,Ef=0,Cf=0,wn=0,Bf=0,Sc=0,Qf=0,yf=0,Qo=0,bc=0,wf=0,Dc=0,vf=0,cr=0,FA=0,kf=0,_c=0,xc=0,Sf=0,bf=0,Lc=0,Df=0,_f=0,xf=0,Mc=0,Lf=0,yo=0,Mf=0,vn=0,Rf=0,Ff=0,TA=0,Tf=0,NA=0,GA=0,Nf=0,Rc=0,Fc=0,Gf=0,Tc=0,Nc=0,Gc=0,Uf=0,Uc=0,Pc=0,Pf=0,Of=0,Oc=0,qc=0,qf=0,Hc=0,Yc=0,Hf=0,Yf=0,Vc=0,UA=0,Jc=0,zc=0,Kc=0,Wc=0,Vf=0,Jf=0,zf=0,Kf=0,Wf=0,Zf=0,jf=0,Xf=0,Zc=0,PA=0,eI=0,tI=0,iI=0,jc=0,Xc=0,rI=0,eg=0,OA=0,na=0,tg=0,nI=0,oI=0,sI=0,aI=0,ig=0,oa=0,AI=0,$I=0,lI=0,cI=0,gI=0,uI=0,dI=0,hI=0,rg=0,fI=0,II=0,mI=0,pI=0,sa=0,ng=0,EI=0,CI=0,kn=0,og=0,sg=0,qA=0,BI=0,ag=0,QI=0,Ag=0,$g=0,yI=0,wI=0,vI=0,kI=0,SI=0,aa=0,HA=0,bI=0,DI=0,_I=0,xI=0,lg=0,LI=0,cg=0,MI=0,RI=0,gg=0,Rr=0,ug=0,dg=0,FI=0,hg=0,Aa=0,TI=0,NI=0,GI=0,$a=0,fg=0,UI=0,PI=0,Ig=0,OI=0,qI=0,YA=0,la=0,HI=0,YI=0,VI=0,mg=0,pg=0,Eg=0,JI=0,zI=0,wo=0,KI=0,Cg=0,WI=0,VA=0,Bg=0,ZI=0,jI=0,XI=0,em=0,Qg=0,tm=0,im=0,yg=0,ca=0,rm=0,nm=0,om=0,vo=0,wg=0,vg=0,sm=0,kg=0,Sg=0,_7=0,bg=0,gr=0,am=0,Am=0,$m=0,lm=0,JA=0,ga=0,Dg=0,_g=0,cm=0,ua=0,ko=0,gm=0,da=0,zA=0,um=0,KA=0,dm=0,hm=0,xg=0,ha=0,Lg=0,fm=0,Im=0,mm=0,pm=0,Mg=0,Em=0,ri=0,_e=0,r7=0,Cm=0,Rg=0,Fg=0,WA=0,Bm=0,Fr=0,So=0,Qm=0,ym=0,Tg=0,ZA=0,wm=0,Ng=0,Gg=0,Ug=0,jA=0,XA=0,Pg=0,bo=0,e$=0,Og=0,vm=0,Sn=0,km=0,qg=0,fa=0,Sm=0,Hg=0,x7=0,bm=0,Dm=0,_m=0,xm=0,Lm=0,Mm=0,L7=0,Rm=0,Fm=0,Tm=0,Yg=0,B7=0,Ia=0,t$=0,Vg=0,Jg=0,Nm=0,zg=0,Kg=0,Gm=0,Um=0,Wg=0,Zg=0,Pm=0,Om=0,jg=0,qm=0,Do=0,ma=0,pa=0,Hm=0,i$=0,Ym=0,Vm=0,Xg=0,_o=0,Jm=0,zm=0,r$=0,n$=0,Ea=0,o$=0,s$=0,ur=0,Tr=0,Nr=0,a$=0,A$=0,xo=0,dr=0,bn=0,Km=0,hr=0,Dn=0,Wm=0,Mi=0,Ri=0,Fi=0,Ca=0,Ba=0,eu=0,tu=0,Qa=0,$$=0,Ti=0,ya=0,Gr=0,l$=0,Zm=0,c$=0,jm=0,g$=0,iu=0,wa=0,Xm=0,ep=0,va=0,tp=0,ka=0,_n=0,tt=0,Le=0,ru=0,ip=0,u$=0,nu=0,rp=0,np=0,Sa=0,op=0,sp=0,ap=0,Ap=0,ou=0,$p=0,lp=0,cp=0,n7=0,ba=0,xn=0,d$=0,Lo=0,Mo=0,ni=0,Ro=0,su=0,au=0,Da=0,Fo=0,To=0,No=0,gp=0,Go=0,fr=0,Au=0,Ur=0,o7=0,h$=0,f$=0,j7=0,I$=0,m$=0,p$=0,Pr=0,g6=0,_a=0,Or=0,$u=0,L4=0,E$=0,kt=0,Uo=0,Ln=0,Mn=0,O9=0,Rn=0,qr=0,Xe=0,C$=0,LC=0,up=0,gE=0,uE=0,MC=0,dp=0,JQ=0,zQ=0,KQ=0,WQ=0,ZQ=0,jQ=0,XQ=0,ey=0,ty=0,iy=0,ry=0,ny=0,RC=0,FC=0,oy=0,sy=0,ay=0,lu=0,dE=0,Q7=0,cu=0,gu=0,uu=0,du=0,hp=0,fp=0,Ip=0,mp=0,pp=0,Ep=0,Cp=0,Bp=0,Qp=0,yp=0,hE=0,xa=0,Ir=0,B$=0,hu=0,Q$=0,TC=0,La=0,wp=0,y$=0,fE=0,IE=0,vp=0,mE=0,pE=0,EE=0,CE=0,BE=0,QE=0,yE=0,NC=0,GC=0,UC=0,PC=0,OC=0,Ma=0,Ra=0,Fa=0,Ta=0,Ay=0,mr=0,Ae=0,yD=0,Na=0,wE=0;if(yD=C,f0=t+28|0,n0=e[f0>>2]|0,n8=(n0|0)==0,n8||(gi=n0+3456|0,Io=e[gi>>2]|0,Tl=(Io|0)==0,o=Tl&1,po=n0+3496|0,Tc=+l1[po>>3],mg=Tc>-80,mg?l1[po>>3]=-80:(Um=Tc<-200,Um&&(l1[po>>3]=-200)),h0=n0+3512|0,j2=+l1[h0>>3],A3=j2>0,A3?l1[h0>>3]=0:(ke=j2<-99999,ke&&(l1[h0>>3]=-99999)),Y4=n0+3396|0,N6=e[Y4>>2]|0,Pe=(N6|0)==0,Pe))return E=-131,E|0;if(T4=n0+3392|0,e[T4>>2]=1,N4=n0+3400|0,i8=+l1[N4>>3],Et=N6+24|0,M8=e[Et>>2]|0,p4=N6+28|0,P4=e[p4>>2]|0,l4=~~i8,jt=M8+(l4<<2)|0,H8=e[jt>>2]|0,Xt=P4+(l4<<2)|0,Ei=e[Xt>>2]|0,e[n0>>2]=H8,wi=n0+4|0,e[wi>>2]=Ei,V8=(H8|0)==(Ei|0),ii=N6+144|0,B8=e[ii>>2]|0,ls=(B8|0)>0,ls){for(fs=N6+136|0,Es=N6+140|0,no=N6+148|0,or=i8,Mr=n0,hE=0;;){if(Ds=~~or,ho=e[fs>>2]|0,Z7=e[Es>>2]|0,hi=e[no>>2]|0,Yu=hi+(hE<<2)|0,zu=e[Yu>>2]|0,Lr=ce(1,1120)|0,dl=zu+(Ds<<2)|0,pl=e[dl>>2]|0,fd=Z7+(pl*1120|0)|0,ge(Lr|0,fd|0,1120)|0,dA=e[Lr>>2]|0,wd=(dA|0)>0,wd){for(Nl=Lr+4|0,dE=0,yE=-1;;)if(kA=Nl+(dE<<2)|0,$c=e[kA>>2]|0,yh=($c|0)>(yE|0),a0=yh?$c:yE,fc=dE+1|0,ry=(fc|0)==(dA|0),ry){W=a0;break}else dE=fc,yE=a0;if(Fd=(W|0)<0,!Fd){for(qd=Lr+256|0,Cn=Mr+24|0,ih=Lr+192|0,Ah=Lr+320|0,Q$=0,EE=-1;;){if(xc=qd+(Q$<<2)|0,vn=e[xc>>2]|0,Nc=(vn|0)>(EE|0),X=Nc?vn:EE,Yc=e[Cn>>2]|0,zf=Yc+vn|0,e[xc>>2]=zf,jc=ih+(Q$<<2)|0,ig=e[jc>>2]|0,fI=(ig|0)==31,fI)CE=X;else for(_9=ig,mE=0,QE=X;;)if(qA=(Ah+(Q$<<5)|0)+(mE<<2)|0,aa=e[qA>>2]|0,gg=(aa|0)>(QE|0),K=gg?aa:QE,fg=(aa|0)>-1,fg?(pg=e[Cn>>2]|0,jI=pg+aa|0,e[qA>>2]=jI,s0=e[jc>>2]|0,zA=s0):zA=_9,vo=mE+1|0,$m=1<>2]|0,rf=e[Zh>>2]|0,yc=e[Cn>>2]|0,If=yc+1|0,e[Cn>>2]=If,Qf=(Mr+1824|0)+(yc<<2)|0,e[Qf>>2]=rf,XQ=(BE|0)==0,!XQ))for(TC=0;XA=TC+1|0,t0=e[dl>>2]|0,Hg=ho+(t0<<2)|0,Tm=e[Hg>>2]|0,Wg=Tm+(XA<<2)|0,Ym=e[Wg>>2]|0,ur=e[Cn>>2]|0,Wm=ur+1|0,e[Cn>>2]=Wm,ya=(Mr+1824|0)+(ur<<2)|0,e[ya>>2]=Ym,jQ=(XA|0)==(BE|0),!jQ;)TC=XA}}if(va=Mr+16|0,np=e[va>>2]|0,ba=(Mr+800|0)+(np<<2)|0,e[ba>>2]=1,To=e[va>>2]|0,I$=(Mr+1056|0)+(To<<2)|0,e[I$>>2]=Lr,p0=e[va>>2]|0,M0=p0+1|0,e[va>>2]=M0,z0=hE+1|0,d1=e[ii>>2]|0,I1=(z0|0)<(d1|0),!I1)break;r0=+l1[N4>>3],l0=e[f0>>2]|0,or=r0,Mr=l0,hE=z0}I0=e[f0>>2]|0,X5=I0}else X5=n0;R1=n0+3520|0,Y1=+l1[R1>>3],a2=N6+124|0,t2=e[a2>>2]|0,V2=N6+128|0,I5=e[V2>>2]|0,N5=~~Y1,D5=+(N5|0),n5=Y1-D5,K5=X5+2868|0,H5=I5+(N5<<3)|0,_3=+l1[H5>>3],L6=~~_3,n6=t2+(L6*492|0)|0,ge(K5|0,n6|0,492)|0,c6=+l1[H5>>3],n9=1-n5,q6=c6*n9,H6=N5+1|0,W6=I5+(H6<<3)|0,Fe=+l1[W6>>3],Te=Fe*n5,Ge=Te+q6,He=~~Ge,o4=+(He|0),Ye=Ge-o4,J9=Ye==0,Ve=(He|0)>0,NC=Ve&J9,I=NC?1:Ye,he=NC<<31>>31,R=he+He|0,Ue=1-I,Ce=R+1|0,v4=(t2+(R*492|0)|0)+4|0,W9=+s[v4>>2],k9=W9,k4=Ue*k9,nt=(t2+(Ce*492|0)|0)+4|0,Je=+s[nt>>2],V4=Je,ze=I*V4,s4=k4+ze,R4=s4,ot=X5+2872|0,s[ot>>2]=R4,re=(t2+(R*492|0)|0)+32|0,d4=+s[re>>2],Be=d4,Ke=Ue*Be,P9=(t2+(Ce*492|0)|0)+32|0,fe=+s[P9>>2],Ne=fe,h4=I*Ne,ne=Ke+h4,f4=ne,I4=X5+2900|0,s[I4>>2]=f4,Se=(t2+(R*492|0)|0)+8|0,a4=+s[Se>>2],m4=a4,S9=Ue*m4,f6=(t2+(Ce*492|0)|0)+8|0,J4=+s[f6>>2],Ie=J4,S4=I*Ie,be=S9+S4,me=be,z6=X5+2876|0,s[z6>>2]=me,F4=(t2+(R*492|0)|0)+36|0,st=+s[F4>>2],pe=st,xe=Ue*pe,mt=(t2+(Ce*492|0)|0)+36|0,W3=+s[mt>>2],x9=W3,b9=x9*I,Oe=b9+xe,A4=Oe,h8=X5+2904|0,s[h8>>2]=A4,f8=(t2+(R*492|0)|0)+12|0,_8=+s[f8>>2],e8=_8,I8=e8*Ue,m8=(t2+(Ce*492|0)|0)+12|0,Ut=+s[m8>>2],Pt=Ut,Ot=Pt*I,qt=Ot+I8,t8=qt,x8=X5+2880|0,s[x8>>2]=t8,Ht=(t2+(R*492|0)|0)+40|0,Yt=+s[Ht>>2],Vt=Yt,_t=Vt*Ue,xt=(t2+(Ce*492|0)|0)+40|0,pt=+s[xt>>2],Jt=pt,zt=Jt*I,r8=zt+_t,z4=r8,G4=X5+2908|0,s[G4>>2]=z4,at=(t2+(R*492|0)|0)+16|0,Lt=+s[at>>2],L9=Lt,p8=L9*Ue,b4=(t2+(Ce*492|0)|0)+16|0,E8=+s[b4>>2],L8=E8,o8=L8*I,$4=o8+p8,s8=$4,Kt=X5+2884|0,s[Kt>>2]=s8,Mt=(t2+(R*492|0)|0)+44|0,At=+s[Mt>>2],We=At,U4=We*Ue,$t=(t2+(Ce*492|0)|0)+44|0,Ct=+s[$t>>2],Rt=Ct,oe=Rt*I,lt=oe+U4,Bt=lt,ct=X5+2912|0,s[ct>>2]=Bt,Qt=X5+3512|0,E4=+l1[Qt>>3],D4=E4,K4=X5+2936|0,s[K4>>2]=D4,W4=N6+132|0,se=e[W4>>2]|0,C4=n0+3472|0,gt=+l1[C4>>3],_4=gt,De=~~_4,yt=+(De|0),a8=_4-yt,Ze=a8,E3=e[f0>>2]|0,Z4=(se|0)==0;e:do if(Z4)wt=E3+4|0,Z9=e[E3>>2]|0,c4=E3+3240|0,e[c4>>2]=Z9,T9=e[wt>>2]|0,j4=E3+3300|0,e[j4>>2]=T9,Wt=E3+3244|0,e[Wt>>2]=Z9,C8=E3+3304|0,e[C8>>2]=T9,A8=E3+3248|0,e[A8>>2]=Z9,$8=E3+3308|0,e[$8>>2]=T9,Zt=E3+3252|0,e[Zt>>2]=Z9,l8=E3+3312|0,e[l8>>2]=T9,ut=E3+3256|0,e[ut>>2]=Z9,dt=E3+3316|0,e[dt>>2]=T9,Ft=E3+3260|0,e[Ft>>2]=Z9,je=E3+3320|0,e[je>>2]=T9,c8=E3+3264|0,e[c8>>2]=Z9,Tt=E3+3324|0,e[Tt>>2]=T9,X4=E3+3268|0,e[X4>>2]=Z9,D9=E3+3328|0,e[D9>>2]=T9,g8=E3+3272|0,e[g8>>2]=Z9,et=E3+3332|0,e[et>>2]=T9,K8=E3+3276|0,e[K8>>2]=Z9,R8=E3+3336|0,e[R8>>2]=T9,u8=E3+3280|0,e[u8>>2]=Z9,F8=E3+3340|0,e[F8>>2]=T9,g4=E3+3284|0,e[g4>>2]=Z9,Y8=E3+3344|0,e[Y8>>2]=T9,W8=E3+3288|0,e[W8>>2]=Z9,ht=E3+3348|0,e[ht>>2]=T9,Nt=E3+3292|0,e[Nt>>2]=Z9,T8=E3+3352|0,e[T8>>2]=T9,O4=E3+3296|0,e[O4>>2]=Z9,B4=E3+3356|0,e[B4>>2]=T9;else{ae=E3+3120|0,N8=se+(De*240|0)|0,mr=ae,Na=N8,wE=mr+60|0;do e[mr>>2]=e[Na>>2]|0,mr=mr+4|0,Na=Na+4|0;while((mr|0)<(wE|0));Ai=E3+3180|0,Oi=(se+(De*240|0)|0)+60|0,mr=Ai,Na=Oi,wE=mr+60|0;do e[mr>>2]=e[Na>>2]|0,mr=mr+4|0,Na=Na+4|0;while((mr|0)<(wE|0));if(qi=n0+3420|0,Hi=e[qi>>2]|0,pi=(Hi|0)==0,!pi)for(Z8=1-Ze,j8=De+1|0,Ci=t+8|0,X8=E3+4|0,o0=e[Ci>>2]|0,Bi=+(o0|0),Ir=0;;){if($i=((se+(De*240|0)|0)+120|0)+(Ir<<2)|0,c7=+s[$i>>2],Yi=c7,Qi=Yi*Z8,yi=((se+(j8*240|0)|0)+120|0)+(Ir<<2)|0,g7=+s[yi>>2],li=g7,u7=li*Ze,Vi=u7+Qi,Ji=Vi,zi=Ji,Ki=zi*1e3,ci=Ki/Bi,vi=e[E3>>2]|0,Wi=+(vi|0),ei=Wi*ci,ti=~~ei,d7=(E3+3e3|0)+(Ir<<2)|0,e[d7>>2]=ti,Zi=e[X8>>2]|0,h7=+(Zi|0),ki=h7*ci,ji=~~ki,Si=(E3+3060|0)+(Ir<<2)|0,e[Si>>2]=ji,bi=~~Ji,Xi=(E3+2940|0)+(Ir<<2)|0,e[Xi>>2]=bi,Di=((se+(De*240|0)|0)+180|0)+(Ir<<2)|0,_i=+s[Di>>2],e7=_i,ui=e7*Z8,J8=((se+(j8*240|0)|0)+180|0)+(Ir<<2)|0,xi=+s[J8>>2],x4=xi,Li=x4*Ze,G8=Li+ui,di=G8,l9=di,vt=l9*1e3,Q8=vt/Bi,U8=e[E3>>2]|0,nn=+(U8|0),yr=nn*Q8,as=~~yr,Vn=(E3+3240|0)+(Ir<<2)|0,e[Vn>>2]=as,As=e[X8>>2]|0,Jn=+(As|0),$s=Jn*Q8,zn=~~$s,cs=(E3+3300|0)+(Ir<<2)|0,e[cs>>2]=zn,on=Ir+1|0,ty=(on|0)==15,ty)break e;Ir=on}for(gs=(se+(De*240|0)|0)+148|0,us=+s[gs>>2],ds=us,Kn=1-Ze,hs=ds*Kn,Wn=De+1|0,Zn=(se+(Wn*240|0)|0)+148|0,sn=+s[Zn>>2],jn=sn,an=jn*Ze,Xn=an+hs,eo=Xn,Is=eo,ms=Is*1e3,ps=t+8|0,An=E3+4|0,to=~~eo,d0=e[ps>>2]|0,wr=+(d0|0),$n=ms/wr,hu=0;Cs=e[E3>>2]|0,Bs=+(Cs|0),ln=Bs*$n,f7=~~ln,io=(E3+3e3|0)+(hu<<2)|0,e[io>>2]=f7,Qs=e[An>>2]|0,ys=+(Qs|0),ro=ys*$n,oo=~~ro,ws=(E3+3060|0)+(hu<<2)|0,e[ws>>2]=oo,I7=(E3+2940|0)+(hu<<2)|0,e[I7>>2]=to,cn=hu+1|0,ny=(cn|0)==15,!ny;)hu=cn;for(vs=(se+(De*240|0)|0)+208|0,so=+s[vs>>2],ks=so,Ss=ks*Kn,bs=(se+(Wn*240|0)|0)+208|0,ao=+s[bs>>2],_s=ao,xs=_s*Ze,Ls=xs+Ss,Ao=Ls,Ms=Ao,Rs=Ms*1e3,gn=Rs/wr,wp=0;vr=e[E3>>2]|0,un=+(vr|0),Fs=un*gn,Ts=~~Fs,$o=(E3+3240|0)+(wp<<2)|0,e[$o>>2]=Ts,dn=e[An>>2]|0,lo=+(dn|0),hn=lo*gn,Ns=~~hn,co=(E3+3300|0)+(wp<<2)|0,e[co>>2]=Ns,go=wp+1|0,ey=(go|0)==15,!ey;)wp=go}while(!1);for(Gs=+l1[N4>>3],uo=N6+92|0,Us=e[uo>>2]|0,kr=N6+100|0,fo=e[kr>>2]|0,m7=N6+108|0,fn=e[m7>>2]|0,Sr=e[f0>>2]|0,sr=Sr+2852|0,br=e[sr>>2]|0,W7=~~Gs,Dr=Sr+28|0,S7=e[Dr>>2]|0,b7=(S7|0)>0,b7||(e[Dr>>2]=1),t7=(br|0)==0,t7?(D7=ce(1,520)|0,e[sr>>2]=D7,Ma=D7):Ma=br,ge(Ma|0,25784,520)|0,e[Ma>>2]=0,_r=Sr+3460|0,ar=e[_r>>2]|0,Ar=(ar|0)==0,Ar||(xr=Ma+500|0,e[xr>>2]=1,p7=Us+(W7<<2)|0,Ps=e[p7>>2]|0,sl=Ma+504|0,e[sl>>2]=Ps,In=fo+(W7<<2)|0,mn=e[In>>2]|0,Ou=Ma+508|0,e[Ou>>2]=mn,al=fn+(W7<<3)|0,Os=+l1[al>>3],qu=Ma+512|0,l1[qu>>3]=Os),sA=+l1[N4>>3],Al=e[uo>>2]|0,Hu=e[kr>>2]|0,Vu=e[m7>>2]|0,aA=e[f0>>2]|0,$l=aA+2856|0,ll=e[$l>>2]|0,AA=~~sA,pn=aA+28|0,cl=e[pn>>2]|0,Ju=(cl|0)>1,Ju||(e[pn>>2]=2),qs=(ll|0)==0,qs?($r=ce(1,520)|0,e[$l>>2]=$r,Ra=$r):Ra=ll,ge(Ra|0,25784,520)|0,e[Ra>>2]=0,Ku=aA+3460|0,Wu=e[Ku>>2]|0,Zu=(Wu|0)==0,Zu||(ju=Ra+500|0,e[ju>>2]=1,Xu=Al+(AA<<2)|0,ed=e[Xu>>2]|0,td=Ra+504|0,e[td>>2]=ed,id=Hu+(AA<<2)|0,rd=e[id>>2]|0,gl=Ra+508|0,e[gl>>2]=rd,nd=Vu+(AA<<3)|0,od=+l1[nd>>3],ul=Ra+512|0,l1[ul>>3]=od),V8||(sd=+l1[N4>>3],$A=N6+96|0,Hs=e[$A>>2]|0,lA=N6+104|0,ad=e[lA>>2]|0,Ad=e[m7>>2]|0,cA=e[f0>>2]|0,hl=cA+2860|0,fl=e[hl>>2]|0,gA=~~sd,Il=cA+28|0,Ys=e[Il>>2]|0,$d=(Ys|0)>2,$d||(e[Il>>2]=3),ld=(fl|0)==0,ld?(ml=ce(1,520)|0,e[hl>>2]=ml,Fa=ml):Fa=fl,ge(Fa|0,25784,520)|0,e[Fa>>2]=1,cd=cA+3460|0,gd=e[cd>>2]|0,ud=(gd|0)==0,ud||(dd=Fa+500|0,e[dd>>2]=1,El=Hs+(gA<<2)|0,Cl=e[El>>2]|0,Bl=Fa+504|0,e[Bl>>2]=Cl,Ql=ad+(gA<<2)|0,yl=e[Ql>>2]|0,En=Fa+508|0,e[En>>2]=yl,hd=Ad+(gA<<3)|0,wl=+l1[hd>>3],vl=Fa+512|0,l1[vl>>3]=wl),kl=+l1[N4>>3],Id=e[$A>>2]|0,md=e[lA>>2]|0,pd=e[m7>>2]|0,uA=e[f0>>2]|0,Sl=uA+2864|0,bl=e[Sl>>2]|0,mo=~~kl,Dl=uA+28|0,Ed=e[Dl>>2]|0,_l=(Ed|0)>3,_l||(e[Dl>>2]=4),Cd=(bl|0)==0,Cd?(xl=ce(1,520)|0,e[Sl>>2]=xl,Ta=xl):Ta=bl,ge(Ta|0,25784,520)|0,e[Ta>>2]=1,Bd=uA+3460|0,Qd=e[Bd>>2]|0,Ll=(Qd|0)==0,Ll||(Ml=Ta+500|0,e[Ml>>2]=1,yd=Id+(mo<<2)|0,Vs=e[yd>>2]|0,hA=Ta+504|0,e[hA>>2]=Vs,Rl=md+(mo<<2)|0,Fl=e[Rl>>2]|0,vd=Ta+508|0,e[vd>>2]=Fl,kd=pd+(mo<<3)|0,Sd=+l1[kd>>3],bd=Ta+512|0,l1[bd>>3]=Sd)),Dd=(n0+3528|0)+(o<<5)|0,_d=+l1[Dd>>3],Js=N6+32|0,Gl=e[Js>>2]|0,zs=N6+36|0,xd=e[zs>>2]|0,Ul=N6+44|0,Ld=e[Ul>>2]|0,aE(t,_d,0,Gl,xd,Ld),Pl=n0+3560|0,Md=+l1[Pl>>3],Rd=e[Js>>2]|0,Ol=e[zs>>2]|0,fA=N6+52|0,Td=e[fA>>2]|0,aE(t,Md,1,Rd,Ol,Td),V8||(Ks=n0+3592|0,Nd=+l1[Ks>>3],Ws=e[Js>>2]|0,Gd=e[zs>>2]|0,IA=e[fA>>2]|0,aE(t,Nd,2,Ws,Gd,IA),Ud=n0+3624|0,Pd=+l1[Ud>>3],Od=e[Js>>2]|0,ql=e[zs>>2]|0,Hd=N6+48|0,Yd=e[Hd>>2]|0,aE(t,Pd,3,Od,ql,Yd)),Vd=((n0+3528|0)+(o<<5)|0)+24|0,Hl=+l1[Vd>>3],Yl=N6+80|0,lr=e[Yl>>2]|0,Vl=N6+84|0,Zs=e[Vl>>2]|0,mA=~~Hl,pA=+(mA|0),Jl=Hl-pA,Bn=e[f0>>2]|0,Jd=Bn+2852|0,zl=e[Jd>>2]|0,zd=Zs+(mA<<3)|0,Kd=+l1[zd>>3],Wd=1-Jl,Zd=Kd*Wd,js=mA+1|0,EA=Zs+(js<<3)|0,jd=+l1[EA>>3],Xd=jd*Jl,Kl=Xd+Zd,CA=~~Kl,Wl=+(CA|0),Zl=Kl-Wl,eh=Zl==0,jl=(CA|0)>0,GC=jl&eh,$=GC?1:Zl,th=GC<<31>>31,F=th+CA|0,BA=1-$,rh=F+1|0,cu=0;z9=(lr+(F*160|0)|0)+(cu<<2)|0,nh=e[z9>>2]|0,Xl=+(nh|0),oh=Xl*BA,sh=(lr+(rh*160|0)|0)+(cu<<2)|0,QA=e[sh>>2]|0,ah=+(QA|0),yA=ah*$,ec=yA+oh,$h=ec,tc=(zl+336|0)+(cu<<2)|0,s[tc>>2]=$h,ic=cu+1|0,zQ=(ic|0)==40,!zQ;)cu=ic;for(lh=n0+3584|0,wA=+l1[lh>>3],vA=~~wA,rc=+(vA|0),nc=wA-rc,ch=Bn+2856|0,oc=e[ch>>2]|0,gh=Zs+(vA<<3)|0,sc=+l1[gh>>3],uh=1-nc,dh=sc*uh,hh=vA+1|0,fh=Zs+(hh<<3)|0,ac=+l1[fh>>3],Ac=ac*nc,SA=Ac+dh,Xs=~~SA,Ih=+(Xs|0),lc=SA-Ih,cc=lc==0,mh=(Xs|0)>0,UC=mh&cc,g=UC?1:lc,ph=UC<<31>>31,T=ph+Xs|0,Eh=1-g,gc=T+1|0,gu=0;Ch=(lr+(T*160|0)|0)+(gu<<2)|0,Bh=e[Ch>>2]|0,Qh=+(Bh|0),wh=Qh*Eh,vh=(lr+(gc*160|0)|0)+(gu<<2)|0,uc=e[vh>>2]|0,kh=+(uc|0),dc=kh*g,Sh=dc+wh,Qn=Sh,bh=(oc+336|0)+(gu<<2)|0,s[bh>>2]=Qn,hc=gu+1|0,KQ=(hc|0)==40,!KQ;)gu=hc;if(!V8){for(Dh=n0+3616|0,bA=+l1[Dh>>3],_h=N6+88|0,ea=e[_h>>2]|0,DA=~~bA,xh=+(DA|0),_A=bA-xh,Ic=Bn+2860|0,Lh=e[Ic>>2]|0,Mh=ea+(DA<<3)|0,Rh=+l1[Mh>>3],Th=1-_A,mc=Rh*Th,Nh=DA+1|0,Gh=ea+(Nh<<3)|0,Uh=+l1[Gh>>3],ta=Uh*_A,Eo=ta+mc,xA=~~Eo,Ph=+(xA|0),LA=Eo-Ph,qh=LA==0,Hh=(xA|0)>0,PC=Hh&qh,h=PC?1:LA,pc=PC<<31>>31,N=pc+xA|0,Yh=1-h,Vh=N+1|0,uu=0;Jh=(lr+(N*160|0)|0)+(uu<<2)|0,zh=e[Jh>>2]|0,Kh=+(zh|0),ia=Kh*Yh,Wh=(lr+(Vh*160|0)|0)+(uu<<2)|0,Ec=e[Wh>>2]|0,jh=+(Ec|0),Xh=jh*h,ef=Xh+ia,tf=ef,E7=(Lh+336|0)+(uu<<2)|0,s[E7>>2]=tf,Cc=uu+1|0,WQ=(Cc|0)==40,!WQ;)uu=Cc;for(C7=n0+3648|0,Bc=+l1[C7>>3],MA=~~Bc,i7=+(MA|0),Co=Bc-i7,nf=Bn+2864|0,of=e[nf>>2]|0,sf=ea+(MA<<3)|0,af=+l1[sf>>3],Af=1-Co,Qc=af*Af,$f=MA+1|0,lf=ea+($f<<3)|0,cf=+l1[lf>>3],gf=cf*Co,Bo=gf+Qc,RA=~~Bo,uf=+(RA|0),wc=Bo-uf,df=wc==0,hf=(RA|0)>0,OC=hf&df,m=OC?1:wc,ra=OC<<31>>31,G=ra+RA|0,ff=1-m,vc=G+1|0,du=0;kc=(lr+(G*160|0)|0)+(du<<2)|0,mf=e[kc>>2]|0,pf=+(mf|0),yn=pf*ff,Ef=(lr+(vc*160|0)|0)+(du<<2)|0,Cf=e[Ef>>2]|0,wn=+(Cf|0),Bf=wn*m,Sc=Bf+yn,yf=Sc,Qo=(of+336|0)+(du<<2)|0,s[Qo>>2]=yf,bc=du+1|0,ZQ=(bc|0)==40,!ZQ;)du=bc}for(wf=((n0+3528|0)+(o<<5)|0)+8|0,Dc=+l1[wf>>3],vf=N6+40|0,cr=e[vf>>2]|0,FA=~~Dc,kf=+(FA|0),_c=Dc-kf,Sf=cr+(FA<<2)|0,bf=e[Sf>>2]|0,Lc=+(bf|0),Df=1-_c,_f=Lc*Df,xf=FA+1|0,Mc=cr+(xf<<2)|0,Lf=e[Mc>>2]|0,yo=+(Lf|0),Mf=yo*_c,Rf=Mf+_f,Ff=Rf,TA=zl+32|0,s[TA>>2]=Ff,Tf=n0+3568|0,NA=+l1[Tf>>3],GA=~~NA,Nf=+(GA|0),Rc=NA-Nf,Fc=cr+(GA<<2)|0,Gf=e[Fc>>2]|0,Gc=+(Gf|0),Uf=1-Rc,Uc=Gc*Uf,Pc=GA+1|0,Pf=cr+(Pc<<2)|0,Of=e[Pf>>2]|0,Oc=+(Of|0),qc=Oc*Rc,qf=qc+Uc,Hc=qf,Hf=oc+32|0,s[Hf>>2]=Hc,V8||(Yf=n0+3600|0,Vc=+l1[Yf>>3],UA=~~Vc,Jc=+(UA|0),zc=Vc-Jc,Kc=Bn+2860|0,Wc=e[Kc>>2]|0,Vf=cr+(UA<<2)|0,Jf=e[Vf>>2]|0,Kf=+(Jf|0),Wf=1-zc,Zf=Kf*Wf,jf=UA+1|0,Xf=cr+(jf<<2)|0,Zc=e[Xf>>2]|0,PA=+(Zc|0),eI=PA*zc,tI=eI+Zf,iI=tI,Xc=Wc+32|0,s[Xc>>2]=iI,rI=n0+3632|0,eg=+l1[rI>>3],OA=~~eg,na=+(OA|0),tg=eg-na,nI=Bn+2864|0,oI=e[nI>>2]|0,sI=cr+(OA<<2)|0,aI=e[sI>>2]|0,oa=+(aI|0),AI=1-tg,$I=oa*AI,lI=OA+1|0,cI=cr+(lI<<2)|0,gI=e[cI>>2]|0,uI=+(gI|0),dI=uI*tg,hI=dI+$I,rg=hI,II=oI+32|0,s[II>>2]=rg),mI=((n0+3528|0)+(o<<5)|0)+16|0,pI=+l1[mI>>3],sa=N6+76|0,ng=e[sa>>2]|0,EI=N6+60|0,CI=e[EI>>2]|0,kn=N6+56|0,og=e[kn>>2]|0,Tl?ag=0:(sg=n0+3408|0,BI=+l1[sg>>3],ag=BI),AE(t,pI,0,ng,CI,og,ag),QI=n0+3576|0,Ag=+l1[QI>>3],$g=e[sa>>2]|0,yI=N6+64|0,wI=e[yI>>2]|0,vI=e[kn>>2]|0,AE(t,Ag,1,$g,wI,vI,0),V8?(wo=e[f0>>2]|0,KI=wo+2852|0,Cg=e[KI>>2]|0,WI=wo+3496|0,VA=+l1[WI>>3],Bg=VA,ZI=Cg+4|0,s[ZI>>2]=Bg,XI=wo+3504|0,em=+l1[XI>>3],Qg=em,tm=Cg+8|0,s[tm>>2]=Qg,im=wo+2856|0,yg=e[im>>2]|0,ca=yg+4|0,s[ca>>2]=Bg,rm=yg+8|0,s[rm>>2]=Qg,gr=wo):(kI=n0+3608|0,SI=+l1[kI>>3],HA=e[sa>>2]|0,bI=N6+68|0,DI=e[bI>>2]|0,_I=e[kn>>2]|0,AE(t,SI,2,HA,DI,_I,0),xI=n0+3640|0,lg=+l1[xI>>3],LI=e[sa>>2]|0,cg=N6+72|0,MI=e[cg>>2]|0,RI=e[kn>>2]|0,AE(t,lg,3,LI,MI,RI,0),Rr=e[f0>>2]|0,ug=Rr+2852|0,dg=e[ug>>2]|0,FI=Rr+3496|0,hg=+l1[FI>>3],Aa=hg,TI=dg+4|0,s[TI>>2]=Aa,NI=Rr+3504|0,GI=+l1[NI>>3],$a=GI,UI=dg+8|0,s[UI>>2]=$a,PI=Rr+2856|0,Ig=e[PI>>2]|0,OI=Ig+4|0,s[OI>>2]=Aa,qI=Ig+8|0,s[qI>>2]=$a,YA=Rr+2860|0,la=e[YA>>2]|0,HI=la+4|0,s[HI>>2]=Aa,YI=la+8|0,s[YI>>2]=$a,VI=Rr+2864|0,Eg=e[VI>>2]|0,JI=Eg+4|0,s[JI>>2]=Aa,zI=Eg+8|0,s[zI>>2]=$a,gr=Rr),nm=+l1[N4>>3],om=N6+152|0,wg=e[om>>2]|0,vg=~~nm,sm=wg+(vg<<3)|0,kg=e[sm>>2]|0,Sg=(wg+(vg<<3)|0)+4|0,_7=e[Sg>>2]|0,bg=e[gr>>2]|0,am=gr+4|0,Am=e[am>>2]|0,lm=(bg|0)==(Am|0),a=lm?1:2,JA=gr+8|0,ga=gr+12|0,Dg=t+8|0,_g=t+4|0,Q7=0;;){if(cm=ce(1,3208)|0,ua=(gr+544|0)+(Q7<<2)|0,e[ua>>2]=cm,ko=ce(1,16)|0,gm=(gr+32|0)+(Q7<<2)|0,e[gm>>2]=ko,da=26304+(Q7<<4)|0,e[ko>>2]=e[da>>2]|0,e[ko+4>>2]=e[da+4>>2]|0,e[ko+8>>2]=e[da+8>>2]|0,e[ko+12>>2]=e[da+12>>2]|0,um=e[JA>>2]|0,KA=(Q7|0)<(um|0),KA||(dm=Q7+1|0,e[JA>>2]=dm),hm=(gr+288|0)+(Q7<<2)|0,e[hm>>2]=0,xg=e[ua>>2]|0,ha=kg+(Q7*3208|0)|0,ge(xg|0,ha|0,3208)|0,Lg=e[ga>>2]|0,fm=(Q7|0)<(Lg|0),fm||(Im=Q7+1|0,e[ga>>2]=Im),mm=e[ha>>2]|0,Mg=(mm|0)>0,Mg)for(IE=0;;){Em=((kg+(Q7*3208|0)|0)+1092|0)+(IE<<2)|0,ri=e[Em>>2]|0,_e=e[f0>>2]|0,r7=R9(2840)|0,Cm=(_e+1568|0)+(ri<<2)|0,e[Cm>>2]=r7,Rg=(_7+(ri<<5)|0)+12|0,Fg=e[Rg>>2]|0,ge(r7|0,Fg|0,2840)|0,WA=_e+20|0,Bm=e[WA>>2]|0,So=(Bm|0)>(ri|0),So||(Qm=ri+1|0,e[WA>>2]=Qm),ym=(_7+(ri<<5)|0)+8|0,Tg=e[ym>>2]|0,ZA=r7+8|0,e[ZA>>2]=Tg,wm=_7+(ri<<5)|0,Ng=e[wm>>2]|0,Gg=(_e+1312|0)+(ri<<2)|0,e[Gg>>2]=Ng,Ug=_e+3420|0,jA=e[Ug>>2]|0,Pg=(jA|0)==0,bo=r7+12|0,e$=e[bo>>2]|0,Og=(e$|0)>0;do if(Pg){if(Og)for(qg=(_7+(ri<<5)|0)+24|0,fa=e[qg>>2]|0,Sm=r7+24|0,La=0;;)if(hr=Sm+(La<<2)|0,Dn=fa+(La<<4)|0,Mi=e[Dn>>2]|0,Ri=(Mi|0)==0,Ri||(Fi=e[hr>>2]|0,Ca=Fi|1,e[hr>>2]=Ca),Ba=(fa+(La<<4)|0)+4|0,eu=e[Ba>>2]|0,tu=(eu|0)==0,tu||(b2=e[hr>>2]|0,B5=b2|2,e[hr>>2]=B5),s5=(fa+(La<<4)|0)+8|0,R2=e[s5>>2]|0,M2=(R2|0)==0,M2||(y2=e[hr>>2]|0,Q5=y2|4,e[hr>>2]=Q5),m5=(fa+(La<<4)|0)+12|0,L5=e[m5>>2]|0,q5=(L5|0)==0,q5||(M5=e[hr>>2]|0,Y2=M5|8,e[hr>>2]=Y2),p5=La+1|0,$5=e[bo>>2]|0,u5=(p5|0)<($5|0),u5)La=p5;else{ka=$5;break}else ka=e$;Qa=(_7+(ri<<5)|0)+16|0,$$=e[Qa>>2]|0,Ti=_e+24|0,Gr=e[Ti>>2]|0,l$=(Gr|0)>0,Zm=$$;e:do if(l$)for(yp=0;;){if(c$=(_e+1824|0)+(yp<<2)|0,jm=e[c$>>2]|0,g$=(jm|0)==($$|0),g$){L=yp;break e}if(iu=yp+1|0,wa=(iu|0)<(Gr|0),wa)yp=iu;else{Ae=116;break}}else Ae=116;while(!1);if((Ae|0)==116&&(Ae=0,Xm=Gr+1|0,e[Ti>>2]=Xm,L=Gr),ep=r7+20|0,e[ep>>2]=L,tp=(_e+1824|0)+(L<<2)|0,e[tp>>2]=Zm,_n=(ka|0)>0,!_n)break;for(tt=(_7+(ri<<5)|0)+24|0,Le=r7+280|0,qr=0,y$=0;;){if(ru=e[tt>>2]|0,ip=ru+(y$<<4)|0,u$=e[ip>>2]|0,nu=(u$|0)==0,rp=u$,nu)Lo=ru,up=qr;else{Sa=e[Ti>>2]|0,op=(Sa|0)>0;e:do if(op)for(pp=0;;){if(sp=(_e+1824|0)+(pp<<2)|0,ap=e[sp>>2]|0,Ap=(ap|0)==(u$|0),Ap){M=pp;break e}if(ou=pp+1|0,$p=(ou|0)<(Sa|0),$p)pp=ou;else{Ae=123;break}}else Ae=123;while(!1);(Ae|0)==123&&(Ae=0,lp=Sa+1|0,e[Ti>>2]=lp,M=Sa),cp=qr+1|0,n7=Le+(qr<<2)|0,e[n7>>2]=M,xn=(_e+1824|0)+(M<<2)|0,e[xn>>2]=rp,c0=e[tt>>2]|0,Lo=c0,up=cp}if(d$=(Lo+(y$<<4)|0)+4|0,Mo=e[d$>>2]|0,ni=(Mo|0)==0,Ro=Mo,ni)E2=Lo,Xe=up;else{z1=e[Ti>>2]|0,q1=(z1|0)>0;e:do if(q1)for(fp=0;;){if(H1=(_e+1824|0)+(fp<<2)|0,V1=e[H1>>2]|0,X1=(V1|0)==(Mo|0),X1){D=fp;break e}if(n2=fp+1|0,j1=(n2|0)<(z1|0),j1)fp=n2;else{Ae=147;break}}else Ae=147;while(!1);(Ae|0)==147&&(Ae=0,O1=z1+1|0,e[Ti>>2]=O1,D=z1),c2=up+1|0,W1=Le+(up<<2)|0,e[W1>>2]=D,h2=(_e+1824|0)+(D<<2)|0,e[h2>>2]=Ro,$0=e[tt>>2]|0,E2=$0,Xe=c2}if(s2=(E2+(y$<<4)|0)+8|0,K1=e[s2>>2]|0,d2=(K1|0)==0,$2=K1,d2)L2=E2,C$=Xe;else{i2=e[Ti>>2]|0,l2=(i2|0)>0;e:do if(l2)for(Ip=0;;){if(r2=(_e+1824|0)+(Ip<<2)|0,A2=e[r2>>2]|0,e2=(A2|0)==(K1|0),e2){y=Ip;break e}if(o2=Ip+1|0,f2=(o2|0)<(i2|0),f2)Ip=o2;else{Ae=153;break}}else Ae=153;while(!1);(Ae|0)==153&&(Ae=0,k2=i2+1|0,e[Ti>>2]=k2,y=i2),D2=Xe+1|0,S2=Le+(Xe<<2)|0,e[S2>>2]=y,Q2=(_e+1824|0)+(y<<2)|0,e[Q2>>2]=$2,Z=e[tt>>2]|0,L2=Z,C$=D2}if(N2=(L2+(y$<<4)|0)+12|0,U2=e[N2>>2]|0,m2=(U2|0)==0,W2=U2,m2)LC=C$;else{P2=e[Ti>>2]|0,G2=(P2|0)>0;e:do if(G2)for(mp=0;;){if(q2=(_e+1824|0)+(mp<<2)|0,Z2=e[q2>>2]|0,A5=(Z2|0)==(U2|0),A5){x=mp;break e}if(H2=mp+1|0,N1=(H2|0)<(P2|0),N1)mp=H2;else{Ae=159;break}}else Ae=159;while(!1);(Ae|0)==159&&(Ae=0,t5=P2+1|0,e[Ti>>2]=t5,x=P2),T5=C$+1|0,i5=Le+(C$<<2)|0,e[i5>>2]=x,x5=(_e+1824|0)+(x<<2)|0,e[x5>>2]=W2,LC=T5}if(b5=y$+1|0,Y5=e[bo>>2]|0,g5=(b5|0)<(Y5|0),g5)qr=LC,y$=b5;else break}}else{if(Og)for(vm=(_7+(ri<<5)|0)+28|0,Sn=e[vm>>2]|0,km=r7+24|0,xa=0;;)if(x7=km+(xa<<2)|0,bm=Sn+(xa<<4)|0,Dm=e[bm>>2]|0,_m=(Dm|0)==0,_m||(xm=e[x7>>2]|0,Lm=xm|1,e[x7>>2]=Lm),Mm=(Sn+(xa<<4)|0)+4|0,L7=e[Mm>>2]|0,Rm=(L7|0)==0,Rm||($6=e[x7>>2]|0,n3=$6|2,e[x7>>2]=n3),l3=(Sn+(xa<<4)|0)+8|0,N3=e[l3>>2]|0,E6=(N3|0)==0,E6||(k3=e[x7>>2]|0,S3=k3|4,e[x7>>2]=S3),a6=(Sn+(xa<<4)|0)+12|0,i6=e[a6>>2]|0,V3=(i6|0)==0,V3||(Z5=e[x7>>2]|0,x3=Z5|8,e[x7>>2]=x3),d3=xa+1|0,J3=e[bo>>2]|0,d6=(d3|0)<(J3|0),d6)xa=d3;else{jg=J3;break}else jg=e$;Fm=(_7+(ri<<5)|0)+20|0,Yg=e[Fm>>2]|0,B7=_e+24|0,Ia=e[B7>>2]|0,t$=(Ia|0)>0,Vg=Yg;e:do if(t$)for(hp=0;;){if(Jg=(_e+1824|0)+(hp<<2)|0,Nm=e[Jg>>2]|0,zg=(Nm|0)==(Yg|0),zg){B=hp;break e}if(Kg=hp+1|0,Gm=(Kg|0)<(Ia|0),Gm)hp=Kg;else{Ae=100;break}}else Ae=100;while(!1);if((Ae|0)==100&&(Ae=0,Zg=Ia+1|0,e[B7>>2]=Zg,B=Ia),Pm=r7+20|0,e[Pm>>2]=B,Om=(_e+1824|0)+(B<<2)|0,e[Om>>2]=Vg,qm=(jg|0)>0,!qm)break;for(Do=(_7+(ri<<5)|0)+28|0,ma=r7+280|0,Uo=0,B$=0;;){if(pa=e[Do>>2]|0,Hm=pa+(B$<<4)|0,i$=e[Hm>>2]|0,Vm=(i$|0)==0,Xg=i$,Vm)xo=pa,Rn=Uo;else{_o=e[B7>>2]|0,Jm=(_o|0)>0;e:do if(Jm)for(Qp=0;;){if(zm=(_e+1824|0)+(Qp<<2)|0,r$=e[zm>>2]|0,n$=(r$|0)==(i$|0),n$){w=Qp;break e}if(Ea=Qp+1|0,o$=(Ea|0)<(_o|0),o$)Qp=Ea;else{Ae=107;break}}else Ae=107;while(!1);(Ae|0)==107&&(Ae=0,s$=_o+1|0,e[B7>>2]=s$,w=_o),Tr=Uo+1|0,Nr=ma+(Uo<<2)|0,e[Nr>>2]=w,a$=(_e+1824|0)+(w<<2)|0,e[a$>>2]=Xg,J=e[Do>>2]|0,xo=J,Rn=Tr}if(A$=(xo+(B$<<4)|0)+4|0,dr=e[A$>>2]|0,bn=(dr|0)==0,Km=dr,bn)R5=xo,Ln=Rn;else{y5=e[B7>>2]|0,T1=(y5|0)>0;e:do if(T1)for(Ep=0;;){if(d5=(_e+1824|0)+(Ep<<2)|0,l5=e[d5>>2]|0,X2=(l5|0)==(dr|0),X2){S=Ep;break e}if(g2=Ep+1|0,w5=(g2|0)<(y5|0),w5)Ep=g2;else{Ae=171;break}}else Ae=171;while(!1);(Ae|0)==171&&(Ae=0,r5=y5+1|0,e[B7>>2]=r5,S=y5),a5=Rn+1|0,h5=ma+(Rn<<2)|0,e[h5>>2]=S,z2=(_e+1824|0)+(S<<2)|0,e[z2>>2]=Km,j=e[Do>>2]|0,R5=j,Ln=a5}if(f5=(R5+(B$<<4)|0)+8|0,e5=e[f5>>2]|0,c5=(e5|0)==0,F2=e5,c5)f3=R5,Mn=Ln;else{v5=e[B7>>2]|0,J5=(v5|0)>0;e:do if(J5)for(Cp=0;;){if(i3=(_e+1824|0)+(Cp<<2)|0,E5=e[i3>>2]|0,I3=(E5|0)==(e5|0),I3){b=Cp;break e}if(h3=Cp+1|0,r3=(h3|0)<(v5|0),r3)Cp=h3;else{Ae=177;break}}else Ae=177;while(!1);(Ae|0)==177&&(Ae=0,a3=v5+1|0,e[B7>>2]=a3,b=v5),B3=Ln+1|0,G5=ma+(Ln<<2)|0,e[G5>>2]=b,W5=(_e+1824|0)+(b<<2)|0,e[W5>>2]=F2,u0=e[Do>>2]|0,f3=u0,Mn=B3}if(D3=(f3+(B$<<4)|0)+12|0,y3=e[D3>>2]|0,X3=(y3|0)==0,q3=y3,X3)O9=Mn;else{b3=e[B7>>2]|0,t3=(b3|0)>0;e:do if(t3)for(Bp=0;;){if(s6=(_e+1824|0)+(Bp<<2)|0,T3=e[s6>>2]|0,H3=(T3|0)==(y3|0),H3){v=Bp;break e}if(c3=Bp+1|0,g3=(c3|0)<(b3|0),g3)Bp=c3;else{Ae=183;break}}else Ae=183;while(!1);(Ae|0)==183&&(Ae=0,u3=b3+1|0,e[B7>>2]=u3,v=b3),Q3=Mn+1|0,z5=ma+(Mn<<2)|0,e[z5>>2]=v,V5=(_e+1824|0)+(v<<2)|0,e[V5>>2]=q3,O9=Q3}if(S5=B$+1|0,Y3=e[bo>>2]|0,U5=(S5|0)<(Y3|0),U5)Uo=O9,B$=S5;else break}}while(!1);su=_e+3480|0,au=+l1[su>>3],Da=au*1e3,Fo=(_e+1056|0)+(Q7<<2)|0,No=e[Fo>>2]|0,gp=e[Dg>>2]|0,Go=+(gp|0),fr=Go*.5,Au=_e+(Q7<<2)|0,Ur=e[Au>>2]|0,o7=Ur>>1,h$=Da>fr,RC=h$?fr:Da,f$=RC/fr,j7=+(o7|0),m$=j7*f$,p$=~~m$,Pr=No+1116|0,e[Pr>>2]=p$,g6=(_7+(ri<<5)|0)+4|0,_a=e[g6>>2]|0;do if((_a|0)==2)lu=250;else if((_a|0)==1){if(Or=e[Ug>>2]|0,$u=(Or|0)==0,L4=_e+2996|0,E$=_e+2968|0,ay=$u?E$:L4,sy=e[ay>>2]|0,oy=+(sy|0),FC=oy*1e3,kt=FC>fr,!kt){lu=FC;break}lu=fr}else lu=RC;while(!1);C0=e[Gg>>2]|0,S0=(C0|0)==2;do if(S0){if(Q0=_e+12|0,b0=e[Q0>>2]|0,E0=(b0|0)>0,E0)for(fE=0;;){if(y0=(_e+544|0)+(fE<<2)|0,w0=e[y0>>2]|0,B0=e[w0>>2]|0,_0=(B0|0)>0,_0)for(vp=0;;){K0=(w0+1092|0)+(vp<<2)|0,v0=e[K0>>2]|0,T0=(v0|0)==(ri|0);do if(T0){if(N0=e[_g>>2]|0,U0=(N0|0)>0,U0)MC=0,pE=0;else{dp=0;break}for(;;)if(O0=(w0+4|0)+(pE<<2)|0,k0=e[O0>>2]|0,V0=(k0|0)==(vp|0),F0=V0&1,V=F0+MC|0,L0=pE+1|0,JQ=(L0|0)==(N0|0),JQ){dp=V;break}else MC=V,pE=L0}else dp=0;while(!1);if(G0=vp+1|0,J0=(G0|0)<(B0|0),q0=(dp|0)==0,Z0=J0&q0,Z0)vp=G0;else{uE=dp;break}}else uE=0;if(P0=fE+1|0,H0=(P0|0)<(b0|0),o1=(uE|0)==0,Y0=H0&o1,Y0)fE=P0;else{gE=uE;break}}else gE=0;if(i1=lu/fr,x0=+(gE|0),n1=x0*j7,g1=n1*i1,m1=e[ZA>>2]|0,h1=+(m1|0),u1=g1/h1,A1=u1+.9,c1=~~A1,s1=o5(c1,m1)|0,$1=r7+4|0,e[$1>>2]=s1,j0=o5(gE,o7)|0,E1=(s1|0)>(j0|0),!E1){q=$1,Z1=s1,x1=m1;break}Q1=(j0|0)%(m1|0)&-1,p1=j0-Q1|0,e[$1>>2]=p1,q=$1,Z1=p1,x1=m1}else{if(B1=lu/fr,w1=B1*j7,v1=e[ZA>>2]|0,k1=+(v1|0),L1=w1/k1,M1=L1+.9,S1=~~M1,D1=o5(S1,v1)|0,F1=r7+4|0,e[F1>>2]=D1,U1=(D1|0)>(o7|0),!U1){q=F1,Z1=D1,x1=v1;break}b1=(o7|0)%(v1|0)&-1,P1=o7-b1|0,e[F1>>2]=P1,q=F1,Z1=P1,x1=v1}while(!1);if(G1=(Z1|0)==0,G1&&(e[q>>2]=x1),m3=IE+1|0,M6=e[ha>>2]|0,R6=(m3|0)<(M6|0),R6)IE=m3;else break}if(S6=Q7+1|0,r6=(S6|0)<(a|0),r6)Q7=S6;else break}return h6=n0+3428|0,b6=e[h6>>2]|0,G6=(b6|0)>0,G6?(X6=t+16|0,e[X6>>2]=b6):(v6=e[f0>>2]|0,L3=v6+3396|0,o6=e[L3>>2]|0,C6=v6+3400|0,z3=+l1[C6>>3],M3=~~z3,K3=+(M3|0),e6=z3-K3,F6=o6+4|0,l6=e[F6>>2]|0,o3=(l6|0)==0,o3?Q=-1:(K6=e[_g>>2]|0,B6=l6+(M3<<3)|0,R3=+l1[B6>>3],Y6=1-e6,A6=R3*Y6,D6=M3+1|0,U6=l6+(D6<<3)|0,t9=+l1[U6>>3],Q6=t9*e6,e9=Q6+A6,G3=+(K6|0),V6=e9*G3,Ay=~~V6,Q=Ay),s9=t+16|0,e[s9>>2]=Q),c9=n0+3424|0,P6=e[c9>>2]|0,J6=t+20|0,e[J6>>2]=P6,T6=n0+3440|0,i9=e[T6>>2]|0,_6=t+12|0,e[_6>>2]=i9,O6=(b6|0)==0,O6?g0=0:(U3=n0+3444|0,a9=e[U3>>2]|0,d9=+(a9|0),o9=+(b6|0),B9=d9/o9,Q9=~~B9,g0=Q9),y9=t+24|0,e[y9>>2]=g0,h9=n0+3420|0,f9=e[h9>>2]|0,H9=(f9|0)==0,H9?(E=0,E|0):(y6=e[h6>>2]|0,A9=n0+3360|0,e[A9>>2]=y6,Y9=e[c9>>2]|0,w9=n0+3364|0,e[w9>>2]=Y9,we=e[T6>>2]|0,ue=n0+3368|0,e[ue>>2]=we,Ee=n0+3444|0,V9=e[Ee>>2]|0,ie=n0+3372|0,e[ie>>2]=V9,F9=n0+3448|0,v9=+l1[F9>>3],$9=n0+3376|0,l1[$9>>3]=v9,ve=n0+3432|0,Re=+l1[ve>>3],de=n0+3384|0,l1[de>>3]=Re,E=0,E|0)}function Wb(t,o,a,$){t=t|0,o=o|0,a=a|0,$=+$;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0;if(V=C,I=(a|0)<1,I)h=-131;else if(E=t+28|0,y=e[E>>2]|0,x=$,M=x+1e-7,L=M,R=!(L>=1),m=R?L:.9998999834060669,F=y+3416|0,s[F>>2]=m,T=m,N=y+3400|0,Q=Zb(o,a,T,0,N)|0,B=y+3396|0,e[B>>2]=Q,S=(Q|0)==0,S)h=-130;else return jb(t,o,a),b=y+3420|0,e[b>>2]=0,v=y+3464|0,e[v>>2]=1,w=Kb(t)|0,D=(w|0)==0,D?(g=0,g|0):(QC(t),g=w,g|0);return QC(t),g=h,g|0}function aE(t,o,a,$,g,h){t=t|0,o=+o,a=a|0,$=$|0,g=g|0,h=h|0;var m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0;for(w1=C,m=~~o,I=+(m|0),M=o-I,W=t+28|0,$0=e[W>>2]|0,Q0=($0+2852|0)+(a<<2)|0,N0=e[Q0>>2]|0,Z0=$+(m*20|0)|0,h1=e[Z0>>2]|0,I1=+(h1|0),E=1-M,Q=I1*E,B=m+1|0,S=$+(B*20|0)|0,b=e[S>>2]|0,v=+(b|0),w=v*M,D=w+Q,y=D,x=N0+12|0,s[x>>2]=y,L=($+(m*20|0)|0)+4|0,R=e[L>>2]|0,F=+(R|0),T=F*E,N=($+(B*20|0)|0)+4|0,G=e[N>>2]|0,V=+(G|0),X=V*M,K=X+T,a0=K,r0=N0+16|0,s[r0>>2]=a0,s0=($+(m*20|0)|0)+8|0,J=e[s0>>2]|0,o0=+(J|0),q=o0*E,d0=($+(B*20|0)|0)+8|0,t0=e[d0>>2]|0,j=+(t0|0),u0=j*M,c0=u0+q,l0=c0,Z=N0+20|0,s[Z>>2]=l0,I0=($+(m*20|0)|0)+12|0,g0=+s[I0>>2],f0=g0,n0=f0*E,h0=($+(B*20|0)|0)+12|0,p0=+s[h0>>2],C0=p0,S0=C0*M,b0=S0+n0,E0=b0,y0=N0+24|0,s[y0>>2]=E0,w0=($+(m*20|0)|0)+16|0,B0=+s[w0>>2],_0=B0,K0=_0*E,M0=($+(B*20|0)|0)+16|0,v0=+s[M0>>2],T0=v0,U0=T0*M,O0=U0+K0,k0=O0,V0=N0+28|0,s[V0>>2]=k0,F0=g+(m<<2)|0,L0=e[F0>>2]|0,G0=+(L0|0),z0=G0*E,J0=g+(B<<2)|0,q0=e[J0>>2]|0,P0=+(q0|0),H0=P0*M,o1=H0+z0,Y0=o1,i1=N0+496|0,s[i1>>2]=Y0,p1=0;x0=(h+(m*68|0)|0)+(p1<<2)|0,n1=e[x0>>2]|0,d1=+(n1|0),g1=d1*E,m1=(h+(B*68|0)|0)+(p1<<2)|0,u1=e[m1>>2]|0,A1=+(u1|0),c1=A1*M,s1=c1+g1,$1=s1,j0=(N0+36|0)+(p1<<2)|0,s[j0>>2]=$1,E1=p1+1|0,Q1=(E1|0)==17,!Q1;)p1=E1}function AE(t,o,a,$,g,h,m){t=t|0,o=+o,a=a|0,$=$|0,g=g|0,h=h|0,m=+m;var I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0;for(S2=C,v=~~o,w=+(v|0),d0=o-w,n0=t+28|0,_0=e[n0>>2]|0,L0=(_0+2852|0)+(a<<2)|0,x0=e[L0>>2]|0,j0=$+(v<<2)|0,S1=e[j0>>2]|0,q1=+(S1|0),D=1-d0,X=q1*D,K=v+1|0,a0=$+(K<<2)|0,W=e[a0>>2]|0,r0=+(W|0),s0=r0*d0,J=s0+X,o0=J,q=x0+108|0,s[q>>2]=o0,t0=h+(a*12|0)|0,j=e[t0>>2]|0,u0=x0+120|0,e[u0>>2]=j,c0=(h+(a*12|0)|0)+4|0,$0=e[c0>>2]|0,l0=x0+124|0,e[l0>>2]=$0,Z=(h+(a*12|0)|0)+8|0,I0=e[Z>>2]|0,g0=x0+128|0,e[g0>>2]=I0,i2=0;;)if(f0=(g+(v*204|0)|0)+(i2<<2)|0,h0=e[f0>>2]|0,p0=+(h0|0),C0=p0*D,S0=(g+(K*204|0)|0)+(i2<<2)|0,Q0=e[S0>>2]|0,b0=+(Q0|0),E0=b0*d0,y0=E0+C0,w0=y0,B0=(x0+132|0)+(i2<<2)|0,s[B0>>2]=w0,K0=i2+1|0,K1=(K0|0)==17,K1){l2=0;break}else i2=K0;for(;;)if(M1=((g+(v*204|0)|0)+68|0)+(l2<<2)|0,D1=e[M1>>2]|0,R1=+(D1|0),F1=R1*D,U1=((g+(K*204|0)|0)+68|0)+(l2<<2)|0,b1=e[U1>>2]|0,P1=+(b1|0),Z1=P1*d0,G1=Z1+F1,x1=G1,z1=(x0+200|0)+(l2<<2)|0,s[z1>>2]=x1,H1=l2+1|0,d2=(H1|0)==17,d2){r2=0;break}else l2=H1;for(;Y1=((g+(v*204|0)|0)+136|0)+(r2<<2)|0,V1=e[Y1>>2]|0,X1=+(V1|0),n2=X1*D,j1=((g+(K*204|0)|0)+136|0)+(r2<<2)|0,O1=e[j1>>2]|0,c2=+(O1|0),W1=c2*d0,h2=W1+n2,y=h2,x=(x0+268|0)+(r2<<2)|0,s[x>>2]=y,M=r2+1|0,$2=(M|0)==17,!$2;)r2=M;for(L=x0+132|0,R=+s[L>>2],k0=R+6,F=x0+132|0,T=R,N=T+m,G=N,V=G>2]=k2,M0=1;I=(x0+132|0)+(M0<<2)|0,B=+s[I>>2],v0=(x0+132|0)+(M0<<2)|0,T0=B,N0=T0+m,U0=N0,O0=U0>2]=A2,V0=M0+1|0,s2=(V0|0)==17,!s2;)M0=V0;for(F0=x0+200|0,G0=+s[F0>>2],z0=G0+6,J0=x0+200|0,q0=G0,Z0=q0+m,P0=Z0,H0=P0>2]=o2,o1=1;E=(x0+200|0)+(o1<<2)|0,S=+s[E>>2],Y0=(x0+200|0)+(o1<<2)|0,i1=S,n1=i1+m,d1=n1,g1=d1>2]=e2,m1=o1+1|0,E2=(m1|0)==17,!E2;)o1=m1;for(h1=x0+268|0,u1=+s[h1>>2],A1=u1+6,c1=x0+268|0,s1=u1,$1=s1+m,E1=$1,I1=E1>2]=t2,Q1=1;Q=(x0+268|0)+(Q1<<2)|0,b=+s[Q>>2],p1=(x0+268|0)+(Q1<<2)|0,B1=b,w1=B1+m,v1=w1,k1=v1>2]=f2,L1=Q1+1|0,a2=(L1|0)==17,!a2;)Q1=L1}function Zb(t,o,a,$,g){t=t|0,o=o|0,a=+a,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0;k1=C,v=($|0)==0;e:do if(v){for(J=26336,j0=0;;){if(s0=e[J>>2]|0,o0=s0+12|0,q=e[o0>>2]|0,d0=(q|0)==-1,j=(q|0)==(t|0),p1=d0|j,p1&&(u0=s0+16|0,c0=e[u0>>2]|0,$0=(c0|0)>(o|0),!$0&&(l0=s0+20|0,Z=e[l0>>2]|0,I0=(Z|0)<(o|0),!I0&&(g0=e[s0>>2]|0,f0=s0+8|0,n0=e[f0>>2]|0,p0=+l1[n0>>3],C0=p0>a,!C0&&(b0=n0+(g0<<3)|0,E0=+l1[b0>>3],y0=E0>2]|0,K0=t0+12|0,G0=e[K0>>2]|0,n1=(G0|0)==-1,A1=(G0|0)==(t|0),B1=n1|A1,B1&&(c1=t0+16|0,D=e[c1>>2]|0,y=(D|0)>(o|0),!y&&(x=t0+20|0,M=e[x>>2]|0,L=(M|0)<(o|0),!L&&(R=e[t0>>2]|0,F=t0+4|0,T=e[F>>2]|0,N=+l1[T>>3],G=V>3],a0=V>K,!a0))))){m=V,I=R,E=h0,Q=T,u1=N;break e}if($1=E1+1|0,W=26336+($1<<2)|0,r0=($1|0)==17,r0){h=0;break}else h0=W,E1=$1}return h|0}while(!1);w0=(I|0)>0;e:do if(w0)for(_0=u1,Q1=0;;){if(B0=!(m>=_0),b=Q1+1|0,!B0&&(M0=Q+(b<<3)|0,v0=+l1[M0>>3],T0=m>3],_0=S,Q1=b}else I1=0;while(!1);return U0=(I1|0)==(I|0),U0?(O0=+(I|0),k0=O0+-.001,w1=k0):(V0=Q+(I1<<3)|0,F0=+l1[V0>>3],L0=F0,z0=I1+1|0,J0=Q+(z0<<3)|0,q0=+l1[J0>>3],Z0=q0,P0=L0,H0=m-P0,o1=Z0-L0,Y0=o1,i1=H0/Y0,x0=i1,d1=+(I1|0),g1=x0+d1,m1=g1,w1=m1),l1[g>>3]=w1,h1=e[E>>2]|0,h=h1,h|0}function jb(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0;x0=C,I=t+28|0,E=e[I>>2]|0,L=E+3396|0,r0=e[L>>2]|0,e[t>>2]=0,l0=t+4|0,e[l0>>2]=o,b0=t+8|0,e[b0>>2]=a,U0=E+3456|0,e[U0>>2]=1,P0=E+3460|0,e[P0>>2]=1,o1=E+3400|0,Y0=+l1[o1>>3],Q=~~Y0,B=+(Q|0),S=Y0-B,b=E+3472|0,l1[b>>3]=Y0,v=E+3488|0,w=e[v>>2]|0,D=(w|0)==0,D?(y=r0+120|0,x=e[y>>2]|0,M=x+(Q<<3)|0,R=+l1[M>>3],F=1-S,T=R*F,N=Q+1|0,G=x+(N<<3)|0,V=+l1[G>>3],X=V*S,K=X+T,a0=E+3480|0,l1[a0>>3]=K,g=N,h=F):($=1-S,m=Q+1|0,g=m,h=$),W=r0+112|0,s0=e[W>>2]|0,J=s0+(Q<<2)|0,o0=e[J>>2]|0,q=+(o0|0),d0=q*h,t0=s0+(g<<2)|0,j=e[t0>>2]|0,u0=+(j|0),c0=u0*S,$0=c0+d0,Z=E+3496|0,l1[Z>>3]=$0,I0=r0+116|0,g0=e[I0>>2]|0,f0=g0+(Q<<2)|0,n0=e[f0>>2]|0,h0=+(n0|0),p0=h0*h,C0=g0+(g<<2)|0,S0=e[C0>>2]|0,Q0=+(S0|0),E0=Q0*S,y0=E0+p0,w0=E+3504|0,l1[w0>>3]=y0,B0=E+3512|0,l1[B0>>3]=-6,_0=E+3520|0,l1[_0>>3]=Y0,K0=E+3528|0,l1[K0>>3]=Y0,M0=E+3536|0,l1[M0>>3]=Y0,v0=E+3544|0,l1[v0>>3]=Y0,T0=E+3552|0,l1[T0>>3]=Y0,N0=E+3560|0,l1[N0>>3]=Y0,O0=E+3568|0,l1[O0>>3]=Y0,k0=E+3576|0,l1[k0>>3]=Y0,V0=E+3584|0,l1[V0>>3]=Y0,F0=E+3592|0,l1[F0>>3]=Y0,L0=E+3600|0,l1[L0>>3]=Y0,G0=E+3608|0,l1[G0>>3]=Y0,z0=E+3616|0,l1[z0>>3]=Y0,J0=E+3624|0,l1[J0>>3]=Y0,q0=E+3632|0,l1[q0>>3]=Y0,Z0=E+3640|0,l1[Z0>>3]=Y0,H0=E+3648|0,l1[H0>>3]=Y0}function Xb(t,o,a,$,g,h){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0;var m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0;if(q0=C,I=(g|0)!=0,E=I?$:0,L=I?h:0,r0=o+(E<<2)|0,l0=e[r0>>2]|0,b0=520336+(l0<<2)|0,_0=e[b0>>2]|0,K0=o+(L<<2)|0,M0=e[K0>>2]|0,v0=520336+(M0<<2)|0,Q=e[v0>>2]|0,B=a+(g<<2)|0,S=e[B>>2]|0,b=a+(E<<2)|0,v=e[b>>2]|0,w=a+(L<<2)|0,D=e[w>>2]|0,y=(S|0)/4&-1,x=(v|0)/4&-1,M=y-x|0,R=(v|0)/2&-1,F=M+R|0,T=(S|0)/2&-1,N=T+y|0,m=(D|0)/-4&-1,G=N+m|0,V=(D|0)/2&-1,X=G+V|0,K=(M|0)>0,K?(a0=y-x|0,W=a0<<2,u4(t|0,0,W|0)|0,N0=M):N0=0,s0=(N0|0)<(F|0),s0)for(J=y+R|0,o0=J-N0|0,q=o0-x|0,U0=N0,V0=0;u0=_0+(V0<<2)|0,c0=+s[u0>>2],$0=t+(U0<<2)|0,Z=+s[$0>>2],I0=Z*c0,s[$0>>2]=I0,g0=U0+1|0,f0=V0+1|0,T0=(f0|0)==(q|0),!T0;)U0=g0,V0=f0;if(d0=(D|0)>1,d0){for(t0=G+1|0,j=(X|0)>(t0|0),k0=G,L0=V;F0=L0+-1|0,C0=Q+(F0<<2)|0,S0=+s[C0>>2],Q0=t+(k0<<2)|0,E0=+s[Q0>>2],y0=E0*S0,s[Q0>>2]=y0,w0=k0+1|0,B0=(w0|0)<(X|0),B0;)k0=w0,L0=F0;z0=j?X:t0,O0=z0}else O0=G;n0=(S|0)>(O0|0),n0&&(G0=t+(O0<<2)|0,h0=S-O0|0,p0=h0<<2,u4(G0|0,0,p0|0)|0)}function eD(t,o,a){t=t|0,o=+o,a=+a;var $=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0;if(Z=C,C=C+64|0,$0=Z+32|0,c0=Z,$=R9(688)|0,g=$+408|0,ub(g),D=~~o,Wb(g,t,D,a)|0,X=$+440|0,lb(X),cb(X,553008,553016),o0=$+456|0,OS(o0,g)|0,q=$+568|0,US(o0,q)|0,d0=AQ(0)|0,aD(d0),t0=AD()|0,_S($,t0)|0,j=$+680|0,e[j>>2]=0,u0=$+684|0,e[u0>>2]=0,h=$+360|0,db(o0,X,h,$0,c0)|0,oE($,h)|0,oE($,$0)|0,oE($,c0)|0,m=$+392|0,I=lQ($,m)|0,E=(I|0)==0,E)return C=Z,$|0;for(Q=$+396|0,B=$+404|0,S=$+400|0;b=e[u0>>2]|0,v=e[Q>>2]|0,w=v+b|0,y=e[B>>2]|0,x=w+y|0,M=(x|0)==0,M||(F=e[j>>2]|0,T=K7(F,x)|0,e[j>>2]=T,N=e[u0>>2]|0,G=T+N|0,V=e[m>>2]|0,K=e[Q>>2]|0,ge(G|0,V|0,K|0)|0,a0=K+N|0,e[u0>>2]=a0,W=T+a0|0,r0=e[S>>2]|0,s0=e[B>>2]|0,ge(W|0,r0|0,s0|0)|0,J=s0+a0|0,e[u0>>2]=J),L=lQ($,m)|0,R=(L|0)==0,!R;);return C=Z,$|0}function tD(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0;E=C,xS(t)|0,o=t+568|0,PS(o)|0,a=t+456|0,dQ(a),$=t+440|0,gb($),g=t+408|0,QC(g),h=t+680|0,m=e[h>>2]|0,p2(m),p2(t)}function iD(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0;return h=C,a=t+456|0,$=hQ(a,o)|0,$|0}function rD(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0;if(Z=C,a=t+456|0,qS(a,o)|0,$=t+568|0,w=fQ(a,$)|0,V=(w|0)==1,!!V)for(d0=t+360|0,t0=t+392|0,j=t+684|0,u0=t+396|0,c0=t+404|0,$0=t+680|0,g=t+392|0,h=t+400|0;;){if(FS($,0)|0,GS($)|0,E=uQ(a,d0)|0,Q=(E|0)==0,!Q)for(;;){if(oE(t,d0)|0,b=cQ(t,t0)|0,v=(b|0)==0,!v)for(;D=e[j>>2]|0,y=e[u0>>2]|0,x=y+D|0,M=e[c0>>2]|0,L=x+M|0,R=(L|0)==0,R||(N=e[$0>>2]|0,G=K7(N,L)|0,e[$0>>2]=G,X=e[j>>2]|0,K=G+X|0,a0=e[g>>2]|0,W=e[u0>>2]|0,ge(K|0,a0|0,W|0)|0,r0=W+X|0,e[j>>2]=r0,s0=G+r0|0,J=e[h>>2]|0,o0=e[c0>>2]|0,ge(s0|0,J|0,o0|0)|0,q=o0+r0|0,e[j>>2]=q),F=cQ(t,t0)|0,T=(F|0)==0,!T;);if(B=uQ(a,d0)|0,S=(B|0)==0,S)break}if(m=fQ(a,$)|0,I=(m|0)==1,!I)break}}function nD(t){t=t|0;var o=0,a=0,$=0,g=0;return g=C,o=t+684|0,a=e[o>>2]|0,a|0}function oD(t){t=t|0;var o=0,a=0,$=0,g=0,h=0;return h=C,o=t+684|0,e[o>>2]=0,a=t+680|0,$=e[a>>2]|0,$|0}function $E(t,o){t=+t,o=o|0;var a=0,$=0,g=0;return g=C,a=+sD(t,o),+a}function Pu(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0;if(N3=C,C=C+688|0,n3=N3+424|0,K5=N3+192|0,t3=N3,o0=o5(a,o)|0,q=(o0|0)==0,q){C=N3;return}for(W=o0-a|0,Y1=t3+4|0,e[Y1>>2]=a,e[t3>>2]=a,t2=a,I5=a,D3=2;a2=t2+a|0,G2=a2+I5|0,N5=t3+(D3<<2)|0,e[N5>>2]=G2,D5=G2>>>0>>0,n5=D3+1|0,D5;)k2=I5,I5=G2,D3=n5,t2=k2;if(d0=0-a|0,n0=t+W|0,_0=(W|0)>0,_0)for(L0=(a|0)==0,x0=n0,S1=1,Z2=0,G5=t,H5=1;;){j0=S1&3,z1=(j0|0)==3;do if(z1){e[K5>>2]=G5,q1=(H5|0)>1;e:do if(q1){for(B=H5,y=G5,O1=G5,X5=1;;){if(H1=y+d0|0,V1=B+-2|0,X1=t3+(V1<<2)|0,n2=e[X1>>2]|0,U5=n2+a|0,r0=0-U5|0,j1=y+r0|0,c2=mi[$&15](O1,j1)|0,W1=(c2|0)>-1,W1&&(h2=mi[$&15](O1,H1)|0,s2=(h2|0)>-1,s2)){f3=X5;break}if(E2=mi[$&15](j1,H1)|0,K1=(E2|0)>-1,d2=X5+1|0,$2=K5+(X5<<2)|0,K1?(e[$2>>2]=j1,i2=B+-1|0,h=j1,E=i2):(e[$2>>2]=H1,h=H1,E=V1),l2=(E|0)>1,!l2){f3=d2;break}V=e[K5>>2]|0,B=E,y=h,O1=V,X5=d2}if(r2=(f3|0)<2,!r2&&(A2=K5+(f3<<2)|0,e[A2>>2]=n3,!L0))for(w=a,P2=n3;;){for(m2=w>>>0>256,o2=m2?256:w,W2=e[K5>>2]|0,ge(P2|0,W2|0,o2|0)|0,L2=W2,X3=0;D2=K5+(X3<<2)|0,S2=X3+1|0,Q2=K5+(S2<<2)|0,N2=e[Q2>>2]|0,ge(L2|0,N2|0,o2|0)|0,U2=L2+o2|0,e[D2>>2]=U2,r3=(S2|0)==(f3|0),!r3;)L2=N2,X3=S2;if(e2=(w|0)==(o2|0),e2)break e;f2=w-o2|0,K=e[A2>>2]|0,w=f2,P2=K}}while(!1);V2=S1>>>2,q2=Z2<<30,A5=V2|q2,H2=Z2>>>2,N1=H5+2|0,l0=A5,x1=H2,V5=N1}else{if(t5=H5+-1|0,T5=t3+(t5<<2)|0,i5=e[T5>>2]|0,x5=G5,j2=x0-x5|0,b5=i5>>>0>>0,b5){e[K5>>2]=G5,Y5=(H5|0)>1;e:do if(Y5){for(S=H5,x=G5,M2=G5,b3=1;;){if(g5=x+d0|0,b2=S+-2|0,B5=t3+(b2<<2)|0,s5=e[B5>>2]|0,$6=s5+a|0,s0=0-$6|0,R2=x+s0|0,y2=mi[$&15](M2,R2)|0,Q5=(y2|0)>-1,Q5&&(m5=mi[$&15](M2,g5)|0,L5=(m5|0)>-1,L5)){y3=b3;break}if(q5=mi[$&15](R2,g5)|0,M5=(q5|0)>-1,Y2=b3+1|0,p5=K5+(b3<<2)|0,M5?(e[p5>>2]=R2,$5=S+-1|0,m=R2,Q=$5):(e[p5>>2]=g5,m=g5,Q=b2),u5=(Q|0)>1,!u5){y3=Y2;break}X=e[K5>>2]|0,S=Q,x=m,M2=X,b3=Y2}if(y5=(y3|0)<2,!y5&&(T1=K5+(y3<<2)|0,e[T1>>2]=n3,!L0))for(D=a,e5=n3;;){for(f5=D>>>0>256,l5=f5?256:D,R5=e[K5>>2]|0,ge(e5|0,R5|0,l5|0)|0,h5=R5,q3=0;g2=K5+(q3<<2)|0,w5=q3+1|0,r5=K5+(w5<<2)|0,a5=e[r5>>2]|0,ge(h5|0,a5|0,l5|0)|0,z2=h5+l5|0,e[g2>>2]=z2,a3=(w5|0)==(y3|0),!a3;)h5=a5,q3=w5;if(d5=(D|0)==(l5|0),d5)break e;X2=D-l5|0,a0=e[T1>>2]|0,D=X2,e5=a0}}while(!1)}else lE(G5,a,$,S1,Z2,H5,0,t3);if(c5=(H5|0)==1,c5){F2=Z2<<1,v5=S1>>>31,J5=v5|F2,i3=S1<<1,l0=i3,x1=J5,V5=0;break}else{E5=t5>>>0>31,I3=H5+-33|0,g=E5?0:S1,M=E5?S1:Z2,L=E5?I3:t5,h3=M<>>t0,u0=j|h3,c0=g<>>0>>0,I0)S1=$0,Z2=x1,G5=Z,H5=V5;else{T=x1,N=$0,B3=Z,z5=V5;break}}else T=0,N=1,B3=t,z5=1;if(lE(B3,a,$,N,T,z5,0,t3),g0=(z5|0)==1,f0=(N|0)==1,Q3=f0&g0,h0=(T|0)==0,u3=h0&Q3,u3){C=N3;return}else S0=N,v0=T,W5=B3,S5=z5;for(;;){if(p0=(S5|0)<2,!p0){H0=v0<<2,o1=S0>>>30,Y0=o1|H0,i1=S5+-2|0,n1=S0<<1,d1=n1&2147483646,g1=o1<<31,m1=d1|g1,h1=m1^3,u1=Y0>>>1,A1=t3+(i1<<2)|0,c1=e[A1>>2]|0,Y3=c1+a|0,J=0-Y3|0,s1=W5+J|0,$1=S5+-1|0,lE(s1,a,$,h1,u1,$1,1,t3),E1=u1<<1,I1=o1&1,Q1=E1|I1,p1=h1<<1,B1=p1|1,w1=W5+d0|0,lE(w1,a,$,B1,Q1,i1,1,t3),S0=B1,v0=Q1,W5=w1,S5=i1;continue}C0=S0+-1|0,Q0=(C0|0)==0;do if(Q0)P0=32,l3=56;else{if(b0=C0&1,E0=(b0|0)==0,E0){for(b=C0,s6=0;;)if(y0=s6+1|0,w0=b>>>1,B0=w0&1,K0=(B0|0)==0,K0)b=w0,s6=y0;else{R=y0;break}M0=(R|0)==0,M0?l3=51:J0=R}else l3=51;if((l3|0)==51){if(l3=0,T0=(v0|0)==0,T0){P0=64,l3=56;break}if(N0=v0&1,U0=(N0|0)==0,U0)v=v0,T3=0;else{I=0,k1=S0,D1=v0,b1=0;break}for(;;)if(O0=T3+1|0,k0=v>>>1,V0=k0&1,F0=(V0|0)==0,F0)v=k0,T3=O0;else{F=O0,H3=T3;break}if(G0=H3+33|0,z0=(F|0)==0,z0){I=0,k1=S0,D1=v0,b1=0;break}else J0=G0}q0=J0>>>0>31,q0?(P0=J0,l3=56):(I=J0,k1=S0,D1=v0,b1=J0)}while(!1);if((l3|0)==56&&(l3=0,Z0=P0+-32|0,I=Z0,k1=v0,D1=0,b1=P0),v1=k1>>>I,L1=32-I|0,M1=D1<>>I,U1=b1+S5|0,G=W5+d0|0,P1=(U1|0)==1,Z1=(R1|0)==1,c3=Z1&P1,G1=(F1|0)==0,g3=G1&c3,g3)break;S0=R1,v0=F1,W5=G,S5=U1}C=N3}function lE(t,o,a,$,g,h,m,I){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0;var E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0;y2=C,C=C+720|0,R2=y2+456|0,q2=y2+228|0,G2=y2,e[G2>>2]=t,q=0-o|0,d0=($|0)!=1,v0=(g|0)!=0,J0=v0|d0;e:do if(J0)if(g1=I+(h<<2)|0,Q1=e[g1>>2]|0,F1=0-Q1|0,V1=t+F1|0,K1=mi[a&15](V1,t)|0,k2=(K1|0)<1,k2)B=t,M=h,G=m,H2=1,M2=18;else for(v=t,T=h,V=m,B0=V1,H0=g,x5=1,b2=$;;){if(t0=(V|0)==0,h0=(T|0)>1,g5=t0&h0,g5){if(b0=v+q|0,E0=T+-2|0,y0=I+(E0<<2)|0,w0=e[y0>>2]|0,_0=mi[a&15](b0,B0)|0,K0=(_0|0)>-1,K0){S=v,L=T,t5=x5;break e}if(B5=w0+o|0,J=0-B5|0,M0=v+J|0,T0=mi[a&15](M0,B0)|0,N0=(T0|0)>-1,N0){S=v,L=T,t5=x5;break e}}U0=x5+1|0,O0=G2+(x5<<2)|0,e[O0>>2]=B0,k0=b2+-1|0,V0=(k0|0)==0;do if(V0)$1=32,M2=15;else{if(F0=k0&1,L0=(F0|0)==0,L0){for(y=k0,I5=0;;)if(G0=I5+1|0,z0=y>>>1,q0=z0&1,Z0=(q0|0)==0,Z0)y=z0,I5=G0;else{X=G0;break}P0=(X|0)==0,P0?M2=10:A1=X}else M2=10;if((M2|0)==10){if(M2=0,o1=(H0|0)==0,o1){$1=64,M2=15;break}if(Y0=H0&1,i1=(Y0|0)==0,i1)x=H0,b5=0;else{Q=0,E1=b2,B1=H0,L1=0;break}for(;;)if(x0=b5+1|0,n1=x>>>1,d1=n1&1,m1=(d1|0)==0,m1)x=n1,b5=x0;else{K=x0,Y5=b5;break}if(h1=Y5+33|0,u1=(K|0)==0,u1){Q=0,E1=b2,B1=H0,L1=0;break}else A1=h1}c1=A1>>>0>31,c1?($1=A1,M2=15):(Q=A1,E1=b2,B1=H0,L1=A1)}while(!1);if((M2|0)==15&&(M2=0,s1=$1+-32|0,Q=s1,E1=H0,B1=0,L1=$1),j0=E1>>>Q,I1=32-Q|0,p1=B1<>>Q,k1=L1+T|0,M1=(w1|0)!=1,S1=(v1|0)!=0,D1=S1|M1,!D1){S=B0,L=k1,t5=U0;break e}if(a0=e[G2>>2]|0,R1=I+(k1<<2)|0,U1=e[R1>>2]|0,b1=0-U1|0,P1=B0+b1|0,Z1=mi[a&15](P1,a0)|0,G1=(Z1|0)<1,G1){B=B0,M=k1,G=0,H2=U0,M2=18;break}else w=B0,T=k1,V=0,B0=P1,H0=v1,x5=U0,b2=w1,v=w}else B=t,M=h,G=m,H2=1,M2=18;while(!1);if((M2|0)==18)if(x1=(G|0)==0,x1)S=B,L=M,t5=H2;else{C=y2;return}z1=(t5|0)<2;e:do if(!z1&&(q1=G2+(t5<<2)|0,e[q1>>2]=R2,H1=(o|0)==0,!H1))for(F=o,d2=R2;;){for(E2=F>>>0>256,X1=E2?256:F,a2=e[G2>>2]|0,ge(d2|0,a2|0,X1|0)|0,h2=a2,i5=0;j1=G2+(i5<<2)|0,O1=i5+1|0,c2=G2+(O1<<2)|0,W1=e[c2>>2]|0,ge(h2|0,W1|0,X1|0)|0,s2=h2+X1|0,e[j1>>2]=s2,A5=(O1|0)==(t5|0),!A5;)h2=W1,i5=O1;if(Y1=(F|0)==(X1|0),Y1)break e;n2=F-X1|0,s0=e[q1>>2]|0,F=n2,d2=s0}while(!1);e[q2>>2]=S,$2=(L|0)>1;e:do if($2){for(D=L,N=S,o2=S,j2=1;;){if(i2=N+q|0,l2=D+-2|0,r2=I+(l2<<2)|0,A2=e[r2>>2]|0,s5=A2+o|0,o0=0-s5|0,e2=N+o0|0,f2=mi[a&15](o2,e2)|0,t2=(f2|0)>-1,t2&&(D2=mi[a&15](o2,i2)|0,S2=(D2|0)>-1,S2)){N1=j2;break}if(Q2=mi[a&15](e2,i2)|0,N2=(Q2|0)>-1,L2=j2+1|0,U2=q2+(j2<<2)|0,N2?(e[U2>>2]=e2,m2=D+-1|0,E=e2,b=m2):(e[U2>>2]=i2,E=i2,b=l2),W2=(b|0)>1,!W2){N1=L2;break}W=e[q2>>2]|0,D=b,N=E,o2=W,j2=L2}if(P2=(N1|0)<2,P2)Q0=R2;else if(V2=q2+(N1<<2)|0,e[V2>>2]=R2,j=(o|0)==0,j)Q0=R2;else for(R=o,S0=R2;;){for(p0=R>>>0>256,c0=p0?256:R,C0=e[q2>>2]|0,ge(S0|0,C0|0,c0|0)|0,f0=C0,T5=0;l0=q2+(T5<<2)|0,Z=T5+1|0,I0=q2+(Z<<2)|0,g0=e[I0>>2]|0,ge(f0|0,g0|0,c0|0)|0,n0=f0+c0|0,e[l0>>2]=n0,Z2=(Z|0)==(N1|0),!Z2;)f0=g0,T5=Z;if(u0=(R|0)==(c0|0),u0){Q0=R2;break e}$0=R-c0|0,r0=e[V2>>2]|0,R=$0,S0=r0}}else Q0=R2;while(!1);C=y2}function z7(t){t=+t;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0;return L=C,l1[w2>>3]=t,a=e[w2>>2]|0,$=e[w2+4>>2]|0,Q=$&2146435072,B=Q>>>0>1126170624,S=!1,b=(Q|0)==1126170624,v=b&S,w=B|v,w?(o=t,+o):(D=($|0)<0,y=t+-4503599627370496,g=y+4503599627370496,h=t+4503599627370496,m=h+-4503599627370496,x=D?g:m,I=x==0,I?(E=D?-0:0,o=E,+o):(o=x,+o))}function TQ(t){t=+t;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0;return w=C,a=(s[w2>>2]=t,e[w2>>2]|0),$=a&2130706432,g=$>>>0>1249902592,g?(o=t,+o):(h=(a|0)<0,m=t+-8388608,I=m+8388608,E=t+8388608,Q=E+-8388608,b=h?I:Q,B=b==0,B?(S=h?-0:0,o=S,+o):(o=b,+o))}function sD(t,o){t=+t,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0;return X=C,h=(o|0)>1023,h?(m=t*898846567431158e293,y=o+-1023|0,x=(y|0)>1023,x?(M=m*898846567431158e293,L=o+-2046|0,R=(L|0)>1023,a=R?1023:L,$=a,G=M):($=y,G=m)):(F=(o|0)<-1022,F?(T=t*22250738585072014e-324,N=o+1022|0,I=(N|0)<-1022,I?(E=T*22250738585072014e-324,Q=o+2044|0,B=(Q|0)<-1022,g=B?-1022:Q,$=g,G=E):($=N,G=T)):($=o,G=t)),S=$+1023|0,b=UQ(S|0,0,52)|0,v=j6,e[w2>>2]=b,e[w2+4>>2]=v,w=+l1[w2>>3],D=G*w,+D}function aD(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0;I=C,o=t+-1|0,a=553040,$=a,e[$>>2]=o,g=a+4|0,h=g,e[h>>2]=0}function AD(){var t=0,o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0;return x=C,t=553040,o=t,E=e[o>>2]|0,Q=t+4|0,B=Q,S=e[B>>2]|0,b=gD(E|0,S|0,1284865837,1481765933)|0,v=j6,w=rs(b|0,v|0,1,0)|0,D=j6,a=553040,$=a,e[$>>2]=w,g=a+4|0,h=g,e[h>>2]=D,m=ns(w|0,D|0,33)|0,I=j6,m|0}function R9(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0,f8=0,_8=0,e8=0,I8=0,m8=0,Ut=0,Pt=0,Ot=0,qt=0,t8=0,i8=0,x8=0,Ht=0,Yt=0,Vt=0,_t=0,xt=0,pt=0,Jt=0,zt=0,r8=0,n8=0,Et=0,z4=0,G4=0,at=0,Lt=0,L9=0,p8=0,b4=0,E8=0,L8=0,o8=0,M8=0,$4=0,s8=0,Kt=0,Mt=0,At=0,We=0,U4=0,$t=0,Ct=0,Rt=0,p4=0,oe=0,lt=0,Bt=0,ct=0,Qt=0,E4=0,D4=0,K4=0,W4=0,se=0,P4=0,C4=0,gt=0,_4=0,De=0,yt=0,a8=0,Ze=0,E3=0,Z4=0,wt=0,l4=0,Z9=0,c4=0,T9=0,j4=0,Wt=0,C8=0,A8=0,$8=0,Zt=0,l8=0,jt=0,ut=0,dt=0,Ft=0,je=0,c8=0,Tt=0,X4=0,D9=0,g8=0,et=0,H8=0,K8=0,R8=0,u8=0,F8=0,g4=0,Y8=0,W8=0,ht=0,Nt=0,T8=0,Xt=0,O4=0,B4=0,ae=0,N8=0,Ai=0,Oi=0,qi=0,Hi=0,pi=0,Z8=0,Ei=0,j8=0,Ci=0,X8=0,Bi=0,$i=0,c7=0,Yi=0,Qi=0,yi=0,g7=0,wi=0,li=0,u7=0,Vi=0,Ji=0,zi=0,Ki=0,ci=0,vi=0,Wi=0,ei=0,gi=0,V8=0,ti=0,d7=0,Zi=0,h7=0,ki=0,ji=0,Si=0,bi=0,Xi=0,Di=0,ii=0,_i=0,e7=0,ui=0,J8=0,xi=0,x4=0,Li=0,G8=0,di=0,l9=0,B8=0,vt=0,Q8=0,U8=0,nn=0,yr=0,as=0,Vn=0,As=0,Jn=0,$s=0,ls=0,zn=0,cs=0,on=0,gs=0,us=0,ds=0,Kn=0,hs=0,Wn=0,Zn=0,fs=0,sn=0,jn=0,an=0,Xn=0,eo=0,Is=0,ms=0,ps=0,An=0,to=0,Es=0,wr=0,$n=0,Cs=0,Bs=0,ln=0,f7=0,io=0,Qs=0,ys=0,ro=0,no=0,oo=0,ws=0,I7=0,cn=0,vs=0,so=0,ks=0,Ss=0,bs=0,ao=0,Ds=0,_s=0,xs=0,Ls=0,Ao=0,Ms=0,Rs=0,gn=0,vr=0,un=0,Fs=0,or=0,Ts=0,$o=0,dn=0,lo=0,hn=0,Ns=0,co=0,go=0,Gs=0,uo=0,ho=0,Us=0,kr=0,fo=0,m7=0,fn=0,Sr=0,sr=0,br=0,W7=0,Dr=0,Io=0,Z7=0,S7=0,b7=0,t7=0,D7=0,_r=0,ar=0,Ar=0,xr=0,p7=0,Ps=0,hi=0,sl=0,In=0,mn=0,Ou=0,al=0,Os=0,qu=0,sA=0,Al=0,Hu=0,Yu=0,Vu=0,aA=0,$l=0,ll=0,AA=0,pn=0,cl=0,Ju=0,qs=0,$r=0,zu=0,Ku=0,Wu=0,Zu=0,ju=0,Xu=0,ed=0,td=0,id=0,rd=0,gl=0,Lr=0,nd=0,od=0,ul=0,sd=0,$A=0,Hs=0,lA=0,ad=0,Ad=0,cA=0,dl=0,hl=0,fl=0,gA=0,Il=0,Ys=0,$d=0,ld=0,ml=0,cd=0,gd=0,pl=0,ud=0,dd=0,El=0,Cl=0,Bl=0,Ql=0,yl=0,En=0,hd=0,wl=0,fd=0,vl=0,kl=0,Id=0,md=0,pd=0,uA=0,Sl=0,bl=0,mo=0,Dl=0,dA=0,Ed=0,_l=0,Cd=0,xl=0,Bd=0,Qd=0,Ll=0,Ml=0,yd=0,Vs=0,wd=0,hA=0,Rl=0,Fl=0,vd=0,kd=0,Sd=0,bd=0,Dd=0,_d=0,Js=0,Tl=0,Nl=0,Gl=0,zs=0,xd=0,Ul=0,Ld=0,Pl=0,Md=0,Rd=0,Ol=0,fA=0,Fd=0,Td=0,Ks=0,Nd=0,Ws=0,Gd=0,IA=0,Ud=0,Pd=0,Od=0,ql=0,qd=0,Hd=0,Yd=0,Vd=0,Hl=0,Yl=0,lr=0,Vl=0,Zs=0,mA=0,pA=0,Cn=0,Jl=0,Bn=0,Jd=0,zl=0,zd=0,Kd=0,Wd=0,Zd=0,js=0,EA=0,Mr=0,jd=0,Xd=0,Kl=0,CA=0,Wl=0,Zl=0,eh=0,jl=0,th=0,BA=0,ih=0,rh=0,z9=0,nh=0,Xl=0,oh=0,sh=0,QA=0,ah=0,yA=0,ec=0,Ah=0,$h=0,tc=0,ic=0,lh=0,wA=0,vA=0,rc=0,nc=0,ch=0,oc=0,kA=0,gh=0,sc=0,uh=0,dh=0,hh=0,fh=0,ac=0,Ac=0,SA=0,Xs=0,$c=0,Ih=0,lc=0,cc=0,mh=0,ph=0,Eh=0,gc=0,Ch=0,Bh=0,Qh=0,yh=0,wh=0,vh=0,uc=0,kh=0,dc=0,Sh=0,Qn=0,bh=0,hc=0,Dh=0,po=0,fc=0,bA=0,_h=0,ea=0,DA=0,xh=0,_A=0,Ic=0,Lh=0,Mh=0,Rh=0,Fh=0,Th=0,mc=0,Nh=0,Gh=0,Uh=0,ta=0,Eo=0,xA=0,Ph=0,LA=0,Oh=0,qh=0,Hh=0,pc=0,Yh=0,Vh=0,Jh=0,zh=0,Kh=0,ia=0,Wh=0,Zh=0,Ec=0,jh=0,Xh=0,ef=0,tf=0,E7=0,Cc=0,C7=0,Bc=0,MA=0,rf=0,i7=0,Co=0,nf=0,of=0,sf=0,af=0,Af=0,Qc=0,$f=0,lf=0,yc=0,cf=0,gf=0,Bo=0,RA=0,uf=0,wc=0,df=0,hf=0,ra=0,ff=0,If=0,vc=0,kc=0,mf=0,pf=0,yn=0,Ef=0,Cf=0,wn=0,Bf=0,Sc=0,Qf=0,yf=0,Qo=0,bc=0,wf=0,Dc=0,vf=0,cr=0,FA=0,kf=0,_c=0,xc=0,Sf=0,bf=0,Lc=0,Df=0,_f=0,xf=0,Mc=0,Lf=0,yo=0,Mf=0,vn=0,Rf=0,Ff=0,TA=0,Tf=0,NA=0,GA=0,Nf=0,Rc=0,Fc=0,Gf=0,Tc=0,Nc=0,Gc=0,Uf=0,Uc=0,Pc=0,Pf=0,Of=0,Oc=0,qc=0,qf=0,Hc=0,Yc=0,Hf=0,Yf=0,Vc=0,UA=0,Jc=0,zc=0,Kc=0,Wc=0,Vf=0,Jf=0,zf=0,Kf=0,Wf=0,Zf=0,jf=0,Xf=0,Zc=0,PA=0,eI=0,tI=0,iI=0,jc=0,Xc=0,rI=0,eg=0,OA=0,na=0,tg=0,nI=0,oI=0,sI=0,aI=0,ig=0,oa=0,AI=0,$I=0,lI=0,cI=0,gI=0,uI=0,dI=0,hI=0,rg=0,fI=0,II=0,mI=0,pI=0,sa=0,ng=0,EI=0,CI=0,kn=0,og=0,sg=0,qA=0,BI=0,ag=0,QI=0,Ag=0,$g=0,yI=0,wI=0,vI=0,kI=0,SI=0,aa=0,HA=0,bI=0,DI=0,_I=0,xI=0,lg=0,LI=0,cg=0,MI=0,RI=0,gg=0,Rr=0,ug=0,dg=0,FI=0,hg=0,Aa=0,TI=0,NI=0,GI=0,$a=0,fg=0,UI=0,PI=0,Ig=0,OI=0,qI=0,YA=0,la=0,HI=0,YI=0,VI=0,mg=0,pg=0,Eg=0,JI=0,zI=0,wo=0,KI=0,Cg=0,WI=0,VA=0,Bg=0,ZI=0,jI=0,XI=0,em=0,Qg=0,tm=0,im=0,yg=0,ca=0,rm=0,nm=0,om=0,vo=0,wg=0,vg=0,sm=0,kg=0,Sg=0,_7=0,bg=0,gr=0,am=0,Am=0,$m=0,lm=0,JA=0,ga=0,Dg=0,_g=0,cm=0,ua=0,ko=0,gm=0,da=0,zA=0,um=0,KA=0,dm=0,hm=0,xg=0,ha=0,Lg=0,fm=0,Im=0,mm=0,pm=0,Mg=0,Em=0,ri=0,_e=0,r7=0,Cm=0,Rg=0,Fg=0,WA=0,Bm=0,Fr=0,So=0,Qm=0,ym=0,Tg=0,ZA=0,wm=0,Ng=0,Gg=0,Ug=0,jA=0,XA=0,Pg=0,bo=0,e$=0,Og=0,vm=0,Sn=0,km=0,qg=0,fa=0,Sm=0,Hg=0,x7=0,bm=0,Dm=0,_m=0,xm=0,Lm=0,Mm=0,L7=0,Rm=0,Fm=0,Tm=0,Yg=0,B7=0,Ia=0,t$=0,Vg=0,Jg=0,Nm=0,zg=0,Kg=0,Gm=0,Um=0,Wg=0,Zg=0,Pm=0,Om=0,jg=0,qm=0,Do=0,ma=0,pa=0,Hm=0,i$=0,Ym=0,Vm=0,Xg=0,_o=0,Jm=0,zm=0,r$=0,n$=0,Ea=0,o$=0,s$=0,ur=0,Tr=0,Nr=0,a$=0,A$=0,xo=0,dr=0,bn=0,Km=0,hr=0,Dn=0,Wm=0,Mi=0,Ri=0,Fi=0,Ca=0,Ba=0,eu=0,tu=0,Qa=0,$$=0,Ti=0,ya=0,Gr=0,l$=0,Zm=0,c$=0,jm=0,g$=0,iu=0,wa=0,Xm=0,ep=0,va=0,tp=0,ka=0,_n=0,tt=0,Le=0,ru=0,ip=0,u$=0,nu=0,rp=0,np=0,Sa=0,op=0,sp=0,ap=0,Ap=0,ou=0,$p=0,lp=0,cp=0,n7=0,ba=0,xn=0,d$=0,Lo=0,Mo=0,ni=0,Ro=0,su=0,au=0,Da=0,Fo=0,To=0,No=0,gp=0,Go=0,fr=0,Au=0,Ur=0,o7=0,h$=0,f$=0,j7=0,I$=0,m$=0,p$=0,Pr=0,g6=0,_a=0,Or=0,$u=0,L4=0,E$=0,kt=0,Uo=0,Ln=0,Mn=0,O9=0,Rn=0,qr=0,Xe=0,C$=0;C$=C,K1=t>>>0<245;do if(K1){if(d2=t>>>0<11,Ee=t+11|0,We=Ee&-8,x4=d2?16:We,Os=x4>>>3,IA=e[138262]|0,ta=IA>>>Os,zc=ta&3,yg=(zc|0)==0,!yg){$2=ta&1,f3=$2^1,g3=f3+Os|0,l3=g3<<1,d3=553088+(l3<<2)|0,S0=l3+2|0,G6=553088+(S0<<2)|0,F6=e[G6>>2]|0,U6=F6+8|0,T6=e[U6>>2]|0,y9=(d3|0)==(T6|0);do if(y9)V9=1<>>0>>0,f4&&v2(),be=T6+12|0,b9=e[be>>2]|0,Pt=(b9|0)==(F6|0),Pt){e[be>>2]=d3,e[G6>>2]=T6;break}else v2();while(!1);return pt=g3<<3,p8=pt|3,U4=F6+4|0,e[U4>>2]=p8,w0=pt|4,D4=F6+w0|0,Ze=e[D4>>2]|0,A8=Ze|1,e[D4>>2]=A8,tt=U6,tt|0}if(X4=e[138264]|0,W8=x4>>>0>X4>>>0,W8){if(qi=(ta|0)==0,!qi){Yi=ta<>>12,gn=ks&16,co=io>>>gn,sr=co>>>5,ar=sr&8,qu=ar|gn,cl=co>>>ar,td=cl>>>2,lA=td&4,ld=qu|lA,yl=cl>>>lA,Sl=yl>>>1,Ll=Sl&2,bd=ld|Ll,Pl=yl>>>Ll,Ud=Pl>>>1,Vl=Ud&1,Wd=bd|Vl,eh=Pl>>>Vl,QA=Wd+eh|0,rc=QA<<1,ac=553088+(rc<<2)|0,P1=rc+2|0,gc=553088+(P1<<2)|0,Qn=e[gc>>2]|0,_A=Qn+8|0,Eo=e[_A>>2]|0,zh=(ac|0)==(Eo|0);do if(zh)Cc=1<>>0>>0,cr&&v2(),Mc=Eo+12|0,Nf=e[Mc>>2]|0,Of=(Nf|0)==(Qn|0),Of){e[Mc>>2]=ac,e[gc>>2]=Eo,w=e[138264]|0,la=w;break}else v2();while(!1);return Kc=QA<<3,PA=Kc-x4|0,nI=x4|3,uI=Qn+4|0,e[uI>>2]=nI,CI=Qn+x4|0,wI=PA|1,X1=x4|4,LI=Qn+X1|0,e[LI>>2]=wI,TI=Qn+Kc|0,e[TI>>2]=PA,Cg=(la|0)==0,Cg||(ca=e[138267]|0,bg=la>>>3,ua=bg<<1,Lg=553088+(ua<<2)|0,Rg=e[138262]|0,Ng=1<>2]|0,Q2=e[138266]|0,A5=i2>>>0>>0,A5?v2():(G=Do,Ea=i2)),e[G>>2]=ca,g5=Ea+12|0,e[g5>>2]=ca,q5=ca+8|0,e[q5>>2]=Ea,X2=ca+12|0,e[X2>>2]=Lg),e[138264]=PA,e[138267]=CI,tt=_A,tt|0}if(c5=e[138263]|0,B3=(c5|0)==0,B3)Le=x4;else{for(W5=0-c5|0,D3=c5&W5,y3=D3+-1|0,X3=y3>>>12,q3=X3&16,X5=y3>>>q3,b3=X5>>>5,t3=b3&8,s6=t3|q3,T3=X5>>>t3,H3=T3>>>2,c3=H3&4,u3=s6|c3,Q3=T3>>>c3,z5=Q3>>>1,H5=z5&2,V5=u3|H5,S5=Q3>>>H5,Y3=S5>>>1,U5=Y3&1,$6=V5|U5,n3=S5>>>U5,N3=$6+n3|0,E6=553352+(N3<<2)|0,k3=e[E6>>2]|0,_3=k3+4|0,S3=e[_3>>2]|0,a6=S3&-8,i6=a6-x4|0,ba=i6,f$=k3,E$=k3;;){if(V3=f$+16|0,Z5=e[V3>>2]|0,x3=(Z5|0)==0,x3)if(J3=f$+20|0,d6=e[J3>>2]|0,m3=(d6|0)==0,m3){xn=ba,kt=E$;break}else M6=d6;else M6=Z5;L6=M6+4|0,R6=e[L6>>2]|0,S6=R6&-8,r6=S6-x4|0,h6=r6>>>0>>0,J=h6?r6:ba,a2=h6?M6:E$,ba=J,f$=M6,E$=a2}b6=e[138266]|0,X6=kt>>>0>>0,X6&&v2(),v6=kt+x4|0,L3=kt>>>0>>0,L3||v2(),n6=kt+24|0,o6=e[n6>>2]|0,C6=kt+12|0,z3=e[C6>>2]|0,M3=(z3|0)==(kt|0);do if(M3){if(Y6=kt+20|0,A6=e[Y6>>2]|0,D6=(A6|0)==0,D6)if(t9=kt+16|0,Q6=e[t9>>2]|0,e9=(Q6|0)==0,e9){Mi=0;break}else dr=Q6,Ca=t9;else dr=A6,Ca=Y6;for(;;){if(G3=dr+20|0,n9=e[G3>>2]|0,V6=(n9|0)==0,!V6){dr=n9,Ca=G3;continue}if(s9=dr+16|0,c9=e[s9>>2]|0,P6=(c9|0)==0,P6){hr=dr,tu=Ca;break}else dr=c9,Ca=s9}if(J6=tu>>>0>>0,J6)v2();else{e[tu>>2]=0,Mi=hr;break}}else if(K3=kt+8|0,e6=e[K3>>2]|0,l6=e6>>>0>>0,l6&&v2(),o3=e6+12|0,K6=e[o3>>2]|0,A3=(K6|0)==(kt|0),A3||v2(),c6=z3+8|0,B6=e[c6>>2]|0,R3=(B6|0)==(kt|0),R3){e[o3>>2]=z3,e[c6>>2]=e6,Mi=z3;break}else v2();while(!1);i9=(o6|0)==0;do if(!i9){if(_6=kt+28|0,O6=e[_6>>2]|0,U3=553352+(O6<<2)|0,q6=e[U3>>2]|0,a9=(kt|0)==(q6|0),a9){if(e[U3>>2]=Mi,Xm=(Mi|0)==0,Xm){d9=1<>>0>>0,f9&&v2(),H9=o6+16|0,y6=e[H9>>2]|0,H6=(y6|0)==(kt|0),H6?e[H9>>2]=Mi:(A9=o6+20|0,e[A9>>2]=Mi),Y9=(Mi|0)==0,Y9)break;w9=e[138266]|0,we=Mi>>>0>>0,we&&v2(),ue=Mi+24|0,e[ue>>2]=o6,ie=kt+16|0,F9=e[ie>>2]|0,v9=(F9|0)==0;do if(!v9)if(W6=F9>>>0>>0,W6)v2();else{$9=Mi+16|0,e[$9>>2]=F9,ve=F9+24|0,e[ve>>2]=Mi;break}while(!1);if(Re=kt+20|0,de=e[Re>>2]|0,_9=(de|0)==0,!_9)if(Fe=e[138266]|0,Ge=de>>>0>>0,Ge)v2();else{He=Mi+20|0,e[He>>2]=de,o4=de+24|0,e[o4>>2]=Mi;break}}while(!1);return ke=xn>>>0<16,ke?(Ye=xn+x4|0,J9=Ye|3,Ve=kt+4|0,e[Ve>>2]=J9,Z1=Ye+4|0,he=kt+Z1|0,Ue=e[he>>2]|0,Ce=Ue|1,e[he>>2]=Ce):(W9=x4|3,k9=kt+4|0,e[k9>>2]=W9,k4=xn|1,I0=x4|4,Y4=kt+I0|0,e[Y4>>2]=k4,f0=xn+x4|0,nt=kt+f0|0,e[nt>>2]=xn,Je=e[138264]|0,V4=(Je|0)==0,V4||(ze=e[138267]|0,s4=Je>>>3,R4=s4<<1,re=553088+(R4<<2)|0,d4=e[138262]|0,Be=1<>2]|0,h4=e[138266]|0,ne=Ne>>>0

>>0,ne?v2():(T=fe,n$=Ne)),e[T>>2]=ze,I4=n$+12|0,e[I4>>2]=ze,Se=ze+8|0,e[Se>>2]=n$,a4=ze+12|0,e[a4>>2]=re),e[138264]=xn,e[138267]=v6),Pe=kt+8|0,tt=Pe,tt|0}}else Le=x4}else if(m4=t>>>0>4294967231,m4)Le=-1;else if(S9=t+11|0,f6=S9&-8,J4=e[138263]|0,Ie=(J4|0)==0,Ie)Le=f6;else{S4=0-f6|0,me=S9>>>8,z6=(me|0)==0,z6?_n=0:(F4=f6>>>0>16777215,F4?_n=31:(T4=me+1048320|0,st=T4>>>16,pe=st&8,xe=me<>>16,x9=W3&4,Oe=x9|pe,A4=xe<>>16,f8=N4&2,_8=Oe|f8,e8=14-_8|0,I8=A4<>>15,Ut=e8+m8|0,Ot=Ut<<1,qt=Ut+7|0,t8=f6>>>qt,i8=t8&1,x8=i8|Ot,_n=x8)),Ht=553352+(_n<<2)|0,Yt=e[Ht>>2]|0,Vt=(Yt|0)==0;e:do if(Vt)Mo=S4,I$=0,Mn=0,Xe=86;else for(_t=(_n|0)==31,xt=_n>>>1,Jt=25-xt|0,zt=_t?0:Jt,r8=f6<>2]|0,z4=Et&-8,G4=z4-f6|0,at=G4>>>0>>0,at)if(Lt=(z4|0)==(f6|0),Lt){Ro=G4,Pr=j7,qr=j7,Xe=90;break e}else Lo=G4,Ln=j7;else Lo=d$,Ln=Uo;if(L9=j7+20|0,b4=e[L9>>2]|0,E8=Da>>>31,L8=(j7+16|0)+(E8<<2)|0,o8=e[L8>>2]|0,M8=(b4|0)==0,$4=(b4|0)==(o8|0),op=M8|$4,au=op?su:b4,s8=(o8|0)==0,Kt=Da<<1,s8){Mo=Lo,I$=au,Mn=Ln,Xe=86;break}else d$=Lo,su=au,Da=Kt,j7=o8,Uo=Ln}while(!1);if((Xe|0)==86){if(Mt=(I$|0)==0,At=(Mn|0)==0,rp=Mt&At,rp){if($t=2<<_n,Ct=0-$t|0,Rt=$t|Ct,p4=J4&Rt,oe=(p4|0)==0,oe){Le=f6;break}lt=0-p4|0,Bt=p4<,ct=Bt+-1|0,Qt=ct>>>12,E4=Qt&16,K4=ct>>>E4,W4=K4>>>5,se=W4&8,P4=se|E4,C4=K4>>>se,gt=C4>>>2,_4=gt&4,De=P4|_4,yt=C4>>>_4,a8=yt>>>1,E3=a8&2,Z4=De|E3,wt=yt>>>E3,l4=wt>>>1,Z9=l4&1,c4=Z4|Z9,T9=wt>>>Z9,j4=c4+T9|0,Wt=553352+(j4<<2)|0,C8=e[Wt>>2]|0,m$=C8,Rn=0}else m$=I$,Rn=Mn;$8=(m$|0)==0,$8?(ni=Mo,O9=Rn):(Ro=Mo,Pr=m$,qr=Rn,Xe=90)}if((Xe|0)==90)for(;;){if(Xe=0,Zt=Pr+4|0,l8=e[Zt>>2]|0,jt=l8&-8,ut=jt-f6|0,dt=ut>>>0>>0,o0=dt?ut:Ro,p$=dt?Pr:qr,Ft=Pr+16|0,je=e[Ft>>2]|0,c8=(je|0)==0,!c8){Ro=o0,Pr=je,qr=p$,Xe=90;continue}if(Tt=Pr+20|0,D9=e[Tt>>2]|0,g8=(D9|0)==0,g8){ni=o0,O9=p$;break}else Ro=o0,Pr=D9,qr=p$,Xe=90}if(et=(O9|0)==0,et)Le=f6;else if(H8=e[138264]|0,K8=H8-f6|0,R8=ni>>>0>>0,R8){u8=e[138266]|0,F8=O9>>>0>>0,F8&&v2(),g4=O9+f6|0,Y8=O9>>>0>>0,Y8||v2(),ht=O9+24|0,Nt=e[ht>>2]|0,T8=O9+12|0,Xt=e[T8>>2]|0,O4=(Xt|0)==(O9|0);do if(O4){if(j8=O9+20|0,Ci=e[j8>>2]|0,X8=(Ci|0)==0,X8)if(Bi=O9+16|0,$i=e[Bi>>2]|0,c7=($i|0)==0,c7){Fi=0;break}else Dn=$i,Qa=Bi;else Dn=Ci,Qa=j8;for(;;){if(Qi=Dn+20|0,yi=e[Qi>>2]|0,g7=(yi|0)==0,!g7){Dn=yi,Qa=Qi;continue}if(wi=Dn+16|0,li=e[wi>>2]|0,u7=(li|0)==0,u7){Wm=Dn,$$=Qa;break}else Dn=li,Qa=wi}if(Vi=$$>>>0>>0,Vi)v2();else{e[$$>>2]=0,Fi=Wm;break}}else if(B4=O9+8|0,ae=e[B4>>2]|0,N8=ae>>>0>>0,N8&&v2(),Ai=ae+12|0,Oi=e[Ai>>2]|0,Hi=(Oi|0)==(O9|0),Hi||v2(),pi=Xt+8|0,Z8=e[pi>>2]|0,Ei=(Z8|0)==(O9|0),Ei){e[Ai>>2]=Xt,e[pi>>2]=ae,Fi=Xt;break}else v2();while(!1);Ji=(Nt|0)==0;do if(!Ji){if(zi=O9+28|0,Ki=e[zi>>2]|0,vi=553352+(Ki<<2)|0,Wi=e[vi>>2]|0,ei=(O9|0)==(Wi|0),ei){if(e[vi>>2]=Fi,va=(Fi|0)==0,va){gi=1<>>0>>0,h7&&v2(),ki=Nt+16|0,Si=e[ki>>2]|0,bi=(Si|0)==(O9|0),bi?e[ki>>2]=Fi:(Xi=Nt+20|0,e[Xi>>2]=Fi),Di=(Fi|0)==0,Di)break;ii=e[138266]|0,_i=Fi>>>0>>0,_i&&v2(),e7=Fi+24|0,e[e7>>2]=Nt,ui=O9+16|0,J8=e[ui>>2]|0,xi=(J8|0)==0;do if(!xi)if(G8=J8>>>0>>0,G8)v2();else{di=Fi+16|0,e[di>>2]=J8,l9=J8+24|0,e[l9>>2]=Fi;break}while(!1);if(B8=O9+20|0,vt=e[B8>>2]|0,Q8=(vt|0)==0,!Q8)if(U8=e[138266]|0,nn=vt>>>0>>0,nn)v2();else{yr=Fi+20|0,e[yr>>2]=vt,as=vt+24|0,e[as>>2]=Fi;break}}while(!1);As=ni>>>0<16;e:do if(As)Jn=ni+f6|0,$s=Jn|3,ls=O9+4|0,e[ls>>2]=$s,d1=Jn+4|0,zn=O9+d1|0,cs=e[zn>>2]|0,on=cs|1,e[zn>>2]=on;else{if(gs=f6|3,us=O9+4|0,e[us>>2]=gs,ds=ni|1,l0=f6|4,hs=O9+l0|0,e[hs>>2]=ds,C0=ni+f6|0,Wn=O9+C0|0,e[Wn>>2]=ni,Zn=ni>>>3,fs=ni>>>0<256,fs){sn=Zn<<1,jn=553088+(sn<<2)|0,an=e[138262]|0,Xn=1<>2]|0,Es=e[138266]|0,wr=to>>>0>>0,wr?v2():(F=An,s$=to)),e[F>>2]=g4,$n=s$+12|0,e[$n>>2]=g4,H0=f6+8|0,Cs=O9+H0|0,e[Cs>>2]=s$,Y0=f6+12|0,Bs=O9+Y0|0,e[Bs>>2]=jn;break}if(ln=ni>>>8,f7=(ln|0)==0,f7?Tr=0:(Qs=ni>>>0>16777215,Qs?Tr=31:(ys=ln+1048320|0,ro=ys>>>16,no=ro&8,oo=ln<>>16,cn=I7&4,vs=cn|no,so=oo<>>16,ao=bs&2,Ds=vs|ao,_s=14-Ds|0,xs=so<>>15,Ao=_s+Ls|0,Ms=Ao<<1,Rs=Ao+7|0,vr=ni>>>Rs,un=vr&1,Fs=un|Ms,Tr=Fs)),or=553352+(Tr<<2)|0,h1=f6+28|0,Ts=O9+h1|0,e[Ts>>2]=Tr,M1=f6+16|0,$o=O9+M1|0,x1=f6+20|0,dn=O9+x1|0,e[dn>>2]=0,e[$o>>2]=0,lo=e[138263]|0,hn=1<>2]=g4,Y1=f6+24|0,uo=O9+Y1|0,e[uo>>2]=or,n2=f6+12|0,ho=O9+n2|0,e[ho>>2]=g4,O1=f6+8|0,Us=O9+O1|0,e[Us>>2]=g4;break}kr=e[or>>2]|0,fo=kr+4|0,m7=e[fo>>2]|0,fn=m7&-8,Sr=(fn|0)==(ni|0);t:do if(Sr)Ti=kr;else{for(br=(Tr|0)==31,W7=Tr>>>1,Dr=25-W7|0,Io=br?0:Dr,Z7=ni<>>31,p7=(l$+16|0)+(xr<<2)|0,t7=e[p7>>2]|0,Ps=(t7|0)==0,Ps){v=p7,Zm=l$;break}if(S7=a$<<1,b7=t7+4|0,D7=e[b7>>2]|0,_r=D7&-8,Ar=(_r|0)==(ni|0),Ar){Ti=t7;break t}else a$=S7,l$=t7}if(hi=e[138266]|0,sl=v>>>0>>0,sl)v2();else{e[v>>2]=g4,E0=f6+24|0,In=O9+E0|0,e[In>>2]=Zm,O0=f6+12|0,mn=O9+O0|0,e[mn>>2]=g4,q0=f6+8|0,Ou=O9+q0|0,e[Ou>>2]=g4;break e}}while(!1);if(al=Ti+8|0,sA=e[al>>2]|0,Al=e[138266]|0,Hu=sA>>>0>=Al>>>0,ru=Ti>>>0>=Al>>>0,Yu=Hu&ru,Yu){Vu=sA+12|0,e[Vu>>2]=g4,e[al>>2]=g4,c2=f6+8|0,aA=O9+c2|0,e[aA>>2]=sA,h2=f6+12|0,$l=O9+h2|0,e[$l>>2]=Ti,Q0=f6+24|0,ll=O9+Q0|0,e[ll>>2]=0;break}else v2()}while(!1);return AA=O9+8|0,tt=AA,tt|0}else Le=f6}while(!1);if(pn=e[138264]|0,Ju=pn>>>0>>0,!Ju)return qs=pn-Le|0,$r=e[138267]|0,zu=qs>>>0>15,zu?(Ku=$r+Le|0,e[138267]=Ku,e[138264]=qs,Wu=qs|1,m1=Le+4|0,Zu=$r+m1|0,e[Zu>>2]=Wu,ju=$r+pn|0,e[ju>>2]=qs,Xu=Le|3,ed=$r+4|0,e[ed>>2]=Xu):(e[138264]=0,e[138267]=0,id=pn|3,rd=$r+4|0,e[rd>>2]=id,g0=pn+4|0,gl=$r+g0|0,Lr=e[gl>>2]|0,nd=Lr|1,e[gl>>2]=nd),od=$r+8|0,tt=od,tt|0;if(ul=e[138265]|0,sd=ul>>>0>Le>>>0,sd)return $A=ul-Le|0,e[138265]=$A,Hs=e[138268]|0,ad=Hs+Le|0,e[138268]=ad,Ad=$A|1,q=Le+4|0,cA=Hs+q|0,e[cA>>2]=Ad,dl=Le|3,hl=Hs+4|0,e[hl>>2]=dl,fl=Hs+8|0,tt=fl,tt|0;gA=e[138380]|0,Il=(gA|0)==0;do if(Il)if(Ys=CS(30)|0,$d=Ys+-1|0,ml=$d&Ys,cd=(ml|0)==0,cd){e[138382]=Ys,e[138381]=Ys,e[138383]=-1,e[138384]=-1,e[138385]=0,e[138373]=0,gd=AQ(0)|0,pl=gd&-16,ud=pl^1431655768,e[138380]=ud;break}else v2();while(!1);if(dd=Le+48|0,El=e[138382]|0,Cl=Le+47|0,Bl=El+Cl|0,Ql=0-El|0,En=Bl&Ql,hd=En>>>0>Le>>>0,!hd||(wl=e[138372]|0,fd=(wl|0)==0,!fd&&(vl=e[138370]|0,kl=vl+En|0,Id=kl>>>0<=vl>>>0,md=kl>>>0>wl>>>0,Sa=Id|md,Sa)))return tt=0,tt|0;pd=e[138373]|0,uA=pd&4,bl=(uA|0)==0;e:do if(bl){mo=e[138268]|0,Dl=(mo|0)==0;t:do if(Dl)Xe=174;else{for(Fo=553496;;){if(dA=e[Fo>>2]|0,Ed=dA>>>0>mo>>>0,!Ed&&(_l=Fo+4|0,Cd=e[_l>>2]|0,xl=dA+Cd|0,Bd=xl>>>0>mo>>>0,Bd)){S=Fo,b=_l;break}if(Qd=Fo+8|0,Ml=e[Qd>>2]|0,yd=(Ml|0)==0,yd){Xe=174;break t}else Fo=Ml}if(Fd=e[138265]|0,Td=Bl-Fd|0,Ks=Td&Ql,Nd=Ks>>>0<2147483647,Nd)if(Ws=Pi(Ks|0)|0,Gd=e[S>>2]|0,Pd=e[b>>2]|0,Od=Gd+Pd|0,ql=(Ws|0)==(Od|0),o=ql?Ks:0,ql)if(qd=(Ws|0)==-1,qd)Or=o;else{g6=Ws,L4=o,Xe=194;break e}else wa=Ws,o7=Ks,_a=o,Xe=184;else Or=0}while(!1);do if((Xe|0)==174)if(Vs=Pi(0)|0,wd=(Vs|0)==-1,wd)Or=0;else if(hA=Vs,Rl=e[138381]|0,Fl=Rl+-1|0,vd=Fl&hA,kd=(vd|0)==0,kd?Ur=En:(Sd=Fl+hA|0,Dd=0-Rl|0,_d=Sd&Dd,Js=En-hA|0,Tl=Js+_d|0,Ur=Tl),Nl=e[138370]|0,Gl=Nl+Ur|0,zs=Ur>>>0>Le>>>0,xd=Ur>>>0<2147483647,np=zs&xd,np){if(Ul=e[138372]|0,Ld=(Ul|0)==0,!Ld&&(Md=Gl>>>0<=Nl>>>0,Rd=Gl>>>0>Ul>>>0,sp=Md|Rd,sp)){Or=0;break}if(Ol=Pi(Ur|0)|0,fA=(Ol|0)==(Vs|0),Au=fA?Ur:0,fA){g6=Vs,L4=Au,Xe=194;break e}else wa=Ol,o7=Ur,_a=Au,Xe=184}else Or=0;while(!1);t:do if((Xe|0)==184){Hd=0-o7|0,Yd=(wa|0)!=-1,Vd=o7>>>0<2147483647,Ap=Vd&Yd,Hl=dd>>>0>o7>>>0,$p=Hl&Ap;do if($p)if(Yl=e[138382]|0,lr=Cl-o7|0,Zs=lr+Yl|0,mA=0-Yl|0,pA=Zs&mA,Cn=pA>>>0<2147483647,Cn)if(Jl=Pi(pA|0)|0,Bn=(Jl|0)==-1,Bn){Pi(Hd|0)|0,Or=_a;break t}else{Jd=pA+o7|0,h$=Jd;break}else h$=o7;else h$=o7;while(!1);if(zl=(wa|0)==-1,zl)Or=_a;else{g6=wa,L4=h$,Xe=194;break e}}while(!1);zd=e[138373]|0,Kd=zd|4,e[138373]=Kd,$u=Or,Xe=191}else $u=0,Xe=191;while(!1);if((Xe|0)==191&&(Zd=En>>>0<2147483647,Zd&&(js=Pi(En|0)|0,EA=Pi(0)|0,Mr=(js|0)!=-1,jd=(EA|0)!=-1,ap=Mr&jd,Xd=js>>>0>>0,lp=Xd&ap,lp&&(Kl=EA,CA=js,Wl=Kl-CA|0,Zl=Le+40|0,jl=Wl>>>0>Zl>>>0,E2=jl?Wl:$u,jl&&(g6=js,L4=E2,Xe=194)))),(Xe|0)==194){th=e[138370]|0,BA=th+L4|0,e[138370]=BA,ih=e[138371]|0,rh=BA>>>0>ih>>>0,rh&&(e[138371]=BA),z9=e[138268]|0,nh=(z9|0)==0;e:do if(nh){for(Xl=e[138266]|0,oh=(Xl|0)==0,sh=g6>>>0>>0,cp=oh|sh,cp&&(e[138266]=g6),e[138374]=g6,e[138375]=L4,e[138377]=0,ah=e[138380]|0,e[138271]=ah,e[138270]=-1,ka=0;yA=ka<<1,ec=553088+(yA<<2)|0,d0=yA+3|0,Ah=553088+(d0<<2)|0,e[Ah>>2]=ec,n0=yA+2|0,$h=553088+(n0<<2)|0,e[$h>>2]=ec,tc=ka+1|0,tp=(tc|0)==32,!tp;)ka=tc;ic=L4+-40|0,lh=g6+8|0,wA=lh,vA=wA&7,nc=(vA|0)==0,ch=0-wA|0,oc=ch&7,kA=nc?0:oc,gh=g6+kA|0,sc=ic-kA|0,e[138268]=gh,e[138265]=sc,uh=sc|1,j=kA+4|0,dh=g6+j|0,e[dh>>2]=uh,u1=L4+-36|0,hh=g6+u1|0,e[hh>>2]=40,fh=e[138384]|0,e[138269]=fh}else{for(No=553496;;){if(Ac=e[No>>2]|0,SA=No+4|0,Xs=e[SA>>2]|0,$c=Ac+Xs|0,Ih=(g6|0)==($c|0),Ih){E=Ac,Q=SA,B=Xs,gp=No,Xe=204;break}if(lc=No+8|0,cc=e[lc>>2]|0,mh=(cc|0)==0,mh)break;No=cc}if((Xe|0)==204&&(ph=gp+12|0,Eh=e[ph>>2]|0,Ch=Eh&8,Bh=(Ch|0)==0,Bh&&(Qh=z9>>>0>=E>>>0,yh=z9>>>0>>0,ou=yh&Qh,ou))){wh=B+L4|0,e[Q>>2]=wh,vh=e[138265]|0,uc=vh+L4|0,kh=z9+8|0,dc=kh,Sh=dc&7,bh=(Sh|0)==0,hc=0-dc|0,Dh=hc&7,po=bh?0:Dh,fc=z9+po|0,bA=uc-po|0,e[138268]=fc,e[138265]=bA,_h=bA|1,c0=po+4|0,ea=z9+c0|0,e[ea>>2]=_h,s1=uc+4|0,DA=z9+s1|0,e[DA>>2]=40,xh=e[138384]|0,e[138269]=xh;break}for(Ic=e[138266]|0,Lh=g6>>>0>>0,Lh?(e[138266]=g6,Qo=g6):Qo=Ic,Mh=g6+L4|0,Go=553496;;){if(Rh=e[Go>>2]|0,Fh=(Rh|0)==(Mh|0),Fh){I=Go,fr=Go,Xe=212;break}if(Th=Go+8|0,mc=e[Th>>2]|0,Nh=(mc|0)==0,Nh){To=553496;break}else Go=mc}if((Xe|0)==212)if(Gh=fr+12|0,Uh=e[Gh>>2]|0,xA=Uh&8,Ph=(xA|0)==0,Ph){e[I>>2]=g6,LA=fr+4|0,Oh=e[LA>>2]|0,qh=Oh+L4|0,e[LA>>2]=qh,Hh=g6+8|0,pc=Hh,Yh=pc&7,Vh=(Yh|0)==0,Jh=0-pc|0,Kh=Jh&7,ia=Vh?0:Kh,Wh=g6+ia|0,B0=L4+8|0,Zh=g6+B0|0,Ec=Zh,jh=Ec&7,Xh=(jh|0)==0,ef=0-Ec|0,tf=ef&7,E7=Xh?0:tf,_0=E7+L4|0,C7=g6+_0|0,Bc=C7,MA=Wh,rf=Bc-MA|0,$0=ia+Le|0,i7=g6+$0|0,Co=rf-Le|0,nf=Le|3,p0=ia+4|0,of=g6+p0|0,e[of>>2]=nf,sf=(C7|0)==(z9|0);t:do if(sf)af=e[138265]|0,Qc=af+Co|0,e[138265]=Qc,e[138268]=i7,$f=Qc|1,H1=$0+4|0,lf=g6+H1|0,e[lf>>2]=$f;else{if(yc=e[138267]|0,cf=(C7|0)==(yc|0),cf){gf=e[138264]|0,Bo=gf+Co|0,e[138264]=Bo,e[138267]=i7,RA=Bo|1,z1=$0+4|0,uf=g6+z1|0,e[uf>>2]=RA,q1=Bo+$0|0,wc=g6+q1|0,e[wc>>2]=Bo;break}if($1=L4+4|0,K0=$1+E7|0,hf=g6+K0|0,ra=e[hf>>2]|0,ff=ra&3,If=(ff|0)==1,If){vc=ra&-8,kc=ra>>>3,mf=ra>>>0<256;i:do if(mf){U1=E7|8,z0=U1+L4|0,pf=g6+z0|0,yn=e[pf>>2]|0,b1=L4+12|0,J0=b1+E7|0,Ef=g6+J0|0,wn=e[Ef>>2]|0,Bf=kc<<1,Sc=553088+(Bf<<2)|0,Qf=(yn|0)==(Sc|0);do if(!Qf){if(yf=yn>>>0>>0,yf&&v2(),bc=yn+12|0,wf=e[bc>>2]|0,Dc=(wf|0)==(C7|0),Dc)break;v2()}while(!1);if(vf=(wn|0)==(yn|0),vf){FA=1<>>0>>0,bf&&v2(),Lc=wn+8|0,Df=e[Lc>>2]|0,_f=(Df|0)==(C7|0),_f){N=Lc;break}v2()}while(!1);xf=yn+12|0,e[xf>>2]=wn,e[N>>2]=yn}else{R1=E7|24,M0=R1+L4|0,Lf=g6+M0|0,yo=e[Lf>>2]|0,V1=L4+12|0,v0=V1+E7|0,Mf=g6+v0|0,vn=e[Mf>>2]|0,Rf=(vn|0)==(C7|0);do if(Rf){if(j1=E7|16,L0=$1+j1|0,Nc=g6+L0|0,Gc=e[Nc>>2]|0,Uf=(Gc|0)==0,Uf)if(G0=j1+L4|0,Uc=g6+G0|0,Pc=e[Uc>>2]|0,Pf=(Pc|0)==0,Pf){Ri=0;break}else bn=Pc,Ba=Uc;else bn=Gc,Ba=Nc;for(;;){if(Oc=bn+20|0,qc=e[Oc>>2]|0,qf=(qc|0)==0,!qf){bn=qc,Ba=Oc;continue}if(Hc=bn+16|0,Yc=e[Hc>>2]|0,Hf=(Yc|0)==0,Hf){Km=bn,eu=Ba;break}else bn=Yc,Ba=Hc}if(Yf=eu>>>0>>0,Yf)v2();else{e[eu>>2]=0,Ri=Km;break}}else if(F1=E7|8,T0=F1+L4|0,Ff=g6+T0|0,TA=e[Ff>>2]|0,Tf=TA>>>0>>0,Tf&&v2(),NA=TA+12|0,GA=e[NA>>2]|0,Rc=(GA|0)==(C7|0),Rc||v2(),Fc=vn+8|0,Gf=e[Fc>>2]|0,Tc=(Gf|0)==(C7|0),Tc){e[NA>>2]=vn,e[Fc>>2]=TA,Ri=vn;break}else v2();while(!1);if(Vc=(yo|0)==0,Vc)break;S1=L4+28|0,N0=S1+E7|0,UA=g6+N0|0,Jc=e[UA>>2]|0,Wc=553352+(Jc<<2)|0,Vf=e[Wc>>2]|0,Jf=(C7|0)==(Vf|0);do if(Jf){if(e[Wc>>2]=Ri,ep=(Ri|0)==0,!ep)break;zf=1<>>0>>0,Xf&&v2(),Zc=yo+16|0,eI=e[Zc>>2]|0,tI=(eI|0)==(C7|0),tI?e[Zc>>2]=Ri:(iI=yo+20|0,e[iI>>2]=Ri),jc=(Ri|0)==0,jc)break i;while(!1);Xc=e[138266]|0,rI=Ri>>>0>>0,rI&&v2(),eg=Ri+24|0,e[eg>>2]=yo,D1=E7|16,U0=D1+L4|0,OA=g6+U0|0,na=e[OA>>2]|0,tg=(na|0)==0;do if(!tg)if(oI=na>>>0>>0,oI)v2();else{sI=Ri+16|0,e[sI>>2]=na,aI=na+24|0,e[aI>>2]=Ri;break}while(!1);if(V0=$1+D1|0,ig=g6+V0|0,oa=e[ig>>2]|0,AI=(oa|0)==0,AI)break;if($I=e[138266]|0,lI=oa>>>0<$I>>>0,lI)v2();else{cI=Ri+20|0,e[cI>>2]=oa,gI=oa+24|0,e[gI>>2]=Ri;break}}while(!1);s2=vc|E7,F0=s2+L4|0,dI=g6+F0|0,hI=vc+Co|0,nu=dI,n7=hI}else nu=C7,n7=Co;if(rg=nu+4|0,fI=e[rg>>2]|0,II=fI&-2,e[rg>>2]=II,mI=n7|1,b0=$0+4|0,pI=g6+b0|0,e[pI>>2]=mI,y0=n7+$0|0,sa=g6+y0|0,e[sa>>2]=n7,ng=n7>>>3,EI=n7>>>0<256,EI){kn=ng<<1,og=553088+(kn<<2)|0,sg=e[138262]|0,qA=1<>2]|0,yI=e[138266]|0,vI=$g>>>0>>0,!vI){R=Ag,o$=$g;break}v2()}while(!1);e[R>>2]=i7,kI=o$+12|0,e[kI>>2]=i7,w1=$0+8|0,SI=g6+w1|0,e[SI>>2]=o$,v1=$0+12|0,aa=g6+v1|0,e[aa>>2]=og;break}HA=n7>>>8,bI=(HA|0)==0;do if(bI)Nr=0;else{if(DI=n7>>>0>16777215,DI){Nr=31;break}_I=HA+1048320|0,xI=_I>>>16,lg=xI&8,cg=HA<>>16,gg=RI&4,Rr=gg|lg,ug=cg<>>16,hg=FI&2,Aa=Rr|hg,NI=14-Aa|0,GI=ug<>>15,fg=NI+$a|0,UI=fg<<1,PI=fg+7|0,Ig=n7>>>PI,OI=Ig&1,qI=OI|UI,Nr=qI}while(!1);if(YA=553352+(Nr<<2)|0,k0=$0+28|0,HI=g6+k0|0,e[HI>>2]=Nr,Z0=$0+16|0,YI=g6+Z0|0,P0=$0+20|0,VI=g6+P0|0,e[VI>>2]=0,e[YI>>2]=0,mg=e[138263]|0,pg=1<>2]=i7,o1=$0+24|0,wo=g6+o1|0,e[wo>>2]=YA,i1=$0+12|0,KI=g6+i1|0,e[KI>>2]=i7,n1=$0+8|0,WI=g6+n1|0,e[WI>>2]=i7;break}VA=e[YA>>2]|0,Bg=VA+4|0,ZI=e[Bg>>2]|0,jI=ZI&-8,XI=(jI|0)==(n7|0);i:do if(XI)Gr=VA;else{for(em=(Nr|0)==31,Qg=Nr>>>1,tm=25-Qg|0,im=em?0:tm,rm=n7<>>31,Sg=(c$+16|0)+(kg<<2)|0,vo=e[Sg>>2]|0,_7=(vo|0)==0,_7){a=Sg,jm=c$;break}if(nm=xo<<1,om=vo+4|0,wg=e[om>>2]|0,vg=wg&-8,sm=(vg|0)==(n7|0),sm){Gr=vo;break i}else xo=nm,c$=vo}if(gr=e[138266]|0,am=a>>>0>>0,am)v2();else{e[a>>2]=i7,Q1=$0+24|0,Am=g6+Q1|0,e[Am>>2]=jm,p1=$0+12|0,$m=g6+p1|0,e[$m>>2]=i7,B1=$0+8|0,lm=g6+B1|0,e[lm>>2]=i7;break t}}while(!1);if(JA=Gr+8|0,ga=e[JA>>2]|0,Dg=e[138266]|0,_g=ga>>>0>=Dg>>>0,u$=Gr>>>0>=Dg>>>0,cm=_g&u$,cm){ko=ga+12|0,e[ko>>2]=i7,e[JA>>2]=i7,j0=$0+8|0,gm=g6+j0|0,e[gm>>2]=ga,E1=$0+12|0,da=g6+E1|0,e[da>>2]=Gr,I1=$0+24|0,zA=g6+I1|0,e[zA>>2]=0;break}else v2()}while(!1);return g1=ia|8,um=g6+g1|0,tt=um,tt|0}else To=553496;for(;;){if(KA=e[To>>2]|0,dm=KA>>>0>z9>>>0,!dm&&(hm=To+4|0,xg=e[hm>>2]|0,ha=KA+xg|0,fm=ha>>>0>z9>>>0,fm)){g=KA,h=xg,m=ha;break}Im=To+8|0,mm=e[Im>>2]|0,To=mm}if(u0=h+-47|0,h0=h+-39|0,pm=g+h0|0,Mg=pm,Em=Mg&7,ri=(Em|0)==0,_e=0-Mg|0,r7=_e&7,Cm=ri?0:r7,c1=u0+Cm|0,Fg=g+c1|0,WA=z9+16|0,Bm=Fg>>>0>>0,Fr=Bm?z9:Fg,So=Fr+8|0,Qm=L4+-40|0,ym=g6+8|0,Tg=ym,ZA=Tg&7,wm=(ZA|0)==0,Gg=0-Tg|0,Ug=Gg&7,jA=wm?0:Ug,XA=g6+jA|0,Pg=Qm-jA|0,e[138268]=XA,e[138265]=Pg,bo=Pg|1,t0=jA+4|0,e$=g6+t0|0,e[e$>>2]=bo,A1=L4+-36|0,Og=g6+A1|0,e[Og>>2]=40,vm=e[138384]|0,e[138269]=vm,Sn=Fr+4|0,e[Sn>>2]=27,e[So>>2]=e[138374]|0,e[So+4>>2]=e[138375]|0,e[So+8>>2]=e[138376]|0,e[So+12>>2]=e[138377]|0,e[138374]=g6,e[138375]=L4,e[138377]=0,e[138376]=So,qg=Fr+28|0,e[qg>>2]=7,fa=Fr+32|0,Sm=fa>>>0>>0,Sm)for(x7=qg;Hg=x7+4|0,e[Hg>>2]=7,bm=x7+8|0,Dm=bm>>>0>>0,Dm;)x7=Hg;if(_m=(Fr|0)==(z9|0),!_m){if(xm=Fr,Lm=z9,L7=xm-Lm|0,Rm=e[Sn>>2]|0,Fm=Rm&-2,e[Sn>>2]=Fm,Tm=L7|1,Yg=z9+4|0,e[Yg>>2]=Tm,e[Fr>>2]=L7,B7=L7>>>3,Ia=L7>>>0<256,Ia){t$=B7<<1,Vg=553088+(t$<<2)|0,Jg=e[138262]|0,zg=1<>2]|0,Pm=e[138266]|0,Om=Zg>>>0>>0,Om?v2():(L=Wg,r$=Zg)),e[L>>2]=z9,jg=r$+12|0,e[jg>>2]=z9,qm=z9+8|0,e[qm>>2]=r$,ma=z9+12|0,e[ma>>2]=Vg;break}if(pa=L7>>>8,Hm=(pa|0)==0,Hm?ur=0:(i$=L7>>>0>16777215,i$?ur=31:(Ym=pa+1048320|0,Vm=Ym>>>16,Xg=Vm&8,_o=pa<>>16,l2=zm&4,r2=l2|Xg,A2=_o<>>16,f2=o2&2,t2=r2|f2,k2=14-t2|0,D2=A2<>>15,N2=k2+S2|0,L2=N2<<1,U2=N2+7|0,m2=L7>>>U2,W2=m2&1,P2=W2|L2,ur=P2)),V2=553352+(ur<<2)|0,G2=z9+28|0,e[G2>>2]=ur,q2=z9+20|0,e[q2>>2]=0,e[WA>>2]=0,Z2=e[138263]|0,H2=1<>2]=z9,i5=z9+24|0,e[i5>>2]=V2,x5=z9+12|0,e[x5>>2]=z9,j2=z9+8|0,e[j2>>2]=z9;break}I5=e[V2>>2]|0,b5=I5+4|0,Y5=e[b5>>2]|0,b2=Y5&-8,B5=(b2|0)==(L7|0);t:do if(B5)ya=I5;else{for(s5=(ur|0)==31,R2=ur>>>1,M2=25-R2|0,y2=s5?0:M2,Q5=L7<>>31,u5=(g$+16|0)+($5<<2)|0,L5=e[u5>>2]|0,y5=(L5|0)==0,y5){$=u5,iu=g$;break}if(N5=A$<<1,m5=L5+4|0,M5=e[m5>>2]|0,Y2=M5&-8,p5=(Y2|0)==(L7|0),p5){ya=L5;break t}else A$=N5,g$=L5}if(T1=e[138266]|0,D5=$>>>0>>0,D5)v2();else{e[$>>2]=z9,d5=z9+24|0,e[d5>>2]=iu,l5=z9+12|0,e[l5>>2]=z9,g2=z9+8|0,e[g2>>2]=z9;break e}}while(!1);if(w5=ya+8|0,r5=e[w5>>2]|0,a5=e[138266]|0,h5=r5>>>0>=a5>>>0,ip=ya>>>0>=a5>>>0,z2=h5&ip,z2){f5=r5+12|0,e[f5>>2]=z9,e[w5>>2]=z9,n5=z9+8|0,e[n5>>2]=r5,R5=z9+12|0,e[R5>>2]=ya,e5=z9+24|0,e[e5>>2]=0;break}else v2()}}while(!1);if(F2=e[138265]|0,v5=F2>>>0>Le>>>0,v5)return J5=F2-Le|0,e[138265]=J5,i3=e[138268]|0,E5=i3+Le|0,e[138268]=E5,I3=J5|1,Z=Le+4|0,h3=i3+Z|0,e[h3>>2]=I3,K5=Le|3,r3=i3+4|0,e[r3>>2]=K5,a3=i3+8|0,tt=a3,tt|0}return G5=aQ()|0,e[G5>>2]=12,tt=0,tt|0}function p2(t){t=t|0;var o=0,a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0,me=0,z6=0,F4=0,T4=0,st=0,pe=0,xe=0,mt=0,W3=0,x9=0,b9=0,Oe=0,A4=0,h8=0,N4=0;if(N4=C,o0=(t|0)==0,!o0){q=t+-8|0,W2=e[138266]|0,v6=q>>>0>>0,v6&&v2(),_6=t+-4|0,f9=e[_6>>2]|0,ie=f9&3,Ge=(ie|0)==1,Ge&&v2(),W9=f9&-8,Q=W9+-8|0,re=t+Q|0,d0=f9&1,n0=(d0|0)==0;do if(n0){if(_0=e[q>>2]|0,L0=(ie|0)==0,L0)return;if(y=-8-_0|0,x0=t+y|0,j0=_0+W9|0,S1=x0>>>0>>0,S1&&v2(),q1=e[138267]|0,s2=(x0|0)==(q1|0),s2){if(X=W9+-4|0,c0=t+X|0,$0=e[c0>>2]|0,l0=$0&3,Z=(l0|0)==3,!Z){W3=x0,x9=j0;break}e[138264]=j0,I0=$0&-2,e[c0>>2]=I0,g0=j0|1,x=y+4|0,f0=t+x|0,e[f0>>2]=g0,e[re>>2]=j0;return}if(o2=_0>>>3,P2=_0>>>0<256,P2){if(K=y+8|0,x5=t+K|0,y2=e[x5>>2]|0,a0=y+12|0,y5=t+a0|0,z2=e[y5>>2]|0,I3=o2<<1,X3=553088+(I3<<2)|0,Q3=(y2|0)==(X3|0),Q3||(E6=y2>>>0>>0,E6&&v2(),d6=y2+12|0,L3=e[d6>>2]|0,K6=(L3|0)==(x0|0),K6||v2()),e9=(z2|0)==(y2|0),e9){V6=1<>>0>>0,T6&&v2(),i9=z2+8|0,O6=e[i9>>2]|0,U3=(O6|0)==(x0|0),U3?g=i9:v2()),q6=y2+12|0,e[q6>>2]=z2,e[g>>2]=y2,W3=x0,x9=j0;break}M=y+24|0,a9=t+M|0,d9=e[a9>>2]|0,L=y+12|0,o9=t+L|0,B9=e[o9>>2]|0,Q9=(B9|0)==(x0|0);do if(Q9){if(F=y+20|0,ue=t+F|0,Ee=e[ue>>2]|0,V9=(Ee|0)==0,V9)if(R=y+16|0,F9=t+R|0,v9=e[F9>>2]|0,W6=(v9|0)==0,W6){S9=0;break}else Pe=v9,S4=F9;else Pe=Ee,S4=ue;for(;;){if($9=Pe+20|0,ve=e[$9>>2]|0,Re=(ve|0)==0,!Re){Pe=ve,S4=$9;continue}if(de=Pe+16|0,_9=e[de>>2]|0,Fe=(_9|0)==0,Fe){m4=Pe,be=S4;break}else Pe=_9,S4=de}if(Te=be>>>0>>0,Te)v2();else{e[be>>2]=0,S9=m4;break}}else if(V=y+8|0,y9=t+V|0,h9=e[y9>>2]|0,H9=h9>>>0>>0,H9&&v2(),y6=h9+12|0,H6=e[y6>>2]|0,A9=(H6|0)==(x0|0),A9||v2(),Y9=B9+8|0,w9=e[Y9>>2]|0,we=(w9|0)==(x0|0),we){e[y6>>2]=B9,e[Y9>>2]=h9,S9=B9;break}else v2();while(!1);if(He=(d9|0)==0,He)W3=x0,x9=j0;else{if(T=y+28|0,o4=t+T|0,ke=e[o4>>2]|0,Ye=553352+(ke<<2)|0,J9=e[Ye>>2]|0,Ve=(x0|0)==(J9|0),Ve){if(e[Ye>>2]=S9,pe=(S9|0)==0,pe){he=1<>>0>>0,k4&&v2(),Y4=d9+16|0,nt=e[Y4>>2]|0,Je=(nt|0)==(x0|0),Je?e[Y4>>2]=S9:(V4=d9+20|0,e[V4>>2]=S9),ze=(S9|0)==0,ze){W3=x0,x9=j0;break}s4=e[138266]|0,R4=S9>>>0>>0,R4&&v2(),ot=S9+24|0,e[ot>>2]=d9,N=y+16|0,d4=t+N|0,Be=e[d4>>2]|0,N6=(Be|0)==0;do if(!N6)if(Ke=Be>>>0>>0,Ke)v2();else{P9=S9+16|0,e[P9>>2]=Be,fe=Be+24|0,e[fe>>2]=S9;break}while(!1);if(G=y+20|0,Ne=t+G|0,h4=e[Ne>>2]|0,ne=(h4|0)==0,ne)W3=x0,x9=j0;else if(f4=e[138266]|0,t0=h4>>>0>>0,t0)v2();else{j=S9+20|0,e[j>>2]=h4,u0=h4+24|0,e[u0>>2]=S9,W3=x0,x9=j0;break}}}else W3=q,x9=W9;while(!1);if(h0=W3>>>0>>0,h0||v2(),D=W9+-4|0,p0=t+D|0,C0=e[p0>>2]|0,S0=C0&1,Q0=(S0|0)==0,Q0&&v2(),b0=C0&2,E0=(b0|0)==0,E0){if(y0=e[138268]|0,w0=(re|0)==(y0|0),w0){if(B0=e[138265]|0,K0=B0+x9|0,e[138265]=K0,e[138268]=W3,M0=K0|1,v0=W3+4|0,e[v0>>2]=M0,T0=e[138267]|0,N0=(W3|0)==(T0|0),!N0)return;e[138267]=0,e[138264]=0;return}if(U0=e[138267]|0,O0=(re|0)==(U0|0),O0){k0=e[138264]|0,V0=k0+x9|0,e[138264]=V0,e[138267]=W3,F0=V0|1,G0=W3+4|0,e[G0>>2]=F0,z0=W3+V0|0,e[z0>>2]=V0;return}J0=C0&-8,q0=J0+x9|0,Z0=C0>>>3,P0=C0>>>0<256;do if(P0){if(H0=t+W9|0,o1=e[H0>>2]|0,w=W9|4,Y0=t+w|0,i1=e[Y0>>2]|0,n1=Z0<<1,d1=553088+(n1<<2)|0,g1=(o1|0)==(d1|0),g1||(m1=e[138266]|0,h1=o1>>>0>>0,h1&&v2(),u1=o1+12|0,A1=e[u1>>2]|0,c1=(A1|0)==(re|0),c1||v2()),s1=(i1|0)==(o1|0),s1){$1=1<>>0>>0,w1&&v2(),v1=i1+8|0,k1=e[v1>>2]|0,L1=(k1|0)==(re|0),L1?$=v1:v2()),M1=o1+12|0,e[M1>>2]=i1,e[$>>2]=o1}else{W=W9+16|0,D1=t+W|0,R1=e[D1>>2]|0,r0=W9|4,F1=t+r0|0,U1=e[F1>>2]|0,b1=(U1|0)==(re|0);do if(b1){if(J=W9+12|0,j1=t+J|0,O1=e[j1>>2]|0,c2=(O1|0)==0,c2)if(s0=W9+8|0,W1=t+s0|0,h2=e[W1>>2]|0,E2=(h2|0)==0,E2){Ie=0;break}else f6=h2,me=W1;else f6=O1,me=j1;for(;;){if(a2=f6+20|0,K1=e[a2>>2]|0,d2=(K1|0)==0,!d2){f6=K1,me=a2;continue}if($2=f6+16|0,i2=e[$2>>2]|0,l2=(i2|0)==0,l2){J4=f6,z6=me;break}else f6=i2,me=$2}if(r2=e[138266]|0,A2=z6>>>0>>0,A2)v2();else{e[z6>>2]=0,Ie=J4;break}}else if(P1=t+W9|0,Z1=e[P1>>2]|0,G1=e[138266]|0,x1=Z1>>>0>>0,x1&&v2(),z1=Z1+12|0,H1=e[z1>>2]|0,Y1=(H1|0)==(re|0),Y1||v2(),V1=U1+8|0,X1=e[V1>>2]|0,n2=(X1|0)==(re|0),n2){e[z1>>2]=U1,e[V1>>2]=Z1,Ie=U1;break}else v2();while(!1);if(e2=(R1|0)==0,!e2){if(S=W9+20|0,f2=t+S|0,t2=e[f2>>2]|0,k2=553352+(t2<<2)|0,D2=e[k2>>2]|0,S2=(re|0)==(D2|0),S2){if(e[k2>>2]=Ie,xe=(Ie|0)==0,xe){Q2=1<>>0>>0,V2&&v2(),G2=R1+16|0,q2=e[G2>>2]|0,Z2=(q2|0)==(re|0),Z2?e[G2>>2]=Ie:(A5=R1+20|0,e[A5>>2]=Ie),H2=(Ie|0)==0,H2)break;N1=e[138266]|0,t5=Ie>>>0>>0,t5&&v2(),T5=Ie+24|0,e[T5>>2]=R1,b=W9+8|0,i5=t+b|0,j2=e[i5>>2]|0,I5=(j2|0)==0;do if(!I5)if(b5=j2>>>0>>0,b5)v2();else{Y5=Ie+16|0,e[Y5>>2]=j2,g5=j2+24|0,e[g5>>2]=Ie;break}while(!1);if(v=W9+12|0,b2=t+v|0,B5=e[b2>>2]|0,s5=(B5|0)==0,!s5)if(R2=e[138266]|0,M2=B5>>>0>>0,M2)v2();else{Q5=Ie+20|0,e[Q5>>2]=B5,N5=B5+24|0,e[N5>>2]=Ie;break}}}while(!1);if(m5=q0|1,L5=W3+4|0,e[L5>>2]=m5,q5=W3+q0|0,e[q5>>2]=q0,M5=e[138267]|0,Y2=(W3|0)==(M5|0),Y2){e[138264]=q0;return}else b9=q0}else p5=C0&-2,e[p0>>2]=p5,$5=x9|1,u5=W3+4|0,e[u5>>2]=$5,T1=W3+x9|0,e[T1>>2]=x9,b9=x9;if(D5=b9>>>3,d5=b9>>>0<256,d5){l5=D5<<1,X2=553088+(l5<<2)|0,g2=e[138262]|0,w5=1<>2]|0,R5=e[138266]|0,e5=n5>>>0>>0,e5?v2():(h=f5,I4=n5)),e[h>>2]=W3,c5=I4+12|0,e[c5>>2]=W3,F2=W3+8|0,e[F2>>2]=I4,v5=W3+12|0,e[v5>>2]=X2;return}J5=b9>>>8,i3=(J5|0)==0,i3?Se=0:(E5=b9>>>0>16777215,E5?Se=31:(h3=J5+1048320|0,K5=h3>>>16,r3=K5&8,a3=J5<>>16,W5=G5&4,D3=W5|r3,f3=a3<>>16,X5=q3&2,b3=D3|X5,t3=14-b3|0,s6=f3<>>15,H3=t3+T3|0,c3=H3<<1,g3=H3+7|0,u3=b9>>>g3,z5=u3&1,H5=z5|c3,Se=H5)),V5=553352+(Se<<2)|0,S5=W3+28|0,e[S5>>2]=Se,Y3=W3+16|0,U5=W3+20|0,e[U5>>2]=0,e[Y3>>2]=0,$6=e[138263]|0,n3=1<>2]=W3,_3=W3+24|0,e[_3>>2]=V5,S3=W3+12|0,e[S3>>2]=W3,a6=W3+8|0,e[a6>>2]=W3;else{i6=e[V5>>2]|0,V3=i6+4|0,Z5=e[V3>>2]|0,x3=Z5&-8,d3=(x3|0)==(b9|0);t:do if(d3)F4=i6;else{for(J3=(Se|0)==31,m3=Se>>>1,L6=25-m3|0,M6=J3?0:L6,R6=b9<>>31,o6=(T4+16|0)+(n6<<2)|0,h6=e[o6>>2]|0,C6=(h6|0)==0,C6){o=o6,st=T4;break}if(S6=a4<<1,r6=h6+4|0,b6=e[r6>>2]|0,G6=b6&-8,X6=(G6|0)==(b9|0),X6){F4=h6;break t}else a4=S6,T4=h6}if(z3=e[138266]|0,M3=o>>>0>>0,M3)v2();else{e[o>>2]=W3,K3=W3+24|0,e[K3>>2]=st,e6=W3+12|0,e[e6>>2]=W3,F6=W3+8|0,e[F6>>2]=W3;break e}}while(!1);if(l6=F4+8|0,o3=e[l6>>2]|0,A3=e[138266]|0,c6=o3>>>0>=A3>>>0,mt=F4>>>0>=A3>>>0,B6=c6&mt,B6){R3=o3+12|0,e[R3>>2]=W3,e[l6>>2]=W3,Y6=W3+8|0,e[Y6>>2]=o3,A6=W3+12|0,e[A6>>2]=F4,D6=W3+24|0,e[D6>>2]=0;break}else v2()}while(!1);if(U6=e[138270]|0,t9=U6+-1|0,e[138270]=t9,Q6=(t9|0)==0,Q6)A4=553504;else return;for(;Oe=e[A4>>2]|0,G3=(Oe|0)==0,n9=Oe+8|0,!G3;)A4=n9;e[138270]=-1}}function ce(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0;return x=C,$=(t|0)==0,$?D=0:(g=o5(o,t)|0,I=o|t,E=I>>>0>65535,E?(Q=(g>>>0)/(t>>>0)&-1,B=(Q|0)==(o|0),a=B?g:-1,D=a):D=g),S=R9(D)|0,b=(S|0)==0,b||(v=S+-4|0,w=e[v>>2]|0,h=w&3,m=(h|0)==0,m)||u4(S|0,0,D|0)|0,S|0}function K7(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0;return K=C,a=(t|0)==0,a?($=R9(o)|0,V=$,V|0):(w=o>>>0>4294967231,w?(M=aQ()|0,e[M>>2]=12,V=0,V|0):(L=o>>>0<11,R=o+11|0,F=R&-8,T=L?16:F,N=t+-8|0,G=$D(N,T)|0,g=(G|0)==0,g?(m=R9(o)|0,I=(m|0)==0,I?(V=0,V|0):(E=t+-4|0,Q=e[E>>2]|0,B=Q&-8,S=Q&3,b=(S|0)==0,v=b?8:4,D=B-v|0,y=D>>>0>>0,x=y?D:o,ge(m|0,t|0,x|0)|0,p2(t),V=m,V|0)):(h=G+8|0,V=h,V|0)))}function $D(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0;if(W5=C,N=t+4|0,G=e[N>>2]|0,b1=G&-8,n2=t+b1|0,$2=e[138266]|0,S2=G&3,I3=t>>>0>=$2>>>0,h3=(S2|0)!=1,K5=h3&I3,Z2=t>>>0>>0,r3=K5&Z2,r3||v2(),x=b1|4,Y5=t+x|0,L5=e[Y5>>2]|0,l5=L5&1,V=(l5|0)==0,V&&v2(),t0=(S2|0)==0,t0)return h0=o>>>0<256,h0?(E5=0,E5|0):(K0=o+4|0,G0=b1>>>0>>0,!G0&&(n1=b1-o|0,E1=e[138382]|0,D1=E1<<1,F1=n1>>>0>D1>>>0,!F1)?(E5=t,E5|0):(E5=0,E5|0));if(U1=b1>>>0>>0,!U1)return P1=b1-o|0,Z1=P1>>>0>15,Z1?(G1=t+o|0,x1=G&1,z1=x1|o,q1=z1|2,e[N>>2]=q1,y=o+4|0,H1=t+y|0,Y1=P1|3,e[H1>>2]=Y1,V1=e[Y5>>2]|0,X1=V1|1,e[Y5>>2]=X1,NQ(G1,P1),E5=t,E5|0):(E5=t,E5|0);if(j1=e[138268]|0,O1=(n2|0)==(j1|0),O1)return c2=e[138265]|0,W1=c2+b1|0,h2=W1>>>0>o>>>0,h2?(s2=W1-o|0,E2=t+o|0,a2=G&1,K1=a2|o,d2=K1|2,e[N>>2]=d2,D=o+4|0,i2=t+D|0,l2=s2|1,e[i2>>2]=l2,e[138268]=E2,e[138265]=s2,E5=t,E5|0):(E5=0,E5|0);if(r2=e[138267]|0,A2=(n2|0)==(r2|0),A2)return e2=e[138264]|0,o2=e2+b1|0,f2=o2>>>0>>0,f2?(E5=0,E5|0):(t2=o2-o|0,k2=t2>>>0>15,k2?(D2=t+o|0,Q2=t+o2|0,N2=G&1,L2=N2|o,U2=L2|2,e[N>>2]=U2,b=o+4|0,m2=t+b|0,W2=t2|1,e[m2>>2]=W2,e[Q2>>2]=t2,w=o2+4|0,P2=t+w|0,V2=e[P2>>2]|0,G2=V2&-2,e[P2>>2]=G2,a3=D2,B3=t2):(q2=G&1,A5=q2|o2,H2=A5|2,e[N>>2]=H2,S=o2+4|0,N1=t+S|0,t5=e[N1>>2]|0,T5=t5|1,e[N1>>2]=T5,a3=0,B3=0),e[138264]=B3,e[138267]=a3,E5=t,E5|0);if(i5=L5&2,x5=(i5|0)==0,!x5||(j2=L5&-8,I5=j2+b1|0,b5=I5>>>0>>0,b5))return E5=0,E5|0;g5=I5-o|0,b2=L5>>>3,B5=L5>>>0<256;do if(B5){if(Q=b1+8|0,s5=t+Q|0,R2=e[s5>>2]|0,B=b1+12|0,M2=t+B|0,y2=e[M2>>2]|0,Q5=b2<<1,N5=553088+(Q5<<2)|0,m5=(R2|0)==(N5|0),m5||(q5=R2>>>0<$2>>>0,q5&&v2(),M5=R2+12|0,Y2=e[M5>>2]|0,p5=(Y2|0)==(n2|0),p5||v2()),$5=(y2|0)==(R2|0),$5){u5=1<>>0<$2>>>0,X2&&v2(),g2=y2+8|0,w5=e[g2>>2]|0,r5=(w5|0)==(n2|0),r5?$=g2:v2()),a5=R2+12|0,e[a5>>2]=y2,e[$>>2]=R2}else{g=b1+24|0,h5=t+g|0,z2=e[h5>>2]|0,v=b1+12|0,f5=t+v|0,n5=e[f5>>2]|0,R5=(n5|0)==(n2|0);do if(R5){if(L=b1+20|0,d0=t+L|0,j=e[d0>>2]|0,u0=(j|0)==0,u0)if(M=b1+16|0,c0=t+M|0,$0=e[c0>>2]|0,l0=($0|0)==0,l0){F2=0;break}else e5=$0,v5=c0;else e5=j,v5=d0;for(;;){if(Z=e5+20|0,I0=e[Z>>2]|0,g0=(I0|0)==0,!g0){e5=I0,v5=Z;continue}if(f0=e5+16|0,n0=e[f0>>2]|0,p0=(n0|0)==0,p0){c5=e5,J5=v5;break}else e5=n0,v5=f0}if(C0=J5>>>0<$2>>>0,C0)v2();else{e[J5>>2]=0,F2=c5;break}}else if(E=b1+8|0,X=t+E|0,K=e[X>>2]|0,a0=K>>>0<$2>>>0,a0&&v2(),W=K+12|0,r0=e[W>>2]|0,s0=(r0|0)==(n2|0),s0||v2(),J=n5+8|0,o0=e[J>>2]|0,q=(o0|0)==(n2|0),q){e[W>>2]=n5,e[J>>2]=K,F2=n5;break}else v2();while(!1);if(S0=(z2|0)==0,!S0){if(h=b1+28|0,Q0=t+h|0,b0=e[Q0>>2]|0,E0=553352+(b0<<2)|0,y0=e[E0>>2]|0,w0=(n2|0)==(y0|0),w0){if(e[E0>>2]=F2,i3=(F2|0)==0,i3){B0=1<>>0>>0,N0&&v2(),U0=z2+16|0,O0=e[U0>>2]|0,k0=(O0|0)==(n2|0),k0?e[U0>>2]=F2:(V0=z2+20|0,e[V0>>2]=F2),F0=(F2|0)==0,F0)break;L0=e[138266]|0,z0=F2>>>0>>0,z0&&v2(),J0=F2+24|0,e[J0>>2]=z2,m=b1+16|0,q0=t+m|0,Z0=e[q0>>2]|0,P0=(Z0|0)==0;do if(!P0)if(H0=Z0>>>0>>0,H0)v2();else{o1=F2+16|0,e[o1>>2]=Z0,Y0=Z0+24|0,e[Y0>>2]=F2;break}while(!1);if(I=b1+20|0,i1=t+I|0,x0=e[i1>>2]|0,d1=(x0|0)==0,!d1)if(g1=e[138266]|0,m1=x0>>>0>>0,m1)v2();else{h1=F2+20|0,e[h1>>2]=x0,u1=x0+24|0,e[u1>>2]=F2;break}}}while(!1);return A1=g5>>>0<16,A1?(c1=G&1,s1=I5|c1,$1=s1|2,e[N>>2]=$1,T=I5|4,j0=t+T|0,I1=e[j0>>2]|0,Q1=I1|1,e[j0>>2]=Q1,E5=t,E5|0):(p1=t+o|0,B1=G&1,w1=B1|o,v1=w1|2,e[N>>2]=v1,R=o+4|0,k1=t+R|0,L1=g5|3,e[k1>>2]=L1,F=I5|4,M1=t+F|0,S1=e[M1>>2]|0,R1=S1|1,e[M1>>2]=R1,NQ(p1,g5),E5=t,E5|0)}function NQ(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0,G0=0,z0=0,J0=0,q0=0,Z0=0,P0=0,H0=0,o1=0,Y0=0,i1=0,x0=0,n1=0,d1=0,g1=0,m1=0,h1=0,u1=0,A1=0,c1=0,s1=0,$1=0,j0=0,E1=0,I1=0,Q1=0,p1=0,B1=0,w1=0,v1=0,k1=0,L1=0,M1=0,S1=0,D1=0,R1=0,F1=0,U1=0,b1=0,P1=0,Z1=0,G1=0,x1=0,z1=0,q1=0,H1=0,Y1=0,V1=0,X1=0,n2=0,j1=0,O1=0,c2=0,W1=0,h2=0,s2=0,E2=0,a2=0,K1=0,d2=0,$2=0,i2=0,l2=0,r2=0,A2=0,e2=0,o2=0,f2=0,t2=0,k2=0,D2=0,S2=0,Q2=0,N2=0,L2=0,U2=0,m2=0,W2=0,P2=0,V2=0,G2=0,q2=0,Z2=0,A5=0,H2=0,N1=0,t5=0,T5=0,i5=0,x5=0,j2=0,I5=0,b5=0,Y5=0,g5=0,b2=0,B5=0,s5=0,R2=0,M2=0,y2=0,Q5=0,N5=0,m5=0,L5=0,q5=0,M5=0,Y2=0,p5=0,$5=0,u5=0,y5=0,T1=0,D5=0,d5=0,l5=0,X2=0,g2=0,w5=0,r5=0,a5=0,h5=0,z2=0,f5=0,n5=0,R5=0,e5=0,c5=0,F2=0,v5=0,J5=0,i3=0,E5=0,I3=0,h3=0,K5=0,r3=0,a3=0,B3=0,G5=0,W5=0,D3=0,f3=0,y3=0,X3=0,q3=0,X5=0,b3=0,t3=0,s6=0,T3=0,H3=0,c3=0,g3=0,u3=0,Q3=0,z5=0,H5=0,V5=0,S5=0,Y3=0,U5=0,$6=0,n3=0,l3=0,N3=0,E6=0,k3=0,_3=0,S3=0,a6=0,i6=0,V3=0,Z5=0,x3=0,d3=0,J3=0,d6=0,m3=0,L6=0,M6=0,R6=0,S6=0,r6=0,h6=0,b6=0,G6=0,X6=0,v6=0,L3=0,n6=0,o6=0,C6=0,z3=0,M3=0,K3=0,e6=0,F6=0,l6=0,o3=0,K6=0,A3=0,c6=0,B6=0,R3=0,Y6=0,A6=0,D6=0,U6=0,t9=0,Q6=0,e9=0,G3=0,n9=0,V6=0,s9=0,c9=0,P6=0,J6=0,T6=0,i9=0,_6=0,O6=0,U3=0,q6=0,a9=0,d9=0,o9=0,B9=0,Q9=0,y9=0,h9=0,f9=0,H9=0,y6=0,H6=0,A9=0,Y9=0,w9=0,we=0,ue=0,Ee=0,V9=0,ie=0,F9=0,v9=0,W6=0,$9=0,ve=0,Re=0,de=0,_9=0,Fe=0,Te=0,Ge=0,He=0,o4=0,ke=0,Ye=0,J9=0,Ve=0,he=0,Ue=0,Ce=0,v4=0,W9=0,k9=0,k4=0,Y4=0,nt=0,Je=0,V4=0,ze=0,s4=0,R4=0,ot=0,re=0,d4=0,Be=0,N6=0,Ke=0,P9=0,fe=0,Ne=0,h4=0,ne=0,f4=0,I4=0,Se=0,a4=0,Pe=0,m4=0,S9=0,f6=0,J4=0,Ie=0,S4=0,be=0;be=C,j=t+o|0,u0=t+4|0,q2=e[u0>>2]|0,C6=q2&1,e9=(C6|0)==0;do if(e9){if(O6=e[t>>2]|0,H9=q2&3,F9=(H9|0)==0,F9)return;if(He=0-O6|0,k9=t+He|0,c0=O6+o|0,S0=e[138266]|0,T0=k9>>>0>>0,T0&&v2(),q0=e[138267]|0,m1=(k9|0)==(q0|0),m1){if(v=o+4|0,re=t+v|0,$0=e[re>>2]|0,l0=$0&3,Z=(l0|0)==3,!Z){a=k9,$=c0;break}e[138264]=c0,I0=$0&-2,e[re>>2]=I0,g0=c0|1,L=4-O6|0,f0=t+L|0,e[f0>>2]=g0,e[j>>2]=c0;return}if(p1=O6>>>3,U1=O6>>>0<256,U1){if(W=8-O6|0,X1=t+W|0,d2=e[X1>>2]|0,r0=12-O6|0,D2=t+r0|0,Z2=e[D2>>2]|0,Y5=p1<<1,L5=553088+(Y5<<2)|0,l5=(d2|0)==(L5|0),l5||(e5=d2>>>0>>0,e5&&v2(),a3=d2+12|0,t3=e[a3>>2]|0,S5=(t3|0)==(k9|0),S5||v2()),a6=(Z2|0)==(d2|0),a6){R6=1<>>0>>0,Y6&&v2(),A6=Z2+8|0,D6=e[A6>>2]|0,U6=(D6|0)==(k9|0),U6?E=A6:v2()),t9=d2+12|0,e[t9>>2]=Z2,e[E>>2]=d2,a=k9,$=c0;break}R=24-O6|0,Q6=t+R|0,G3=e[Q6>>2]|0,F=12-O6|0,n9=t+F|0,V6=e[n9>>2]|0,s9=(V6|0)==(k9|0);do if(s9){if(T=16-O6|0,N=T+4|0,d9=t+N|0,o9=e[d9>>2]|0,B9=(o9|0)==0,B9)if(Q9=t+T|0,y9=e[Q9>>2]|0,h9=(y9|0)==0,h9){fe=0;break}else Ke=y9,f4=Q9;else Ke=o9,f4=d9;for(;;){if(f9=Ke+20|0,y6=e[f9>>2]|0,H6=(y6|0)==0,!H6){Ke=y6,f4=f9;continue}if(A9=Ke+16|0,Y9=e[A9>>2]|0,w9=(Y9|0)==0,w9){P9=Ke,I4=f4;break}else Ke=Y9,f4=A9}if(we=I4>>>0>>0,we)v2();else{e[I4>>2]=0,fe=P9;break}}else if(a0=8-O6|0,c9=t+a0|0,P6=e[c9>>2]|0,J6=P6>>>0>>0,J6&&v2(),T6=P6+12|0,i9=e[T6>>2]|0,_6=(i9|0)==(k9|0),_6||v2(),U3=V6+8|0,q6=e[U3>>2]|0,a9=(q6|0)==(k9|0),a9){e[T6>>2]=V6,e[U3>>2]=P6,fe=V6;break}else v2();while(!1);if(ue=(G3|0)==0,ue)a=k9,$=c0;else{if(V=28-O6|0,Ee=t+V|0,V9=e[Ee>>2]|0,ie=553352+(V9<<2)|0,v9=e[ie>>2]|0,W6=(k9|0)==(v9|0),W6){if(e[ie>>2]=fe,f6=(fe|0)==0,f6){$9=1<>>0<_9>>>0,Fe&&v2(),Te=G3+16|0,Ge=e[Te>>2]|0,o4=(Ge|0)==(k9|0),o4?e[Te>>2]=fe:(ke=G3+20|0,e[ke>>2]=fe),Ye=(fe|0)==0,Ye){a=k9,$=c0;break}J9=e[138266]|0,Ve=fe>>>0>>0,Ve&&v2(),he=fe+24|0,e[he>>2]=G3,X=16-O6|0,Ue=t+X|0,Ce=e[Ue>>2]|0,v4=(Ce|0)==0;do if(!v4)if(W9=Ce>>>0>>0,W9)v2();else{k4=fe+16|0,e[k4>>2]=Ce,Y4=Ce+24|0,e[Y4>>2]=fe;break}while(!1);if(K=X+4|0,nt=t+K|0,Je=e[nt>>2]|0,V4=(Je|0)==0,V4)a=k9,$=c0;else if(ze=e[138266]|0,s4=Je>>>0>>0,s4)v2();else{R4=fe+20|0,e[R4>>2]=Je,ot=Je+24|0,e[ot>>2]=fe,a=k9,$=c0;break}}}else a=t,$=o;while(!1);if(n0=e[138266]|0,h0=j>>>0>>0,h0&&v2(),w=o+4|0,p0=t+w|0,C0=e[p0>>2]|0,Q0=C0&2,b0=(Q0|0)==0,b0){if(E0=e[138268]|0,y0=(j|0)==(E0|0),y0){if(w0=e[138265]|0,B0=w0+$|0,e[138265]=B0,e[138268]=a,_0=B0|1,K0=a+4|0,e[K0>>2]=_0,M0=e[138267]|0,v0=(a|0)==(M0|0),!v0)return;e[138267]=0,e[138264]=0;return}if(N0=e[138267]|0,U0=(j|0)==(N0|0),U0){O0=e[138264]|0,k0=O0+$|0,e[138264]=k0,e[138267]=a,V0=k0|1,F0=a+4|0,e[F0>>2]=V0,L0=a+k0|0,e[L0>>2]=k0;return}G0=C0&-8,z0=G0+$|0,J0=C0>>>3,Z0=C0>>>0<256;do if(Z0){if(x=o+8|0,P0=t+x|0,H0=e[P0>>2]|0,M=o+12|0,o1=t+M|0,Y0=e[o1>>2]|0,i1=J0<<1,x0=553088+(i1<<2)|0,n1=(H0|0)==(x0|0),n1||(d1=H0>>>0>>0,d1&&v2(),g1=H0+12|0,h1=e[g1>>2]|0,u1=(h1|0)==(j|0),u1||v2()),A1=(Y0|0)==(H0|0),A1){c1=1<>>0>>0,I1&&v2(),Q1=Y0+8|0,B1=e[Q1>>2]|0,w1=(B1|0)==(j|0),w1?I=Q1:v2()),v1=H0+12|0,e[v1>>2]=Y0,e[I>>2]=H0}else{G=o+24|0,k1=t+G|0,L1=e[k1>>2]|0,s0=o+12|0,M1=t+s0|0,S1=e[M1>>2]|0,D1=(S1|0)==(j|0);do if(D1){if(o0=o+20|0,H1=t+o0|0,Y1=e[H1>>2]|0,V1=(Y1|0)==0,V1)if(J=o+16|0,n2=t+J|0,j1=e[n2>>2]|0,O1=(j1|0)==0,O1){ne=0;break}else Ne=j1,Se=n2;else Ne=Y1,Se=H1;for(;;){if(c2=Ne+20|0,W1=e[c2>>2]|0,h2=(W1|0)==0,!h2){Ne=W1,Se=c2;continue}if(s2=Ne+16|0,E2=e[s2>>2]|0,a2=(E2|0)==0,a2){h4=Ne,a4=Se;break}else Ne=E2,Se=s2}if(K1=a4>>>0>>0,K1)v2();else{e[a4>>2]=0,ne=h4;break}}else if(y=o+8|0,R1=t+y|0,F1=e[R1>>2]|0,b1=F1>>>0>>0,b1&&v2(),P1=F1+12|0,Z1=e[P1>>2]|0,G1=(Z1|0)==(j|0),G1||v2(),x1=S1+8|0,z1=e[x1>>2]|0,q1=(z1|0)==(j|0),q1){e[P1>>2]=S1,e[x1>>2]=F1,ne=S1;break}else v2();while(!1);if($2=(L1|0)==0,!$2){if(d0=o+28|0,i2=t+d0|0,l2=e[i2>>2]|0,r2=553352+(l2<<2)|0,A2=e[r2>>2]|0,e2=(j|0)==(A2|0),e2){if(e[r2>>2]=ne,J4=(ne|0)==0,J4){o2=1<>>0>>0,Q2&&v2(),N2=L1+16|0,L2=e[N2>>2]|0,U2=(L2|0)==(j|0),U2?e[N2>>2]=ne:(m2=L1+20|0,e[m2>>2]=ne),W2=(ne|0)==0,W2)break;P2=e[138266]|0,V2=ne>>>0>>0,V2&&v2(),G2=ne+24|0,e[G2>>2]=L1,t0=o+16|0,A5=t+t0|0,H2=e[A5>>2]|0,N1=(H2|0)==0;do if(!N1)if(t5=H2>>>0>>0,t5)v2();else{T5=ne+16|0,e[T5>>2]=H2,i5=H2+24|0,e[i5>>2]=ne;break}while(!1);if(D=o+20|0,x5=t+D|0,j2=e[x5>>2]|0,I5=(j2|0)==0,!I5)if(b5=e[138266]|0,g5=j2>>>0>>0,g5)v2();else{b2=ne+20|0,e[b2>>2]=j2,B5=j2+24|0,e[B5>>2]=ne;break}}}while(!1);if(s5=z0|1,R2=a+4|0,e[R2>>2]=s5,M2=a+z0|0,e[M2>>2]=z0,y2=e[138267]|0,Q5=(a|0)==(y2|0),Q5){e[138264]=z0;return}else g=z0}else N5=C0&-2,e[p0>>2]=N5,m5=$|1,q5=a+4|0,e[q5>>2]=m5,M5=a+$|0,e[M5>>2]=$,g=$;if(Y2=g>>>3,p5=g>>>0<256,p5){$5=Y2<<1,u5=553088+($5<<2)|0,y5=e[138262]|0,T1=1<>2]|0,r5=e[138266]|0,a5=w5>>>0>>0,a5?v2():(Q=g2,d4=w5)),e[Q>>2]=a,h5=d4+12|0,e[h5>>2]=a,z2=a+8|0,e[z2>>2]=d4,f5=a+12|0,e[f5>>2]=u5;return}if(n5=g>>>8,R5=(n5|0)==0,R5?Be=0:(c5=g>>>0>16777215,c5?Be=31:(F2=n5+1048320|0,v5=F2>>>16,J5=v5&8,i3=n5<>>16,h3=I3&4,K5=h3|J5,r3=i3<>>16,W5=G5&2,D3=K5|W5,f3=14-D3|0,y3=r3<>>15,q3=f3+X3|0,X5=q3<<1,b3=q3+7|0,s6=g>>>b3,T3=s6&1,H3=T3|X5,Be=H3)),c3=553352+(Be<<2)|0,g3=a+28|0,e[g3>>2]=Be,u3=a+16|0,Q3=a+20|0,e[Q3>>2]=0,e[u3>>2]=0,z5=e[138263]|0,H5=1<>2]=a,$6=a+24|0,e[$6>>2]=c3,n3=a+12|0,e[n3>>2]=a,l3=a+8|0,e[l3>>2]=a;return}N3=e[c3>>2]|0,E6=N3+4|0,k3=e[E6>>2]|0,_3=k3&-8,S3=(_3|0)==(g|0);e:do if(S3)Pe=N3;else{for(i6=(Be|0)==31,V3=Be>>>1,Z5=25-V3|0,x3=i6?0:Z5,d3=g<>>31,h6=(m4+16|0)+(r6<<2)|0,m3=e[h6>>2]|0,b6=(m3|0)==0,b6){h=h6,S9=m4;break}if(J3=N6<<1,d6=m3+4|0,L6=e[d6>>2]|0,M6=L6&-8,S6=(M6|0)==(g|0),S6){Pe=m3;break e}else N6=J3,m4=m3}G6=e[138266]|0,X6=h>>>0>>0,X6&&v2(),e[h>>2]=a,v6=a+24|0,e[v6>>2]=S9,L3=a+12|0,e[L3>>2]=a,n6=a+8|0,e[n6>>2]=a;return}while(!1);o6=Pe+8|0,M3=e[o6>>2]|0,K3=e[138266]|0,e6=M3>>>0>=K3>>>0,Ie=Pe>>>0>=K3>>>0,F6=e6&Ie,F6||v2(),l6=M3+12|0,e[l6>>2]=a,e[o6>>2]=a,o3=a+8|0,e[o3>>2]=M3,K6=a+12|0,e[K6>>2]=Pe,A3=a+24|0,e[A3>>2]=0}function lD(){e[6410]=K9}function u4(t,o,a){t=t|0,o=o|0,a=a|0;var $=0,g=0,h=0,m=0;if($=t+a|0,(a|0)>=20){if(o=o&255,m=t&3,g=o|o<<8|o<<16|o<<24,h=$&-4,m)for(m=t+4-m|0;(t|0)<(m|0);)f[t>>0]=o,t=t+1|0;for(;(t|0)<(h|0);)e[t>>2]=g,t=t+4|0}for(;(t|0)<($|0);)f[t>>0]=o,t=t+1|0;return t-a|0}function nl(t){t=t|0;var o=0;for(o=t;f[o>>0]|0;)o=o+1|0;return o-t|0}function GQ(t,o){t=t|0,o=o|0;var a=0,$=0;$=t+(nl(t)|0)|0;do f[$+a>>0]=f[o+a>>0],a=a+1|0;while(f[o+(a-1)>>0]|0);return t|0}function UQ(t,o,a){t=t|0,o=o|0,a=a|0;var $=0;return(a|0)<32?($=(1<>>32-a,t<>>0,h=o+$+(g>>>0>>0|0)>>>0,j6=h,g|0|0}function ns(t,o,a){t=t|0,o=o|0,a=a|0;var $=0;return(a|0)<32?($=(1<>>a,t>>>a|(o&$)<<32-a):(j6=0,o>>>a-32|0)}function ge(t,o,a){t=t|0,o=o|0,a=a|0;var $=0;if((a|0)>=4096)return ES(t|0,o|0,a|0)|0;if($=t|0,(t&3)==(o&3)){for(;t&3;){if(!(a|0))return $|0;f[t>>0]=f[o>>0]|0,t=t+1|0,o=o+1|0,a=a-1|0}for(;(a|0)>=4;)e[t>>2]=e[o>>2]|0,t=t+4|0,o=o+4|0,a=a-4|0}for(;(a|0)>0;)f[t>>0]=f[o>>0]|0,t=t+1|0,o=o+1|0,a=a-1|0;return $|0}function oA(t,o,a){t=t|0,o=o|0,a=a|0;var $=0;if((o|0)<(t|0)&(t|0)<(o+a|0)){for($=t,o=o+a|0,t=t+a|0;(a|0)>0;)t=t-1|0,o=o-1|0,a=a-1|0,f[t>>0]=f[o>>0]|0;t=$}else ge(t,o,a)|0;return t|0}function kC(t,o){t=t|0,o=o|0;var a=0;do f[(t+a|0)>>0]=f[(o+a|0)>>0],a=a+1|0;while(f[o+(a-1)>>0]|0);return t|0}function os(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0;return g=t-a>>>0,h=o-$>>>0,h=o-$-(a>>>0>t>>>0|0)>>>0,j6=h,g|0|0}function q_(t,o,a){t=t|0,o=o|0,a=a|0;var $=0;return(a|0)<32?($=(1<>a,t>>>a|(o&$)<<32-a):(j6=(o|0)<0?-1:0,o>>a-32|0)}function PQ(t){t=t|0;var o=0;return o=f[G9+(t&255)>>0]|0,(o|0)<8?o|0:(o=f[G9+(t>>8&255)>>0]|0,(o|0)<8?o+8|0:(o=f[G9+(t>>16&255)>>0]|0,(o|0)<8?o+16|0:(f[G9+(t>>>24)>>0]|0)+24|0))}function cD(t,o){t=t|0,o=o|0;var a=0,$=0,g=0,h=0,m=0,I=0,E=0;return a=t&65535,$=o&65535,g=o5($,a)|0,h=t>>>16,m=(g>>>16)+(o5($,h)|0)|0,I=o>>>16,E=o5(I,a)|0,j6=((m>>>16)+(o5(I,h)|0)|0)+(((m&65535)+E|0)>>>16)|0,0|(m+E<<16|g&65535)|0}function H_(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0;return g=o>>31|((o|0)<0?-1:0)<<1,h=((o|0)<0?-1:0)>>31|((o|0)<0?-1:0)<<1,m=$>>31|(($|0)<0?-1:0)<<1,I=(($|0)<0?-1:0)>>31|(($|0)<0?-1:0)<<1,E=os(g^t,h^o,g,h)|0,Q=j6,B=os(m^a,I^$,m,I)|0,S=m^g,b=I^h,v=cE(E,Q,B,j6,0)|0,w=os(v^S,j6^b,S,b)|0,w|0}function Y_(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0;return w=C,C=C+8|0,g=w|0,h=o>>31|((o|0)<0?-1:0)<<1,m=((o|0)<0?-1:0)>>31|((o|0)<0?-1:0)<<1,I=$>>31|(($|0)<0?-1:0)<<1,E=(($|0)<0?-1:0)>>31|(($|0)<0?-1:0)<<1,Q=os(h^t,m^o,h,m)|0,B=j6,S=os(I^a,E^$,I,E)|0,cE(Q,B,S,j6,g)|0,b=os(e[g>>2]^h,e[g+4>>2]^m,h,m)|0,v=j6,C=w,j6=v,b|0}function gD(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0,m=0,I=0,E=0;return g=t,h=a,m=cD(g,h)|0,I=j6,E=o5(o,h)|0,j6=((o5($,g)|0)+E|0)+I|I&0,0|m&-1|0}function V_(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0;return g=cE(t,o,a,$,0)|0,g|0}function J_(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0;var g=0,h=0;return h=C,C=C+8|0,g=h|0,cE(t,o,a,$,g)|0,C=h,j6=e[g+4>>2]|0,e[g>>2]|0|0}function cE(t,o,a,$,g){t=t|0,o=o|0,a=a|0,$=$|0,g=g|0;var h=0,m=0,I=0,E=0,Q=0,B=0,S=0,b=0,v=0,w=0,D=0,y=0,x=0,M=0,L=0,R=0,F=0,T=0,N=0,G=0,V=0,X=0,K=0,a0=0,W=0,r0=0,s0=0,J=0,o0=0,q=0,d0=0,t0=0,j=0,u0=0,c0=0,$0=0,l0=0,Z=0,I0=0,g0=0,f0=0,n0=0,h0=0,p0=0,C0=0,S0=0,Q0=0,b0=0,E0=0,y0=0,w0=0,B0=0,_0=0,K0=0,M0=0,v0=0,T0=0,N0=0,U0=0,O0=0,k0=0,V0=0,F0=0,L0=0;if(h=t,m=o,I=m,E=a,Q=$,B=Q,!(I|0))return S=(g|0)!=0,B|0?S?(e[g>>2]=t&-1,e[g+4>>2]=o&0,L0=0,F0=0,j6=L0,F0|0):(L0=0,F0=0,j6=L0,F0|0):(S&&(e[g>>2]=(h>>>0)%(E>>>0),e[g+4>>2]=0),L0=0,F0=(h>>>0)/(E>>>0)>>>0,j6=L0,F0|0);b=(B|0)==0;do if(E|0){if(!b){if(K=is(B|0)|0,a0=K-(is(I|0)|0)|0,a0>>>0<=31){W=a0+1|0,r0=31-a0|0,s0=a0-31>>31,t0=W,d0=h>>>(W>>>0)&s0|I<>>(W>>>0)&s0,o0=0,J=h<>2]=0|t&-1,e[g+4>>2]=m|o&0,L0=0,F0=0,j6=L0,F0|0):(L0=0,F0=0,j6=L0,F0|0)}if(M=E-1|0,M&E|0){R=(is(E|0)|0)+33|0,F=R-(is(I|0)|0)|0,T=64-F|0,N=32-F|0,G=N>>31,V=F-32|0,X=V>>31,t0=F,d0=N-1>>31&I>>>(V>>>0)|(I<>>(F>>>0))&X,q=X&I>>>(F>>>0),o0=h<>>(V>>>0))&G|h<>31;break}return g|0&&(e[g>>2]=M&h,e[g+4>>2]=0),(E|0)==1?(L0=m|o&0,F0=0|t&-1,j6=L0,F0|0):(L=PQ(E|0)|0,L0=0|I>>>(L>>>0),F0=I<<32-L|h>>>(L>>>0)|0,j6=L0,F0|0)}else{if(b)return g|0&&(e[g>>2]=(I>>>0)%(E>>>0),e[g+4>>2]=0),L0=0,F0=(I>>>0)/(E>>>0)>>>0,j6=L0,F0|0;if(!(h|0))return g|0&&(e[g>>2]=0,e[g+4>>2]=(I>>>0)%(B>>>0)),L0=0,F0=(I>>>0)/(B>>>0)>>>0,j6=L0,F0|0;if(v=B-1|0,!(v&B|0))return g|0&&(e[g>>2]=0|t&-1,e[g+4>>2]=v&I|o&0),L0=0,F0=I>>>((PQ(B|0)|0)>>>0),j6=L0,F0|0;if(w=is(B|0)|0,D=w-(is(I|0)|0)|0,D>>>0<=30){y=D+1|0,x=31-D|0,t0=y,d0=I<>>(y>>>0),q=I>>>(y>>>0),o0=0,J=h<>2]=0|t&-1,e[g+4>>2]=m|o&0,L0=0,F0=0,j6=L0,F0|0):(L0=0,F0=0,j6=L0,F0|0)}while(!1);if(!(t0|0))U0=J,N0=o0,T0=q,v0=d0,M0=0,K0=0;else{for(j=0|a&-1,u0=Q|$&0,c0=rs(j|0,u0|0,-1,-1)|0,$0=j6,n0=J,f0=o0,g0=q,I0=d0,Z=t0,l0=0;h0=f0>>>31|n0<<1,p0=l0|f0<<1,C0=0|(I0<<1|n0>>>31),S0=I0>>>31|g0<<1|0,os(c0,$0,C0,S0)|0,Q0=j6,b0=Q0>>31|((Q0|0)<0?-1:0)<<1,E0=b0&1,y0=os(C0,S0,b0&j,(((Q0|0)<0?-1:0)>>31|((Q0|0)<0?-1:0)<<1)&u0)|0,w0=y0,B0=j6,_0=Z-1|0,_0|0;)n0=h0,f0=p0,g0=B0,I0=w0,Z=_0,l0=E0;U0=h0,N0=p0,T0=B0,v0=w0,M0=0,K0=E0}return O0=N0,k0=0,V0=U0|k0,g|0&&(e[g>>2]=0|v0,e[g+4>>2]=T0|0),L0=(0|O0)>>>31|V0<<1|(k0<<1|O0>>>31)&0|M0,F0=(O0<<1|0)&-2|K0,j6=L0,F0|0}function uD(t,o,a,$,g){return t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,DC[t&3](o|0,a|0,$|0,g|0)|0}function dD(t,o){t=t|0,o=o|0,ss[t&7](o|0)}function hD(t,o,a){t=t|0,o=o|0,a=a|0,_C[t&3](o|0,a|0)}function fD(t,o){return t=t|0,o=o|0,HQ[t&1](o|0)|0}function ID(t,o,a,$){t=t|0,o=o|0,a=a|0,$=$|0,YQ[t&1](o|0,a|0,$|0)}function mD(t,o,a,$,g,h,m,I,E){return t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0,E=E|0,VQ[t&3](o|0,a|0,$|0,g|0,h|0,m|0,I|0,E|0)|0}function pD(t,o,a){return t=t|0,o=o|0,a=a|0,mi[t&15](o|0,a|0)|0}function ED(t,o,a,$,g,h){return t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,xC[t&7](o|0,a|0,$|0,g|0,h|0)|0}function CD(t,o,a,$){return t=t|0,o=o|0,a=a|0,$=$|0,rn(0),0}function SC(t){t=t|0,rn(1)}function OQ(t,o){t=t|0,o=o|0,rn(2)}function BD(t){return t=t|0,rn(3),0}function QD(t,o,a){t=t|0,o=o|0,a=a|0,rn(4)}function qQ(t,o,a,$,g,h,m,I){return t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,h=h|0,m=m|0,I=I|0,rn(5),0}function ol(t,o){return t=t|0,o=o|0,rn(6),0}function bC(t,o,a,$,g){return t=t|0,o=o|0,a=a|0,$=$|0,g=g|0,rn(7),0}var DC=[CD,Ab,VS,JS],ss=[SC,ob,sb,mb,_b,xb,SC,SC],_C=[OQ,ib,Lb,OQ],HQ=[BD,pb],YQ=[QD,fb],VQ=[qQ,Tb,Pb,qQ],mi=[ol,rb,nb,ab,Ib,Eb,Mb,Rb,$b,Db,Jb,ol,ol,ol,ol,ol],xC=[bC,Fb,Nb,Gb,Ub,Ob,bC,bC];return{_memmove:oA,_strlen:nl,_strcat:GQ,_free:p2,_i64Add:rs,_encoder_clear:tD,_encoder_transfer_data:oD,_encoder_data_len:nD,_memset:u4,_malloc:R9,_memcpy:ge,_encoder_init:eD,_encoder_process:rD,_bitshift64Lshr:ns,_bitshift64Shl:UQ,_strcpy:kC,_encoder_analysis_buffer:iD,runPostSets:lD,stackAlloc:QS,stackSave:yS,stackRestore:wS,establishStackSpace:vS,setThrew:kS,setTempRet0:SS,getTempRet0:bS,dynCall_iiiii:uD,dynCall_vi:dD,dynCall_vii:hD,dynCall_ii:fD,dynCall_viii:ID,dynCall_iiiiiiiii:mD,dynCall_iii:pD,dynCall_iiiiii:ED}}(n.asmGlobalArg,n.asmLibraryArg,O7),m_=n.runPostSets=ee.runPostSets,nS=n._strlen=ee._strlen,oS=n._strcat=ee._strcat,hC=n._free=ee._free,p_=n._encoder_init=ee._encoder_init,sS=n._i64Add=ee._i64Add,aS=n._memmove=ee._memmove,E_=n._encoder_transfer_data=ee._encoder_transfer_data,C_=n._encoder_process=ee._encoder_process,B_=n._encoder_data_len=ee._encoder_data_len,AS=n._memset=ee._memset,Ru=n._malloc=ee._malloc,$S=n._memcpy=ee._memcpy,Q_=n._encoder_clear=ee._encoder_clear,lS=n._bitshift64Lshr=ee._bitshift64Lshr,y_=n._encoder_analysis_buffer=ee._encoder_analysis_buffer,cS=n._strcpy=ee._strcpy,gS=n._bitshift64Shl=ee._bitshift64Shl,w_=n.dynCall_iiiii=ee.dynCall_iiiii,v_=n.dynCall_vi=ee.dynCall_vi,k_=n.dynCall_vii=ee.dynCall_vii,S_=n.dynCall_ii=ee.dynCall_ii,b_=n.dynCall_viii=ee.dynCall_viii,D_=n.dynCall_iiiiiiiii=ee.dynCall_iiiiiiiii,__=n.dynCall_iii=ee.dynCall_iii,x_=n.dynCall_iiiiii=ee.dynCall_iiiiii;_.stackAlloc=ee.stackAlloc,_.stackSave=ee.stackSave,_.stackRestore=ee.stackRestore,_.establishStackSpace=ee.establishStackSpace,_.setTempRet0=ee.setTempRet0,_.getTempRet0=ee.getTempRet0;var L_=function(){var r={math:{}};r.math.Long=function(z,D0){this.low_=z|0,this.high_=D0|0},r.math.Long.IntCache_={},r.math.Long.fromInt=function(z){if(-128<=z&&z<128){var D0=r.math.Long.IntCache_[z];if(D0)return D0}var e1=new r.math.Long(z|0,z<0?-1:0);return-128<=z&&z<128&&(r.math.Long.IntCache_[z]=e1),e1},r.math.Long.fromNumber=function(z){return isNaN(z)||!isFinite(z)?r.math.Long.ZERO:z<=-r.math.Long.TWO_PWR_63_DBL_?r.math.Long.MIN_VALUE:z+1>=r.math.Long.TWO_PWR_63_DBL_?r.math.Long.MAX_VALUE:z<0?r.math.Long.fromNumber(-z).negate():new r.math.Long(z%r.math.Long.TWO_PWR_32_DBL_|0,z/r.math.Long.TWO_PWR_32_DBL_|0)},r.math.Long.fromBits=function(z,D0){return new r.math.Long(z,D0)},r.math.Long.fromString=function(z,D0){if(z.length==0)throw Error("number format error: empty string");var e1=D0||10;if(e1<2||36=0)throw Error('number format error: interior "-" character: '+z);for(var B2=r.math.Long.fromNumber(Math.pow(e1,8)),e3=r.math.Long.ZERO,O5=0;O5=0?this.low_:r.math.Long.TWO_PWR_32_DBL_+this.low_},r.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(r.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var z=this.high_!=0?this.high_:this.low_,D0=31;D0>0&&!(z&1<0},r.math.Long.prototype.greaterThanOrEqual=function(z){return this.compare(z)>=0},r.math.Long.prototype.compare=function(z){if(this.equals(z))return 0;var D0=this.isNegative(),e1=z.isNegative();return D0&&!e1?-1:!D0&&e1?1:this.subtract(z).isNegative()?-1:1},r.math.Long.prototype.negate=function(){return this.equals(r.math.Long.MIN_VALUE)?r.math.Long.MIN_VALUE:this.not().add(r.math.Long.ONE)},r.math.Long.prototype.add=function(z){var D0=this.high_>>>16,e1=this.high_&65535,B2=this.low_>>>16,e3=this.low_&65535,O5=z.high_>>>16,F3=z.high_&65535,r9=z.low_>>>16,q9=z.low_&65535,U9=0,r4=0,ai=0,nr=0;return nr+=e3+q9,ai+=nr>>>16,nr&=65535,ai+=B2+r9,r4+=ai>>>16,ai&=65535,r4+=e1+F3,U9+=r4>>>16,r4&=65535,U9+=D0+O5,U9&=65535,r.math.Long.fromBits(ai<<16|nr,U9<<16|r4)},r.math.Long.prototype.subtract=function(z){return this.add(z.negate())},r.math.Long.prototype.multiply=function(z){if(this.isZero())return r.math.Long.ZERO;if(z.isZero())return r.math.Long.ZERO;if(this.equals(r.math.Long.MIN_VALUE))return z.isOdd()?r.math.Long.MIN_VALUE:r.math.Long.ZERO;if(z.equals(r.math.Long.MIN_VALUE))return this.isOdd()?r.math.Long.MIN_VALUE:r.math.Long.ZERO;if(this.isNegative())return z.isNegative()?this.negate().multiply(z.negate()):this.negate().multiply(z).negate();if(z.isNegative())return this.multiply(z.negate()).negate();if(this.lessThan(r.math.Long.TWO_PWR_24_)&&z.lessThan(r.math.Long.TWO_PWR_24_))return r.math.Long.fromNumber(this.toNumber()*z.toNumber());var D0=this.high_>>>16,e1=this.high_&65535,B2=this.low_>>>16,e3=this.low_&65535,O5=z.high_>>>16,F3=z.high_&65535,r9=z.low_>>>16,q9=z.low_&65535,U9=0,r4=0,ai=0,nr=0;return nr+=e3*q9,ai+=nr>>>16,nr&=65535,ai+=B2*q9,r4+=ai>>>16,ai&=65535,ai+=e3*r9,r4+=ai>>>16,ai&=65535,r4+=e1*q9,U9+=r4>>>16,r4&=65535,r4+=B2*r9,U9+=r4>>>16,r4&=65535,r4+=e3*F3,U9+=r4>>>16,r4&=65535,U9+=D0*q9+e1*r9+B2*F3+e3*O5,U9&=65535,r.math.Long.fromBits(ai<<16|nr,U9<<16|r4)},r.math.Long.prototype.div=function(z){if(z.isZero())throw Error("division by zero");if(this.isZero())return r.math.Long.ZERO;if(this.equals(r.math.Long.MIN_VALUE)){if(z.equals(r.math.Long.ONE)||z.equals(r.math.Long.NEG_ONE))return r.math.Long.MIN_VALUE;if(z.equals(r.math.Long.MIN_VALUE))return r.math.Long.ONE;var D0=this.shiftRight(1),e1=D0.div(z).shiftLeft(1);if(e1.equals(r.math.Long.ZERO))return z.isNegative()?r.math.Long.ONE:r.math.Long.NEG_ONE;var O5=this.subtract(z.multiply(e1)),B2=e1.add(O5.div(z));return B2}else if(z.equals(r.math.Long.MIN_VALUE))return r.math.Long.ZERO;if(this.isNegative())return z.isNegative()?this.negate().div(z.negate()):this.negate().div(z).negate();if(z.isNegative())return this.div(z.negate()).negate();for(var e3=r.math.Long.ZERO,O5=this;O5.greaterThanOrEqual(z);){for(var e1=Math.max(1,Math.floor(O5.toNumber()/z.toNumber())),F3=Math.ceil(Math.log(e1)/Math.LN2),r9=F3<=48?1:Math.pow(2,F3-48),q9=r.math.Long.fromNumber(e1),U9=q9.multiply(z);U9.isNegative()||U9.greaterThan(O5);)e1-=r9,q9=r.math.Long.fromNumber(e1),U9=q9.multiply(z);q9.isZero()&&(q9=r.math.Long.ONE),e3=e3.add(q9),O5=O5.subtract(U9)}return e3},r.math.Long.prototype.modulo=function(z){return this.subtract(this.div(z).multiply(z))},r.math.Long.prototype.not=function(){return r.math.Long.fromBits(~this.low_,~this.high_)},r.math.Long.prototype.and=function(z){return r.math.Long.fromBits(this.low_&z.low_,this.high_&z.high_)},r.math.Long.prototype.or=function(z){return r.math.Long.fromBits(this.low_|z.low_,this.high_|z.high_)},r.math.Long.prototype.xor=function(z){return r.math.Long.fromBits(this.low_^z.low_,this.high_^z.high_)},r.math.Long.prototype.shiftLeft=function(z){if(z&=63,z==0)return this;var D0=this.low_;if(z<32){var e1=this.high_;return r.math.Long.fromBits(D0<>>32-z)}else return r.math.Long.fromBits(0,D0<>>z|D0<<32-z,D0>>z)}else return r.math.Long.fromBits(D0>>z-32,D0>=0?0:-1)},r.math.Long.prototype.shiftRightUnsigned=function(z){if(z&=63,z==0)return this;var D0=this.high_;if(z<32){var e1=this.low_;return r.math.Long.fromBits(e1>>>z|D0<<32-z,D0>>>z)}else return z==32?r.math.Long.fromBits(D0,0):r.math.Long.fromBits(D0>>>z-32,0)};var l={appName:"Modern Browser"},u,f=0xdeadbeefcafe,Y=(f&16777215)==15715070;function e(z,D0,e1){z!=null&&(typeof z=="number"?this.fromNumber(z,D0,e1):D0==null&&typeof z!="string"?this.fromString(z,256):this.fromString(z,D0))}function X0(){return new e(null)}function r1(z,D0,e1,B2,e3,O5){for(;--O5>=0;){var F3=D0*this[z++]+e1[B2]+e3;e3=Math.floor(F3/67108864),e1[B2++]=F3&67108863}return e3}function x2(z,D0,e1,B2,e3,O5){for(var F3=D0&32767,r9=D0>>15;--O5>=0;){var q9=this[z]&32767,U9=this[z++]>>15,r4=r9*q9+U9*F3;q9=F3*q9+((r4&32767)<<15)+e1[B2]+(e3&1073741823),e3=(q9>>>30)+(r4>>>15)+r9*U9+(e3>>>30),e1[B2++]=q9&1073741823}return e3}function s(z,D0,e1,B2,e3,O5){for(var F3=D0&16383,r9=D0>>14;--O5>=0;){var q9=this[z]&16383,U9=this[z++]>>14,r4=r9*q9+U9*F3;q9=F3*q9+((r4&16383)<<14)+e1[B2]+e3,e3=(q9>>28)+(r4>>14)+r9*U9,e1[B2++]=q9&268435455}return e3}Y&&l.appName=="Microsoft Internet Explorer"?(e.prototype.am=x2,u=30):Y&&l.appName!="Netscape"?(e.prototype.am=r1,u=26):(e.prototype.am=s,u=28),e.prototype.DB=u,e.prototype.DM=(1<=0;--D0)z[D0]=this[D0];z.t=this.t,z.s=this.s}function Dt(z){this.t=1,this.s=z<0?-1:0,z>0?this[0]=z:z<-1?this[0]=z+DV:this.t=0}function te(z){var D0=X0();return D0.fromInt(z),D0}function It(z,D0){var e1;if(D0==16)e1=4;else if(D0==8)e1=3;else if(D0==256)e1=8;else if(D0==2)e1=1;else if(D0==32)e1=5;else if(D0==4)e1=2;else{this.fromRadix(z,D0);return}this.t=0,this.s=0;for(var B2=z.length,e3=!1,O5=0;--B2>=0;){var F3=e1==8?z[B2]&255:K9(z,B2);if(F3<0){z.charAt(B2)=="-"&&(e3=!0);continue}e3=!1,O5==0?this[this.t++]=F3:O5+e1>this.DB?(this[this.t-1]|=(F3&(1<>this.DB-O5):this[this.t-1]|=F3<=this.DB&&(O5-=this.DB)}e1==8&&z[0]&128&&(this.s=-1,O5>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==z;)--this.t}function V7(z){if(this.s<0)return"-"+this.negate().toString(z);var D0;if(z==16)D0=4;else if(z==8)D0=3;else if(z==2)D0=1;else if(z==32)D0=5;else if(z==4)D0=2;else return this.toRadix(z);var e1=(1<0)for(r9>r9)>0&&(e3=!0,O5=G9(B2));F3>=0;)r9>(r9+=this.DB-D0)):(B2=this[F3]>>(r9-=D0)&e1,r9<=0&&(r9+=this.DB,--F3)),B2>0&&(e3=!0),e3&&(O5+=G9(B2));return e3?O5:"0"}function J7(){var z=X0();return e.ZERO.subTo(this,z),z}function Qr(){return this.s<0?this.negate():this}function tl(z){var D0=this.s-z.s;if(D0!=0)return D0;var e1=this.t;if(D0=e1-z.t,D0!=0)return this.s<0?-D0:D0;for(;--e1>=0;)if((D0=this[e1]-z[e1])!=0)return D0;return 0}function rE(z){var D0=1,e1;return(e1=z>>>16)!=0&&(z=e1,D0+=16),(e1=z>>8)!=0&&(z=e1,D0+=8),(e1=z>>4)!=0&&(z=e1,D0+=4),(e1=z>>2)!=0&&(z=e1,D0+=2),(e1=z>>1)!=0&&(z=e1,D0+=1),D0}function UB(){return this.t<=0?0:this.DB*(this.t-1)+rE(this[this.t-1]^this.s&this.DM)}function PB(z,D0){var e1;for(e1=this.t-1;e1>=0;--e1)D0[e1+z]=this[e1];for(e1=z-1;e1>=0;--e1)D0[e1]=0;D0.t=this.t+z,D0.s=this.s}function OB(z,D0){for(var e1=z;e1=0;--r9)D0[r9+O5+1]=this[r9]>>B2|F3,F3=(this[r9]&e3)<=0;--r9)D0[r9]=0;D0[O5]=F3,D0.t=this.t+O5+1,D0.s=this.s,D0.clamp()}function HB(z,D0){D0.s=this.s;var e1=Math.floor(z/this.DB);if(e1>=this.t){D0.t=0;return}var B2=z%this.DB,e3=this.DB-B2,O5=(1<>B2;for(var F3=e1+1;F3>B2;B2>0&&(D0[this.t-e1-1]|=(this.s&O5)<>=this.DB;if(z.t>=this.DB;B2+=this.s}else{for(B2+=this.s;e1>=this.DB;B2-=z.s}D0.s=B2<0?-1:0,B2<-1?D0[e1++]=this.DV+B2:B2>0&&(D0[e1++]=B2),D0.t=e1,D0.clamp()}function YB(z,D0){var e1=this.abs(),B2=z.abs(),e3=e1.t;for(D0.t=e3+B2.t;--e3>=0;)D0[e3]=0;for(e3=0;e3=0;)z[e1]=0;for(e1=0;e1=D0.DV&&(z[e1+D0.t]-=D0.DV,z[e1+D0.t+1]=1)}z.t>0&&(z[z.t-1]+=D0.am(e1,D0[e1],z,2*e1,0,1)),z.s=0,z.clamp()}function JB(z,D0,e1){var B2=z.abs();if(!(B2.t<=0)){var e3=this.abs();if(e3.t0?(B2.lShiftTo(q9,O5),e3.lShiftTo(q9,e1)):(B2.copyTo(O5),e3.copyTo(e1));var U9=O5.t,r4=O5[U9-1];if(r4!=0){var ai=r4*(1<1?O5[U9-2]>>this.F2:0),nr=this.FV/ai,oQ=(1<=0&&(e1[e1.t++]=1,e1.subTo(Pi,e1)),e.ONE.dlShiftTo(U9,Pi),Pi.subTo(O5,O5);O5.t=0;){var nE=e1[--nA]==r4?this.DM:Math.floor(e1[nA]*nr+(e1[nA-1]+sQ)*oQ);if((e1[nA]+=O5.am(0,nE,e1,Tu,0,U9))0&&e1.rShiftTo(q9,e1),F3<0&&e.ZERO.subTo(e1,e1)}}}function zB(z){var D0=X0();return this.abs().divRemTo(z,null,D0),this.s<0&&D0.compareTo(e.ZERO)>0&&z.subTo(D0,D0),D0}function tA(z){this.m=z}function KB(z){return z.s<0||z.compareTo(this.m)>=0?z.mod(this.m):z}function WB(z){return z}function ZB(z){z.divRemTo(this.m,null,z)}function jB(z,D0,e1){z.multiplyTo(D0,e1),this.reduce(e1)}function iA(z,D0){z.squareTo(D0),this.reduce(D0)}tA.prototype.convert=KB,tA.prototype.revert=WB,tA.prototype.reduce=ZB,tA.prototype.mulTo=jB,tA.prototype.sqrTo=iA;function rr(){if(this.t<1)return 0;var z=this[0];if(!(z&1))return 0;var D0=z&3;return D0=D0*(2-(z&15)*D0)&15,D0=D0*(2-(z&255)*D0)&255,D0=D0*(2-((z&65535)*D0&65535))&65535,D0=D0*(2-z*D0%this.DV)%this.DV,D0>0?this.DV-D0:-D0}function qn(z){this.m=z,this.mp=z.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(D0,D0),D0}function rA(z){var D0=X0();return z.copyTo(D0),this.reduce(D0),D0}function Hn(z){for(;z.t<=this.mt2;)z[z.t++]=0;for(var D0=0;D0>15)*this.mpl&this.um)<<15)&z.DM;for(e1=D0+this.m.t,z[e1]+=this.m.am(0,B2,z,D0,0,this.m.t);z[e1]>=z.DV;)z[e1]-=z.DV,z[++e1]++}z.clamp(),z.drShiftTo(this.m.t,z),z.compareTo(this.m)>=0&&z.subTo(this.m,z)}function XB(z,D0){z.squareTo(D0),this.reduce(D0)}function eQ(z,D0,e1){z.multiplyTo(D0,e1),this.reduce(e1)}qn.prototype.convert=Fu,qn.prototype.revert=rA,qn.prototype.reduce=Hn,qn.prototype.mulTo=eQ,qn.prototype.sqrTo=XB;function tQ(){return(this.t>0?this[0]&1:this.s)==0}function ts(z,D0){if(z>4294967295||z<1)return e.ONE;var e1=X0(),B2=X0(),e3=D0.convert(this),O5=rE(z)-1;for(e3.copyTo(e1);--O5>=0;)if(D0.sqrTo(e1,B2),(z&1<0)D0.mulTo(B2,e3,e1);else{var F3=e1;e1=B2,B2=F3}return D0.revert(e1)}function iQ(z,D0){var e1;return z<256||D0.isEven()?e1=new tA(D0):e1=new qn(D0),this.exp(z,e1)}e.prototype.copyTo=ye,e.prototype.fromInt=Dt,e.prototype.fromString=It,e.prototype.clamp=i4,e.prototype.dlShiftTo=PB,e.prototype.drShiftTo=OB,e.prototype.lShiftTo=qB,e.prototype.rShiftTo=HB,e.prototype.subTo=j6,e.prototype.multiplyTo=YB,e.prototype.squareTo=VB,e.prototype.divRemTo=JB,e.prototype.invDigit=rr,e.prototype.isEven=tQ,e.prototype.exp=ts,e.prototype.toString=V7,e.prototype.negate=J7,e.prototype.abs=Qr,e.prototype.compareTo=tl,e.prototype.bitLength=UB,e.prototype.mod=zB,e.prototype.modPowInt=iQ,e.ZERO=te(0),e.ONE=te(1);function Yn(z,D0){this.fromInt(0),D0==null&&(D0=10);for(var e1=this.chunkSize(D0),B2=Math.pow(D0,e1),e3=!1,O5=0,F3=0,r9=0;r9=e1&&(this.dMultiply(B2),this.dAddOffset(F3,0),O5=0,F3=0)}O5>0&&(this.dMultiply(Math.pow(D0,O5)),this.dAddOffset(F3,0)),e3&&e.ZERO.subTo(this,this)}function tn(z){return Math.floor(Math.LN2*this.DB/Math.log(z))}function IC(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function o5(z){this[this.t]=this.am(0,z-1,this,0,0,this.t),++this.t,this.clamp()}function rQ(z,D0){if(z!=0){for(;this.t<=D0;)this[this.t++]=0;for(this[D0]+=z;this[D0]>=this.DV;)this[D0]-=this.DV,++D0>=this.t&&(this[this.t++]=0),++this[D0]}}function is(z){if(z==null&&(z=10),this.signum()==0||z<2||z>36)return"0";var D0=this.chunkSize(z),e1=Math.pow(z,D0),B2=te(e1),e3=X0(),O5=X0(),F3="";for(this.divRemTo(B2,e3,O5);e3.signum()>0;)F3=(e1+O5.intValue()).toString(z).substr(1)+F3,e3.divRemTo(B2,e3,O5);return O5.intValue().toString(z)+F3}function rn(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<>=this.DB;if(z.t>=this.DB;B2+=this.s}else{for(B2+=this.s;e1>=this.DB;B2+=z.s}D0.s=B2<0?-1:0,B2>0?D0[e1++]=B2:B2<-1&&(D0[e1++]=this.DV+B2),D0.t=e1,D0.clamp()}e.prototype.fromRadix=Yn,e.prototype.chunkSize=tn,e.prototype.signum=IC,e.prototype.dMultiply=o5,e.prototype.dAddOffset=rQ,e.prototype.toRadix=is,e.prototype.intValue=rn,e.prototype.addTo=nQ;var l7={abs:function(z,D0){var e1=new r.math.Long(z,D0),B2;e1.isNegative()?B2=e1.negate():B2=e1,N9[bt>>2]=B2.low_,N9[bt+4>>2]=B2.high_},ensureTemps:function(){l7.ensuredTemps||(l7.ensuredTemps=!0,l7.two32=new e,l7.two32.fromString("4294967296",10),l7.two64=new e,l7.two64.fromString("18446744073709551616",10),l7.temp1=new e,l7.temp2=new e)},lh2bignum:function(z,D0){var e1=new e;e1.fromString(D0.toString(),10);var B2=new e;e1.multiplyTo(l7.two32,B2);var e3=new e;e3.fromString(z.toString(),10);var O5=new e;return e3.addTo(B2,O5),O5},stringify:function(z,D0,e1){var B2=new r.math.Long(z,D0).toString();if(e1&&B2[0]=="-"){l7.ensureTemps();var e3=new e;e3.fromString(B2,10),B2=new e,l7.two64.addTo(e3,B2),B2=B2.toString(10)}return B2},fromString:function(z,D0,e1,B2,e3){l7.ensureTemps();var O5=new e;O5.fromString(z,D0);var F3=new e;F3.fromString(e1,10);var r9=new e;if(r9.fromString(B2,10),e3&&O5.compareTo(e.ZERO)<0){var q9=new e;O5.addTo(l7.two64,q9),O5=q9}var U9=!1;O5.compareTo(F3)<0?(O5=F3,U9=!0):O5.compareTo(r9)>0&&(O5=r9,U9=!0);var r4=r.math.Long.fromString(O5.toString());if(N9[bt>>2]=r4.low_,N9[bt+4>>2]=r4.high_,U9)throw"range error"}};return l7}();function eA(r){this.name="ExitStatus",this.message="Program terminated with exit("+r+")",this.status=r}eA.prototype=new Error,eA.prototype.constructor=eA;var FB,iE=null,uS=!1;H7=function r(){n.calledRun||fC(),n.calledRun||(H7=r)},n.callMain=n.callMain=function(l){t4(k8==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),t4(Wp.length==0,"cannot call main when preRun functions remain to be called"),l=l||[],Wo();var u=l.length+1;function f(){for(var r1=0;r1<3;r1++)Y.push(0)}var Y=[C3(en(n.thisProgram),"i8",Za)];f();for(var e=0;e0||(Lu(),k8>0)||n.calledRun)return;function l(){n.calledRun||(n.calledRun=!0,!i0&&(Wo(),kB(),c&&iE!==null&&n.printErr("pre-main prep time: "+(Date.now()-iE)+" ms"),n.onRuntimeInitialized&&n.onRuntimeInitialized(),n._main&&GB&&n.callMain(r),z$()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),l()},1)):l()}n.run=n.run=fC;function TB(r,l){if(!(l&&n.noExitRuntime))throw n.noExitRuntime||(i0=!0,a1=r,v7=FB,Zp(),n.onExit&&n.onExit(r)),d?(process.stdout.once("drain",function(){process.exit(r)}),console.log(" "),setTimeout(function(){process.exit(r)},500)):O&&typeof quit=="function"&&quit(r),new eA(r)}n.exit=n.exit=TB;var NB=[];function es(r){r!==void 0?(n.print(r),n.printErr(r),r=JSON.stringify(r)):r="",i0=!0,a1=1;var l=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,u="abort("+r+") at "+Jp()+l;throw NB&&NB.forEach(function(f){u=f(u,r)}),u}if(n.abort=n.abort=es,n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();var GB=!0;n.noInitialRun&&(GB=!1),fC();var dS=n._encoder_init,hS=n._encoder_clear,fS=n._encoder_analysis_buffer,IS=n._encoder_process,mS=n._encoder_data_len,pS=n._encoder_transfer_data,k7=n.HEAPU8,j$=n.HEAPU32,X$=n.HEAPF32,el=function(r,l,u){this.numChannels=l,this.oggBuffers=[],this.encoder=dS(this.numChannels,r,u)};el.prototype.encode=function(r){for(var l=r[0].length,u=fS(this.encoder,l)>>2,f=0;f>2);this.process(l)},el.prototype.finish=function(){this.process(0);let r=this.oggBuffers.slice();return this.cleanup(),r},el.prototype.cancel=el.prototype.cleanup=function(){hS(this.encoder),delete this.encoder,delete this.oggBuffers},el.prototype.process=function(r){IS(this.encoder,r);var l=mS(this.encoder);if(l>0){var u=pS(this.encoder);this.oggBuffers.push(new Uint8Array(k7.subarray(u,u+l)))}},nC.OggVorbisEncoder=el}};typeof window<"u"&&window===self&&nC.init();function Bk(n,i,A,c){let d=new nC.OggVorbisEncoder(A,i,c);d.encode(n);let p=d.finish(),O=p.reduce((U,W0)=>U+W0.length,0),H=new Uint8Array(O),P=0;for(let U of p)H.set(U,P),P+=U.length;return H}var oC=class{constructor(i,A){let c=document.getElementsByClassName("drop_prompt")[0];document.body.addEventListener("dragover",d=>{d.preventDefault(),c.classList.remove("hidden")}),document.body.addEventListener("dragleave",()=>{c.classList.add("hidden")}),document.body.addEventListener("drop",async d=>{d.preventDefault(),c.classList.add("hidden");let p=d.dataTransfer.files[0];if(!p)return;let O=p.name,H=await p.arrayBuffer(),P=H.slice(0,4),U=new TextDecoder;if(U.decode(P)==="RIFF"){let W0=H.slice(8,12);if(U.decode(W0)==="RMID"){i({buf:H,name:O});return}A(H);return}i({buf:H,name:O})})}};async function Qk(){let n="locale.exportAudio.formats.formats.dls.warning.";qe(this.localeManager.getLocaleString(n+"title"),[{type:"text",textContent:this.localeManager.getLocaleString(n+"message"),attributes:{style:"color: red"}},{type:"toggle",translatePathTitle:"locale.exportAudio.formats.formats.soundfont.options.trim",attributes:{"trim-toggle":"1"}},{type:"button",textContent:this.localeManager.getLocaleString(n+"details"),onClick:()=>{window.open("https://github.com/spessasus/SpessaSynth/wiki/DLS-Conversion-Problem")}},{type:"button",textContent:this.localeManager.getLocaleString(n+"confirm"),onClick:async i=>{let A=i.div.querySelector("input[trim-toggle='1']").checked;le(i.id),M7("%cExporting DLS...",C1.info);let c=await this.seq.getMIDI(),d=Ja(c.embeddedSoundFont||this.soundFont);Ua(c,await this.synth.getSynthesizerSnapshot()),A&&Cu(d,c);let p=d.writeDLS(),O=new Blob([p.buffer],{type:"audio/dls"});this.saveBlob(O,`${d.soundFontInfo.INAM||"unnamed"}.dls`),g9()}}],99999999,!0,this.localeManager)}document.body.classList.add("load");var o_=!1,Kr=class{channelColors=["rgba(255, 99, 71, 1)","rgba(255, 165, 0, 1)","rgba(255, 215, 0, 1)","rgba(50, 205, 50, 1)","rgba(60, 179, 113, 1)","rgba(0, 128, 0, 1)","rgba(0, 191, 255, 1)","rgba(65, 105, 225, 1)","rgba(138, 43, 226, 1)","rgba(50, 120, 125, 1)","rgba(255, 0, 255, 1)","rgba(255, 20, 147, 1)","rgba(218, 112, 214, 1)","rgba(240, 128, 128, 1)","rgba(255, 192, 203, 1)","rgba(255, 255, 0, 1)"];sfError;constructor(i,A,c,d=o_){this.localeManager=c,this.context=i,this.enableDebug=d,this.isExporting=!1,this.compressionFunc=Bk;let p;this.ready=new Promise(O=>p=O),this.initializeContext(i,A).then(()=>{p()})}saveBlob(i,A){let c=URL.createObjectURL(i),d=document.createElement("a");d.href=c,d.download=A,d.click(),_5(d)}async initializeContext(i,A){if(!i.audioWorklet)throw alert("Audio worklet is not supported on your browser. Sorry!"),new Error("Audio worklet is not supported");for(let e0 of document.querySelectorAll("*[translate-path]"))this.localeManager.bindObjectProperty(e0,"innerText",e0.getAttribute("translate-path"));for(let e0 of document.querySelectorAll("*[translate-path-title]"))this.localeManager.bindObjectProperty(e0,"innerText",e0.getAttribute("translate-path-title")+".title"),this.localeManager.bindObjectProperty(e0,"title",e0.getAttribute("translate-path-title")+".description");this.soundFont=A;let d=this.enableDebug?"synthetizer/worklet_system/worklet_processor.js":Ck;this.enableDebug&&console.warn("DEBUG ENABLED! DEBUGGING ENABLED!!");let p=window.isLocalEdition?"../../../spessasynth_lib/":"../../spessasynth_lib/";this.workletPath=p+d,i.audioWorklet&&await i.audioWorklet.addModule(new URL(this.workletPath,import.meta.url));let O=new URL(p+"synthetizer/audio_effects/impulse_response_2.flac",import.meta.url),P=await(await fetch(O)).arrayBuffer();this.impulseResponse=await i.decodeAudioData(P),this.audioDelay=new DelayNode(i,{delayTime:0}),this.audioDelay.connect(i.destination),this.synth=new fu(this.audioDelay,this.soundFont,void 0,void 0,{chorusEnabled:!0,chorusConfig:void 0,reverbImpulseResponse:this.impulseResponse,reverbEnabled:!0}),this.synth.eventHandler.addEvent("soundfonterror","manager-sf-error",e0=>{this.sfError&&this.sfError(e0.message)}),await this.synth.isReady,this.midHandler=new qE,this.wml=new HE(this.synth),this.keyboard=new Dp(this.channelColors,this.synth);let U=document.getElementById("note_canvas");U.width=window.innerWidth*window.devicePixelRatio,U.height=window.innerHeight*window.devicePixelRatio,this.renderer=new T7(this.channelColors,this.synth,U,this.audioDelay,window.SPESSASYNTH_VERSION),this.renderer.render(!0);let W0=!1,_=()=>{if(U.width=window.innerWidth*window.devicePixelRatio,U.height=window.innerHeight*window.devicePixelRatio,this.renderer.computeColors(),F7){if(window.innerWidth/window.innerHeight>1){if(!W0){let e0=document.getElementById("title_wrapper"),i0=document.getElementById("settings_div");W0=!0,e0.parentElement.insertBefore(i0,e0)}}else if(W0){let e0=document.getElementById("title_wrapper"),i0=document.getElementById("settings_div");W0=!1,e0.parentElement.insertBefore(e0,i0)}}this.renderer.render(!1,!0)};_(),window.addEventListener("resize",_.bind(this)),window.addEventListener("orientationchange",_.bind(this)),F7&&(this.renderer.keyRange={min:48,max:72},this.keyboard.setKeyRange({min:48,max:72},!1)),this.synthUI=new Jr(this.channelColors,document.getElementById("synthetizer_controls"),this.localeManager),this.synthUI.connectSynth(this.synth),this.synthUI.connectKeyboard(this.keyboard),this.playerUI=new KE(document.getElementById("player_info"),this.localeManager),this.seqUI=new Po(document.getElementById("sequencer_controls"),this.localeManager,this.playerUI),this.settingsUI=new w7(document.getElementById("settings_div"),this.synthUI,this.seqUI,this.renderer,this.keyboard,this.midHandler,this.playerUI,this.localeManager),this.dropFileHandler=new oC(e0=>{this.play([{binary:e0.buf,altName:e0.name}]),e0.name.length>20&&(e0.name=e0.name.substring(0,21)+"..."),document.getElementById("file_upload").textContent=e0.name},e0=>{this.reloadSf(e0)}),document.addEventListener("keydown",e0=>{switch(e0.key.toLowerCase()){case oi.cinematicMode:this.seq&&this.seq.pause();let i0=window.prompt(`Cinematic mode activated! + Paste the link to the image for canvas (leave blank to disable)`,"");if(this.seq&&this.seq.play(),i0===null)return;U.style.background=`linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), center center / cover url("${i0}")`,document.getElementsByClassName("top_part")[0].style.display="none",document.getElementsByClassName("bottom_part")[0].style.display="none",document.body.requestFullscreen().then();break;case oi.videoMode:this.seq&&this.seq.pause();let a1=window.prompt(`Video mode! Paste the link to the video source (leave blank to disable) -Note: the video will be available in console as 'video'`,"");if(a1===null)return;let _1=document.createElement("video");_1.src=a1,_1.classList.add("secret_video"),P.parentElement.appendChild(_1),_1.play(),window.video=_1,this.seq&&(_1.currentTime=parseFloat(window.prompt("Video offset to sync to midi, in seconds.","0")),_1.play(),this.seq.currentTime=0),document.addEventListener("keydown",f1=>{f1.key===" "&&(_1.paused?_1.play():_1.pause())});break}}),this.renderer.render(!1,!0)}doDLSCheck(){if(window.isLocalEdition!==!0){let i=this.soundFont.slice(8,12);y4(new j5(i),4).toLowerCase()==="dls "&&qe(this.localeManager.getLocaleString("locale.convertDls.title"),[{type:"text",textContent:this.localeManager.getLocaleString("locale.convertDls.message")},{type:"button",textContent:this.localeManager.getLocaleString("locale.yes"),onClick:c=>{le(c.id),this.downloadDesfont()}},{type:"button",textContent:this.localeManager.getLocaleString("locale.no"),onClick:c=>{le(c.id)}}],99999999)}}async reloadSf(i){await this.synth.soundfontManager.reloadManager(i),this.soundFont=i,setTimeout(()=>{this.doDLSCheck()},3e3)}play(i){if(this.synth){if(this.seq){this.seq.loadNewSongList(i),this.seq.play(!0);return}this.seq=new GE(i,this.synth),this.seq.onError=A=>{document.getElementById("title").textContent=A},this.seqUI.connectSequencer(this.seq),this.playerUI.connectSequencer(this.seq),this.renderer.connectSequencer(this.seq),this.settingsUI.addSequencer(this.seq)}}downloadDesfont(){let i=Ja(this.soundFont),A=i.write(),c=new Blob([A.buffer],{type:"audio/soundfont"});this.saveBlob(c,`${i.soundFontInfo.INAM}.sf2`)}};Kr.prototype.exportSong=pk;Kr.prototype._exportAudioData=Dv;Kr.prototype._doExportAudioData=bv;Kr.prototype.exportMidi=_v;Kr.prototype._exportSoundfont=mk;Kr.prototype._exportDLS=Qk;Kr.prototype._exportRMIDI=Ek;var s_=44100,a_="GeneralUserGS.sf3",sC=document.getElementById("title"),za=document.getElementById("midi_file_input"),A_=document.getElementById("sf_file_input"),yk=document.getElementById("demo_song"),uB=document.getElementById("export_button"),L$=document.getElementsByClassName("loading")[0],U7=document.getElementById("loading_message"),$_=await(await fetch("package.json")).json();window.SPESSASYNTH_VERSION=$_.version;var l_="spessasynth-db",R$="soundFontStore";function fB(n){let i=indexedDB.open(l_,1);i.onsuccess=()=>{let A=i.result;n(A)},i.onupgradeneeded=A=>{A.target.result.createObjectStore(R$,{keyPath:"id"})}}async function c_(){return await new Promise(n=>{fB(i=>{let d=i.transaction([R$],"readonly").objectStore(R$).get("buffer");d.onerror=p=>{console.error("Database error"),console.error(p),n(void 0)},d.onsuccess=async()=>{let p=d.result;if(!p){n(void 0);return}n(p.data)}})})}function M$(n,i=!0){let A=L$.getElementsByClassName("loading_icon")[0];A.innerHTML=n,A.style.animation=i?"none":""}async function wk(n){fB(i=>{let c=i.transaction([R$],"readwrite").objectStore(R$);try{let d=c.put({id:"buffer",data:n});d.onsuccess=()=>{_5("SoundFont stored successfully")},d.onerror=p=>{console.error("Error saving soundfont",p)}}catch(d){I9("Failed saving soundfont:",d)}})}async function g_(n){let i=new WE(n);try{let d=window.AudioContext||window.webkitAudioContext;window.audioContextMain=new d({sampleRate:s_})}catch(d){throw M$(Fp(256)),U7.textContent=i.getLocaleString("locale.synthInit.noWebAudio"),d}U7.textContent=i.getLocaleString("locale.synthInit.loadingSoundfont");let A=await c_(),c=!0;if(A===void 0){I9("Failed to load from db, fetching online instead"),c=!1;let d=document.getElementById("progress_bar"),p=i.getLocaleString("locale.synthInit.loadingBundledSoundfont");U7.textContent=p,A=await u_(`soundfonts/${a_}`,U=>{U7.textContent=`${p} ${U}%`}),d.style.width="0"}else _5("Loaded the soundfont from the database succesfully");window.soundFontParser=A,c||(U7.textContent=i.getLocaleString("locale.synthInit.savingSoundfont"),await wk(A)),window.audioContextMain.state!=="running"&&document.addEventListener("mousedown",()=>{window.audioContextMain.state!=="running"&&window.audioContextMain.resume().then()}),U7.textContent=i.getLocaleString("locale.synthInit.startingSynthesizer"),window.manager=new Kr(audioContextMain,soundFontParser,i),window.manager.sfError=d=>{M$(Fp(256)),c?(I9("Invalid soundfont in the database. Resetting."),fB(p=>{let O=p.transaction([R$],"readwrite").objectStore(R$).delete("buffer");O.onsuccess=()=>{location.reload()}})):sC.innerHTML=`Error parsing soundfont:
${d}
`,U7.innerHTML=`Error parsing soundfont:
${d}
`},await manager.ready,za.files[0]?await dB(za.files):(za.onclick=void 0,za.onchange=()=>{za.files[0]&&dB(za.files).then()}),M$(XC(256)),U7.textContent=i.getLocaleString("locale.synthInit.done")}async function u_(n,i){let A=await fetch(n);if(!A.ok)throw sC.innerText="Error downloading soundfont!",A;let c=A.headers.get("content-length"),d=await(await A.body).getReader(),p=!1,U=new Uint8Array(parseInt(c)),H=0;do{let O=await d.read();O.value&&(U.set(O.value,H),H+=O.value.length),p=O.done;let P=Math.round(H/c*100);i(P)}while(!p);return U.buffer}async function dB(n){yk.style.display="none";let i;n[0].name.length>20?i=n[0].name.substring(0,21)+"...":i=n[0].name,n.length>1&&(i+=` and ${n.length-1} others`),document.getElementById("file_upload").innerText=i,document.getElementById("file_upload").title=n[0].name;let A=[];for(let c of n)A.push({binary:await c.arrayBuffer(),altName:c.name});manager.synth.setLogLevel(!1,!1,!1,!1),manager.seq?manager.seq.loadNewSongList(A):manager.play(A),uB.style.display="flex",uB.onclick=window.manager.exportSong.bind(window.manager)}function d_(n){localStorage.setItem("spessasynth-settings",JSON.stringify(n)),_5("saved as",n)}window.saveSettings=d_;var Pp=JSON.parse(localStorage.getItem("spessasynth-settings"));Pp!==null&&(window.savedSettings=new Promise(n=>{n(Pp)}));var hB;Pp&&Pp.interface&&Pp.interface.language?hB=(await savedSettings).interface.language||navigator.language.split("-")[0].toLowerCase():hB=navigator.language.split("-")[0].toLowerCase();za.value="";za.focus();uB.style.display="none";document.getElementById("sf_upload").style.display="none";document.getElementById("file_upload").style.display="none";async function h_(n){sC.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.genericLoading");let i=await fetch("https://spessasus.github.io/spessasynth-demo-songs/demo_songs/"+n);i.name=n,await dB([i])}g_(hB).then(()=>{document.getElementById("sf_upload").style.display="flex",document.getElementById("file_upload").style.display="flex",L$.classList.add("done"),document.documentElement.classList.add("no_scroll"),document.body.classList.add("no_scroll"),setTimeout(()=>{L$.style.display="none",document.body.classList.remove("no_scroll"),document.documentElement.classList.remove("no_scroll"),F7&&window.chrome&&qe(window.manager.localeManager.getLocaleString("locale.warnings.warning"),[{type:"text",textContent:window.manager.localeManager.getLocaleString("locale.warnings.chromeMobile")}],7)},1e3),A_.onchange=n=>{if(!n.target.files[0])return;let i=n.target.files[0];window.manager.seq&&window.manager.seq.pause(),document.getElementById("sf_upload").firstElementChild.innerText=i.name,L$.style.display="",setTimeout(async()=>{L$.classList.remove("done"),M$(Yy(256),!1),U7.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.loadingSoundfont");let A=performance.now()/1e3,c;try{c=await i.arrayBuffer(),window.soundFontParser=c}catch(p){throw U7.textContent=window.manager.localeManager.getLocaleString("locale.warnings.outOfMemory"),M$(Fp(256)),qe(manager.localeManager.getLocaleString("locale.warnings.warning"),[{type:"text",textContent:window.manager.localeManager.getLocaleString("locale.warnings.outOfMemory")}]),p}window.manager.sfError=p=>{U7.innerHTML=`Error parsing soundfont:
${p}
`,M$(Fp(256)),console.error(p)},U7.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.startingSynthesizer"),await window.manager.reloadSf(c),window.manager.seq&&(window.manager.seq.currentTime-=.1),U7.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.savingSoundfont"),await wk(c);let d=performance.now()/1e3-A;await new Promise(p=>setTimeout(p,1e3-d)),M$(XC(256)),U7.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.done"),L$.classList.add("done"),document.documentElement.classList.add("no_scroll"),document.body.classList.add("no_scroll"),setTimeout(()=>{L$.style.display="none",document.body.classList.remove("no_scroll"),document.documentElement.classList.remove("no_scroll")},1e3)},75)},yk.onclick=async()=>{let n=[{type:"button",textContent:"Bundled SoundFont Credits",onClick:()=>{window.open("https://schristiancollins.com/generaluser.php")}}];sC.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.genericLoading");let i=await(await fetch("https://spessasus.github.io/spessasynth-demo-songs/demo_song_list.json")).text(),A=JSON.parse(i);for(let c of A)n.push({type:"button",textContent:c.name,onClick:d=>{le(d.id),qe(window.manager.localeManager.getLocaleString("locale.credits"),[{type:"text",textContent:c.credits.replace(` +Note: the video will be available in console as 'video'`,"");if(a1===null)return;let _1=document.createElement("video");_1.src=a1,_1.classList.add("secret_video"),U.parentElement.appendChild(_1),_1.play(),window.video=_1,this.seq&&(_1.currentTime=parseFloat(window.prompt("Video offset to sync to midi, in seconds.","0")),_1.play(),this.seq.currentTime=0),document.addEventListener("keydown",f1=>{f1.key===" "&&(_1.paused?_1.play():_1.pause())});break}}),this.renderer.render(!1,!0)}doDLSCheck(){if(window.isLocalEdition!==!0){let i=this.soundFont.slice(8,12);y4(new j5(i),4).toLowerCase()==="dls "&&qe(this.localeManager.getLocaleString("locale.convertDls.title"),[{type:"text",textContent:this.localeManager.getLocaleString("locale.convertDls.message")},{type:"button",textContent:this.localeManager.getLocaleString("locale.yes"),onClick:c=>{le(c.id),this.downloadDesfont()}},{type:"button",textContent:this.localeManager.getLocaleString("locale.no"),onClick:c=>{le(c.id)}}],99999999)}}async reloadSf(i){await this.synth.soundfontManager.reloadManager(i),this.soundFont=i,setTimeout(()=>{this.doDLSCheck()},3e3)}play(i){if(this.synth){if(this.seq){this.seq.loadNewSongList(i),this.seq.play(!0);return}this.seq=new GE(i,this.synth),this.seq.onError=A=>{document.getElementById("title").textContent=A},this.seqUI.connectSequencer(this.seq),this.playerUI.connectSequencer(this.seq),this.renderer.connectSequencer(this.seq),this.settingsUI.addSequencer(this.seq)}}downloadDesfont(){let i=Ja(this.soundFont),A=i.write(),c=new Blob([A.buffer],{type:"audio/soundfont"});this.saveBlob(c,`${i.soundFontInfo.INAM}.sf2`)}};Kr.prototype.exportSong=pk;Kr.prototype._exportAudioData=Dv;Kr.prototype._doExportAudioData=bv;Kr.prototype.exportMidi=_v;Kr.prototype._exportSoundfont=mk;Kr.prototype._exportDLS=Qk;Kr.prototype._exportRMIDI=Ek;var s_=44100,a_="GeneralUserGS.sf3",sC=document.getElementById("title"),za=document.getElementById("midi_file_input"),A_=document.getElementById("sf_file_input"),yk=document.getElementById("demo_song"),uB=document.getElementById("export_button"),L$=document.getElementsByClassName("loading")[0],U7=document.getElementById("loading_message"),$_=await(await fetch("package.json")).json();window.SPESSASYNTH_VERSION=$_.version;var l_="spessasynth-db",R$="soundFontStore";function fB(n){let i=indexedDB.open(l_,1);i.onsuccess=()=>{let A=i.result;n(A)},i.onupgradeneeded=A=>{A.target.result.createObjectStore(R$,{keyPath:"id"})}}async function c_(){return await new Promise(n=>{fB(i=>{let d=i.transaction([R$],"readonly").objectStore(R$).get("buffer");d.onerror=p=>{console.error("Database error"),console.error(p),n(void 0)},d.onsuccess=async()=>{let p=d.result;if(!p){n(void 0);return}n(p.data)}})})}function M$(n,i=!0){let A=L$.getElementsByClassName("loading_icon")[0];A.innerHTML=n,A.style.animation=i?"none":""}async function wk(n){fB(i=>{let c=i.transaction([R$],"readwrite").objectStore(R$);try{let d=c.put({id:"buffer",data:n});d.onsuccess=()=>{_5("SoundFont stored successfully")},d.onerror=p=>{console.error("Error saving soundfont",p)}}catch(d){I9("Failed saving soundfont:",d)}})}async function g_(n){let i=new WE(n);try{let d=window.AudioContext||window.webkitAudioContext;window.audioContextMain=new d({sampleRate:s_})}catch(d){throw M$(Fp(256)),U7.textContent=i.getLocaleString("locale.synthInit.noWebAudio"),d}U7.textContent=i.getLocaleString("locale.synthInit.loadingSoundfont");let A=await c_(),c=!0;if(A===void 0){I9("Failed to load from db, fetching online instead"),c=!1;let d=document.getElementById("progress_bar"),p=i.getLocaleString("locale.synthInit.loadingBundledSoundfont");U7.textContent=p,A=await u_(`soundfonts/${a_}`,O=>{U7.textContent=`${p} ${O}%`}),d.style.width="0"}else _5("Loaded the soundfont from the database succesfully");window.soundFontParser=A,c||(U7.textContent=i.getLocaleString("locale.synthInit.savingSoundfont"),await wk(A)),window.audioContextMain.state!=="running"&&document.addEventListener("mousedown",()=>{window.audioContextMain.state!=="running"&&window.audioContextMain.resume().then()}),U7.textContent=i.getLocaleString("locale.synthInit.startingSynthesizer"),window.manager=new Kr(audioContextMain,soundFontParser,i),window.manager.sfError=d=>{M$(Fp(256)),c?(I9("Invalid soundfont in the database. Resetting."),fB(p=>{let P=p.transaction([R$],"readwrite").objectStore(R$).delete("buffer");P.onsuccess=()=>{location.reload()}})):sC.innerHTML=`Error parsing soundfont:
${d}
`,U7.innerHTML=`Error parsing soundfont:
${d}
`},await manager.ready,za.files[0]?await dB(za.files):(za.onclick=void 0,za.onchange=()=>{za.files[0]&&dB(za.files).then()}),M$(XC(256)),U7.textContent=i.getLocaleString("locale.synthInit.done")}async function u_(n,i){let A=await fetch(n);if(!A.ok)throw sC.innerText="Error downloading soundfont!",A;let c=A.headers.get("content-length"),d=await(await A.body).getReader(),p=!1,O=new Uint8Array(parseInt(c)),H=0;do{let P=await d.read();P.value&&(O.set(P.value,H),H+=P.value.length),p=P.done;let U=Math.round(H/c*100);i(U)}while(!p);return O.buffer}async function dB(n){yk.style.display="none";let i;n[0].name.length>20?i=n[0].name.substring(0,21)+"...":i=n[0].name,n.length>1&&(i+=` and ${n.length-1} others`),document.getElementById("file_upload").innerText=i,document.getElementById("file_upload").title=n[0].name;let A=[];for(let c of n)A.push({binary:await c.arrayBuffer(),altName:c.name});manager.synth.setLogLevel(!1,!1,!1,!1),manager.seq?manager.seq.loadNewSongList(A):manager.play(A),uB.style.display="flex",uB.onclick=window.manager.exportSong.bind(window.manager)}function d_(n){localStorage.setItem("spessasynth-settings",JSON.stringify(n)),_5("saved as",n)}window.saveSettings=d_;var Pp=JSON.parse(localStorage.getItem("spessasynth-settings"));Pp!==null&&(window.savedSettings=new Promise(n=>{n(Pp)}));var hB;Pp&&Pp.interface&&Pp.interface.language?hB=(await savedSettings).interface.language||navigator.language.split("-")[0].toLowerCase():hB=navigator.language.split("-")[0].toLowerCase();za.value="";za.focus();uB.style.display="none";document.getElementById("sf_upload").style.display="none";document.getElementById("file_upload").style.display="none";async function h_(n){sC.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.genericLoading");let i=await fetch("https://spessasus.github.io/spessasynth-demo-songs/demo_songs/"+n);i.name=n,await dB([i])}g_(hB).then(()=>{document.getElementById("sf_upload").style.display="flex",document.getElementById("file_upload").style.display="flex",L$.classList.add("done"),document.documentElement.classList.add("no_scroll"),document.body.classList.add("no_scroll"),setTimeout(()=>{L$.style.display="none",document.body.classList.remove("no_scroll"),document.documentElement.classList.remove("no_scroll"),F7&&window.chrome&&qe(window.manager.localeManager.getLocaleString("locale.warnings.warning"),[{type:"text",textContent:window.manager.localeManager.getLocaleString("locale.warnings.chromeMobile")}],7)},1e3),A_.onchange=n=>{if(!n.target.files[0])return;let i=n.target.files[0];window.manager.seq&&window.manager.seq.pause(),document.getElementById("sf_upload").firstElementChild.innerText=i.name,L$.style.display="",setTimeout(async()=>{L$.classList.remove("done"),M$(Yy(256),!1),U7.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.loadingSoundfont");let A=performance.now()/1e3,c;try{c=await i.arrayBuffer(),window.soundFontParser=c}catch(p){throw U7.textContent=window.manager.localeManager.getLocaleString("locale.warnings.outOfMemory"),M$(Fp(256)),qe(manager.localeManager.getLocaleString("locale.warnings.warning"),[{type:"text",textContent:window.manager.localeManager.getLocaleString("locale.warnings.outOfMemory")}]),p}window.manager.sfError=p=>{U7.innerHTML=`Error parsing soundfont:
${p}
`,M$(Fp(256)),console.error(p)},U7.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.startingSynthesizer"),await window.manager.reloadSf(c),window.manager.seq&&(window.manager.seq.currentTime-=.1),U7.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.savingSoundfont"),await wk(c);let d=performance.now()/1e3-A;await new Promise(p=>setTimeout(p,1e3-d)),M$(XC(256)),U7.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.done"),L$.classList.add("done"),document.documentElement.classList.add("no_scroll"),document.body.classList.add("no_scroll"),setTimeout(()=>{L$.style.display="none",document.body.classList.remove("no_scroll"),document.documentElement.classList.remove("no_scroll")},1e3)},75)},yk.onclick=async()=>{let n=[{type:"button",textContent:"Bundled SoundFont Credits",onClick:()=>{window.open("https://schristiancollins.com/generaluser.php")}}];sC.textContent=window.manager.localeManager.getLocaleString("locale.synthInit.genericLoading");let i=await(await fetch("https://spessasus.github.io/spessasynth-demo-songs/demo_song_list.json")).text(),A=JSON.parse(i);for(let c of A)n.push({type:"button",textContent:c.name,onClick:d=>{le(d.id),qe(window.manager.localeManager.getLocaleString("locale.credits"),[{type:"text",textContent:c.credits.replace(` `,`\r \r `),attributes:{style:"white-space: pre-line;"}},{type:"button",textContent:"Ok",onClick:p=>{le(p.id)}}],999999,!0,void 0,void 0,async()=>{await h_(c.fileName)})}});qe(window.manager.localeManager.getLocaleString("locale.demoSongButton"),n,999999,!0,void 0)}}); diff --git a/src/website/minified/local_main.min.js b/src/website/minified/local_main.min.js index 116cff6..3a172b2 100644 --- a/src/website/minified/local_main.min.js +++ b/src/website/minified/local_main.min.js @@ -72,7 +72,7 @@ var CE=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(i,A)=>(

${n}

\xD7 -
`;let U=document.createElement("div");if(U.classList.add("notification_content"),p)for(let[_,e0]of Object.entries(p))U.style[_]=e0;H.appendChild(U);for(let _ of i){let e0=tw(_,h);_.onClick&&(e0.onclick=()=>_.onClick({div:H,id:P},e0)),U.appendChild(e0)}c?H.getElementsByClassName("close_btn")[0].onclick=()=>{_e(P)}:H.getElementsByClassName("close_btn")[0].style.display="none",setTimeout(()=>{H.classList.add("drop")},75);let W0=setTimeout(()=>{_e(P)},A*1e3+75);return document.getElementsByClassName("notification_field")[0].appendChild(H),Lp[P]={div:H,timeout:W0,onclose:O},{div:H,id:P}}function _e(n){if(Lp[n]===void 0)return;let i=Lp[n],A=i.div;clearTimeout(Lp[n].timeout),A.classList.remove("drop"),setTimeout(()=>A.parentElement.removeChild(A),500),i.onclose&&i.onclose(),Lp[n]=void 0}var $7={nodesAmount:Hr.nodesAmount,defaultDelay:Hr.defaultDelay,delayVariation:Hr.delayVariation,stereoDifference:Hr.stereoDifference,oscillatorFrequency:Hr.oscillatorFrequency,oscillatorFrequencyVariation:Hr.oscillatorFrequencyVariation,oscillatorGain:Hr.oscillatorGain};function iw(n,i,A){let c=i+"effectsConfig.",h=w4(n.getLocaleString(c+"button.title"),[{type:"button",translatePathTitle:i+"disableCustomVibrato",onClick:(p,O)=>{A.disableGSNRPparams(),O.parentNode.removeChild(O)}},{type:"text",translatePathTitle:c+"reverbConfig",attributes:{style:"margin-bottom: -0.5rem"}},{type:"file",translatePathTitle:c+"reverbConfig.impulseResponse",attributes:{accept:"audio/*"},listeners:{input:async p=>{if(p.target.files.length===0)return;p.stopImmediatePropagation(),p.preventDefault();let O=p.target.parentElement.parentElement;O.textContent=n.getLocaleString("locale.synthInit.genericLoading");let H=await A.context.decodeAudioData(await p.target.files[0].arrayBuffer());A.setReverbResponse(H),O.textContent=n.getLocaleString("locale.synthInit.done"),U5("%cReverb response set!",C1.info)}}},{type:"text",translatePathTitle:c+"chorusConfig",attributes:{style:"margin-bottom: -0.5rem"}},{type:"input",translatePathTitle:c+"chorusConfig.nodesAmount",attributes:{type:"number",min:"0",value:$7.nodesAmount,setting:"nodes"}},{type:"input",translatePathTitle:c+"chorusConfig.defaultDelay",attributes:{type:"number",min:"0",value:$7.defaultDelay,setting:"delay"}},{type:"input",translatePathTitle:c+"chorusConfig.delayVariation",attributes:{type:"number",min:"0",value:$7.delayVariation,setting:"delay-var"}},{type:"input",translatePathTitle:c+"chorusConfig.stereoDifference",attributes:{type:"number",min:"0",value:$7.stereoDifference,setting:"stereo"}},{type:"input",translatePathTitle:c+"chorusConfig.oscillatorFrequency",attributes:{type:"number",min:"0",value:$7.oscillatorFrequency,setting:"osc-freq"}},{type:"input",translatePathTitle:c+"chorusConfig.frequencyVariation",attributes:{type:"number",min:"0",value:$7.oscillatorFrequencyVariation,setting:"freq-var"}},{type:"input",translatePathTitle:c+"chorusConfig.oscillatorGain",attributes:{type:"number",min:"0",value:$7.oscillatorGain,setting:"osc-gain"}},{type:"button",translatePathTitle:c+"chorusConfig.apply",onClick:p=>{$7.nodesAmount=parseFloat(p.div.querySelector("input[setting='nodes']").value),$7.defaultDelay=parseFloat(p.div.querySelector("input[setting='delay']").value),$7.delayVariation=parseFloat(p.div.querySelector("input[setting='delay-var']").value),$7.stereoDifference=parseFloat(p.div.querySelector("input[setting='stereo']").value),$7.oscillatorFrequency=parseFloat(p.div.querySelector("input[setting='osc-freq']").value),$7.defaultDelay=parseFloat(p.div.querySelector("input[setting='delay']").value),$7.oscillatorFrequencyVariation=parseFloat(p.div.querySelector("input[setting='freq-var']").value),$7.oscillatorGain=parseFloat(p.div.querySelector("input[setting='osc-gain']").value),A.setChorusConfig($7)}}],999999,!0,n);return h.div.onclick=p=>p.stopImmediatePropagation(),h}var h8="locale.synthesizerController.keyModifiers.";async function rw(n,i){return new Promise(A=>{let c=w4(n.getLocaleString(h8+"selectKey.title"),[{type:"text",textContent:n.getLocaleString(h8+"selectKey.prompt")}],999999,!1,n);i.onNotePressed=h=>{_e(c.id),i.onNotePressed=void 0,A(h)}})}async function zC(n,i,A,c){let h=await rw(i,A),p=(H,P,U,W0)=>{let _={type:"number",min:P.toString(),max:U.toString(),value:W0.toString()};return _[H]="true",_},O={};O.unchanged=i.getLocaleString(h8+"modifyKey.preset.unchanged");for(let H of c)O[H.presetName]=H.presetName;w4(i.getLocaleString(h8+"modifyKey.title"),[{type:"text",translatePathTitle:h8+"selectedKey",translatePathTitleProps:[h.toString()]},{type:"button",textContent:i.getLocaleString(h8+"selectKey.change"),onClick:async H=>{_e(H.id),await zC(n,i,A,c)}},{type:"input",translatePathTitle:h8+"selectedChannel",attributes:p("chan",0,(n.channelsAmount-1).toString(),A.channel.toString())},{type:"input",translatePathTitle:h8+"modifyKey.velocity",attributes:p("vel",0,127,-1)},{type:"select",translatePathTitle:h8+"modifyKey.preset",attributes:{"preset-selector":"true"},selectOptions:O},{type:"button",translatePathTitle:h8+"modifyKey.apply",onClick:H=>{let P=parseInt(H.div.querySelector("input[chan]").value)??-1,U=parseInt(H.div.querySelector("input[vel]").value)??-1,W0=H.div.querySelector("select[preset-selector]").value,_=-1,e0=-1;if(W0!=="unchanged"){let i0=c.find(a1=>a1.presetName===W0);_=i0.bank,e0=i0.program}n.keyModifierManager.addModifier(P,h,{velocity:U,patch:{program:e0,bank:_}}),_e(H.id)}}],99999,!0,i)}async function qD(n,i,A){let c=await rw(i,A);w4(i.getLocaleString(h8+"removeModification.title"),[{type:"text",translatePathTitle:h8+"selectedKey",translatePathTitleProps:[c.toString()]},{type:"button",textContent:i.getLocaleString(h8+"selectKey.change"),onClick:async h=>{_e(h.id),await zC(n,i,A)}},{type:"input",translatePathTitle:h8+"selectedChannel",attributes:{chan:"true",type:"number",value:A.channel.toString(),min:"0",max:(n.channelsAmount-1).toString()}},{type:"button",translatePathTitle:h8+"removeModification.remove",onClick:h=>{let p=parseInt(h.div.querySelector("input[chan]").value)??-1;n.keyModifierManager.deleteModifier(p,c),_e(h.id)}}],99999,!0,i)}function nw(n,i,A,c){w4(i.getLocaleString(h8+"mainTitle"),[{type:"text",textContent:i.getLocaleString(h8+"detailedDescription"),attributes:{style:"white-space: pre; font-style: italic;"}},{type:"text",textContent:i.getLocaleString(h8+"prompt")},{type:"button",translatePathTitle:h8+"modifyKey",onClick:h=>{_e(h.id),zC(n,i,A,c).then()}},{type:"button",translatePathTitle:h8+"removeModification",onClick:h=>{_e(h.id),qD(n,i,A).then()}},{type:"button",translatePathTitle:h8+"resetModifications",onClick:h=>{_e(h.id),w4(i.getLocaleString(h8+"resetModifications.confirmation.title"),[{type:"text",textContent:i.getLocaleString(h8+"resetModifications.confirmation.description")},{type:"button",textContent:i.getLocaleString("locale.yes"),onClick:p=>{_e(p.id),n.keyModifierManager.clearModifiers()}},{type:"button",textContent:i.getLocaleString("locale.no"),onClick:p=>{_e(p.id)}}],99999,!0,i)}}],9999999,!0,i)}function ow(){let n=document.createElement("div");n.classList.add("controls_wrapper"),this.voiceMeter=new mr("",Xe+"mainVoiceMeter",this.locale,[],0,PC),this.voiceMeter.bar.classList.add("voice_meter_bar_smooth"),this.voiceMeter.div.classList.add("main_controller_element"),this.volumeController=new mr("",Xe+"mainVolumeMeter",this.locale,[],0,200,!0,U=>{this.synth.setMainVolume(Math.round(U)/100),this.volumeController.update(U)}),this.volumeController.bar.classList.add("voice_meter_bar_smooth"),this.volumeController.div.classList.add("main_controller_element"),this.volumeController.update(100),this.panController=new mr("",Xe+"mainPanMeter",this.locale,[],-1,1,!0,U=>{this.synth.setMasterPan(U),this.panController.update(U)}),this.panController.bar.classList.add("voice_meter_bar_smooth"),this.panController.div.classList.add("main_controller_element"),this.panController.update(0),this.transposeController=new mr("",Xe+"mainTransposeMeter",this.locale,[],-12,12,!0,U=>{this.synth.transpose(Math.round(U*2)/2),this.transposeController.update(Math.round(U*2)/2)}),this.transposeController.bar.classList.add("voice_meter_bar_smooth"),this.transposeController.div.classList.add("main_controller_element"),this.transposeController.update(0);let i=document.createElement("button");this.locale.bindObjectProperty(i,"textContent",Xe+"midiPanic.title"),this.locale.bindObjectProperty(i,"title",Xe+"midiPanic.description"),i.classList.add("synthui_button"),i.classList.add("main_controller_element"),i.onclick=()=>this.synth.stopAll(!0);let A=document.createElement("button");this.locale.bindObjectProperty(A,"textContent",Xe+"systemReset.title"),this.locale.bindObjectProperty(A,"title",Xe+"systemReset.description"),A.classList.add("synthui_button"),A.classList.add("main_controller_element"),A.onclick=()=>{this.controllers.forEach((U,W0)=>{U.pitchWheel.isLocked&&U.pitchWheel.lockMeter(),U.pan.isLocked&&U.pan.lockMeter(),U.expression.isLocked&&U.expression.lockMeter(),U.volume.isLocked&&U.volume.lockMeter(),U.mod.isLocked&&U.mod.lockMeter(),U.chorus.isLocked&&U.chorus.lockMeter(),U.reverb.isLocked&&U.reverb.lockMeter(),U.brightness.isLocked&&U.brightness.lockMeter(),U.preset.mainButton.classList.contains("locked_selector")&&(this.synth.lockController(W0,s7,!1),U.preset.mainButton.classList.remove("locked_selector")),this.synth.transposeChannel(W0,0,!0),U.transpose.update(0),U.soloButton.innerHTML=du(si),U.muteButton.innerHTML=_p(si),this.synth.muteChannel(W0,!1)}),this.synth.resetControllers()};let c=document.createElement("button");this.locale.bindObjectProperty(c,"textContent",Xe+"blackMidiMode.title"),this.locale.bindObjectProperty(c,"title",Xe+"blackMidiMode.description"),c.classList.add("synthui_button"),c.classList.add("main_controller_element"),c.onclick=()=>{this.synth.highPerformanceMode=!this.synth.highPerformanceMode};let h=document.createElement("button");this.locale.bindObjectProperty(h,"textContent",Xe+"keyModifiers.button.title"),this.locale.bindObjectProperty(h,"title",Xe+"keyModifiers.button.description"),h.classList.add("synthui_button"),h.classList.add("main_controller_element"),h.onclick=()=>{nw(this.synth,this.locale,this.keyboard,this.presetList)};let p=document.createElement("button");this.locale.bindObjectProperty(p,"textContent",Xe+"effectsConfig.button.title"),this.locale.bindObjectProperty(p,"title",Xe+"effectsConfig.button.description"),p.classList.add("synthui_button"),p.classList.add("main_controller_element"),p.onclick=()=>{if(this.effectsConfigWindow!==void 0){_e(this.effectsConfigWindow),this.effectsConfigWindow=void 0;return}this.effectsConfigWindow=iw(this.locale,Xe,this.synth).id};let O=document.createElement("select");O.classList.add("main_controller_element"),O.classList.add("synthui_button"),this.locale.bindObjectProperty(O,"title",Xe+"interpolation.description");{let U=document.createElement("option");U.value="0",this.locale.bindObjectProperty(U,"textContent",Xe+"interpolation.linear"),O.appendChild(U);let W0=document.createElement("option");W0.value="1",this.locale.bindObjectProperty(W0,"textContent",Xe+"interpolation.nearestNeighbor"),O.appendChild(W0);let _=document.createElement("option");_.value="2",_.selected=!0,this.locale.bindObjectProperty(_,"textContent",Xe+"interpolation.cubic"),O.appendChild(_),O.onchange=()=>{this.synth.setInterpolationType(parseInt(O.value))}}let H=document.createElement("div");H.classList.add("synthui_controller"),this.uiDiv.appendChild(H);let P=document.createElement("button");this.locale.bindObjectProperty(P,"textContent",Xe+"toggleButton.title"),this.locale.bindObjectProperty(P,"title",Xe+"toggleButton.description"),P.classList.add("synthui_button"),P.onclick=()=>{this.hideOnDocClick=!1,this.toggleVisibility()},n.appendChild(this.volumeController.div),n.appendChild(this.panController.div),n.appendChild(this.transposeController.div),n.appendChild(i),n.appendChild(A),n.appendChild(c),n.appendChild(h),n.appendChild(p),n.appendChild(O),this.mainMeters=[this.volumeController,this.panController,this.transposeController,this.voiceMeter],this.mainButtons=[i,A,c,h,p,P,O],this.uiDiv.appendChild(this.voiceMeter.div),this.uiDiv.appendChild(P),H.appendChild(n),this.mainControllerDiv=H,this.mainControllerDiv.onclick=U=>U.stopPropagation(),document.addEventListener("click",()=>{if(!this.hideOnDocClick){this.hideOnDocClick=!0;return}this.effectsConfigWindow!==void 0&&(_e(this.effectsConfigWindow),this.effectsConfigWindow=void 0),H.classList.remove("synthui_controller_show"),this.isShown=!1,this.hideControllers()})}function sw(){let n=this.uiDiv.getElementsByClassName("synthui_controller")[0];this.synth.eventHandler.addEvent("programchange","synthui-program-change",i=>{this.controllers[i.channel].preset.set(`${i.bank}:${i.program}`)}),this.synth.eventHandler.addEvent("allcontrollerreset","synthui-all-controller-reset",()=>{for(let i of this.controllers)i.pan.update(64),i.mod.update(0),i.chorus.update(0),i.pitchWheel.update(0),i.expression.update(127),i.volume.update(100),i.reverb.update(0),i.brightness.update(64)}),this.synth.eventHandler.addEvent("controllerchange","synthui-controller-change",i=>{let A=i.controllerNumber,c=i.channel,h=i.controllerValue,p=this.controllers[c];if(p!==void 0)switch(A){default:break;case $3.expressionController:p.expression.update(h);break;case $3.mainVolume:p.volume.update(h);break;case $3.pan:p.pan.update(h);break;case $3.modulationWheel:p.mod.update(h);break;case $3.chorusDepth:p.chorus.update(h);break;case $3.reverbDepth:p.reverb.update(h);break;case $3.brightness:p.brightness.update(h)}}),this.synth.eventHandler.addEvent("pitchwheel","synthui-pitch-wheel",i=>{let A=i.MSB<<7|i.LSB;this.controllers[i.channel].pitchWheel.update(A-8192)}),this.synth.eventHandler.addEvent("drumchange","synthui-drum-change",i=>{this.controllers[i.channel].drumsToggle.innerHTML=i.isDrumChannel?FE(32):TE(32),this.controllers[i.channel].preset.reload(i.isDrumChannel?this.percussionList:this.instrumentList)}),this.synth.eventHandler.addEvent("newchannel","synthui-new-channel",()=>{let i=this.createChannelController(this.controllers.length);this.controllers.push(i),n.appendChild(i.controller),this.hideControllers()})}var Xe="locale.synthesizerController.",Jr=class{constructor(i,A,c){this.channelColors=i;let h=A;this.uiDiv=document.createElement("div"),this.uiDiv.classList.add("wrapper"),h.appendChild(this.uiDiv),this.uiDiv.style.visibility="visible",this.isShown=!1,this.animationId=-1,this.locale=c,this.hideOnDocClick=!0,this.effectsConfigWindow=void 0}connectKeyboard(i){this.keyboard=i}connectSynth(i){this.synth=i,this.getInstrumentList(),this.createMainSynthController(),this.createChannelControllers(),document.addEventListener("keydown",A=>{switch(A.key.toLowerCase()){case oi.synthesizerUIShow:A.preventDefault(),this.toggleVisibility();break;case oi.settingsShow:this.isShown=!0,this.toggleVisibility();break;case oi.blackMidiMode:A.preventDefault(),this.synth.highPerformanceMode=!this.synth.highPerformanceMode;break;case oi.midiPanic:A.preventDefault(),this.synth.stopAll(!0);break}}),this.locale.onLocaleChanged.push(()=>{this.voiceMeter.update(this.voiceMeter.currentValue,!0),this.volumeController.update(this.volumeController.currentValue,!0),this.panController.update(this.panController.currentValue,!0),this.panController.update(this.panController.currentValue,!0),this.transposeController.update(this.transposeController.currentValue,!0);for(let A of this.controllers)A.voiceMeter.update(A.voiceMeter.currentValue,!0),A.pitchWheel.update(A.pitchWheel.currentValue,!0),A.pan.update(A.pan.currentValue,!0),A.volume.update(A.volume.currentValue,!0),A.expression.update(A.expression.currentValue,!0),A.mod.update(A.mod.currentValue,!0),A.chorus.update(A.chorus.currentValue,!0),A.reverb.update(A.reverb.currentValue,!0),A.brightness.update(A.brightness.currentValue,!0),A.transpose.update(A.transpose.currentValue,!0)})}toggleVisibility(){this.animationId!==-1&&clearTimeout(this.animationId);let i=document.getElementsByClassName("synthui_controller")[0];this.isShown=!this.isShown,this.isShown?(i.style.display="block",document.getElementsByClassName("top_part")[0].classList.add("synthui_shown"),this.showControllers(),setTimeout(()=>{i.classList.add("synthui_controller_show")},75)):(this.effectsConfigWindow!==void 0&&(_e(this.effectsConfigWindow),this.effectsConfigWindow=void 0),document.getElementsByClassName("top_part")[0].classList.remove("synthui_shown"),this.hideControllers(),i.classList.remove("synthui_controller_show"),this.animationId=setTimeout(()=>{i.style.display="none"},200))}updateVoicesAmount(){this.voiceMeter.update(this.synth.voicesAmount),this.controllers.forEach((i,A)=>{let c=this.synth.channelProperties[A].voicesAmount;i.voiceMeter.update(c),c<1&&this.synth.voicesAmount>0?i.controller.classList.add("no_voices"):i.controller.classList.remove("no_voices")})}getInstrumentList(){this.synth.eventHandler.addEvent("presetlistchange","synthui-preset-list-change",i=>{let A=i;this.presetList=A,this.instrumentList=A.filter(c=>c.bank!==128).sort((c,h)=>c.program===h.program?c.bank-h.bank:c.program-h.program).map(c=>({name:c.presetName,bank:c.bank,program:c.program})),this.percussionList=A.filter(c=>c.bank===128).sort((c,h)=>c.program-h.program).map(c=>({name:c.presetName,bank:c.bank,program:c.program})),this.percussionList.length===0?this.percussionList=this.instrumentList:this.instrumentList.length===0&&(this.instrumentList=this.percussionList),this.controllers.forEach((c,h)=>{let p=this.synth.channelProperties[h].isDrum?this.percussionList:this.instrumentList;c.preset.reload(p),c.preset.set(`${p[0].bank}:${p[0].program}`)})})}};Jr.prototype.hideControllers=zy;Jr.prototype.showControllers=Ky;Jr.prototype.toggleDarkMode=Wy;Jr.prototype.createChannelController=jy;Jr.prototype.createChannelControllers=Xy;Jr.prototype.createMainSynthController=ow;Jr.prototype.setEventListeners=sw;var Mp=null,GE=class{constructor(){}async createMIDIDeviceHandler(){if(this.selectedInput=Mp,this.selectedOutput=Mp,navigator.requestMIDIAccess)try{let i=await navigator.requestMIDIAccess({sysex:!0,software:!0});return this.inputs=i.inputs,this.outputs=i.outputs,U5("%cMIDI handler created!",C1.recognized),!0}catch(i){return T9("Could not get MIDI Devices:",i),this.inputs=[],this.outputs=[],!1}else return T9("Web MIDI Api not supported!",C1.unrecognized),this.inputs=[],this.outputs=[],!1}connectMIDIOutputToSeq(i,A){this.selectedOutput=i,A.connectMidiOutput(i),U5(`%cPlaying MIDI to %c${i.name}`,C1.info,C1.recognized)}disconnectSeqFromMIDI(i){this.selectedOutput=Mp,i.connectMidiOutput(void 0),U5("%cDisconnected from MIDI out.",C1.info)}connectDeviceToSynth(i,A){this.selectedInput=i,i.onmidimessage=c=>{A.sendMessage(c.data)},U5(`%cListening for messages on %c${i.name}`,C1.info,C1.recognized)}disconnectDeviceFromSynth(i){this.selectedInput=Mp,i.onmidimessage=void 0,U5(`%cDisconnected from %c${i.name}`,C1.info,C1.recognized)}disconnectAllDevicesFromSynth(){this.selectedInput=Mp;for(let i of this.inputs)i[1].onmidimessage=void 0}};var UE=class{constructor(i){window.addEventListener("message",A=>{if(typeof A.data!="string")return;let c=A.data.split(",");if(c[0]!=="midi")return;c.shift();let h=c.map(p=>parseInt(p,16));i.sendMessage(h)}),U5("%cWeb MIDI Link handler created!",C1.recognized)}};var Ha="midi range";function aw(n,i,A){let c=0,h=this.htmlControls.keyboard,p=[],O=[],H,P=e0=>{let i0=O[e0],a1=i0.drum?128:i0.bank,_1=H.find(f1=>f1.bank===a1&&f1.program===i0.program);_1||(_1=H[0]),p[e0].textContent=": "+_1.presetName},U=()=>{if(H)for(let e0=0;e0{let e0=document.createElement("option");e0.value=c.toString();let i0=document.createElement("p");this.locale.bindObjectProperty(i0,"textContent","locale.settings.keyboardSettings.selectedChannel.channelOption",[c+1]);let a1=document.createElement("p");a1.textContent=": not ",p.push(a1),O.push({program:0,bank:0,drum:c%16===9}),U(),e0.appendChild(i0),e0.appendChild(a1),e0.style.background=i.channelColors[c%i.channelColors.length],e0.style.color="rgb(0, 0, 0)",h.channelSelector.appendChild(e0),c++},_=this.synthui.synth;_.eventHandler.addEvent("presetlistchange","settings-preset-list-change",e0=>{H=e0,U()}),_.eventHandler.addEvent("newchannel","settings-new-channel",()=>{W0()}),_.eventHandler.addEvent("programchange","settings-program-change",e0=>{let i0=O[e0.channel];i0.bank=e0.bank,i0.program=e0.program,P(e0.channel)}),_.eventHandler.addEvent("drumchange","settings-drum-change",e0=>{O[e0.channel].drum=e0.isDrumChannel,P(e0.channel)});for(let e0=0;e0{n.selectChannel(parseInt(h.channelSelector.value))},h.sizeSelector.onchange=()=>{if(this.musicMode.visible){this.musicMode.setVisibility(!1,document.getElementById("keyboard_canvas_wrapper")),setTimeout(()=>{h.sizeSelector.value===Ha?(this.autoKeyRange=!0,this?.sequi?.seq&&(n.keyRange=this.sequi.seq.midiData.keyRange,A.keyRange=this.sequi.seq.midiData.keyRange)):(this.autoKeyRange=!1,n.keyRange=this.keyboardSizes[h.sizeSelector.value],A.keyRange=this.keyboardSizes[h.sizeSelector.value]),this._saveSettings()},600);return}h.sizeSelector.value===Ha?(this.autoKeyRange=!0,this?.sequi?.seq&&(n.keyRange=this.sequi.seq.midiData.keyRange,A.keyRange=this.sequi.seq.midiData.keyRange)):(this.autoKeyRange=!1,n.keyRange=this.keyboardSizes[h.sizeSelector.value],A.keyRange=this.keyboardSizes[h.sizeSelector.value]),this._saveSettings()},this.addSequencer=e0=>{e0.addOnSongChangeEvent(i0=>{this.autoKeyRange&&(n.keyRange=i0.keyRange,A.keyRange=i0.keyRange),i0.RMIDInfo?.IPIC!==void 0&&this.musicMode.visible===!1&&this.toggleMusicPlayerMode().then()},"settings-keyboard-handler-song-change")},i.synth.eventHandler.addEvent("newchannel","settings-new-channel",()=>{W0()}),i.synth.eventHandler.addEvent("programchange","settings-keyboard-program-change",e0=>{e0.userCalled&&(n.selectChannel(e0.channel),h.channelSelector.value=e0.channel)}),i.synth.eventHandler.addEvent("mutechannel","settings-keuboard-mute-channel",e0=>{if(e0.isMuted&&e0.channel===n.channel){let i0=0;for(;i.synth.channelProperties[i0].isMuted;)i0++;i0{if(this.musicMode.visible){this.musicMode.setVisibility(!1,document.getElementById("keyboard_canvas_wrapper")),setTimeout(()=>{n.toggleMode(),this._saveSettings()},600);return}n.toggleMode(),this._saveSettings()},h.showSelector.onclick=()=>{n.shown=!n.shown,this._saveSettings()}}var Aw=` + `;let U=document.createElement("div");if(U.classList.add("notification_content"),p)for(let[_,e0]of Object.entries(p))U.style[_]=e0;H.appendChild(U);for(let _ of i){let e0=tw(_,h);_.onClick&&(e0.onclick=()=>_.onClick({div:H,id:P},e0)),U.appendChild(e0)}c?H.getElementsByClassName("close_btn")[0].onclick=()=>{_e(P)}:H.getElementsByClassName("close_btn")[0].style.display="none",setTimeout(()=>{H.classList.add("drop")},75);let W0=setTimeout(()=>{_e(P)},A*1e3+75);return document.getElementsByClassName("notification_field")[0].appendChild(H),Lp[P]={div:H,timeout:W0,onclose:O},{div:H,id:P}}function _e(n){if(Lp[n]===void 0)return;let i=Lp[n],A=i.div;clearTimeout(Lp[n].timeout),A.classList.remove("drop"),setTimeout(()=>A.parentElement.removeChild(A),500),i.onclose&&i.onclose(),Lp[n]=void 0}var $7={nodesAmount:Hr.nodesAmount,defaultDelay:Hr.defaultDelay,delayVariation:Hr.delayVariation,stereoDifference:Hr.stereoDifference,oscillatorFrequency:Hr.oscillatorFrequency,oscillatorFrequencyVariation:Hr.oscillatorFrequencyVariation,oscillatorGain:Hr.oscillatorGain};function iw(n,i,A){let c=i+"effectsConfig.",h=w4(n.getLocaleString(c+"button.title"),[{type:"button",translatePathTitle:i+"disableCustomVibrato",onClick:(p,O)=>{A.disableGSNRPparams(),O.parentNode.removeChild(O)}},{type:"text",translatePathTitle:c+"reverbConfig",attributes:{style:"margin-bottom: -0.5rem"}},{type:"file",translatePathTitle:c+"reverbConfig.impulseResponse",attributes:{accept:"audio/*"},listeners:{input:async p=>{if(p.target.files.length===0)return;p.stopImmediatePropagation(),p.preventDefault();let O=p.target.parentElement.parentElement;O.textContent=n.getLocaleString("locale.synthInit.genericLoading");let H=await A.context.decodeAudioData(await p.target.files[0].arrayBuffer());A.setReverbResponse(H),O.textContent=n.getLocaleString("locale.synthInit.done"),U5("%cReverb response set!",C1.info)}}},{type:"text",translatePathTitle:c+"chorusConfig",attributes:{style:"margin-bottom: -0.5rem"}},{type:"input",translatePathTitle:c+"chorusConfig.nodesAmount",attributes:{type:"number",min:"0",value:$7.nodesAmount,setting:"nodes"}},{type:"input",translatePathTitle:c+"chorusConfig.defaultDelay",attributes:{type:"number",min:"0",value:$7.defaultDelay,setting:"delay"}},{type:"input",translatePathTitle:c+"chorusConfig.delayVariation",attributes:{type:"number",min:"0",value:$7.delayVariation,setting:"delay-var"}},{type:"input",translatePathTitle:c+"chorusConfig.stereoDifference",attributes:{type:"number",min:"0",value:$7.stereoDifference,setting:"stereo"}},{type:"input",translatePathTitle:c+"chorusConfig.oscillatorFrequency",attributes:{type:"number",min:"0",value:$7.oscillatorFrequency,setting:"osc-freq"}},{type:"input",translatePathTitle:c+"chorusConfig.frequencyVariation",attributes:{type:"number",min:"0",value:$7.oscillatorFrequencyVariation,setting:"freq-var"}},{type:"input",translatePathTitle:c+"chorusConfig.oscillatorGain",attributes:{type:"number",min:"0",value:$7.oscillatorGain,setting:"osc-gain"}},{type:"button",translatePathTitle:c+"chorusConfig.apply",onClick:p=>{$7.nodesAmount=parseFloat(p.div.querySelector("input[setting='nodes']").value),$7.defaultDelay=parseFloat(p.div.querySelector("input[setting='delay']").value),$7.delayVariation=parseFloat(p.div.querySelector("input[setting='delay-var']").value),$7.stereoDifference=parseFloat(p.div.querySelector("input[setting='stereo']").value),$7.oscillatorFrequency=parseFloat(p.div.querySelector("input[setting='osc-freq']").value),$7.defaultDelay=parseFloat(p.div.querySelector("input[setting='delay']").value),$7.oscillatorFrequencyVariation=parseFloat(p.div.querySelector("input[setting='freq-var']").value),$7.oscillatorGain=parseFloat(p.div.querySelector("input[setting='osc-gain']").value),A.setChorusConfig($7)}}],999999,!0,n);return h.div.onclick=p=>p.stopImmediatePropagation(),h}var h8="locale.synthesizerController.keyModifiers.";async function rw(n,i){return new Promise(A=>{let c=w4(n.getLocaleString(h8+"selectKey.title"),[{type:"text",textContent:n.getLocaleString(h8+"selectKey.prompt")}],999999,!1,n);i.onNotePressed=h=>{_e(c.id),i.onNotePressed=void 0,A(h)}})}async function zC(n,i,A,c){let h=await rw(i,A),p=(H,P,U,W0)=>{let _={type:"number",min:P.toString(),max:U.toString(),value:W0.toString()};return _[H]="true",_},O={};O.unchanged=i.getLocaleString(h8+"modifyKey.preset.unchanged");for(let H of c.toSorted((P,U)=>P.presetNameU.presetName?1:0))O[H.presetName]=H.presetName;w4(i.getLocaleString(h8+"modifyKey.title"),[{type:"text",translatePathTitle:h8+"selectedKey",translatePathTitleProps:[h.toString()]},{type:"button",textContent:i.getLocaleString(h8+"selectKey.change"),onClick:async H=>{_e(H.id),await zC(n,i,A,c)}},{type:"input",translatePathTitle:h8+"selectedChannel",attributes:p("chan",0,(n.channelsAmount-1).toString(),A.channel.toString())},{type:"input",translatePathTitle:h8+"modifyKey.velocity",attributes:p("vel",0,127,-1)},{type:"select",translatePathTitle:h8+"modifyKey.preset",attributes:{"preset-selector":"true"},selectOptions:O},{type:"button",translatePathTitle:h8+"modifyKey.apply",onClick:H=>{let P=parseInt(H.div.querySelector("input[chan]").value)??-1,U=parseInt(H.div.querySelector("input[vel]").value)??-1,W0=H.div.querySelector("select[preset-selector]").value,_=-1,e0=-1;if(W0!=="unchanged"){let i0=c.find(a1=>a1.presetName===W0);_=i0.bank,e0=i0.program}n.keyModifierManager.addModifier(P,h,{velocity:U,patch:{program:e0,bank:_}}),_e(H.id)}}],99999,!0,i)}async function qD(n,i,A){let c=await rw(i,A);w4(i.getLocaleString(h8+"removeModification.title"),[{type:"text",translatePathTitle:h8+"selectedKey",translatePathTitleProps:[c.toString()]},{type:"button",textContent:i.getLocaleString(h8+"selectKey.change"),onClick:async h=>{_e(h.id),await zC(n,i,A)}},{type:"input",translatePathTitle:h8+"selectedChannel",attributes:{chan:"true",type:"number",value:A.channel.toString(),min:"0",max:(n.channelsAmount-1).toString()}},{type:"button",translatePathTitle:h8+"removeModification.remove",onClick:h=>{let p=parseInt(h.div.querySelector("input[chan]").value)??-1;n.keyModifierManager.deleteModifier(p,c),_e(h.id)}}],99999,!0,i)}function nw(n,i,A,c){w4(i.getLocaleString(h8+"mainTitle"),[{type:"text",textContent:i.getLocaleString(h8+"detailedDescription"),attributes:{style:"white-space: pre; font-style: italic;"}},{type:"text",textContent:i.getLocaleString(h8+"prompt")},{type:"button",translatePathTitle:h8+"modifyKey",onClick:h=>{_e(h.id),zC(n,i,A,c).then()}},{type:"button",translatePathTitle:h8+"removeModification",onClick:h=>{_e(h.id),qD(n,i,A).then()}},{type:"button",translatePathTitle:h8+"resetModifications",onClick:h=>{_e(h.id),w4(i.getLocaleString(h8+"resetModifications.confirmation.title"),[{type:"text",textContent:i.getLocaleString(h8+"resetModifications.confirmation.description")},{type:"button",textContent:i.getLocaleString("locale.yes"),onClick:p=>{_e(p.id),n.keyModifierManager.clearModifiers()}},{type:"button",textContent:i.getLocaleString("locale.no"),onClick:p=>{_e(p.id)}}],99999,!0,i)}}],9999999,!0,i)}function ow(){let n=document.createElement("div");n.classList.add("controls_wrapper"),this.voiceMeter=new mr("",Xe+"mainVoiceMeter",this.locale,[],0,PC),this.voiceMeter.bar.classList.add("voice_meter_bar_smooth"),this.voiceMeter.div.classList.add("main_controller_element"),this.volumeController=new mr("",Xe+"mainVolumeMeter",this.locale,[],0,200,!0,U=>{this.synth.setMainVolume(Math.round(U)/100),this.volumeController.update(U)}),this.volumeController.bar.classList.add("voice_meter_bar_smooth"),this.volumeController.div.classList.add("main_controller_element"),this.volumeController.update(100),this.panController=new mr("",Xe+"mainPanMeter",this.locale,[],-1,1,!0,U=>{this.synth.setMasterPan(U),this.panController.update(U)}),this.panController.bar.classList.add("voice_meter_bar_smooth"),this.panController.div.classList.add("main_controller_element"),this.panController.update(0),this.transposeController=new mr("",Xe+"mainTransposeMeter",this.locale,[],-12,12,!0,U=>{this.synth.transpose(Math.round(U*2)/2),this.transposeController.update(Math.round(U*2)/2)}),this.transposeController.bar.classList.add("voice_meter_bar_smooth"),this.transposeController.div.classList.add("main_controller_element"),this.transposeController.update(0);let i=document.createElement("button");this.locale.bindObjectProperty(i,"textContent",Xe+"midiPanic.title"),this.locale.bindObjectProperty(i,"title",Xe+"midiPanic.description"),i.classList.add("synthui_button"),i.classList.add("main_controller_element"),i.onclick=()=>this.synth.stopAll(!0);let A=document.createElement("button");this.locale.bindObjectProperty(A,"textContent",Xe+"systemReset.title"),this.locale.bindObjectProperty(A,"title",Xe+"systemReset.description"),A.classList.add("synthui_button"),A.classList.add("main_controller_element"),A.onclick=()=>{this.controllers.forEach((U,W0)=>{U.pitchWheel.isLocked&&U.pitchWheel.lockMeter(),U.pan.isLocked&&U.pan.lockMeter(),U.expression.isLocked&&U.expression.lockMeter(),U.volume.isLocked&&U.volume.lockMeter(),U.mod.isLocked&&U.mod.lockMeter(),U.chorus.isLocked&&U.chorus.lockMeter(),U.reverb.isLocked&&U.reverb.lockMeter(),U.brightness.isLocked&&U.brightness.lockMeter(),U.preset.mainButton.classList.contains("locked_selector")&&(this.synth.lockController(W0,s7,!1),U.preset.mainButton.classList.remove("locked_selector")),this.synth.transposeChannel(W0,0,!0),U.transpose.update(0),U.soloButton.innerHTML=du(si),U.muteButton.innerHTML=_p(si),this.synth.muteChannel(W0,!1)}),this.synth.resetControllers()};let c=document.createElement("button");this.locale.bindObjectProperty(c,"textContent",Xe+"blackMidiMode.title"),this.locale.bindObjectProperty(c,"title",Xe+"blackMidiMode.description"),c.classList.add("synthui_button"),c.classList.add("main_controller_element"),c.onclick=()=>{this.synth.highPerformanceMode=!this.synth.highPerformanceMode};let h=document.createElement("button");this.locale.bindObjectProperty(h,"textContent",Xe+"keyModifiers.button.title"),this.locale.bindObjectProperty(h,"title",Xe+"keyModifiers.button.description"),h.classList.add("synthui_button"),h.classList.add("main_controller_element"),h.onclick=()=>{nw(this.synth,this.locale,this.keyboard,this.presetList)};let p=document.createElement("button");this.locale.bindObjectProperty(p,"textContent",Xe+"effectsConfig.button.title"),this.locale.bindObjectProperty(p,"title",Xe+"effectsConfig.button.description"),p.classList.add("synthui_button"),p.classList.add("main_controller_element"),p.onclick=()=>{if(this.effectsConfigWindow!==void 0){_e(this.effectsConfigWindow),this.effectsConfigWindow=void 0;return}this.effectsConfigWindow=iw(this.locale,Xe,this.synth).id};let O=document.createElement("select");O.classList.add("main_controller_element"),O.classList.add("synthui_button"),this.locale.bindObjectProperty(O,"title",Xe+"interpolation.description");{let U=document.createElement("option");U.value="0",this.locale.bindObjectProperty(U,"textContent",Xe+"interpolation.linear"),O.appendChild(U);let W0=document.createElement("option");W0.value="1",this.locale.bindObjectProperty(W0,"textContent",Xe+"interpolation.nearestNeighbor"),O.appendChild(W0);let _=document.createElement("option");_.value="2",_.selected=!0,this.locale.bindObjectProperty(_,"textContent",Xe+"interpolation.cubic"),O.appendChild(_),O.onchange=()=>{this.synth.setInterpolationType(parseInt(O.value))}}let H=document.createElement("div");H.classList.add("synthui_controller"),this.uiDiv.appendChild(H);let P=document.createElement("button");this.locale.bindObjectProperty(P,"textContent",Xe+"toggleButton.title"),this.locale.bindObjectProperty(P,"title",Xe+"toggleButton.description"),P.classList.add("synthui_button"),P.onclick=()=>{this.hideOnDocClick=!1,this.toggleVisibility()},n.appendChild(this.volumeController.div),n.appendChild(this.panController.div),n.appendChild(this.transposeController.div),n.appendChild(i),n.appendChild(A),n.appendChild(c),n.appendChild(h),n.appendChild(p),n.appendChild(O),this.mainMeters=[this.volumeController,this.panController,this.transposeController,this.voiceMeter],this.mainButtons=[i,A,c,h,p,P,O],this.uiDiv.appendChild(this.voiceMeter.div),this.uiDiv.appendChild(P),H.appendChild(n),this.mainControllerDiv=H,this.mainControllerDiv.onclick=U=>U.stopPropagation(),document.addEventListener("click",()=>{if(!this.hideOnDocClick){this.hideOnDocClick=!0;return}this.effectsConfigWindow!==void 0&&(_e(this.effectsConfigWindow),this.effectsConfigWindow=void 0),H.classList.remove("synthui_controller_show"),this.isShown=!1,this.hideControllers()})}function sw(){let n=this.uiDiv.getElementsByClassName("synthui_controller")[0];this.synth.eventHandler.addEvent("programchange","synthui-program-change",i=>{this.controllers[i.channel].preset.set(`${i.bank}:${i.program}`)}),this.synth.eventHandler.addEvent("allcontrollerreset","synthui-all-controller-reset",()=>{for(let i of this.controllers)i.pan.update(64),i.mod.update(0),i.chorus.update(0),i.pitchWheel.update(0),i.expression.update(127),i.volume.update(100),i.reverb.update(0),i.brightness.update(64)}),this.synth.eventHandler.addEvent("controllerchange","synthui-controller-change",i=>{let A=i.controllerNumber,c=i.channel,h=i.controllerValue,p=this.controllers[c];if(p!==void 0)switch(A){default:break;case $3.expressionController:p.expression.update(h);break;case $3.mainVolume:p.volume.update(h);break;case $3.pan:p.pan.update(h);break;case $3.modulationWheel:p.mod.update(h);break;case $3.chorusDepth:p.chorus.update(h);break;case $3.reverbDepth:p.reverb.update(h);break;case $3.brightness:p.brightness.update(h)}}),this.synth.eventHandler.addEvent("pitchwheel","synthui-pitch-wheel",i=>{let A=i.MSB<<7|i.LSB;this.controllers[i.channel].pitchWheel.update(A-8192)}),this.synth.eventHandler.addEvent("drumchange","synthui-drum-change",i=>{this.controllers[i.channel].drumsToggle.innerHTML=i.isDrumChannel?FE(32):TE(32),this.controllers[i.channel].preset.reload(i.isDrumChannel?this.percussionList:this.instrumentList)}),this.synth.eventHandler.addEvent("newchannel","synthui-new-channel",()=>{let i=this.createChannelController(this.controllers.length);this.controllers.push(i),n.appendChild(i.controller),this.hideControllers()})}var Xe="locale.synthesizerController.",Jr=class{constructor(i,A,c){this.channelColors=i;let h=A;this.uiDiv=document.createElement("div"),this.uiDiv.classList.add("wrapper"),h.appendChild(this.uiDiv),this.uiDiv.style.visibility="visible",this.isShown=!1,this.animationId=-1,this.locale=c,this.hideOnDocClick=!0,this.effectsConfigWindow=void 0}connectKeyboard(i){this.keyboard=i}connectSynth(i){this.synth=i,this.getInstrumentList(),this.createMainSynthController(),this.createChannelControllers(),document.addEventListener("keydown",A=>{switch(A.key.toLowerCase()){case oi.synthesizerUIShow:A.preventDefault(),this.toggleVisibility();break;case oi.settingsShow:this.isShown=!0,this.toggleVisibility();break;case oi.blackMidiMode:A.preventDefault(),this.synth.highPerformanceMode=!this.synth.highPerformanceMode;break;case oi.midiPanic:A.preventDefault(),this.synth.stopAll(!0);break}}),this.locale.onLocaleChanged.push(()=>{this.voiceMeter.update(this.voiceMeter.currentValue,!0),this.volumeController.update(this.volumeController.currentValue,!0),this.panController.update(this.panController.currentValue,!0),this.panController.update(this.panController.currentValue,!0),this.transposeController.update(this.transposeController.currentValue,!0);for(let A of this.controllers)A.voiceMeter.update(A.voiceMeter.currentValue,!0),A.pitchWheel.update(A.pitchWheel.currentValue,!0),A.pan.update(A.pan.currentValue,!0),A.volume.update(A.volume.currentValue,!0),A.expression.update(A.expression.currentValue,!0),A.mod.update(A.mod.currentValue,!0),A.chorus.update(A.chorus.currentValue,!0),A.reverb.update(A.reverb.currentValue,!0),A.brightness.update(A.brightness.currentValue,!0),A.transpose.update(A.transpose.currentValue,!0)})}toggleVisibility(){this.animationId!==-1&&clearTimeout(this.animationId);let i=document.getElementsByClassName("synthui_controller")[0];this.isShown=!this.isShown,this.isShown?(i.style.display="block",document.getElementsByClassName("top_part")[0].classList.add("synthui_shown"),this.showControllers(),setTimeout(()=>{i.classList.add("synthui_controller_show")},75)):(this.effectsConfigWindow!==void 0&&(_e(this.effectsConfigWindow),this.effectsConfigWindow=void 0),document.getElementsByClassName("top_part")[0].classList.remove("synthui_shown"),this.hideControllers(),i.classList.remove("synthui_controller_show"),this.animationId=setTimeout(()=>{i.style.display="none"},200))}updateVoicesAmount(){this.voiceMeter.update(this.synth.voicesAmount),this.controllers.forEach((i,A)=>{let c=this.synth.channelProperties[A].voicesAmount;i.voiceMeter.update(c),c<1&&this.synth.voicesAmount>0?i.controller.classList.add("no_voices"):i.controller.classList.remove("no_voices")})}getInstrumentList(){this.synth.eventHandler.addEvent("presetlistchange","synthui-preset-list-change",i=>{let A=i;this.presetList=A,this.instrumentList=A.filter(c=>c.bank!==128).sort((c,h)=>c.program===h.program?c.bank-h.bank:c.program-h.program).map(c=>({name:c.presetName,bank:c.bank,program:c.program})),this.percussionList=A.filter(c=>c.bank===128).sort((c,h)=>c.program-h.program).map(c=>({name:c.presetName,bank:c.bank,program:c.program})),this.percussionList.length===0?this.percussionList=this.instrumentList:this.instrumentList.length===0&&(this.instrumentList=this.percussionList),this.controllers.forEach((c,h)=>{let p=this.synth.channelProperties[h].isDrum?this.percussionList:this.instrumentList;c.preset.reload(p),c.preset.set(`${p[0].bank}:${p[0].program}`)})})}};Jr.prototype.hideControllers=zy;Jr.prototype.showControllers=Ky;Jr.prototype.toggleDarkMode=Wy;Jr.prototype.createChannelController=jy;Jr.prototype.createChannelControllers=Xy;Jr.prototype.createMainSynthController=ow;Jr.prototype.setEventListeners=sw;var Mp=null,GE=class{constructor(){}async createMIDIDeviceHandler(){if(this.selectedInput=Mp,this.selectedOutput=Mp,navigator.requestMIDIAccess)try{let i=await navigator.requestMIDIAccess({sysex:!0,software:!0});return this.inputs=i.inputs,this.outputs=i.outputs,U5("%cMIDI handler created!",C1.recognized),!0}catch(i){return T9("Could not get MIDI Devices:",i),this.inputs=[],this.outputs=[],!1}else return T9("Web MIDI Api not supported!",C1.unrecognized),this.inputs=[],this.outputs=[],!1}connectMIDIOutputToSeq(i,A){this.selectedOutput=i,A.connectMidiOutput(i),U5(`%cPlaying MIDI to %c${i.name}`,C1.info,C1.recognized)}disconnectSeqFromMIDI(i){this.selectedOutput=Mp,i.connectMidiOutput(void 0),U5("%cDisconnected from MIDI out.",C1.info)}connectDeviceToSynth(i,A){this.selectedInput=i,i.onmidimessage=c=>{A.sendMessage(c.data)},U5(`%cListening for messages on %c${i.name}`,C1.info,C1.recognized)}disconnectDeviceFromSynth(i){this.selectedInput=Mp,i.onmidimessage=void 0,U5(`%cDisconnected from %c${i.name}`,C1.info,C1.recognized)}disconnectAllDevicesFromSynth(){this.selectedInput=Mp;for(let i of this.inputs)i[1].onmidimessage=void 0}};var UE=class{constructor(i){window.addEventListener("message",A=>{if(typeof A.data!="string")return;let c=A.data.split(",");if(c[0]!=="midi")return;c.shift();let h=c.map(p=>parseInt(p,16));i.sendMessage(h)}),U5("%cWeb MIDI Link handler created!",C1.recognized)}};var Ha="midi range";function aw(n,i,A){let c=0,h=this.htmlControls.keyboard,p=[],O=[],H,P=e0=>{let i0=O[e0],a1=i0.drum?128:i0.bank,_1=H.find(f1=>f1.bank===a1&&f1.program===i0.program);_1||(_1=H[0]),p[e0].textContent=": "+_1.presetName},U=()=>{if(H)for(let e0=0;e0{let e0=document.createElement("option");e0.value=c.toString();let i0=document.createElement("p");this.locale.bindObjectProperty(i0,"textContent","locale.settings.keyboardSettings.selectedChannel.channelOption",[c+1]);let a1=document.createElement("p");a1.textContent=": not ",p.push(a1),O.push({program:0,bank:0,drum:c%16===9}),U(),e0.appendChild(i0),e0.appendChild(a1),e0.style.background=i.channelColors[c%i.channelColors.length],e0.style.color="rgb(0, 0, 0)",h.channelSelector.appendChild(e0),c++},_=this.synthui.synth;_.eventHandler.addEvent("presetlistchange","settings-preset-list-change",e0=>{H=e0,U()}),_.eventHandler.addEvent("newchannel","settings-new-channel",()=>{W0()}),_.eventHandler.addEvent("programchange","settings-program-change",e0=>{let i0=O[e0.channel];i0.bank=e0.bank,i0.program=e0.program,P(e0.channel)}),_.eventHandler.addEvent("drumchange","settings-drum-change",e0=>{O[e0.channel].drum=e0.isDrumChannel,P(e0.channel)});for(let e0=0;e0{n.selectChannel(parseInt(h.channelSelector.value))},h.sizeSelector.onchange=()=>{if(this.musicMode.visible){this.musicMode.setVisibility(!1,document.getElementById("keyboard_canvas_wrapper")),setTimeout(()=>{h.sizeSelector.value===Ha?(this.autoKeyRange=!0,this?.sequi?.seq&&(n.keyRange=this.sequi.seq.midiData.keyRange,A.keyRange=this.sequi.seq.midiData.keyRange)):(this.autoKeyRange=!1,n.keyRange=this.keyboardSizes[h.sizeSelector.value],A.keyRange=this.keyboardSizes[h.sizeSelector.value]),this._saveSettings()},600);return}h.sizeSelector.value===Ha?(this.autoKeyRange=!0,this?.sequi?.seq&&(n.keyRange=this.sequi.seq.midiData.keyRange,A.keyRange=this.sequi.seq.midiData.keyRange)):(this.autoKeyRange=!1,n.keyRange=this.keyboardSizes[h.sizeSelector.value],A.keyRange=this.keyboardSizes[h.sizeSelector.value]),this._saveSettings()},this.addSequencer=e0=>{e0.addOnSongChangeEvent(i0=>{this.autoKeyRange&&(n.keyRange=i0.keyRange,A.keyRange=i0.keyRange),i0.RMIDInfo?.IPIC!==void 0&&this.musicMode.visible===!1&&this.toggleMusicPlayerMode().then()},"settings-keyboard-handler-song-change")},i.synth.eventHandler.addEvent("newchannel","settings-new-channel",()=>{W0()}),i.synth.eventHandler.addEvent("programchange","settings-keyboard-program-change",e0=>{e0.userCalled&&(n.selectChannel(e0.channel),h.channelSelector.value=e0.channel)}),i.synth.eventHandler.addEvent("mutechannel","settings-keuboard-mute-channel",e0=>{if(e0.isMuted&&e0.channel===n.channel){let i0=0;for(;i.synth.channelProperties[i0].isMuted;)i0++;i0{if(this.musicMode.visible){this.musicMode.setVisibility(!1,document.getElementById("keyboard_canvas_wrapper")),setTimeout(()=>{n.toggleMode(),this._saveSettings()},600);return}n.toggleMode(),this._saveSettings()},h.showSelector.onclick=()=>{n.shown=!n.shown,this._saveSettings()}}var Aw=`